嵌入式系统开发 / 高等学校物联网专业系列教材
¥45.00定价
作者: 苗玉杰,刘洪涛,张芳等
出版时间:2023-12
出版社:中国铁道出版社
- 中国铁道出版社
- 9787113295790
- 1版
- 521431
- 48256846-6
- 16开
- 2023-12
- 计算机及相关专业
- 本科 高职
作者简介
内容简介
随着信息化、智能化、网络化的发展,嵌入式系统获得了广阔的发展空间。本书针对高等学校专业教学需要,结合作者多年教学经验和开发成果而编写,以 Exynos 4412 微处理器为核心,按照嵌入式系统的开发流程,循序渐进地论述了基于 ARM 架构的嵌入式 Linux 开发技术。本书主要内容包括嵌入式系统基础,ARM 架构与汇编指令,中断、异常和 U-boot,ARM 裸机开发,内核模块,字符设备驱动,Linux 设备树,内核中断编程,高级 I/O 操作,Linux 设备驱动模型,Qt 移植与开发,综合实例等。对于操作性强的章节,配有实验,各章均设置了丰富的习题。
本书编写注重校企合作,选用了华清远见教育科技集团提供的教学案例。除此之外,本书还提供了教学课件、源代码、文档资料、实验视频等教学资源。
本书适合作为普通高等院校计算机、电子信息和物联网等本科专业嵌入式系统课程教材,也可作为嵌入式领域相关工作人员的参考书。
本书编写注重校企合作,选用了华清远见教育科技集团提供的教学案例。除此之外,本书还提供了教学课件、源代码、文档资料、实验视频等教学资源。
本书适合作为普通高等院校计算机、电子信息和物联网等本科专业嵌入式系统课程教材,也可作为嵌入式领域相关工作人员的参考书。
目录
第 1 章嵌入式系统基础 ................................................................................1
1.1嵌入式系统概述 ................................................................................................................ 1
1.1.1嵌入式系统的概念 .............................................................................................................1
1.1.2嵌入式系统应用领域 .........................................................................................................2
1.2嵌入式系统组成 ................................................................................................................ 2
1.2.1嵌入式系统硬件 .................................................................................................................2
1.2.2嵌入式系统软件 .................................................................................................................3
1.3嵌入式操作系统 ................................................................................................................ 3
1.4我国嵌入式系统的发展 .................................................................................................... 5
1.5嵌入式系统开发模式及流程 ............................................................................................ 6
1.5.1嵌入式系统开发模式 .........................................................................................................6
1.5.2嵌入式系统开发流程 .........................................................................................................6
实验 1交叉编译环境搭建 ...................................................................................................... 7
习题 1 .......................................................................................................................................... 9
第 2 章ARM 架构与汇编指令 ..................................................................... 11
2.1 ARM 处理器简介 ............................................................................................................ 11
2.1.1 ARM 公司简介 ................................................................................................................11
2.1.2 ARM 架构 ........................................................................................................................12
2.2 ARM 工作模式及寄存器 ................................................................................................ 14
2.2.1 ARM 工作模式 ................................................................................................................14
2.2.2 ARM 寄存器组织 ............................................................................................................15
2.3 ARM 汇编指令 ................................................................................................................ 18
实验 2汇编程序点亮 LED 灯 .............................................................................................. 24
习题 2 ........................................................................................................................................ 26
第 3 章中断、异常和 U-boot ......................................................................31
3.1中断和异常概述 .............................................................................................................. 31
3.2 Bootloader 操作模式及种类 ............................................................................................. 34
3.2.1 Bootloader 概述 .................................................................................................................. 34
3.2.2 Bootloader 操作模式 .......................................................................................................... 35
3.2.3 Bootloader 的种类 .............................................................................................................. 35
3.2.4 U-Boot 概述 ........................................................................................................................ 36
实验 3 U-Boot 移植和 SD 启动卡制作 .................................................................................. 39
习题 3 .......................................................................................................................................... 42
第 4 章ARM 裸机开发 ..................................................................................44
4.1 GPIO 裸机开发 ................................................................................................................. 44
4.1.1 裸机开发步骤 ..................................................................................................................... 44
4.1.2 GPIO 应用实例 .................................................................................................................. 45
4.2 通用异步收发器 ................................................................................................................ 48
4.2.1 通用异步收发器简介 ......................................................................................................... 48
4.2.2 Exynos 4412-UART 控制器 ............................................................................................... 49
4.2.3 UART 寄存器 ..................................................................................................................... 50
4.2.4 UART 接口应用实例 ......................................................................................................... 51
4.3 中断裸机编程 .................................................................................................................... 54
4.3.1 ARM 中断控制器简介 ....................................................................................................... 54
4.3.2 中断源和中断号 ................................................................................................................. 55
4.3.3 Exynos 4412 中断相关寄存器 ............................................................................................ 55
4.3.4 GIC 中断应用实例 ............................................................................................................. 59
习题 4 .......................................................................................................................................... 62
第 5 章内核模块 ...........................................................................................64
5.1内模概述 ............................................................................................................................ 64
5.2一个简单的内核模块 ........................................................................................................ 65
5.2.1 编写一个简单的内核模块 ................................................................................................. 65
5.2.2 编译内核模块 ..................................................................................................................... 66
5.3多个源文件编译生成一个内核模块 ................................................................................ 68
5.4内核模块参数 .................................................................................................................... 69
5.5内核模块依赖 .................................................................................................................... 71
实验 4 Linux 内核移植 ........................................................................................................... 73
习题 5 .......................................................................................................................................... 75
第 6 章字符设备驱动 ...................................................................................77
6.1 Linux 系统设备概述 ......................................................................................................... 77
6.2字符设备驱动编程 ............................................................................................................ 78
6.2.1 字符设备驱动实例 ............................................................................................................. 79
6.2.2 测试字符设备驱动 ............................................................................................................. 83
6.2.3 设备读 / 写操作 ................................................................................................................. 84
6.2.4 I/O 内存 .............................................................................................................................. 86
6.3 ioctl ..................................................................................................................................... 89
实验 5 根文件系统制作 .......................................................................................................... 93
习题 6 .......................................................................................................................................... 97
第 7 章 Linux 设备树 ...................................................................................100
7.1 为何使用 Linux 设备树 .................................................................................................. 100
7.2 Linux 设备树基本知识 ................................................................................................... 101
7.2.1 设备树基本概念 ............................................................................................................... 101
7.2.2 设备树语法 ....................................................................................................................... 101
7.2.3 内核设备树访问函数 ....................................................................................................... 105
7.3 基于设备树的 LED 驱动 ................................................................................................ 106
实验 6 字符设备驱动 ............................................................................................................ 110
习题 7 ........................................................................................................................................ 111
第 8 章内核中断编程 .................................................................................113
8.1 按键中断编程 .................................................................................................................. 113
8.2 中断下半部 ...................................................................................................................... 119
8.2.1 tasklet ................................................................................................................................ 119
8.2.2 工作队列 ........................................................................................................................... 121
习题 8 ........................................................................................................................................ 123
第 9 章高级 I/O 操作 ..................................................................................124
9.1 非阻塞 I/O ....................................................................................................................... 124
9.2 阻塞 I/O ........................................................................................................................... 125
9.3 I/O 多路复用 ................................................................................................................... 127
9.4 异步通知 .......................................................................................................................... 130
习题 9 ........................................................................................................................................ 132
第 10 章Linux 设备驱动模型 ......................................................................134
10.1设备驱动模型 ................................................................................................................ 134
10.2平台总线 ........................................................................................................................ 140
10.3使用设备树的 LED 平台驱动 ........................................................................................ 146
实验 7平台设备驱动实验 .................................................................................................... 148
习题 10 ...................................................................................................................................... 150
第 11 章Qt 移植与开发...............................................................................151
11.1 Qt 移植与集成开发环境安装 ........................................................................................ 151
11.1.1 Qt 移植 ............................................................................................................................ 151
11.1.2 Qt 集成开发环境 ............................................................................................................ 153
11.2编写并运行 Qt 程序 ...................................................................................................... 156
11.2.1创建 Qt 项目 ................................................................................................................... 156
11.2.2 Qt 程序实例 .................................................................................................................... 158
习题 11 ...................................................................................................................................... 161
第 12 章综合实例 .......................................................................................162
12.1 DHT11 工作原理 ........................................................................................................... 162
12.2 DHT11 驱动编程 ........................................................................................................... 163
12.3 DHT11 应用程序 ........................................................................................................... 170
12.3.1 C 应用程序 ..................................................................................................................... 170
12.3.2 Qt 应用程序 .................................................................................................................... 172
参考文献 .......................................................................................................176
1.1嵌入式系统概述 ................................................................................................................ 1
1.1.1嵌入式系统的概念 .............................................................................................................1
1.1.2嵌入式系统应用领域 .........................................................................................................2
1.2嵌入式系统组成 ................................................................................................................ 2
1.2.1嵌入式系统硬件 .................................................................................................................2
1.2.2嵌入式系统软件 .................................................................................................................3
1.3嵌入式操作系统 ................................................................................................................ 3
1.4我国嵌入式系统的发展 .................................................................................................... 5
1.5嵌入式系统开发模式及流程 ............................................................................................ 6
1.5.1嵌入式系统开发模式 .........................................................................................................6
1.5.2嵌入式系统开发流程 .........................................................................................................6
实验 1交叉编译环境搭建 ...................................................................................................... 7
习题 1 .......................................................................................................................................... 9
第 2 章ARM 架构与汇编指令 ..................................................................... 11
2.1 ARM 处理器简介 ............................................................................................................ 11
2.1.1 ARM 公司简介 ................................................................................................................11
2.1.2 ARM 架构 ........................................................................................................................12
2.2 ARM 工作模式及寄存器 ................................................................................................ 14
2.2.1 ARM 工作模式 ................................................................................................................14
2.2.2 ARM 寄存器组织 ............................................................................................................15
2.3 ARM 汇编指令 ................................................................................................................ 18
实验 2汇编程序点亮 LED 灯 .............................................................................................. 24
习题 2 ........................................................................................................................................ 26
第 3 章中断、异常和 U-boot ......................................................................31
3.1中断和异常概述 .............................................................................................................. 31
3.2 Bootloader 操作模式及种类 ............................................................................................. 34
3.2.1 Bootloader 概述 .................................................................................................................. 34
3.2.2 Bootloader 操作模式 .......................................................................................................... 35
3.2.3 Bootloader 的种类 .............................................................................................................. 35
3.2.4 U-Boot 概述 ........................................................................................................................ 36
实验 3 U-Boot 移植和 SD 启动卡制作 .................................................................................. 39
习题 3 .......................................................................................................................................... 42
第 4 章ARM 裸机开发 ..................................................................................44
4.1 GPIO 裸机开发 ................................................................................................................. 44
4.1.1 裸机开发步骤 ..................................................................................................................... 44
4.1.2 GPIO 应用实例 .................................................................................................................. 45
4.2 通用异步收发器 ................................................................................................................ 48
4.2.1 通用异步收发器简介 ......................................................................................................... 48
4.2.2 Exynos 4412-UART 控制器 ............................................................................................... 49
4.2.3 UART 寄存器 ..................................................................................................................... 50
4.2.4 UART 接口应用实例 ......................................................................................................... 51
4.3 中断裸机编程 .................................................................................................................... 54
4.3.1 ARM 中断控制器简介 ....................................................................................................... 54
4.3.2 中断源和中断号 ................................................................................................................. 55
4.3.3 Exynos 4412 中断相关寄存器 ............................................................................................ 55
4.3.4 GIC 中断应用实例 ............................................................................................................. 59
习题 4 .......................................................................................................................................... 62
第 5 章内核模块 ...........................................................................................64
5.1内模概述 ............................................................................................................................ 64
5.2一个简单的内核模块 ........................................................................................................ 65
5.2.1 编写一个简单的内核模块 ................................................................................................. 65
5.2.2 编译内核模块 ..................................................................................................................... 66
5.3多个源文件编译生成一个内核模块 ................................................................................ 68
5.4内核模块参数 .................................................................................................................... 69
5.5内核模块依赖 .................................................................................................................... 71
实验 4 Linux 内核移植 ........................................................................................................... 73
习题 5 .......................................................................................................................................... 75
第 6 章字符设备驱动 ...................................................................................77
6.1 Linux 系统设备概述 ......................................................................................................... 77
6.2字符设备驱动编程 ............................................................................................................ 78
6.2.1 字符设备驱动实例 ............................................................................................................. 79
6.2.2 测试字符设备驱动 ............................................................................................................. 83
6.2.3 设备读 / 写操作 ................................................................................................................. 84
6.2.4 I/O 内存 .............................................................................................................................. 86
6.3 ioctl ..................................................................................................................................... 89
实验 5 根文件系统制作 .......................................................................................................... 93
习题 6 .......................................................................................................................................... 97
第 7 章 Linux 设备树 ...................................................................................100
7.1 为何使用 Linux 设备树 .................................................................................................. 100
7.2 Linux 设备树基本知识 ................................................................................................... 101
7.2.1 设备树基本概念 ............................................................................................................... 101
7.2.2 设备树语法 ....................................................................................................................... 101
7.2.3 内核设备树访问函数 ....................................................................................................... 105
7.3 基于设备树的 LED 驱动 ................................................................................................ 106
实验 6 字符设备驱动 ............................................................................................................ 110
习题 7 ........................................................................................................................................ 111
第 8 章内核中断编程 .................................................................................113
8.1 按键中断编程 .................................................................................................................. 113
8.2 中断下半部 ...................................................................................................................... 119
8.2.1 tasklet ................................................................................................................................ 119
8.2.2 工作队列 ........................................................................................................................... 121
习题 8 ........................................................................................................................................ 123
第 9 章高级 I/O 操作 ..................................................................................124
9.1 非阻塞 I/O ....................................................................................................................... 124
9.2 阻塞 I/O ........................................................................................................................... 125
9.3 I/O 多路复用 ................................................................................................................... 127
9.4 异步通知 .......................................................................................................................... 130
习题 9 ........................................................................................................................................ 132
第 10 章Linux 设备驱动模型 ......................................................................134
10.1设备驱动模型 ................................................................................................................ 134
10.2平台总线 ........................................................................................................................ 140
10.3使用设备树的 LED 平台驱动 ........................................................................................ 146
实验 7平台设备驱动实验 .................................................................................................... 148
习题 10 ...................................................................................................................................... 150
第 11 章Qt 移植与开发...............................................................................151
11.1 Qt 移植与集成开发环境安装 ........................................................................................ 151
11.1.1 Qt 移植 ............................................................................................................................ 151
11.1.2 Qt 集成开发环境 ............................................................................................................ 153
11.2编写并运行 Qt 程序 ...................................................................................................... 156
11.2.1创建 Qt 项目 ................................................................................................................... 156
11.2.2 Qt 程序实例 .................................................................................................................... 158
习题 11 ...................................................................................................................................... 161
第 12 章综合实例 .......................................................................................162
12.1 DHT11 工作原理 ........................................................................................................... 162
12.2 DHT11 驱动编程 ........................................................................................................... 163
12.3 DHT11 应用程序 ........................................................................................................... 170
12.3.1 C 应用程序 ..................................................................................................................... 170
12.3.2 Qt 应用程序 .................................................................................................................... 172
参考文献 .......................................................................................................176