目 录 2
第1章 引 论 2
1.1 现实生活中的嵌入式系统实例 2
1.1.1 家庭环境中的嵌入式系统 2
1.1.2工作环境中的嵌入式系统 3
1.1.3娱乐活动中的嵌入式系统 3
1.1.4定义嵌入式系统 5
1.1.5嵌入式处理器和应用意识 5
1.1.6硬件和软件协同设计模型 7
1.1.7交叉平台开发 7
1.1.8软件存储和升级性 8
1.2实时嵌入式系统 9
1.2.1 实时系统 10
1.2.2实时系统的特性 12
1.2.3硬和软实时系统 13
1.3嵌入式系统的未来 15
1.4记住的要点 15
第2章 开发嵌入式系统的基础 16
2.1 引 言 16
2.2链接器和链接过程概貌 17
2.3可执行和链接格式 20
2.4 可执行映像映射到目标机嵌入式系统 23
2.4.1 链接器命令文件 24
2.4.2 映射可执行映像 27
2.4.3 实践中的例子 28
2.5 记住的要点 30
第3章嵌入式系统初始化 31
3.1 引 言 31
3.2 目标机系统工具和映像传输 32
3.2.1 嵌入式装载器 33
3.2.2 嵌入式监视器 34
3.2.3 目标机调试代理 35
3.3 目标机自举案况 35
3.3.1 数据用RAM从ROM执行 37
3.3.2 映像从ROM传输后从RAM上执行 39
3.3.3 从宿主机传输映像后从RAM上执行 40
3.4 目标机系统软件初始化顺序 42
3.4.1 硬件初始化 43
3.4.2 RTOS初始化 44
3.4.3 应用软件初始化 45
3.5片上调试 45
3.6记住的要点 46
4.1 引 言 47
第4章 实时操作系统介绍 47
4.2 操作系统的简要历史 48
4.3 定义 RTOS 49
4.4 调度器 50
4.4.1 可调度实体 50
4.4.2 多任务 51
4.4.3 上下文切换 51
4.4.4 分发器 52
4.4.5 调度算法 52
4.5 对 象 54
4.6 服 务 54
4.7 RTOS的关键特性 55
4.7.1 可靠性 55
4.7.4 紧凑性 56
11.5.1 可能的处理延迟 1 56
4.7.3 性 能 56
4.7.2 可预测性 56
4.7.5 可剪裁性 57
4.8 记住的要点 57
第5章任 务 58
5.1 引 言 58
5.2 定义一个任务 59
5.3 任务状态和调度 60
5.3.1 就绪状态 62
5.3.2 运行状态 64
5.3.3 阻塞状态 64
5.4 典型的任务操作 65
5.4.1 任务创立和删除 65
5.4.2 任务调度 66
5.4.3 获得任务信息 68
5.5 典型的任务结构 68
5.5.1 运行到完成的任务 68
5.5.2 无限循环任务 69
5.6 同步、通信和并发 69
5.7 记住的要点 70
6.1 引 言 71
6.2 定义信号灯 71
第6章信号灯 71
6.2.1 二值信号灯 72
6.2.2 计数信号灯 73
6.2.3 互相排斥(互斥)信号灯 74
6.3 典型的信号灯操作 76
6.3.1 创立和删除信号灯 76
6.3.2 获取和释放信号灯 77
6.3.3 清除信号灯的任务等待列表 78
6.3.4 获取信号灯信息 78
6.4 典型的信号灯使用 79
6.4.1 等待和信号同步 79
6.4.2 多任务等待和信号同步 80
6.4.3 信用跟踪同步 81
6.4.4 单一共享资源访问同步 82
6.4.5 递归共享资源访问同步 84
6.4.6 多个共享资源访问同步 85
6.5 记住的要点 87
第7章消息队列 88
7.1 引 言 88
7.2 定义消息队列 89
7.3 消息队列状态 90
7.4 消息队列内容 91
14.3.1 并发单元 1 92
7.5 消息队列存储 92
7.5.1 系统池 92
7.5.2 私有缓冲区 92
7.6 典型的消息队列操作 92
7.6.1 创立和删除消息队列 92
7.6.2 发送和接收消息 93
7.6.3 获得消息队列信息 96
7.7 典型的消息队列使用 96
7.7.1 非互锁的单向数据通信 96
7.7.2 互锁的单向数据通信 97
7.7.3 互锁的双向数据通信 99
7.7.4 广播通信 100
7.8 记住的要点 101
第8章其他内核对象 102
8.1 引 言 102
8.2 管道 102
8.2.1 管道控制块 103
8.2.2 管道状态 104
8.2.3 命名和无名管道 105
8.2.4 典型的管道操作 105
8.3 事件寄存器 108
8.2.5 典型的管道使用 108
8.3.1 事件寄存器控制块 109
8.3.2 典型的事件寄存器操作 110
8.3.3 典型的事件寄存器使用 111
8.4 信号 112
8.4.1 信号控制块 113
8.4.2 典型的信号操作 114
8.4.3 典型的信号用法 115
8.5 条件变量 116
8.5.1 条件变量控制块 117
8.5.2 典型的条件变量操作 118
8.5.3 条件变量的典型使用 118
8.6 记住的要点 120
第9章其他RTOS服务 121
9.1 引 言 121
9.2 其他建造块 122
9.2.1 TCP/IP协议栈 123
9.2.2 文件系统部件 123
9.2.3 远程过程调用部件 124
9.2.4 命令壳 125
9.2.6 其他部件 126
9.2.5 目标机调试代理器 126
9.3 部件配置 127
9.4 记住的要点 128
第10章异常和中断 129
10.1 引 言 129
10.2 什么是异常和中断 130
10.3 异常和中断的应用 131
10.3.1 内部错误和特殊条件的管理 131
10.3.2 硬件并发与服务请求管理 132
10.4 近距离看异常和中断 132
10.4.1 可编程中断控制器和外部中断 132
10.4.2 一般异常的分类 134
10.4.3 一般异常的优先权 135
10.5 处理一般的异常 136
10.5.2 保存处理器状态 137
10.5.1 安装异常处理程序 137
10.5.3 装入和调用异常处理程序 139
10.5.4 嵌套异常和栈溢出 140
10.5.5 异常处理程序 142
10.6 虚假中断的特性 147
10.7 记住的要点 148
第11章计时器和计时器服务 149
11.1 引 言 149
11.2 实时时钟与系统时钟 150
11.3可编程间隔计时器 151
11.4 计时器中断服务例程 152
11.5 实现软计时器功能的模型 154
11.5.2 实现考虑 157
11.6时间车轮 158
11.6.1 议题 160
11.6.2 分层的时间车轮 161
11.7 软计时器和与软计时器相关的操作 163
11.8 记住的要点 165
第12章I/O子系统 166
12.1 引 言 166
12.2 基本I/O概念 167
12.2.1 端口映射与内存映射I/O和DMA 167
12.2.2 字符模式与块模式设备 170
12.3 I/O子系统介绍 171
12.3.1 标准I/O函数 172
12.3.2 映射通用函数到驱动程序函数 173
12.3.3 设备与设备驱动程序的关联 175
12.4 记住的要点 176
第13章 内存管理 177
13.1 引 言 177
13.2 嵌入式系统中的动态内存分配 178
13.2.1 内存碎片和紧凑 178
13.2.2 malloc和free的一个例子 180
13.2.3 快速发现空闲块 182
13.2.4 free操作 183
13.3 嵌入式系统中固定尺寸的内存管理 185
13.4 阻塞与非阻塞的内存函数 186
13.6 记住的要点 188
13.5 硬件内存管理单元 188
第14章 用并发将应用模块化 189
14.1 引 言 189
14.2 由表及里分解应用的方法 190
14.3 标识并发的指导原则和建议 192
14.3.2 伪与真并发执行 193
14.3.3 某些指导原则 194
14.4 可调度性分析和速率单调性分析 200
14.4.1 基本RMA 调度性测试 200
14.4.2 扩展的RMA 可调度性测试 201
15.1 引 言 204
15.2 同 步 204
第15章 同步和通信 204
15.2.1 资源同步 205
15.2.2 活动同步 206
15.2.3 屏障的实现 208
15.3 通 信 209
15.4 资源同步方法 211
15.4.1 中断锁 211
15.4.2 抢占锁 211
15.5 关键段落的重访问 212
15.6 普遍的实践设计模式 213
15.6.1 同步活动的同步 213
15.6.2 使用信号进行异步事件通告 216
15.6.3 资源同步 216
15.7 特殊解决方案的设计模式 218
15.7.1 带流程控制的数据传输 218
15.7.2 来自于多个数据通信信道的异步数据接收 219
15.7.3 多个输入通信信道 221
15.7.4 使用条件变量同步读者和写者 223
15.7.5 在任务之间发送高优先权数据 225
15.7.6 用条件变量实现读者-写者锁 226
15.8 记住的要点 228
第16章普遍的设计问题 229
16.1 引 言 229
16.2 资源分类 230
16.3 死锁 230
16.3.1 资源请求模型 232
16.3.2 死锁检测 233
16.3.3 死锁恢复 238
16.3.4 死锁避免 240
16.3.5 死锁预防 241
16.4 优先权倒置 242
16.4.1 优先权继承协议 244
16.4.2 天花板优先权协议 246
16.4.3 优先权天花板协议 247
16.5 记住的要点 248
14.5 记住的要点 903