
出版社: 电子工业
原售价: 69.90
折扣价: 63.84
折扣购买: 嵌入式系统设计与开发——基于ARM Cortex-A9和Linux
ISBN: 9787121488245
刘敬猛,副教授,检测技术与装置专业硕士生导师,2006年3月北航机器人研究所博士后出站留校工作,专业特长和兴趣为:机器人的智能检测和智能运动控制、机器人视觉、自主移动机器人、计算机测控、复杂信息采集和处理、嵌入式技术开发、微操作和微驱动、机器人控制系统设计、网络化交流伺服系统设计等。承担过多项纵向和横向科研项目。作为项目负责人主持过国家自然科学基金2项、主持航空科学基金1项、863计划子项目2项。发表论文80余篇,其中SCI论文22篇,他引150次。申请发明专利2项,授权2项。
书籍目录
目 录
第1章 嵌入式系统概述 1
1.1 什么是嵌入式系统 1
1.2 嵌入式系统体系结构与组成 1
1.3 嵌入式系统应用及技术特点 3
1.3.1 无所不在的嵌入式应用 3
1.3.2 嵌入式系统的技术特点 3
1.4 发展趋势 5
1.5 嵌入式系统知识体系小结 7
第2章 嵌入式处理器及ARM微处理器体系结构 8
2.1 以处理器为核心的嵌入式系统硬件架构 8
2.2 ARM体系结构的技术特征及发展 9
2.2.1 ARM公司简介 9
2.2.2 ARM技术特征 10
2.2.3 ARM体系架构的发展 11
2.3 ARM微处理器 13
2.3.1 ARM微处理器简介 13
2.3.2 ARM微处理器现状、趋势与架构 17
2.3.3 ARM微处理器的应用选型 18
2.3.4 Cortex-A9内部功能及特点 20
2.3.5 Cortex-A9内核工作模式 21
2.3.6 Cortex-A9存储系统 22
2.4 模型计算机及流水线 24
2.4.1 模型计算机原理 24
2.4.2 流水线的概念与原理 29
2.4.3 流水线的分类 29
2.4.4 影响流水线性能的因素 31
2.5 寄存器组织、程序状态寄存器和ARM数据类型 31
2.5.1 寄存器组织 31
2.5.2 程序状态寄存器 33
2.5.3 ARM数据类型 35
2.6 i.MX 6Solo/6Dual嵌入式教学科研平台介绍 37
2.6.1 i.MX 6Solo/6Dual处理器介绍 37
2.6.2 i.MX 6Solo/6Dual嵌入式教学科研平台概述 39
2.6.3 平台资源 40
2.6.4 平台硬件接口 44
2.6.5 平台启动运行 45
习题 45
第3章 ARM微处理器指令系统和程序设计 46
3.1 ARM微处理器的指令系统 46
3.1.1 ARM指令系统概述 46
3.1.2 ARM指令集 50
3.1.3 Thumb指令集 65
3.2 ARM微处理器编程简介 66
3.2.1 ARM汇编语言的文件格式 66
3.2.2 ARM汇编语言的语句格式 66
3.2.3 C语言与汇编语言的混合编程 68
3.3 ARM微处理器初始化分析 73
3.3.1 嵌入式系统初始化流程 73
3.3.2 ARM嵌入式处理器的初始化分析 76
习题 79
第4章 ARM微处理器存储系统 81
4.1 基本存储体系与模型 81
4.1.1 嵌入式系统存储系统 81
4.1.2 存储器结构模型 82
4.1.3 存储器基本操作流程 83
4.1.4 存储器技术指标 84
4.2 存储器分类及特性 85
4.2.1 随机访问存储器 86
4.2.2 只读存储器 98
4.2.3 混合存储器 103
4.3 ARM存储系统 114
4.3.1 存储器管理单元 115
4.3.2 高速缓冲存储器(Cache)和写缓冲区 127
4.4 ARM i.MX 6Solo/6Dual存储系统的实例 131
习题 134
第5章 中断及中断处理 135
5.1 中断响应及优先级 135
5.1.1 中断的概念 135
5.1.2 CPU对中断的响应 136
5.1.3 中断优先级 137
5.2 ARM的通用中断控制器 139
5.2.1 GIC逻辑分区 139
5.2.2 GIC中断控制器中断状态和中断处理流程 142
5.3 GIC寄存器及应用举例 143
5.3.1 GIC常用寄存器 143
5.3.2 GIC应用举例 145
5.4 ARM中的异常中断处理概述 147
5.4.1 ARM体系中的异常中断种类 147
5.4.2 异常中断向量表及异常中断优先级 147
5.4.3 异常中断使用的寄存器 148
5.5 进入和退出异常中断的过程 149
5.5.1 ARM微处理器对异常中断的响应过程 149
5.5.2 从异常中断处理程序中返回 151
5.6 在应用程序中安排异常中断处理程序 154
5.6.1 在系统复位时安排异常中断处理程序 154
5.6.2 在C程序中安排异常中断处理程序 155
5.7 SWI异常、FIQ和IRQ异常中断处理程序 156
5.7.1 SWI异常中断处理程序的实现 156
5.7.2 SWI异常中断调用 160
5.7.3 IRQ/FIQ异常中断处理程序 164
5.7.4 IRQ异常中断处理程序举例 167
5.7.5 其他异常程序 168
第6章 最小系统外围电路设计 170
6.1 电源电路 170
6.1.1 电源电路设计方法 170
6.1.2 电源管理与低功耗设计 173
6.2 复位电路 177
6.2.1 上电复位 178
6.2.2 手动复位 182
6.2.3 看门狗复位 184
6.2.4 软件复位 185
6.3 时钟电路 186
6.3.1 信号源 186
6.3.2 多时钟管理 191
6.4 电路抖动与消抖 196
6.4.1 抖动现象与危害 196
6.4.2 优化硬件消除抖动 197
6.4.3 软件消抖方式 199
6.5 最小系统举例 201
习题 207
第7章 GPIO口与串行总线 208
7.1 GPIO与IOMUXC 208
7.1.1 GPIO 208
7.1.2 IOMUXC 210
7.2 UART 216
7.2.1 UART简介 216
7.2.2 UART特征 217
7.2.3 UART的数据收发和帧结构 219
7.2.4 UART波特率设置 220
第8章 嵌入式Linux操作系统 225
8.1 嵌入式Linux简介 225
8.2 内存管理 226
8.2.1 内存管理和MMU简介 226
8.2.2 标准Linux的内存管理 226
8.2.3 μCLinux的内存管理 228
8.3 进程管理 229
8.3.1 进程和进程管理简介 229
8.3.2 RT-Linux的进程管理 230
8.3.3 标准Linux的进程管理 231
8.3.4 μCLinux的进程管理 232
8.4 线程 233
8.4.1 线程概述 233
8.4.2 线程管理 234
8.4.3 线程通信 234
8.4.4 线程同步 235
8.5 文件系统 238
8.5.1 文件系统定义 238
8.5.2 Linux文件系统 238
8.5.3 嵌入式Linux文件系统 240
8.6 多线程应用程序设计实验 243
8.6.1 实验内容 243
8.6.2 多线程程序分析与实验 245
8.7 串行端口程序设计实验 249
8.7.1 实验准备 249
8.7.2 串行端口程序分析 249
第9章 设备驱动 255
9.1 Linux驱动程序简介 255
9.1.1 设备的分类 256
9.1.2 设备文件 256
9.1.3 主设备号和次设备号 256
9.1.4 Linux设备驱动程序的分布 256
9.1.5 Linux设备驱动程序的特点 257
9.2 设备驱动程序结构 257
9.2.1 驱动程序的注册与注销 258
9.2.2 设备的打开与释放 258
9.2.3 设备的读/写操作 259
9.2.4 设备的控制操作 259
9.2.5 设备的轮询和中断处理 259
9.3 Linux内核设备模型 261
9.3.1 设备模型建立的目的 261
9.3.2 sysfs设备拓扑结构的文件系统表现 261
9.3.3 驱动模型和sysfs 262
9.3.4 kobject 263
9.4 Linux字符设备驱动分析 265
9.4.1 字符设备驱动的结构 266
9.4.2 使用cdev开发字符设备驱动 266
9.4.3 platform总线与设备树 268
9.5 Linux字符设备驱动实验 274
9.5.1 需求说明 274
9.5.2 硬件电路 275
9.5.3 LED驱动程序 275
9.5.4 按键驱动程序 281
9.5.5 按键、指示灯应用程序 287
9.5.6 模块的加载实验 289
第10章 ARM-Linux软件开发基础 291
10.1 ARM-Linux软件开发流程 291
10.2 嵌入式系统开发模式 292
10.3 开发环境的搭建 294
10.3.1 宿主机端软件的安装 294
10.3.2 目标机端软件的安装 296
10.4 Makefile 298
10.4.1 Makefile的规则 299
10.4.2 Makefile的文件名 301
10.4.3 引用其他的Makefile 301
10.4.4 使用变量 302
10.4.5 伪目标 303
10.4.6 Makefile的一个例子 303
10.5 U-Boot 304
10.5.1 BootLoader基础 304
10.5.2 U-Boot代码结构 307
10.5.3 U-Boot代码分析 308
第11章 Qt编程及嵌入式Qt开发 313
11.1 Qt编程基础 313
11.1.1 Qt简介及其开发套件 313
11.1.2 Qt的基本数据类型 313
11.1.3 字符串(QString) 314
11.2 图形界面设计 317
11.2.1 Qt的窗口类Widget 317
11.2.2 可视化窗口界面设计 317
11.2.3 Qt中常用的控件 320
11.3 信号和槽机制 324
11.3.1 基本概念 324
11.3.2 信号和槽机制的原理 327
11.3.3 信号和槽示例 328
11.3.4 信号和槽小结 330
11.4 Qt程序综合实验—电子钟设计 331
11.4.1 需求说明 331
11.4.2 界面设计 331
11.4.3 功能实现 332
11.5 Qt开发环境的搭建 342
11.5.1 设置交叉编译环境 342
11.5.2 安装Qt Creator 345
习题 348
参考文献 349