CORTEX-M4知识点总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Cortex-M4内核知识点总结

目录

Cortex-M4内核知识点总结 (1)

1 ARM处理器简介 (4)

2 架构 (5)

2.1架构简介 (5)

2.2编程模型 (5)

2.3存储器系统 (8)

2.4复位和复位流程 (12)

3 指令集 (14)

3.1 CM4指令集特点 (14)

3.2 Cortex-M处理器间的指令集比较 (14)

3.3 汇编指令简要介绍 (14)

3.3.1 处理器内传送数据 (14)

3.3.2 存储器访问指令 (15)

3.3.3 算数运算 (16)

3.3.4 逻辑运算 (17)

3.3.5 移位 (17)

3.3.6 异常相关指令 (17)

4 存储器系统 (18)

4.1 存储器外设 (18)

4.2 Bootloader (18)

4.3位段操作 (19)

4.4 存储器大小端 (19)

5 异常和中断 (21)

5.1 中断简介 (21)

5.2异常类型 (21)

5.3 中断管理 (22)

5.4 异常或中断屏蔽寄存器 (23)

5.4.1 PRIMASK (23)

5.4.2 FAULMASK (M0中无) (23)

5.4.3 BASEPRI(M0中无) (23)

5.5 中断状态及中断行为 (23)

5.5.1 中断状态 (23)

5.5.2 中断行为 (24)

5.6 各Cortex-M处理器NVIC差异 (26)

6 异常处理 (28)

6.1 C实现的异常处理 (28)

6.2 栈帧 (28)

6.3 EXC_RETURN (29)

6.4异常流程 (30)

6.4.1 异常进入和压栈 (30)

6.4.2 异常返回和出栈 (31)

7 低功耗和系统控制特性 (32)

7.1 低功耗模式 (32)

7.1 SysTick定时器 (32)

8 OS支持特性 (34)

8.1 OS支持特性简介 (34)

8.2 SVC和PendSV (34)

8.3 实际的上下文切换 (35)

1 ARM处理器简介

ARM处理器的种类很多,从手机上的高端处理器芯片到面向微控制器的芯片,都有ARM的身影。2011年基于ARM处理器的芯片的出货量已经到达79亿。这一章首先对ARM处理器有个简单的了解。

在早期的时候,ARM处理器使用后缀表明特性。例如ARM7TDMI,T表示支持Thumb指令,D表示JTAG,M表示快速乘法器,I则表示嵌入式ICE模块。

近几年,ARM改变处理器的命名方式,统一使用了Cortex处理器的名称。Cortex处理器下分为三类:

·Cortex-A系列:需要处理高端嵌入式系统等复杂应用的应用处理器

·Cortex-R系列:实时、高性能的处理器,面向较高端的实时市场

·Cortex-M系列:面向微控制器和混合信号设计等小型应用,注重低成本、低功耗。

不同系列的处理器使用不同版本的架构

在Cortex-M系列中,进一步都处理器进行了划分

2 架构

2.1架构简介

Cortex-M3和Cortex-M4处理器都是基于ARMv7-M架构。最初ARMv-7M 架构是随着Cortex-M3处理器一同引进的,而在Cortex-M4发布时,架构中又额外增加了新的指令和特性,改进后的架构有时也被称为ARMv7E-M。2.2编程模型

2.2.1操作模式和状态

Cortex-M4处理器包括两种操作状态和模式,还有两种访问等级。

1.操作状态

·调试状态:处理器被暂停后,就会进入调试状态,比如利用调试器触发断点,单步执行等。

·Thumb状态:处理器执行程序代码,它就是处在Thumb状态,因为

Cortex-M4用的是Thumb指令,所以称为Thumb状态,并且在Cortex-M 处理器中已经不支持ARM指令,也就不存在ARM状态。

2.操作模式

·处理模式:执行中断服务程序等异常处理。在处理模式下,处理器总是具有特权访问等级。

·线程模式:执行普通的程序代码。

3.访问等级

·特权访问等级:可以访问处理器中的所有资源。

·非特权访问等级:有些存储器区域无法访问,有些操作也无法使用。

访问等级有特殊寄存器CONTROL 控制。软件可将处理器从特权访问等级转换至非特权访问等级,但反之无法直接转换,需要借助异常机制。

处理器的操作模式和状态可由图1.1来表示,在上电后,默认处于特权线程模式下的Thumb 状态。

2.2.2 寄存器

对于ARM 架构来讲,处理存储器中的数据时,需将其从存储器加载到寄存器中,处理完毕后,若有必要,还可以再写回存储器。这种方式被称作“加载-存储架构”(LOAD -STORE)。

Cortex -M4处理器的寄存器组中有16个寄存器,其中包括13个通用寄存器和3个有特殊用途的寄存器。

1 通用寄存器R0-R12

R0-R7被称作低寄存器,许多16位指令只能访问低寄存器。R8-R12称作高寄存器,可用32位指令和几个16位指令访问。R0-R12初始值未定义。

2 栈指针R13

R13为栈指针,可通过PUSH 和POP 操作实现栈存储的访问。栈指针包括两个:主栈指针MSP 和进程栈指针PSP 。MSP 为默认指针,复位后或处理模式时只能是MSP ,而PSP 只能在线程模式使用。栈指针的选择有CONTROL 寄存器控制。

MSP 和PSP 的最低两位必须是0,也就是栈指针的地址操作必须4字节对齐。

链接寄存器程序计数器通用寄存器

3 链接寄存器(LR )R14

相关文档
最新文档