Cortex-M处理器设计指南
作者 : (美)Trevor Martin 著
译者 : 孙彪 周跃庆 译
出版日期 : 2015-04-07
ISBN : 978-7-111-49227-6
定价 : 59.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 237
开本 : 16
原书名 : The Designer's Guide to the Cortex-M Processor Family
原出版社: Elsevier
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是关于ARM用于工业控制的cortex-m系列处理器的入门级基础教程,包含了Cortex-M家族的重要特征、Cortex-M处理器的架构、如何使用CoreSight调试系统、Cortex-M微控制器接口标准、Cortex-M微控制器的软件接口标准、RTOS操作系统的开发、cmsis DSP库、优化DSP代码和Cortex-M4 下实际的DSP等内容。适合作为工科院校电子信息类专业本科生和研究生的嵌入式应用开发实践用书,是成为嵌入式系统工程师的入门教程。

图书特色

《Cortex-M处理器设计指南》是一本基础开发教程,主要介绍了在基于Cortex-M的处理器中使用C语言进行编程开发的关键技术。该书首先概述了Cortex-M系列产品并详细介绍了实际例程中所支持的架构描述,以便工程师在Cortex-M0/M0+/M3和Cortex-M4中更加容易地开发基于C语言的程序;接着阐述了更多Cortex-M处理器架构的先进特性和软件技术,例如存储保护、操作模式和双栈操作。最后介绍了Cortex-M处理器RTOS和CMSIS DSP库的使用、如何设计实时DSP应用程序,以及CoreSight调试系统的实时特性。

核心内容
Cortex-M0/M0+/M3和Cortex-M4之间的主要不同点;
如何编写运行在基于Cortex-M处理器上的C语言程序;
如何进行RTOS开发和使用CoreSight调试系统;
如何优化Cortex-M4的DSP代码以及建立实时DSP系统。

关键特性
Cortex微控制器软件界面标准(CMSIS),以及基于Cortex-M微控制器的通用架构;
Cortex-M3和Cortex-M4的CMSIS DSP库覆盖范围;
集成开发环境IDE和调试器在PC中仿真或者在低成本硬件中运行。

作者简介
Trevor Martin?是Hitex UK公司资深的技术专家,在Hitex UK工作的20多年间,他曾使用过众多类型的微控制器和相关的开发工具。自从2004年Cortex-M3处理器发布以来,Trevor发表了大量基于Cortex-M的微控制器的优秀文章和应用笔记。Trevor不仅具有广博的Cortex-M处理器家族的知识,而且还很熟悉现今嵌入式应用中的许多开发技术、应用软件和通信协议。

图书前言

ARM公司在2004年首次推出了Cortex-M处理器家族产品。自从Cortex-M处理器作为小型微控制器的通用处理器得到广泛的认可之后,也就是在写作本书时,已经有许多领先的半导体厂商设计了上千种具有Cortex-M处理器的标准设备,并且基于Cortex-M处理器的设计丝毫没有变缓的趋势。虽然预测Cortex-M处理器发展趋势的做法并不保险,但是Cortex-M处理器的发展如火如荼并且日益成为嵌入式系统业内的标准架构。如何使用Cortex-M处理器对专业的开发者来说是一项必需的技能。本书不仅介绍了Cortex-M处理器的基本知识,还介绍了用于开发在Cortex-M处理器中运行的应用软件的技术。本书以教程的形式编写,各个章节之间相互联系使本书成为了一个整体。在本书中,每一章都使用了若干个例子来说明其中的关键原理,并且每一个例子的代码都尽量精简。所有例子都可以用MDK-ARM的测试版本构建,并且所有的这些例子都可以在仿真器中运行,因此读者在没有附加硬件支持的情况下也可以使用本教程。书中的所有例子都可以在低成本的硬件模块中运行,这些硬件模块都可以在网上获得。
第1章介绍了Cortex-M处理器家族中每一种处理器的基本性能。
第2章介绍了如何使用Cortex-M处理器构建一个基本的C语言项目。
第3章主要介绍了Cortex-M3的架构及其与其他型号的Cortex-M处理器的不同之处。
第4章介绍了Cortex-M处理器的CMSIS编程标准。
第5章内容是第3章内容的延伸,其中介绍了Cortex-M处理器架构的更多先进特性。
第6章介绍了在Cortex-M处理器中RTOS的使用。
第7章介绍了Cortex-M4处理器支持的数学运算和DSP算法,以及如何设计实时DSP应用程序。
第8章介绍了CoreSight调试系统和它的实时特性。
本书对学生、初学者、有基础和有经验的开发者来说都是很有用的。然而,这本书假设读者已经具备了使用微控制器的基本知识且已经熟悉了特定微控制器的指令集。另外,若读者具备如何使用μVision调试器和IDE工具的基本知识,那对阅读本书将会很有帮助。
致谢
非常感谢Charlotte Kent、Elsevier出版社的Tim Pitts,以及ARM公司的Joseph Yui和Richard York对本书的贡献。

