内容简介
第1章 嵌入式系统简介
1.1嵌入式系统
1.1.1系统
1.1.2嵌入式系统
1.1.3嵌入式系统和通用计算系统
1.2嵌入系统中的处理器
1.2.1微处理器
1.2.2微控制器
1.2.3 ARM
1.2.4 RISC
1.2.5 CISC
1.2.6 SoC
1.2.7数字信号处理器(DSP)
1.2.8专用处理器
1.3系统中的嵌入式硬件单元和设备
1.3.1构建块
1.3.2嵌入板
1.4嵌入式系统中的软件和编程语言概述
1.4.1嵌入式软件ROM映像
1.4.2用机器码编写软件
1.4.3用特定于处理器的汇编语言编写软件
1.4.4用高级语言编写软件
1.5嵌入式系统的设计过程
1.6嵌入式系统的体系结构
1.7嵌入式系统的模型
1.8嵌入式系统的分类
1.9嵌入式系统设计者需要具备的技能
1.10示例嵌入式系统
本章小结
关键词及其定义
复习题
实践练习题
第2章 嵌入式系统的设计和开发过程
2.1嵌入式片上系统(SoC)和VLSI电路设计技术
2.1.1SoC
2.1.2 VLSI电路设计技术
2.1.3 SoC或VLSI设计中使用的ASIC
2.1.4 IP核
2.1.5多个处理器
2.2复杂系统设计和处理器
2.2.1复杂系统和微处理器
2.2.2使用嵌入式处理器构建复杂系统
2.3嵌入式系统的构建过程
2.4嵌入式系统的设计过程
2.4.1设计过程中使用的概念
2.4.2软件设计过程
2.4.3设计指标
2.4.4设计过程中的抽象步骤
2.5嵌入式系统设计中的挑战
2.6嵌入式系统设计中的挑战:优化设计指标
2.7嵌入式软件开发的挑战和问题
2.8嵌入式系统中软硬件的协同设计
2.8.1软硬件的权衡
2.8.2嵌入式系统中软硬件协同设计的挑战:优化设计指标
2.9嵌入式系统的设计技术
2.9.1 IC技术
2.9.2 VLSI技术
2.10系统设计的形式化
2.11设计过程和设计案例
2.11.1巧克力自动售卖机(ACVM)
2.11.2智能卡
2.11.3数码相机
本章小结
关键词及其定义
复习题
实践练习题
第3章8051、AVR和ARM微控制器、现实中的接口和I/O总线
3.1微控制器和微处理器简介
3.2嵌入式和外部存储器设备
3.3微控制器-8051的体系结构
3.3.1 8051微控制器的硬件体系结构
3.3.2 ATMEL 89x51系列微控制器硬件体系结构
3.3.3 ATMEL 90Sxx系列
3.3.4指令集
3.3.5 IO端口、电路以及IO编程
3.3.6外部存储器接口电路
3.3.7计数器和定时器
3.3.8串行数据通信输入/输出
3.3.9 8051中的中断
3.4 ATMEL AVR微控制器
3.5 ARM微控制器
3.6计算机系统总线
3.6.1 CPU/微处理器系统总线
3.6.2存储器设备接口
3.7现实的接口
3.7.1现实接口电路中的设备地址
3.7.2 I/O设备和组件的连接
3.7.3 I/O:管理数据
3.7.4串行和并行I/O
3.7.5设备中断和IO
3.8 I/O性能
3.9 I/O总线
3.9.1总线仲裁
3.9.2菊花链方式
3.9.3独立总线请求方式
3.9.4总线轮询方式
3.10面向网络的总线仲裁
3.11总线
3.11.1体系结构:单层、双层和多层
3.11.2仲裁:集中式和分布式
3.11.3定时
3.11.4总线性能
3.12多级总线
本章小结
关键词及其定义
复习题
实践练习题
第4章 高级体系结构和处理器-存储器的组织
4.1处理器和存储器组织
4.1.1 Harvard存储器体系结构
4.1.2 Von Neumann(Princeton)存储器体系结构
4.1.3 Harvard体系结构的存储器接口电路
4.1.4通用存储器接口电路
4.2高级处理器体系结构介绍
4.2.1处理器中的结构单元
4.2.2高级处理器体系结构
4.3处理器的组织
4.3.1处理器组织方式:处理器的CISC设计
4.3.2处理器组织方式:处理器的RISC设计
4.4指令级并行性
4.5 INTEL x86体系结构(8086、80386、 80486和奔腾)
4.5.1 80386的体系结构
4.5.2 80486的体系结构
4.5.3奔腾P5(80586)和P6的体系结构
4.6 ARM
4.7 SHARC
4.8存储器类型和地址
4.8.1合并存储器
4.8.2嵌入式存储器
4.8.3 ROM变种
4.8.4 RAM、SRAM和DRAM
4.8.5闪存
4.8.6闪存卡
4.9存储器地址
4.9.1将内存分配给程序段和块
4.9.2存储器映射
4.10存储器层次结构和缓存
4.11性能指标
4.11.1处理器的性能
4.11.2存储器的性能
4.11.3嵌入式系统的性能
4.12处理器和存储器设备的选择
4.12.1处理器的选择
4.12.2处理器或微控制器版本的选择
4.12.3微控制器版本的选择
本章小结
关键词及其定义
复习题
实践练习题
第5章 IO设备、通信总线和分布式联网的嵌入式体系结构
5.1 I/O的类型和示例
5.1.1同步串行输入
5.1.2.同步串行输出
5.1.3同步串行输入/输出
5.1.4异步串行输入
5.1.5异步串行输出
5.1.6半双工与全双工
5.1.7串行I/O示例
5.1.8并口
5.1.9串并输出和输入
5.1.10并行IO的示例
5.2串行通信设备
5.2.1串行设备的同步、准同步和异步通信
5.2.2 UART模式(协议)异步串行通信
5.2.3 IBM PC COM端口上的串行RS232C通信
5.2.4 HDLC协议
5.2.5同步串行数据通信的SPI端口
5.2.6 异步UART串行数据通信的SCI端口
5.2.7同步和异步串行数据通信的串行接口(SI)
5.2.8 SDIO、SPI1-SD和4-SD数据通信
5.3并行设备端口
5.3.1与开关和小键盘连接的并行端口
5.3.2与编码器连接的并行端口
5.3.3与步进电机连接的并行端口
5.3.4与LCD控制器连接的并行端口
5.3.5与触摸屏连接的并行端口
5.4设备端口的复杂接口特性
5.5无线设备
5.6定时器和计数设备
5.6.1定时设备
5.6.2计数设备
5.6.3带计数设备的定时器
5.6.4两个实例之间的时间间隔
5.6.5预设时间的输出动作
5.6.6软件定时器
5.6.7 watchdog定时器
5.6.8实时时钟
5.7分布式网络嵌入式系统结构
5.7.1总线的优点
5.7.2总线的缺点
5.8串行总线通信协议
5.8.1 12C总线
5.8.2 CAN总线
5.8.3 USB总线
5.8.4 FireWire——IEEE 1394总线标准
5.8.5先进的串行高速总线
5.9并行总线设备协议——使用ISA、 PCI、 PCI-X和高级总线的并行通信网络
5.9.1 ISA和EISA总线
5.9.2 PCI和PCI/X总线
5.9.3 ARM总线
5.9.4高级并行高速总线
5.10支持Intemet的系统——网络协议
5.10.1超文本传输协议(HTTP)
5.10.2传输控制协议(TCP)
5.10.3用户数据报协议(UDP)
5.10.4 Internet协议(IP)
5.10.5 Ethernet(以太网)
5.11无线和移动系统协议
5.11.1红外数据协会(IrDA)
5.11.2蓝牙
5.11.3 802.11.
5.11.4 ZigBee
本章小结
关键词及其定义
复习题
实践练习题
第6章 设备驱动程序和中断服务机制
6.1不使用中断服务机制的编程式I/O的设备访问端口
6.1.1 Intel I/O结构
6.1.2同步
6.1.3传输率
6.1.4延迟
6.2中断驱动的输入输出
6.3 ISR的概念
6.4中断源
6.5硬件中断
6.6软件中断
6.6.1异常和异常处理程序
6.6.2信号和信号处理程序
6.7中断服务机制
6.7.1阻止中断的溢出
6.7.2禁用中断
6.7.3不可屏蔽的中断和可屏蔽的中断
6.7.4中断状态寄存器或中断挂起寄存器
6.7.5中断向量
6.8多中断
6.8.1多中断调用
6.8.2硬件分配的优先级
6.8.3软件重写硬件优先级,以满足服务的最后期限
6.8.4启用和禁用中断,重写硬件优先级,以满足服务的最后期限
6.9中断服务线程作为二级中断处理程序
6.10上下文和上下文切换周期
6.11中断延迟
6.12中断服务的最终期限
6.13从上下文保存的角度对处理器中断服务机制的分类
6.14直接存储器访问驱动的I/O
6.14.1 DMA
6.14.2同一中断源生成多个快速连续中断时的DMA通道使用
6.14.3 DMA控制器
6.15 设备驱动程序编程
6.15.1编写系统中的物理设备驱动ISR
6.15.2操作系统中的设备驱动程序组件
6.15.3用系统软件函数模拟物理设备
6.15.4作为设备驱动和网络函数的Linux内幕
本章小结
关键词及其定义
复习题
实践练习题
第7章 编程概念及C、 C+和Java的嵌入式编程
7.1用汇编语言(ALP)和高级语言C进行软件编程
7.1.1汇编语言编程
7.1.2高级语言编程
7.2 C程序中的元素:头文件、源文件以及预处理指令
7.2.1用于包含文件的include指令
7.2.2源文件
7.2.3配置文件
7.2.4预处理指令
7.3程序元素:宏与函数
7.4程序元素:数据类型、数据结构、修饰符、语句、循环和指针
7.4.1数据类型
7.4.2修饰符的使用
7.4.3指针和NULL指针
7.4.4使用数据结构:堆栈、队列、数组、链表、树、管道、表格和哈希表
7.4.5堆栈
7.4.6多个堆栈
7.4.7数组
7.4.8队列
7.4.9链表
7.4.10循环队列
7.4.11优先队列
7.4.12管道
7.4.13表和哈希表
7.5循环、无限循环以及条件语句
7.6函数调用
7.7按照循环顺序进行的多函数调用
7.8函数指针和函数队列
7.9发生中断时函数的排列和中断服务例程队列
7.10嵌入式C和C++:其他功能
7.10.1编译器和优化
7.10.2编程和汇编
7.10.3寄存器的使用约定
7.10.4寻址选项和指令序列的典型用法
7.10.5过程调用和返回
7.10.6参数的传递
7.10.7检索参数
7.10.8按值传递的临时变量
7.11面向对象编程
7.12 C++嵌入式编程
7.12.1 C+++的优点
7.12.2 C+++的缺点
7.13嵌入式C++程序的代码优化以消除缺点
7.14用Java进行嵌入式编程
7.14.1 Java编程基础
7.14.2使用Java编程的优点
7.14.3 Java的缺点
本章小结
关键词及其定义
复习题
实践练习题
第8章 程序建模的概念
8.1程序模型
8.2基于数据流图的程序模型
8.2.1数据流图
8.2.2控制数据流图模型
8.2.3同步数据流图(SDFG)模型
8.3用于事件控制程序的状态机编程模型
8.3.1状态机编程模型
8.3.2有限状态机(FSM)模型
8.3.3 FSM状态表
8.4多处理器系统的建模
8.4.1多处理器系统
8.4.2图在多处理器系统中的应用:划分和调度
8.5 UML建模
本章小结
关键词及其定义
复习题
实践练习题
第9章 实时操作系统Ⅰ:进程间通信与进程、任务和线程的同步
9.1应用程序中的多个进程
9.1.1进程
9.1.2进程控制块(PCB)
9.1.3进程上下文
9.2应用程序中的多线程
9.2.1进程的多个线程
9.2.2多线程的编程
9.2.3抢占式和非抢占式
9.3任务
9.4任务和线程状态
9.4.1调度线程和线程状态
9.4.2挂起的线程
9.4.3上下文切换
9.5任务和数据
9.5.1上下文
9.5.2上下文切换
9.5.3任务控制块
9.5.4无限事件等待循环的任务编码
9.6通过函数、ISR、IST和任务的特征进行区分
9.7进程间通信和同步
9.8信号函数
9.9信号量的概念
9.9.1 OS的信号量IPC函数
9.9.2作为事件信号变量或通报变量的信号量的使用
9.9.3作为资源键的信号量以及信号量在临界段中的使用
9.9.4使用多个信号量同步任务
9.9.5多个任务等待同一信号量
9.9.6计数信号量
9.9.7 P和V信号量
9.10禁用和启用函数
9.10.1禁用和启用中断
9.10.2锁定和解锁函数
9.11共享数据问题
9.11.1多任务和多中断服务例程的数据共享问题
9.11.2共享数据问题的解决方法
9.11.3优先级反转问题和优先级继承
9.11.4死锁情况
9.12队列和邮箱
9.12.1队列
9.12.2邮箱
9.13管道和套接字
9.13.1管道
9.13.2套接字
9.14远程过程调用(RPC)函数
本章小结
关键词及其定义
复习题
实践练习题
第10章 实时操作系统Ⅱ:OS和RTOS的基本功能
10.1 OS服务
10.1.1 Os服务目标
10.1.2用户和管态结构
10.1.3结构
10.1.4内核
10.2进程管理
10.3定时器函数
10.4事件函数
10.5存储器管理
10.6设备、文件及IO子系统管理
10.6.1设备管理
10.6.2文件系统的组织和实现
10.6.3 I/O子系统
10.7 RTOS环境中的中断例程和中断源调用处理
10.7.1通过中断源以及ISR发送ISR输入消息直接调用ISR
10.7.2 RTOS首先响应中断,接着Os调用相应的ISR
10.7.3 RTOS首先响应中断,调用对应的ISR,之后ISR把消息发送给中断服务线程
10.7.4通过ISR接收IPC事件
10.8实时操作系统
10.9使用RTOS进行基本设计
10.9.1 RTOS基本设计原则:15个设计策略
10.9.2节约存储器和功耗
10.10 RTOS任务调度模型
10.11操作系统的安全问题
10.12 OS标准:POSIX
10.12.1 IEEE标准POSIX 1003.1b的RTOS标准化和进程间通信函数
10.12.2 IEEE标准POSIX 1003.1b的 IO函数
10.12.3 IEEE标准POSIX 1003.1b的文件函数
10.13作为性能指标的中断延迟和任务响应时间
10.13.1周期、突发以及非周期任务的调度模型中延迟和最后期限的性能指标
10.13.2使用CPU负载作为性能指标
10.13.3突发任务模型作为性能指标
10.14 OS性能准则
10.15中间件:含义和示例
10.16应用层软件:含义和例子
本章小结
关键词及其定义
复习题
实践练习题
第11章 实时操作系统编程:MicroC/OS-Ⅱ和VxWorks
11.1 RTOS
11.1.1 RTOS中的基本函数
11.1.2当前的实时操作系统
11.1.3 RTOS的类型
11.1.4实时系统的基准简介
11.2 μC/OS-Ⅱ (MUCOS)
11.2.1系统级函数
11.2.2任务服务函数
11.2.3与存储器分配相关的函数
11.2.4信号量相关函数
11.2.5邮箱相关函数
11.2.6队列相关函数
11.3基于UNIX的实时操作系统
11.3.1 pSOS
11.3.2 VrTx
11.3.3 QNX RTOS
11.4 RTOS VxWorks
11.4.1基本特性
11.4.2系统库头文件中的任务管理库
11.4.3 VxWorks系统函数和系统任务
11.4.4 IPC函数
本章小结
关键词及其定义
复习题
实践练习题
第12章 实时Linux、 Windows CE、OSEK、手持设备和汽车操作系统
12.1 POSIX兼容操作系统
12.2实时Linux操作系统
12.2.1用于嵌入式系统的Linux——嵌入式Linux
12.2.2 RTLinux
12.3 Windows CE
12.3.1 Windows CE的特点
12.3.2 Windows CE编程
12.3.3窗口和窗口管理
12.3.4内存管理
12.3.5文件和注册表
12.3.6 Windows CE数据库
12.3.7进程、线程和IPC
12.3.8按键、触摸屏、鼠标的输入
12.3.9通信和网络
12.3.10设备间套接字通信函数
12.3.11创建窗口
12.3.12 Win32 API编程
12.3.13嵌入式系统的Windows 8和Windows Embedded Compact 2013
12.4 OSEK
本章小结
关键词及其定义
复习题
实践练习题
第13章RTOS编程和程序建模设计示例与案例研究
13.1嵌入式系统设计的案例研究以及使用MUCOS RTOS对巧克力自动售卖机(ACVM)编码
13.1.1需求
13.1.2规范
13.1.3使用UML为规范建模
13.1.4 ACVM的硬件体系结构
13.1.5软件体系结构
13.2数码相机的案例研究
13.2.1需求
13.2.2类图
13.2.3数码相机的硬件体系结构
13.2.4数码相机的软件体系结构
13.3给IP包应用通信网络路由器
13.3.1使用VxWorks将应用层字节流发送到TCP/IP网络的编码案例研究
13.3.2需求
13.3.3类图、类和对象
13.4管弦乐队机器人之间通信的案例研究
13.4.1需求
13.4.2类和类图
13.4.3状态图
13.4.4机器人管弦乐队MIDI通信的硬件和软件体系结构
13.5汽车中的嵌入式系统
13.6汽车中自适应巡航控制(ACC)系统的嵌入式系统案例研究
13.6.1需求
13.6.2类图
13.6.3 ACC硬件体系结构
13.6.4 ACC软件体系结构
13.6.5 ACC软件任务、同步模型和实现
13.7汽车中嵌入式编程的一般语言特征、MISRA-C的特征
13.8智能卡中的嵌入式系统案例研究
13.8.1需求
13.8.2类图
13.8.3硬件和软件体系结构
13.8.4同步模型
13.9移动电话键输入软件案例研究
13.9.1需求
13.9.2类和类图
13.9.3状态图
13.9.4 SMS按键硬件
本章小结
关键词及其定义
复习题
实践练习题
第14章 嵌入式软件开发过程和工具
14.1嵌入式软件开发过程和工具概述
14.1.1开发过程和软硬件
14.1.2软件工具
14.1.3源代码工程管理工具
14.1.4集成开发环境(IDE)
14.2宿主机和目标机
14.2.1宿主系统
14.2.2目标系统
14.3链接和定位软件
14.3.1文件、寻址和地址解决方法的区别
14.3.2 Motorola S-record和Intel Hex二进制映像格式的定位器输出文件
14.3.3用于定位器编码的存储器映射
14.4将嵌入式软件植入目标系统
14.4.1设备PROM或者闪存编程器
14.4.2设备编程器的编程方式
14.5 硬件/软件设计和协同设计中的问题
14.5.1选择合适的平台
14.5.2存储器敏感和处理器敏感软件
14.5.3存储器、程序段和设备地址分配
14.5.4嵌入式平台中Os的移植问题
14.6程序级别的性能分析和性能建模
14.6.1程序级别的性能分析和系统性能指标
14.6.2多处理器系统性能
14.6.3 MIP、MFLOP和DMIPS作为性能指标
14.7性能和性能加速器
本章小结
关键词及其定义
复习题
实践练习题
第15章 测试、模拟和调试技术与工具
15.1集成和测试嵌入式硬件
15.1.1测试嵌入式系统
15.1.2可测试性的设计
15.1.3断言宏
15.1.4自测的设计
15.1.5在宿主机上进行测试
15.2测试方法
15.2.1错误跟踪
15.2.2单元测试
15.2.3回归测试
15.2.4选择测试用例
15.2.5功能测试
15.2.6覆盖测试
15.2.7测试嵌入式软件
15.2.8性能测试
15.2.9维护
15.3调试技术
15.3.1模拟器
15.3.2模拟器的特性
15.3.3模拟器的局限性
15.3.4模拟工具软件
15.3.5嵌入式系统的原型开发、测试和调试工具
15.4试验工具和目标硬件的调试
15.4.1简单的伏特-欧姆表
15.4.2简单的LED测试和逻辑探测器
15.4.3示波器
15.4.4位率测量仪
15.4.5逻辑分析仪
15.4.6电路内置仿真器(ICE)
15.4.7监视器
本章小结
关键词及其定义
复习题
实践练习题
附录A大学生、研究生、专业培训学生的不同课程的学习路线图
附录B参考文献