种豆资源网

当前位置:首页 > 经验 / 正文

ARM Cortex-M3与Cortex-M4权威指南(第3版)

(2020-12-02 00:04:05) 经验
ARM Cortex-M3与Cortex-M4权威指南(第3版)

ARM Cortex-M3与Cortex-M4权威指南(第3版)

本书介绍了ARM Cortex-M3与Cortex-M相关知识的权威指南,目前基本上所有的CortexM设备驱动库都用上了CMSISCore,而且CMSIS项目也扩展为DSP库软体等多个方面。

基本介绍

  • 书名:ARM Cortex-M3与Cortex-M4权威指南(第3版)
  • 作者:Joseph Yiu、吴常玉、曹孟娟、王丽红
  • ISBN:9787302402923
  • 定价:89元
  • 出版社:清华大学出版社
  • 出版时间:2015.11.01
目录
第1章ARMCortexM处理器简介
1.1什幺是ARMCortexM处理器
1.1.1CortexM3和CortexM4处理器
1.1.2CortexM处理器家族
1.1.3处理器和微控制器的区别
1.1.4ARM和微控制器供应商
1.1.5选择CortexM3和CortexM4微控制器
1.2CortexM处理器的优势
1.2.1低功耗
1.2.2性能
1.2.3能耗效率
1.2.4代码密度
1.2.5中断
1.2.6易于使用
1.2.7可扩展性
1.2.8调试特性
1.2.9OS支持
1.2.10多种系统特性
1.2.11软体可移植性和可重用性
1.2.12选择(设备、工具和OS等)
1.3ARMCortexM处理器套用
1.4ARM处理器和ARM微控制器的资源
1.4.1ARM网站上有什幺
1.4.2微控制器供应商提供的文档
1.4.3工具供应商提供的文档
1.4.4其他资源
1.5背景和历史
1.5.1ARM简史
1.5.2ARM处理器的发展
1.5.3ThumbISA的架构版本
1.5.4处理器命名
1.5.5关于ARM生态系统
第2章嵌入式软体开发简介
2.1ARM微控制器是怎样构成的
2.2开始时需要準备什幺
2.2.1开发组件
2.2.2开发板
2.2.3调试适配器
2.2.4软体设备驱动
2.2.5例子
2.2.6文档和其他资源
2.2.7其他设备
2.3软体开发流程
2.4编译应用程式
2.5软体流程
2.5.1轮询
2.5.2中断驱动
2.5.3多任务系统
2.6C程式中的数据类型
2.7输入、输出和外设访问
2.8微控制器接口
2.9Cortex微控制器软体接口标準(CMSIS)
2.9.1CMSIS简介
2.9.2CMSISCore所做的标準化
2.9.3CMSISCore的组织结构
2.9.4如何使用CMSISCore
2.9.5CMSIS的优势
2.9.6CMSIS的多个版本
第3章技术综述
3.1CortexM3和CortexM4处理器的一般信息
3.1.1处理器类型
3.1.2处理器架构
3.1.3指令集
3.1.4模组框图
3.1.5存储器系统
3.1.6中断和异常支持
3.2CortexM3和CortexM4处理器的特性
3.2.1性能
3.2.2代码密度
3.2.3低功耗
3.2.4存储器系统
3.2.5存储器保护单元
3.2.6中断处理
3.2.7OS支持和系统级特性
3.2.8CortexM4的特殊特性
3.2.9易于使用
3.2.10调试支持
3.2.11可扩展性
3.2.12兼容性
第4章架构
4.1架构简介
4.2编程模型
4.2.1操作模式和状态
4.2.2暂存器
4.2.3特殊暂存器
4.2.4浮点暂存器
4.3应用程式状态暂存器
4.3.1整数状态标誌
4.3.2Q状态标誌
4.3.3GE位
4.4存储器系统
4.4.1存储器系统特性
4.4.2存储器映射
4.4.3栈存储
4.4.4存储器保护单元(MPU)
4.5异常和中断
4.5.1什幺是异常
4.5.2嵌套向量中断控制器(NVIC)
4.5.3向量表
4.5.4错误处理
4.6系统控制块(SCB)
4.7调试
4.8复位和复位流程
第5章指令集
5.1ARMCortexM处理器指令集的背景简介
5.2ARMCortexM处理器间的指令集比较
5.3理解彙编语言语法
5.4指令后缀的使用
5.5统一彙编语言(UAL)
5.6指令集
5.6.1处理器内传送数据
5.6.2存储器访问指令
5.6.3算术运算
5.6.4逻辑运算
5.6.5移位和循环移位指令
5.6.6数据转换运算(展开和反序)
5.6.7位域处理指令
5.6.8比较和测试
5.6.9程式流控制
5.6.10饱和运算
5.6.11异常相关指令
5.6.12休眠模式相关指令
5.6.13存储器屏障指令
5.6.14其他指令
5.6.15不支持的指令
5.7CortexM4特有的指令
5.7.1CortexM4的增强DSP扩展简介
5.7.2SIMD和饱和指令
5.7.3乘法和MAC指令
5.7.4打包和解包
5.7.5浮点指令
5.8桶形移位器
5.9在编程中访问特殊暂存器和特殊指令
5.9.1简介
5.9.2内在函式
5.9.3内联彙编和嵌入彙编
5.9.4使用其他的编译器相关的特性
5.9.5访问特殊暂存器
第6章存储器系统
6.1存储器系统特性简介
6.2存储器映射
6.3连线处理器到存储器和外设
6.4存储器需求
6.5存储器的端
6.6数据对齐和非对齐数据访问支持
6.7位段操作
6.7.1简介
6.7.2位段操作的优势
6.7.3不同数据大小的位段操作
6.7.4C程式实现的位段操作
6.8默认的存储器访问许可权
6.9存储器访问属性
6.10排他访问
6.11存储器屏障
6.12微控制器中的存储器系统
第7章异常和中断
7.1异常和中断简介
7.2异常类型
7.3中断管理简介
7.4优先权定义
7.5向量表和向量表重定位
7.6中断输入和挂起行为
7.7异常流程简介
7.7.1接受异常请求
7.7.2异常进入流程
7.7.3执行异常处理
7.7.4异常返回
7.8中断控制用的NVIC暂存器细节
7.8.1简介
7.8.2中断使能暂存器
7.8.3设定中断挂起和清除中断挂起
7.8.4活跃状态
7.8.5优先权
7.8.6软体触发中断暂存器
7.8.7中断控制器类型暂存器
7.9用于异常和中断控制的SCB暂存器细节
7.9.1SCB暂存器简介
7.9.2中断控制和状态暂存器(ICSR)
7.9.3向量表偏移暂存器(VTOR)
7.9.4套用中断和复位控制暂存器(AIRCR)
7.9.5系统处理优先权暂存器(SCB>SHP[0~11])
7.9.6系统处理控制和状态暂存器(SCB>SHCSR)
7.10用于异常或中断禁止的特殊暂存器细节
7.10.1PRIMASK
7.10.2FAULTMASK
7.10.3BASEPRI
7.11设定中断的步骤示例
7.11.1简单情况
7.11.2向量表重定位时的情况
7.12软体中断
7.13要点和提示
第8章深入了解异常处理
8.1简介
8.1.1关于本章
8.1.2C实现的异常处理
8.1.3栈帧
8.1.4EXC_RETURN
8.2异常流程
8.2.1异常进入和压栈
8.2.2异常返回和出栈
8.3中断等待和异常处理最佳化
8.3.1什幺是中断等待
8.3.2多周期指令执行时的中断
8.3.3末尾连锁
8.3.4延迟到达
8.3.5出栈抢占
8.3.6惰性压栈
第9章低功耗和系统控制特性
9.1低功耗设计
9.1.1低功耗对微控制器有什幺意义
9.1.2低功耗系统需求
9.1.3CortexM3和CortexM4处理器的低功耗特点
9.2低功耗特性
9.2.1休眠模式
9.2.2系统控制暂存器(SCR)
9.2.3进入休眠模式
9.2.4唤醒条件
9.2.5退出时休眠特性
9.2.6挂起传送事件(SEVONPEND)
9.2.7休眠扩展/唤醒延迟
9.2.8唤醒中断控制器(WIC)
9.2.9事件通信接口
9.3在编程中使用WFI和WFE
9.3.1何时使用WFI
9.3.2使用WFE
9.4开发低功耗套用
9.4.1降低动态功耗
9.4.2降低活跃周期
9.4.3减小休眠模式电流
9.5SysTick定时器
9.5.1为什幺要有SysTick定时器
9.5.2SysTick定时器操作
9.5.3使用SysTick定时器
9.5.4其他考虑
9.6自复位
9.7CPUID基本暂存器
9.8配置控制暂存器
9.8.1CCR简介
9.8.2STKALIGN位
9.8.3BFHFNMIGN位
9.8.4DIV_O_TRP位
9.8.5UNALIGN_TRP位
9.8.6USERSETMPEND位
9.8.7NONBASETHRDENA位
9.9辅助控制暂存器
9.10协处理器访问控制暂存器
第10章OS支持特性
10.1OS支持特性简介
10.2影子栈指针
10.3SVC异常
10.4PendSV异常
10.5实际的上下文切换
10.6排他访问和嵌入式OS
第11章存储器保护单元
11.1MPU简介
11.1.1关于MPU
11.1.2使用MPU
11.2MPU暂存器
11.2.1MPU类型暂存器
11.2.2MPU控制暂存器
11.2.3MPU区域编号暂存
11.2.4MPU基地址暂存器
11.2.5MPU区域基本属性和大小暂存器
11.2.6MPU别名暂存器
11.3设定MPU
11.4存储器屏障和MPU配置
11.5使用子区域禁止
11.5.1允许高效的存储器划分
11.5.2减少所需的区域总数
11.6使用MPU时的注意事项
11.6.1程式代码
11.6.2数据存储器
11.6.3外设
11.7MPU的其他用法
11.8与CortexM0+处理器中的MPU间的差异
第12章错误异常和错误处理
12.1错误异常简介
12.2错误的原因
12.2.1存储器管理(MemManage)错误
12.2.2汇流排错误
12.2.3使用错误
12.2.4HardFault
12.3使能错误处理
12.3.1MemManage错误
12.3.2汇流排错误
12.3.3使用错误
12.3.4HardFault
12.4错误状态暂存器和错误地址暂存器
12.4.1简介
12.4.2MemManage错误信息
12.4.3汇流排错误信息
12.4.4使用错误信息
12.4.5HardFault状态暂存器
12.4.6调试错误状态暂存器(DFSR)
12.4.7错误地址暂存器MMFAR和BFAR
12.4.8辅助错误状态暂存器
12.5分析错误
12.6异常处理相关的错误
12.6.1压栈
12.6.2出栈
12.6.3惰性压栈
12.6.4取向量
12.6.5非法返回
12.6.6优先权和压栈或出栈错误
12.7锁定
12.7.1什幺是锁定
12.7.2避免锁定
12.8错误处理
12.8.1用于调试的HardFault
12.8.2错误禁止
12.9其他信息
12.9.1运行具有两个栈的系统
12.9.2检测栈溢出
第13章浮点运算
13.1关于浮点数
13.1.1简介
13.1.2单精度浮点数
13.1.3半精度浮点数
13.1.4双精度浮点数
13.1.5CortexM处理器中的浮点支持
13.2CortexM4浮点单元(FPU)
13.2.1浮点单元简介
13.2.2浮点暂存器简介
13.2.3CPACR暂存器
13.2.4浮点暂存器组
13.2.5浮点状态和控制暂存器(FPSCR)
13.2.6浮点上下文控制暂存器(FPU>FPCCR)
13.2.7浮点上下文地址暂存器(FPU>FPCAR)
13.2.8浮点默认状态控制暂存器(FPU>FPDSCR)
13.2.9介质和浮点特性暂存器(FPU>MVFR0、FPU>MVFR1)
13.3惰性压栈详解
13.3.1惰性压栈特性的关键点
13.3.2第1种情况:被打断的任务中没有浮点上下文
13.3.3第2种情况:被打断的任务中有浮点上下文,ISR中没有
13.3.4第3种情况:被打断的任务和ISR中都有浮点上下文
13.3.5第4种情况:中断嵌套,且第2箇中断处理中存在浮点上
下文
13.3.6第5种情况:中断嵌套,且两个中断处理中都存在浮点上
下文
13.3.7惰性压栈的中断
13.3.8浮点指令的中断
13.4使用浮点单元
13.4.1CMSISCore中的浮点支持
13.4.2用C语言实现浮点编程
13.4.3编译器命令行选项
13.4.4ABI选项:Hardvfp和Softvfp
13.4.5特殊的FPU模式
13.5浮点异常
13.6要点和提示
13.6.1微控制器的运行时库
13.6.2调试操作
第14章调试和跟蹤特性
14.1调试和跟蹤特性简介
14.1.1什幺是调试特性
14.1.2什幺是跟蹤特性
14.1.3调试和跟蹤特性总结
14.2调试架构
14.2.1CoreSight调试架构
14.2.2处理器调试接口
14.2.3调试连线埠(DP)、访问连线埠(AP)和调试访问连线埠(DAP)
14.2.4跟蹤接口
14.2.5CoreSight的特点
14.3调试模式
14.4调试事件
14.5断点特性
14.6调试部件简介
14.6.1处理器调试支持
14.6.2Flash补丁和断点(FPB)单元
14.6.3数据监视点和跟蹤(DWT)单元
14.6.4指令跟蹤宏单元
14.6.5嵌入式跟蹤宏单元(ETM)
14.6.6跟蹤连线埠接口单元(TPIU)
14.6.7ROM表
14.6.8AHB访问连线埠(AHBAP)
14.7调试操作
14.7.1调试连线
14.7.2Flash编程
14.7.3断点
第15章KeilARM微控制器开发套件入门
15.1简介
15.2典型的程式编译流程
15.3μVision入门
15.4工程选项
15.4.1Device选项
15.4.2Target选项
15.4.3Output选项
15.4.4Listing选项
15.4.5User选项
15.4.6C/C++选项
15.4.7Asm选项
15.4.8Linker选项
15.4.9Debug选项
15.4.10Utilities选项
15.5使用IDE和调试器
15.6使用指令集模拟器
15.7在SRAM中运行程式
15.8最佳化选项
15.9其他信息和要点
15.9.1栈和堆存储大小配置
15.9.2其他信息
第16章IAREmbeddedWorkbenchforARM入门
16.1IAREmbeddedWorkbenchforARM简介
16.2典型的程式编译流程
16.3创建简单的blinky工程
16.4工程选项
16.5提示和要点
第17章GCC入门
17.1GCC工具链
17.2典型开发流程
17.3创建简单的blinky工程
17.4命令行选项简介
17.5Flash编程
17.5.1使用KeilMDKARM
17.5.2使用第三方Flash编程工具
17.6KeilMDKARM和ARM嵌入式处理器GNU工具一起使用
17.7CoIDE和ARM嵌入式处理器GNU工具一起使用
17.8基于gcc的商业版开发组件
17.8.AtollicTrueSTUDIOforARM
17.8.2RedSuite
17.8.3CrossWorksforARM
第18章输入和输出软体实例
18.1产生输出
18.2重定向到指令跟蹤宏单元(ITM)
18.2.1简介
18.2.2KeilMDKARM
18.2.3IAREmbeddedWorkbench
18.2.4GCC
18.3半主机
18.4重定向到外设
第19章使用嵌入式作业系统
19.1嵌入式OS简介
19.1.1什幺是嵌入式OS
19.1.2何时使用嵌入式OS
19.1.3CMSISRTOS的作用
19.2KeilRTXRealTimeKernel
19.2.1关于RTX
19.2.2特性简介
19.2.3RTX和CMSISRTOS
19.2.4执行绪
19.3CMSISRTOS实例
19.3.1具有两个执行绪的简单CMSISRTOS
19.3.2执行绪间通信简介
19.3.3信号事件通信
19.3.4互斥体(MUTEX)
19.3.5信号量
19.3.6讯息伫列
19.3.7邮件伫列
19.3.8记忆体池管理特性
19.3.9通用等待函式和逾时数值
19.3.10定时器特性
19.3.11访问非特权设备
19.4OS感知调试
19.5疑难解答
19.5.1栈大小和栈对齐
19.5.2特权等级
19.5.3其他问题
第20章彙编和混合语言工程
20.1彙编代码在工程中的使用
20.2C和彙编间的互动
20.3彙编函式的结构
20.4例子
20.4.1ARM工具链的简单例子(KeilMDKARM、DS5)
20.4.2ARM嵌入式处理器GNU工具的简单例子
20.4.3访问特殊暂存器
20.4.4数据存储器
20.4.5Helloworld
20.4.6显示十六进制和十进制的数据
20.4.7NVIC中断控制
20.4.8无符号整数平方根
20.5混合语言工程
20.5.1从彙编中调用C函式
20.5.2从C中调用彙编函式
20.5.3嵌入彙编(KeilMDKARM/ARMDS5professional)
20.5.4内联彙编
20.6内在函式
20.7习语识别
第21章ARMCortexM4和DSP套用
21.1微控制器上的DSP
21.2点积实例
21.3传统DSP处理器的架构
21.4CortexM4的DSP指令
21.4.1暂存器和数据类型
21.4.2小数运算
21.4.3SIMD数据
21.4.4载入和存储指令
21.4.5算术指令
21.4.6CortexM4的一般最佳化策略
21.4.7指令限制
21.5为CortexM4编写最佳化的DSP代码
21.5.1Biquad滤波器
21.5.2快速傅立叶变换
21.5.3FIR滤波器
第22章使用ARMCMSISDSP库
22.1DSP库简介
22.2预构建的二进制代码
22.3函式命令规则
22.4获得帮助
22.5例1:DTMF解调
22.5.1产生正弦波
22.5.2使用FIR滤波器进行解析
22.5.3使用FFT进行解析
22.5.4使用Biquad滤波器进行解析
22.5.5DTMF示例代码
22.6例2:最小二乘法运动跟蹤
第23章高级话题
23.1决断和跳转
23.1.1条件跳转
23.1.2複杂的判决树
23.2性能考虑
23.3双字栈对齐
23.4信号量设计的各种方法
23.4.1用SVC服务实现信号量
23.4.2使用位段实现信号量
23.5非基本执行绪使能
23.6中断服务的重入
23.7C语言实现的位数据处理
23.8启动代码
23.9栈溢出检测
23.9.1工具链的栈分析
23.9.2栈的测试分析
23.9.3根据栈布局检测栈溢出
23.9.4使用MPU
23.9.5使用DWT和调试监控异常
23.9.6OS上下文切换中的栈检查
23.10Flash补丁特性
23.11CortexM3和CortexM4处理器的版本
23.11.1简介
23.11.2CortexM3r0p0到r1p0/r1p1的变动
23.11.3CortexM3r1p1到r2p0的变动
23.11.4CortexM3r2p0到r2p1的变动
23.11.5CortexM4r0p0到r0p1的变动
第24章软体移植
24.1简介
24.2从8位/16位MCU移植到CortexMMCU
24.2.1架构差异
24.2.2一般调整
24.2.3存储器大小需求
24.2.48位或16位微控制器不再适用的最佳化
24.2.5例子:从8051移植到ARMCortexM
24.3从ARM7TDMI到CortexM3/M4的软体移植
24.3.1硬体差异简介
24.3.2彙编语言档案
24.3.3C语言档案
24.3.4预编译的目标档案和库
24.3.5最佳化
24.4不同CortexM处理器间的软体移植
24.4.1不同CortexM处理器间的差异
24.4.2所需的软体变动
24.4.3嵌入式OS
24.4.4创建CortexM处理器的可移植程式代码
搜索
热门图片
最近更新
随机推荐

Powered By 种豆资源网||