上架指导

电子与电气工程

封底文字

《Cortex-M处理器设计指南》是一本基础开发教程,主要介绍了在基于Cortex-M的处理器中使用C语言进行编程开发的关键技术。本书首先概述了Cortex-M系列产品并详细介绍了实际例程中所支持的架构描述,以便工程师在Cortex-M0/M0+/M3和Cortex-M4中更加容易地开发基于C语言的程序;接着阐述了更多Cortex-M处理器架构的先进特性和软件技术,例如存储保护、操作模式和双栈操作。最后介绍了Cortex-M处理器RTOS和CMSIS DSP库的使用、如何设计实时DSP应用程序,以及CoreSight调试系统的实时特性。

本书核心内容:
Cortex-M0/M0+/M3和Cortex-M4之间的主要不同点;
如何编写运行在基于Cortex-M处理器上的C语言程序;
如何进行RTOS开发和使用CoreSight调试系统;
如何优化Cortex M4的DSP代码以及建立实时DSP系统。

本书关键特性:
Cortex微控制器软件界面标准(CMSIS),以及基于Cortex-M微控制器的通用架构;
Cortex M3和Cortex-M4的CMSIS DSP库覆盖范围;
集成开发环境IDE和调试器在PC中仿真或者在低成本硬件中运行。

作者简介

(美)Trevor Martin 著:Trevor Martin是Hitex UK公司资深的技术专家,在Hitex UK工作的20多年间,他曾使用过众多类型的微控制器和相关的开发工具。自从2004年Cortex-M3处理器发布以来,Trevor发表了大量基于Cortex-M的微控制器的优秀文章和应用笔记。Trevor不仅具有广博的Cortex-M处理器家族的知识,而且还很熟悉现今嵌入式应用中的许多开发技术、应用软件和通信协议。

译者简介

孙彪 周跃庆 译:暂无简介

译者序

ARM公司在经典处理器ARM11以后的产品改用Cortex命名,Cortex系列属于ARMv7架构,是到2010年为止ARM公司最新的指令集架构。Cortex系列处理器分成A、R和M三类,旨在为各种不同的市场提供服务。其中,Cortex-M系列针对的是微控制器,也是针对对成本敏感的应用程序进行优化的深层嵌入式处理器。该系列处理器以高性能、低功耗以及低成本的优势正在蚕食8位和16位MCU市场,基于Cortex-M系列内核的32位微控制器已经渗透到电动机、智能电表、汽车电子、工业控制、通信等各个领域。ARM公司表示在2015年全球会有190亿颗基于Cortex-M内核的MCU诞生。
本书首先系统地介绍了Cortex-M系列处理器的基本知识,然后从工程应用角度出发,结合多个实例介绍了Cortex-M系列处理器的主要特性,同时介绍了配套开发工具的使用方法。本书写作思路清晰、内容完整,不但可以作为学习Cortex-M系列处理器的入门教材,也能够作为高年级研究生使用Cortex-M系列处理器进行工程开发的参考书。
在本书的翻译过程中,译者大多采用了直译的方法以力求保留书的原貌,但限于译者水平,疏漏及不妥之处敬请广大读者批评指正。

译者
2014年11月23日
于天津大学

图书目录

出版者的话
译者序

