《嵌入式系统设计与实践》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)怀特著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2013
  • ISBN:9787111415848
  • 页数:282 页
图书介绍:本书易于阅读的指南通过经典的软件设计模式和嵌入式编程的全新模式来帮助你培养许多良好的开发习惯。你会学习到如何为处理器而不是操作系统来搭建系统架构,并且了解到处理硬件问题和制造工艺所需的特殊技术。这本书的作者创建过各种各样的嵌入式系统,从城市监控和DNA扫描仪到儿童玩具。本书适合于中等和有经验的编程人员,无论你使用的是什么平台。本书由怀特(White,E.)著。

前言 1

第1章导论 7

1.1编译器、编程语言以及面向对象编程 7

1.2嵌入式系统开发 8

1.2.1调试 8

1.2.2更多挑战 10

1.2.3解决问题的原则 11

1.3延伸阅读 12

第2章创建系统架构 15

2.1构建系统框图 16

2.1.1架构框图 16

2.1.2控制层级图 18

2.1.3层次图 20

2.2从框图到架构 21

2.2.1封装模块 22

2.2.2分派任务 22

2.2.3驱动程序接口:打开(Open)、关闭(Close)、读(Read)、写(Write)和输入输出控制(IOCTL) 23

2.2.4适配器模式 24

2.2.5开始设计其他接口 26

2.2.6例子:一个日志接口 27

2.3一个可以实践的沙盒 33

2.4延伸阅读 37

第3章检视硬件 39

3.1硬件/软件集成 39

3.1.1理想的项目流程 40

3.1.2电路板调试 41

3.2阅读数据表 42

3.2.1遇到问题时需要查找的数据表部分 44

3.2.2对软件开发者比较重要的内容 46

3.2.3用数据表评估元器件 48

3.3处理器是一门语言 51

3.4阅读原理图 53

3.5调试工具箱(和灭火器) 56

3.5.1保管好电路板 56

3.5.2工具箱 57

3.5.3数字万用表 58

3.5.4示波器和逻辑分析仪 58

3.6测试硬件(和软件) 61

3.6.1构建测试 62

3.6.2闪存测试范例 63

3.6.3命令和响应 66

3.6.4命令模式 70

3.7处理错误 71

3.7.1一致的方法 72

3.7.2错误处理库 73

3.7.3调试时序错误 73

3.8延伸阅读 74

第4章输入、输出和定时器 76

4.1触发输出 76

4.1.1从寄存器开始 77

4.1.2将引脚设置为输出 78

4.1.3点亮LED 80

4.1.4 LED闪烁 81

4.1.5故障诊断 81

4.2将硬件和动作分离 82

4.2.1特定于电路板的头文件 83

4.2.2I/O处理代码 84

4.2.3主循环 86

4.2.4门面模式 86

4.3I/O中的输入 87

4.3.1按钮的简单接口 88

4.4瞬间按钮动作 90

4.4.1按钮按下时的中断 90

4.4.2配置中断 91

4.4.3去抖动开关 92

4.5运行时不确定性 94

4.5.1依赖注入 95

4.6使用定时器 96

4.6.1时间片 97

4.6.2数学计算 99

4.6.3定时器节拍之间的漫长等待 103

4.6.4使用定时器 104

4.7使用脉冲宽度调制 104

4.8产品发货 106

4.9延伸阅读 108

第5章任务管理 109

5.1调度和操作系统基础 109

5.1.1任务 109

5.1.2任务间通信 110

5.1.3避免竞争条件 110

5.1.4优先级倒置 112

5.2状态机 113

5.2.1状态机范例:信号灯控制器 114

5.2.2以状态为中心的状态机 114

5.2.3具有隐式迁移的以状态为中心的状态机 115

5.2.4以事件为中心的状态机 116

5.2.5状态模式 117

5.2.6表格驱动的状态机 118

5.2.7选择状态机的实现 120

5.3中断 120

5.3.1中断请求 121

5.3.2保存上下文 128

5.3.3从向量表中获得ISR 130

5.3.4调用ISR 132

5.3.5恢复上下文 134

5.3.6何时使用中断 135

5.4怎样不使用中断 135

5.4.1轮询 136

5.4.2系统节拍 136

5.4.3基于时间的事件 138

5.4.4一个极小型调度器 138

5.5监控程序(看门狗) 140

5.6延伸阅读 142

第6章外设通信 145

6.1应用广泛的外设 145

6.1.1外部存储器 145

6.1.2按钮和按键矩阵 146

6.1.3传感器 147

6.1.4执行器 150

6.1.5显示器 155

6.2种类繁多的通信方式 160

6.2.1串行通信 161

6.2.2并行 170

6.2.3以太网和WiFi 171

6.3将外设和通信结合 172

6.3.1数据处理 172

6.3.2增强通信的健壮性 182

6.3.3修改数据 185

6.3.4修改算法 187

6.4延伸阅读 188

第7章更新代码 191

7.1板载启动装载器 192

7.2构建自己的更新程序 193

7.2.1修改驻留的更新程序 194

7.3砖块装载器 195

7.3.1将装载器复制到内存 196

7.3.2运行装载器 198

7.3.3复制新代码到暂存空间 198

7.3.4危险时刻:擦除和编程 199

7.3.5重置到新代码 199

7.4安全 200

7.5链接器脚本 201

7.6总结 204

第8章事半功倍 206

8.1代码空间 207

8.1.1读映射文件(第1部分) 207

8.1.2简化的过程 210

8.1.3库 212

8.1.4函数和宏 212

8.1.5常量和字符串 214

8.2 RAM 214

8.2.1释放和分配 215

8.2.2读映射文件(第2部分) 216

8.2.3寄存器和局部变量 217

8.2.4函数链 219

8.2.5全局变量的优点和缺点 221

8.2.6内存覆盖 221

8.3速度 222

8.3.1程序性能分析 223

8.3.2优化 227

8.4总结 236

8.5延伸阅读 237

第9章数学运算 240

9.1区别快、慢运算 241

9.1.1求平均值 242

9.2使用已知的算法 245

9.3设计与修改算法 248

9.3.1多项式因式分解 248

9.3.2泰勒级数 248

9.3.3除以常数 250

9.3.4放大输入 251

9.3.5查找表 253

9.4伪浮点数 259

9.4.1有理数 260

9.4.2精度 261

9.4.3加法(和减法) 262

9.4.4乘法(和除法) 263

9.4.5决定误差 264

9.5延伸阅读 268

第10章降低功耗 270

10.1理解功耗 271

10.2离开房间的时候请关灯 273

10.2.1关掉外围设备 273

10.2.2关掉不用的I/O设备 274

10.2.3关掉处理器子系统 274

10.2.4降速节能 274

10.3让处理器休眠 276

10.3.1基于中断的代码流模型 277

10.3.2深度研究主循环 279

10.3.3处理器看门狗 280

10.3.4避免频繁唤醒 280

10.3.5处理器链 281

10.4延伸阅读 281