- 商品参数
-
- 作者:
刘敬猛著|
刘敬猛编|
无译
- 出版社:电子工业出版社
- 出版时间:2024-10
- 页数:364页
- 开本:16开
- ISBN:9783184108333
- 版权提供:电子工业出版社
内容介绍
本书编写的出发点是希望融合经典教材的微机原理、接口技术和嵌入式 Linux,讲述 CPU、中断、*小系统、汇编语言程序设计、接口电路、中断、多线程、设备驱动以及 Linux 应用层编程技术。目的是培养学生嵌入式系统的概念,即硬件到软件以及底层到上层的设计思想。全书分 11 章,内容包括嵌入式系统概述、ARM 微处理器体系结构、ARM 微处理器指令系统、ARM的存储系统、中断及中断处理、*小系统外围电路设计、GPIO 口与串行总线、嵌入式Linux 操作系统、设备驱动、ARM-Linux 软件开发基础和Qt 编程。
目录
目 录
*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
作者介绍
刘敬猛,副教授,检测技术与装置专业硕士生导师,2006年3月北航机器人研究所博士后出站留校工作,专业特长和兴趣为:机器人的智能检测和智能运动控制、机器人视觉、自主移动机器人、计算机测控、复杂信息采集和处理、嵌入式技术开发、微操作和微驱动、机器人控制系统设计、网络化交流伺服系统设计等。承担过多项纵向和横向科研项目。作为项目负责人主持过国家自然科学基金2项、主持航空科学基金1项、863计划子项目2项。发表论文80余篇,其中SCI论文22篇,他引150次。申请发明专利2项,授权2项。
媒体评论
随着移动互联网、云计算、物联网和大数据等新兴产业的爆发式增长,电子信息产业的发展呈现出新的特点。嵌入式系统教材在突出“新”的同时,还要兼顾“系统”和“基础”。本书有以下特点。1.系统性强本书包括嵌入式系统的硬件、软件和操作系统。硬件包括CPU、存储器、中断、*小系统、接口电路;软件包括汇编语言、混合编程;操作系统包括Linux操作系统架构、多线程编程、驱动程序开发和应用程序设计。作者期望用有限的篇幅讲述嵌入式系统是如何构建和实现的。本书强调系统是电子信息产业发展的需要。无论是做硬件开发还是软件开发,也不管是桌面设备还是便携式设备,对系统的理解和把握是*备基础。况且,软硬件协同设计是嵌入式系统设计的必然趋势。和x86系统相比,嵌入式系统有平台依赖性,这是编著嵌入式系统书籍绕不过的一道坎。本书在处理这个问题时采用分层处理。任务调度、多线程编程、文件系统、Qt编程都是与平台无关的,但是,驱动程序是与平台相关的,总要找一个平台作为范本去讲解有关的原理和实现。2.处理器新本书处理器的选型定位在Cortex-A9的i.MX 6Solo/6Dual。这是*款32位的主流ARM芯片,是业界普遍使用的微控制器,不仅具有丰富的片上外设,而且拥有MMU,既可移植Linux操作系统,还能方便搭建应用系统。从微机原理角度看,CPU和存储器总线结构具有代表性。从接口技术角度讲,片上的以太网、GPIO、定时器、CAN总线、A/D转换器、I2C、SPI、UART、USB等外设,和传统的微机原理与接口技术有相似性。这是*款传统和现代相融合,突出系统移植和网络技术的同时,又兼顾经典电路的新处理器。3.注重基础书中使用较大的篇幅在讲模型计算机、流水线、存储器、*小系统。嵌入式系统从硬件角度看是复杂的时序电路,是数字电路的延续和发展。作者从内到外、从小到大把CPU扩充到整个嵌入式系统。模型计算机让读者在较短时间内建立计算机工作原理的概念,流水线是提高计算机运行效率的一种机制,存储器中的cache是为了提高访问速度。而*小系统是为了帮助读者建立*小计算机系统的概念,包括中断、定时器、GPIO,这些都是嵌入式系统的基础。4.理论联系实际计算机作为人造机器,具有鲜明的工程特征,适量的实验必不可少。本书设计了较为丰富的实验。实验依托的平台的制造商在业内享有盛誉,方便使用者配套实验。当然,本书的使用者也可以开发自己的i.MX 6Solo/6Dual平台完成本书相关实验。国内*一本《微型计算机原理与应用》诞生于20世纪80年代初,它是嵌入式系统的雏形。40年来,嵌入式系统不断发展变化,高校相应的教改和教材出版也一直没有停止。近5年来这本书的书稿一直作为我校研究生公共选修课“嵌入式系统实验”的教材在试用。由于本书内容较新,一定会有很多不足,还有很大的改进空间。本书作者大多是“嵌入式系统实验”教学团队成员,也是“微机原理与接口技术”这门课的核心骨干教师,他们对以微处理器为核心的计算机系统的理论课及实验课的教学有丰富的经验。我相信,本书的出版一定会对嵌入式系统的推广和应用发挥重要的促进作用。是为序。 于守谦
关联推荐
随着移动互联网、云计算、物联网和大数据等新兴产业的爆发式增长,电子信息产业的发展呈现出新的特点。嵌入式系统教材在突出“新”的同时,还要兼顾“系统”和“基础”。本书有以下特点。1.系统性强本书包括嵌入式系统的硬件、软件和操作系统。硬件包括CPU、存储器、中断、*小系统、接口电路;软件包括汇编语言、混合编程;操作系统包括Linux操作系统架构、多线程编程、驱动程序开发和应用程序设计。作者期望用有限的篇幅讲述嵌入式系统是如何构建和实现的。本书强调系统是电子信息产业发展的需要。无论是做硬件开发还是软件开发,也不管是桌面设备还是便携式设备,对系统的理解和把握是*备基础。况且,软硬件协同设计是嵌入式系统设计的必然趋势。和x86系统相比,嵌入式系统有平台依赖性,这是编著嵌入式系统书籍绕不过的一道坎。本书在处理这个问题时采用分层处理。任务调度、多线程编程、文件系统、Qt编程都是与平台无关的,但是,驱动程序是与平台相关的,总要找一个平台作为范本去讲解有关的原理和实现。2.处理器新本书处理器的选型定位在Cortex-A9的i.MX 6Solo/6Dual。这是*款32位的主流ARM芯片,是业界普遍使用的微控制器,不仅具有丰富的片上外设,而且拥有MMU,既可移植Linux操作系统,还能方便搭建应用系统。从微机原理角度看,CPU和存储器总线结构具有代表性。从接口技术角度讲,片上的以太网、GPIO、定时器、CAN总线、A/D转换器、I2C、SPI、UART、USB等外设,和传统的微机原理与接口技术有相似性。这是*款传统和现代相融合,突出系统移植和网络技术的同时,又兼顾经典电路的新处理器。3.注重基础书中使用较大的篇幅在讲模型计算机、流水线、存储器、*小系统。嵌入式系统从硬件角度看是复杂的时序电路,是数字电路的延续和发展。作者从内到外、从小到大把CPU扩充到整个嵌入式系统。模型计算机让读者在较短时间内建立计算机工作原理的概念,流水线是提高计算机运行效率的一种机制,存储器中的cache是为了提高访问速度。而*小系统是为了帮助读者建立*小计算机系统的概念,包括中断、定时器、GPIO,这些都是嵌入式系统的基础。4.理论联系实际计算机作为人造机器,具有鲜明的工程特征,适量的实验必不可少。本书设计了较为丰富的实验。实验依托的平台的制造商在业内享有盛誉,方便使用者配套实验。当然,本书的使用者也可以开发自己的i.MX 6Solo/6Dual平台完成本书相关实验。国内*一本《微型计算机原理与应用》诞生于20世纪80年代初,它是嵌入式系统的雏形。40年来,嵌入式系统不断发展变化,高校相应的教改和教材出版也一直没有停止。近5年来这本书的书稿一直作为我校研究生公共选修课“嵌入式系统实验”的教材在试用。由于本书内容较新,一定会有很多不足,还有很大的改进空间。本书作者大多是“嵌入式系统实验”教学团队成员,也是“微机原理与接口技术”这门课的核心骨干教师,他们对以微处理器为核心的计算机系统的理论课及实验课的教学有丰富的经验。我相信,本书的出版一定会对嵌入式系统的推广和应用发挥重要的促进作用。是为序。 于守谦
1