前言
第1章 Cortex-M处理器家族简介 1
1.1 Cortex系列概述 1
1.2 Cortex-M3 2
1.3 先进的架构特性 5
1.4 Cortex-M0 6
1.5 Cortex-M0+ 9
1.6 Cortex-M4 10
1.7 DSP指令 12
第2章 为Cortex-M处理器家族开发软件 14
2.1 引言 14
2.2 Keil微控制器开发套件 14
2.3 教程练习 15
2.4 安装 15
2.5 练习:建立第一个程序 16
2.6 Blinky项目 16
2.6.1 寄存器窗口 21
2.6.2 反汇编窗口 21
2.7 项目配置 29
2.8 硬件调试 38
第3章 Cortex-M架构 41
3.1 引言 41
3.2 Cortex-M指令集 41
3.3 编程器的模型与CPU寄存器 42
3.4 程序状态寄存器 43
3.5 Q位和饱和运算指令 43
3.6 中断和多周期指令 44
3.7 条件执行——IF THEN块 44
3.8 练习:饱和运算和条件执行 46
3.9 Cortex-M内存映射和总线 50
3.10 写缓冲器 51
3.11 内存屏障指令 52
3.12 系统控制模块 52
3.13 位操作 53
3.14 练习:位段 55
3.15 专用位操作指令 55
3.16 系统时钟定时器 56
3.17 嵌套向量中断控制器 56
3.18 操作模式 57
3.19 中断处理之输入 57
3.20 中断处理之退出 58
3.21 中断处理之退出(重要) 59
3.22 练习:系统时钟中断 59
3.23 Cortex-M处理器异常 62
 3.23.1 使用故障 63
 3.23.2 总线故障 63
 3.23.3 存储管理器故障 63
 3.23.4 硬故障 63
 3.23.5 启用故障异常 64
3.24 优先级和抢占 64
3.25 组与子组 64
3.26 运行时间优先级控制 65
3.27 异常模式 66
 3.27.1 NVIC尾链 66
 3.27.2 NVIC迟到 67
 3.27.3 NVIC POP抢占 67
3.28 练习:多中断工作 68
3.29 引导加载程序支持 71
3.30 练习:引导加载程序 72
3.31 功率管理 75
 3.31.1 进入低功耗模式 76
 3.31.2 配置低功耗模式 76
 3.31.3 练习:低功耗模式 77
3.32 Cortex-M3 78
3.33 Cortex-M4 79
3.34 Cortex-M0 79
3.35 Cortex-M0+ 80
第4章 Cortex微控制器软件接口标准 82
4.1 引言 82
4.2 CMSIS规范 83
4.3 CMSIS内核 84
4.4 CMSIS RTOS 84
4.5 CMSIS DSP 85
4.6 CMSIS SVD和DAP 85
4.7 CMSIS基础 85
4.8 编码规则 86
4.9 MISRA C 86
4.10 CMSIS内核结构 88
4.11 启动代码 88
4.12 系统代码 89
4.13 设备头文件 89
4.14 CMSIS内核头文件 91
4.15 中断与异常 91
4.16 练习:CMSIS和用户代码对比 94
4.17 CMSIS内核寄存器访问 95
4.18 CMSIS内核CPU内在指令 96
4.19 练习:内部位操作 97
4.20 CMSIS SIMD内部指令 98
4.21 CMSIS内核调试函数 98
4.22 练习:简单ITM 98
第5章 先进的架构特性 100
5.1 引言 100
5.2 Cortex处理器操作模式 100
5.3 练习:堆栈配置 102
5.4 系统服务调用 103
5.5 练习:SVC 104
5.6 Pend_SVC异常 107
5.7 例子:Pend_SVC 108
5.8 处理器之间的事件 110
5.9 独占访问 110
5.10 练习:独占访问 111
5.11 存储保护单元 112
5.12 配置MPU 114
5.13 练习:MPU配置 116
5.14 MPU子区间 120
5.15 MPU的局限性 120
5.16 AHB Lite总线接口 120
第6章 使用CMSIS RTOS进行开发 122
6.1 引言 122
6.2 入门 122
6.3 创建一个项目 122
6.4 使用CMSIS RTOS的第一步 123
6.5 线程 123
6.6 从RTOS开始 125
6.7 练习:第一个CMSIS RTOS项目 126
6.8 创建线程 127
6.9 练习:创建和管理线程 128
6.10 线程管理和优先级 130
6.11 练习:创建和管理线程Ⅱ 130
6.12 多个实例 132
6.13 练习:多个线程实例 132
6.14 构建代码并启动调试器 132
6.15 时间管理 133
6.16 时间延迟 133
6.17 等待事件 134
6.18 练习:时间管理 134
6.19 虚拟定时器 134
6.20 练习:虚拟定时器 135
6.21 空闲的守护进程 136
6.22 练习:空闲的线程 137
6.23 线程间的通信 138
6.24 练习:信号 139
6.25 练习:中断信号 140
6.26 练习:CMSIS RTX和SVC异常 141
6.27 练习:信号量发信号 144
 6.27.1 使用信号量 145
 6.27.2 发信号 145
 6.27.3 多路复用 145
 6.27.4 练习:多路复用 146
 6.27.5 会合 146
