嵌入式系统开发

嵌入式系统开发

(美) 怀特 (White,E.) , 著

出版社:东南大学出版社

年代:2012

定价:58.0

书籍简介:

是否有兴趣开发嵌入式系统?这些系统无法容忍低下的效率;它们需要遵循严格的方式进行编程。这本易于阅读的指南通过经典的软件设计模式和嵌入式编程的全新模式来帮助你培养出许多良好的开发习惯。你会学习到如何为处理器而不是操作系统来搭建系统架构,并且了解到处理硬件问题和制造工艺所需的特殊技术。这本书的作者创建过各种各样的嵌入式系统,从城市监控和DNA扫描仪到儿童玩具。本书适合于中等和有经验的编程人员,无论你使用的是什么平台。

作者介绍:

Elecia White是Logical Elegance,一家在圣何塞的嵌入式系统咨询公司的创办人。她喜欢制作有趣的玩意,包括医学设备、惯性测量装置、教育玩具和一套枪声定位系统。

书籍目录:

Preface

1. Introduction

Compilers, Languages, and Object-Oriented Programming

Embedded System Development

Debugging

More Challenges

Principles to Confront Those Challenges

Further Reading

2. Creating a System Architecture

Creating System Diagrams

The Block Diagram

Hierarchy of Control

Layered View

From Diagram to Architecture

Encapsulate Modules

Delegation of Tasks

Driver Interface: Open, Close, Read, Write, IOCTL

Adapter Pattern

Getting Started with Other Interfaces

Example: A Logging Interface

A Sandbox to Play In

Further Reading

3. Getting Your Hands on the Hardware

Hardware/Software Integration

Ideal Project Flow

Board Bring-Up

Reading a Datasheet

Datasheet Sections You Need When Things'Go Wrong

Important Text for Software Developers

Evaluating Components Using the Datasheet

Your Processor Is a Language

Reading a Schematic

Having a Debugging Toolbox (and a Fire Extinguisher)

Keep Your Board Safe

Toolbox

Digital Multimeter

Oscilloscopes and Logic Analyzers

Testing the Hardware (and Software)

Building Tests

Flash Test Example

Command and Response

Command Pattern

Dealing with Errors

Consistent Methodology

Error-Handling Library

Debugging Timing Errors

Further Reading

4. Outputs, Inputs, and Timers

Toggling an Output

Starting with Registers

Set the Pin to Be an Output

Turn On the LED

Blinking the LED

Troubleshooting

Separating the Hardware from the Action

Board-Specific Header File

I/O-Handling Code

Main Loop

Facade Pattern

The Input in I/O

A Simple Interface to a Button

Momentary Button Press

Interrupt on a Button Press

Configuring the Interrupt

Debouncing Switches

Runtime Uncertainty

Dependency Injection

Using a Timer

Timer Pieces

Doing the Math

A Long Wait Between Timer Ticks

Using the Timer

Using Pulse-Width Modulation

Shipping the Product

Further Reading

5. Managing the FIow 0fActiviB~

Scheduling and Operating System Basics

Tasks

Communication Between Tasks

Avoiding Race Conditions

Priority Inversion

State Machines

State Machine Example: Stoplight Controller

State-Centric State Machine

State-Centric State Machine with Hidden Transitions

Event-Centric State Machine

State Pattern

Table-Driven State Machine

Choosing a State Machine Implementation

Interrupts

An IRQ Happens

Save the Context

Get the ISR from the Vector Table

Calling the ISR

Restore the Context

When to Use Interrupts

How Not to Use Interrupts

Polling

System Tick

Time-Based Events

A Very Small Scheduler

Watchdog

Further Reading

6. Communicating with Peripherals

The Wide Reach of Peripherals

External Memory

Buttons and Key Matrices

Sensors

Actuators

Displays

So Many Ways of Communicating

Serial

Parallel

Ethernet and WiFi

Putting Peripherals and Communication Together

Data Handling

Adding Robustness to the Communication

Changing Data

Changing Algorithms

Further Reading

7. Updating Code

Onboard Bootloader

Build Your Own Updater

Modifying the Resident Updater

Brick Loader

Copy Loader to RAM

Run the Loader

Copy New Code to Scratch

Dangerous Time: Erase and Program

Reset to New Code

Security

Linker Scripts

Summary

8. Doing More with Less

Code Space

Reading a Map File (Part 1)

Process of Elimination

Libraries

Functions and Macros

Constants and Strings

RAM

Remove malloc

Reading a Map File (Part 2)

Registers and Local Variables

Function Chains

Pros and Cons of Globals

Memory Overlays

Speed

Profiling

Optimizing

Summary

Further Reading

9. Math

Identifying Fast and Slow Operations

Taking an Average

Use an Existing Algorithm

Designing and Modifying Algorithms

Factor Polynomials

Taylor Series

Dividing by a Constant

Scaling the Input

Lookup Tables

Fake Floating-Point Numbers

Rational Numbers

Precision

Addition (and Subtraction)

Multiplication (and Division)

Determining the Error

Further Reading

10. Reducing Power Consumption

Understanding Power Consumption

Turn Off the Light When You Leave the Room

Turn Off Peripherals

Turn Oft" Unused I/O devices

Turn Off Processor Subsystems

Slowing Down to Conserve Energy

Putting the Processor to Sleep

Interrupt-Based Code Flow Model

A Closer Look at the Main Loop

Processor Watchdog

Avoid Frequent Wake-Ups

Chained Processors

Further Reading

Index

内容摘要:

《嵌入式系统开发(影印版)》特点:优化你的系统以减少损耗并增强性熊,开发一套能够让你的软件在资源有限的环境中稳定运行的架构,探讨传感器、电机和其他I/O设备,少花钱多办事:减少内存使用、编码空间、处理器周期和电量损耗学习如何在处理器中直接更新嵌入式代码,了解如何在小型处理器上实现复杂数学计算,当你寻求一份嵌入式系统工作时明白面试人员在说些什么。

编辑推荐:

是否有兴趣开发嵌入式系统?这些系统无法容忍低下的效率,它们需要遵循严格的方式进行编程。《嵌入式系统开发(影印版)》这本易于阅读的指南通过经典的软件设计模式和嵌入式编程的全新模式来帮助你培养许多良好的开发习惯。你会学习到如何为处理器而不是操作系统来搭建系统架构,并且了解到处理硬件问题和制造工艺所需的特殊技术。
这本书的作者创建过各种各样的嵌入式系统,从城市监控和DNA扫描仪到儿童玩具。本书适合于中等和有经验的编程人员,无论你使用的是什么平台。

书籍规格:

书籍详细信息
书名嵌入式系统开发站内查询相似图书
9787564134501
如需购买下载《嵌入式系统开发》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地南京出版单位东南大学出版社
版次影印本印次1
定价(元)58.0语种英文
尺寸24 × 17装帧平装
页数印数

书籍信息归属:

嵌入式系统开发是东南大学出版社于2012.6出版的中图分类号为 TP360.2 的主题关于 微型计算机-系统设计-英文 的书籍。