本书系统地介绍了ARM体系结构下的Cortex-M3多核处理器系统开发涉及的软/硬件基础知识,重点突出Cortex-M3基本系统开发方法。在内容组织和框架设计上具有两个鲜明的特点:全案例、基于读者学习。本书从读者学习的角度,对Cortex-M3常用的指令集、典型外设模块的原理、CAN总线、操作系统μC/OS-Ⅱ,以及软件安装及其应用设计均以若干完整案例呈现,同时给出了综合性工程案例的经验,这些都十分有利于读者学习和模仿。本书从实际应用出发,讲解浅显细致,可作为高等院校计算机科学与技术、软件工程、电子信息工程、通信工程、自动化、机器人工程、物联网应用等专业的教材,也可作为从事检测、自动控制等领域工作的嵌入式系统工程技术人员的参考用书。
肖中俊:1979年9月生,湖北大悟人,工学博士,教授,硕士生导师,国家级一流自动化专业负责人,山东省高等学校课程思政研究中心研究员、山东省继续教育课程思政研究中心主任。主讲山东省一流本科课程《过程控制》、山东省数字化优质课程《仪表及自动化》、《过程控制》课程思政示范课。主持省级以上教学科研课题5项,发表高水平教科研论文30余篇,出版专著1部,编著2部,教材2部。曾获学校第一届“说课能手”、第三届教学方法改革标兵、第六届“师德标兵”荣誉称号。
目 录
第1章 嵌入式系统及ARM微处理器概述 1
1.1 嵌入式系统概述 1
1.1.1 嵌入式系统定义 1
1.1.2 嵌入式发展历程 1
1.2 嵌入式操作系统 4
1.2.1 操作系统 4
1.2.2 实时操作系统 5
1.2.3 通用型操作系统 6
1.2.4 常见的嵌入式操作系统 6
1.2.5 嵌入式常见术语 9
1.3 ARM微处理器概述 12
1.3.1 ARM描述 12
1.3.2 ARM微处理器的应用领域及特点 13
1.3.3 ARM微处理器系列 13
1.3.4 ARM微处理器的结构 16
1.3.5 ARM微处理器的应用选型 17
第2章 ARM体系结构描述 19
2.1 ARM体系结构特点 19
2.2 各ARM体系结构版本 19
2.2.1 ARM体系结构版本V1 19
2.2.2 ARM体系结构版本V2 19
2.2.3 ARM体系结构版本V3 20
2.2.4 ARM体系结构版本V4 20
2.2.5 ARM体系结构版本V5 20
2.2.6 ARM体系结构版本V6 20
2.2.7 ARM体系结构版本V7 21
2.3 处理器模式 21
2.4 内部寄存器 21
2.5 处理器异常 23
2.6 STM32存储器组织 28
2.7 调试接口 29
第3章 Cortex-M3微控制器 31
3.1 STM32概述 31
3.2 Cortex-M3微控制器特性 31
3.2.1 ARM Cortex-M3处理器 31
3.2.2 NVIC 31
3.2.3 片上Flash程序存储器 32
3.2.4 20KB片内SRAM 32
3.2.5 通用DMA控制器 32
3.2.6 多层AHB矩阵 32
3.2.7 串行接口 32
3.2.8 其他外设 33
3.2.9 JTAG 33
3.3 STM32系列内部结构方框图 34
3.4 外围硬件介绍 35
3.4.1 STM32F103RBT6 CPU硬件电路图 35
3.4.2 电源电路 37
3.4.3 晶振电路 37
3.4.4 复位电路 38
3.4.5 LCD显示接口电路 38
3.4.6 独立按键电路 39
3.4.7 串口电路 39
3.4.8 蜂鸣器电路 39
3.4.9 RTC供电电路 40
3.4.10 JTAG调试电路 40
3.4.11 AT24C02硬件电路 41
3.4.12 SPI Flash通信电路 41
3.4.13 A/D(D/A)转换电路 42
3.4.14 USB接口电路 44
3.4.15 CAN总线电路 45
第4章 指令集、时钟 48
4.1 Thumb-2指令集 48
4.2 指令格式 48
4.3 常用指令 48
4.3.1 存储器访问指令 48
4.3.2 数据处理指令 51
4.3.3 分支指令 55
4.3.4 中断和断点指令 56
4.4 Cortex-M3时钟控制 57
4.4.1 SYSCLK系统时钟 57
4.4.2 高速外部时钟信号HSE 59
4.4.3 监控SYSCLK时钟 60
4.4.4 高速内部时钟信号HSI 60
4.4.5 PLL时钟 61
4.4.6 AHB、APB1、APB2时钟 61
4.4.7 MCO时钟 62
4.4.8 低速外部时钟LSE 62
4.4.9 低速内部时钟LSI 63
4.4.10 RTC时钟 64
第5章 Cortex-M3接口分析与应用 65
5.1 GPIO分析与应用 65
5.1.1 GPIO简介 65
5.1.2 与GPIO相关的寄存器 67
5.1.3 GPIO端口应用案例 70
5.2 USART实验 72
5.2.1 USART简介 72
5.2.2 USART特性 72
5.2.3 与USART相关的寄存器 74
5.2.4 硬件连接 83
5.2.5 UART口应用案例 83
5.3 模/数转换器 85
5.3.1 ADC简介 85
5.3.2 ADC的主要参数 85
5.3.3 STM32系列ADC的特点 85
5.3.4 与ADC相关的寄存器 86
5.3.5 硬件连接 97
5.3.6 ADC应用案例 97
5.4 定时器分析与应用 99
5.4.1 通用定时器简介 99
5.4.2 STM32系列通用定时器的特点 99
5.4.3 与通用定时器相关的寄存器 100
5.4.4 定时器应用案例 108
5.5 中断分析与应用 110
5.5.1 中断简介 110
5.5.2 STM32中断特性 110
5.5.3 中断向量表 111
5.5.4 中断应用案例 113
5.6 RTC实验 115
5.6.1 STM32系列RTC的特点 116
5.6.2 与RTC相关的寄存器 116
5.6.3 RTC应用案例 121
5.7 I2C分析与应用 123
5.7.1 STM32系列I2C的特点 123
5.7.2 与I2C相关的寄存器 124
5.7.3 I2C应用案例 133
5.8 看门狗分析与应用 135
5.8.1 STM32系列IWDG的特点 135
5.8.2 与IWDG相关的寄存器 135
5.8.3 看门狗应用案例 138
5.9 SPI分析与应用 139
5.9.1 SPI简介 139
5.9.2 SPI特点 140
5.9.3 与SPI相关的寄存器 140
5.9.4 SPI应用案例 148
第6章 CAN总线分析与应用 151
6.1 CAN简介 151
6.2 bxCAN主要特点 151
6.3 与CAN相关的寄存器 152
6.4 CAN总线应用案例 167
第7章 协处理器DMA分析与应用 171
7.1 DMA简介 171
7.2 DMA控制器特点 171
7.3 DMA控制器功能描述 172
7.3.1 DMA功能框图 172
7.3.2 DMA通道配置 174
7.3.3 DMA中断 174
7.4 DMA相关控制模块 174
7.4.1 DMA1控制器 174
7.4.2 DMA2控制器 176
7.5 DMA控制器应用案例 177
第8章 μC/OS-Ⅱ简介 179
8.1 微控制器操作系统 179
8.2 μC/OS-Ⅱ描述 181
8.2.1 μC/OS-Ⅱ特性 181
8.2.2 结构组成 182
8.2.3 工作原理 182
8.2.4 μC/OS-Ⅱ管理 183
8.2.5 任务调度 183
8.3 μC/OS-Ⅱ中断机理 184
8.3.1 函数调用和中断调用的操作 184
8.3.2 任务级和中断级的任务切换步骤和原理 184
8.4 μC/OS-Ⅱ优先级处理 186
8.4.1 优先级翻转 186
8.4.2 优先级翻转的合理解决 187
8.5 μC/OS-Ⅱ开发注意事项 188
8.5.1 任务框架 188
8.5.2 软件层次 188
8.5.3 互斥信号对象 189
8.5.4 调用函数的处理 189
8.6 μC/OS-Ⅱ图书 190
8.7 μC/OS-Ⅱ操作系统移植 190
8.7.1 μC/OS-Ⅱ成功移植的条件 190
8.7.2 μC/OS-Ⅱ移植的相关工作 191
8.7.3 用户实时任务编写 191
第9章 Keil集成开发环境介绍及应用 192
9.1 Keil软件安装 192
9.1.1 编译软件安装 192
9.1.2 驱动程序安装 192
9.2 新建工程 192
9.2.1 寄存器版新建工程 193
9.2.2 Keil软件新建工程 194
参考文献 199