6.28 练习:会合 147
6.29 练习:信号量隔离 148
 6.29.1 信号量注意事项 148
 6.29.2 互斥 148
 6.29.3 练习:互斥 149
 6.29.4 互斥注意事项 150
 6.29.5 数据交换 150
6.30 消息队列 151
6.31 练习:消息队列 152
6.32 内存池 152
6.33 邮箱队列 153
6.34 练习:邮箱 154
 6.34.1 配置 155
 6.34.2 线程定义 155
 6.34.3 系统定时器配置 156
 6.34.4 时间片配置 156
 6.34.5 调度选项 156
 6.34.6 优先级反转 158
 6.34.7 练习:优先级反转 158
第7章 基于Cortex-M4的实用DSP 160
7.1 引言 160
7.2 Cortex-M4硬件浮点单元 160
7.3 FPU整体 161
7.4 FPU寄存器 161
7.5 启用FPU 162
7.6 异常与FPU 162
7.7 使用FPU 163
7.8 练习:浮点单元 163
7.9 Cortex-M4 DSP和SIMD指令 166
7.10 练习:SIMD指令 169
7.11 练习:优化DSP算法 171
7.12 CMSIS DSP库 176
7.13 CMSIS DSP库函数 176
7.14 练习:使用DSP库 177
7.15 DSP数据处理技术 180
7.16 练习:使用块处理的FIR滤波器 181
7.17 具有Q数的定点DSP 183
7.18 练习:定点FFT 184
7.19 实时处理设计 185
7.20 缓冲技术:双缓冲器或环形缓冲器 185
7.21 缓冲技术:FIFO消息队列 186
7.22 平衡加载 188
7.23 练习:RTX ⅡR 189
7.24 负责加载和直接存储访问的控制器 191
第8章 使用CoreSight进行调试 193
8.1 引言 193
8.2 CoreSight硬件 194
8.3 调试器硬件 195
8.4 CoreSight调试架构 195
8.5 练习:CoreSight调试 196
8.6 硬件配置 196
8.7 软件配置 197
8.8 调试局限性 201
8.9 指令追踪 201
8.10 练习:建立ITM 201
8.11 使用RTX RTOS的ITM进行软件测试 204
8.12 错误任务 204
8.13 软件测试任务 205
8.14 练习:使用ITM进行软件测试 205
8.15 使用ETM进行指令追踪 208
8.16 练习:使用ETM追踪 209
8.17 系统控制模块的调试支持 212
8.18 故障追踪 213
8.19 练习:处理器故障异常 214
8.20 CMSIS SVD 216
8.21 练习:CMSIS SVD 217
8.22 CMSIS DAP 220
8.23 Cortex-M0+ MTB 221
8.24 练习:MTB 221
8.25 调试特性总结 223
附录 224
书籍 226

教学资源推荐
作者: 张玉兴 赵宏飞 向荣
作者: (美)W. Alan Davis 著
作者: [英]尼尔· 斯多里(Neil Storey) 著 英国华威大学
作者: [美]理查德G.莱昂斯(Richard G.Lyons) D.李·富盖尔(D. Lee Fugal) 著
参考读物推荐
作者: 李庆华 著
作者: 高显生 编著