嵌入式系统设计与实践
《嵌入式系统设计与实践》
基本信息
原书名:Making Embedded Systems
作者: (美)Elecia White
译者: 余水清
丛书名: O’Reilly精品图书系列
出版社:机械工业出版社
ISBN:9787111415848
上架时间:2013-5-27
出版日期:2013 年5月
开本:16开
页码:1
版次:1-1
所属分类:计算机
更多关于 》》》《嵌入式系统设计与实践》
目录
《嵌入式系统设计与实践》
前言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 点亮led80
4.1.4 led闪烁81
4.1.5 故障诊断81
4.2 将硬件和动作分离82
4.2.1 特定于电路板的头文件83
4.2.2 i/o处理代码84
4.2.3 主循环86
4.2.4 门面模式86
4.3 i/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 从向量表中获得isr130
5.3.4 调用isr132
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 以太网和wifi171
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 ram214
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
求平均值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
版权声明:本文为china-pub原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。