导图社区 Cortex-M4处理器
计算机原理思维导图笔记,关于Cortex-M4处理器部分的内容,作为复习和预习使用。
计算机原理:四、ARM编程。这部分内容对于很多人来说都是拦路虎,这个由我亲自制作的思维导图希望会对你的学习有所帮助!喜欢的话请给我点个赞吧!
半导体存储器一般指半导体集成存储器。用半导体集成电路工艺制成的存储数据信息的固态电子器件。简称半导体存储器。
数字信号处理第三章的内容,讲述了离散傅里叶的快速计算等内容。
社区模板帮助中心,点此进入>>
互联网9大思维
安全教育的重要性
组织架构-单商户商城webAPP 思维导图。
个人日常活动安排思维导图
域控上线
西游记主要人物性格分析
17种头脑风暴法
python思维导图
css
CSS
Cortex-M4处理器
Cortex-M4处理器编程模型
Cortex-M4处理器工作状态和模式
两种处理器工作状态
调试状态
Thumb状态
处理器工作模式
线程模式(Thread Mode)特权用户均有
处理模式(Handler Mode)仅特权级
权限
用户级
特权级
寄存器
通用寄存器(R0-R12)
R0~R7 (低寄存器): 可以被大多数 16-bit Thumb 指令和所有 32-bit Thumb-2 指令访问。
可以被所有 Thumb-2 指令和少数 16- bit Thumb访问。
堆栈指针(R13)
主堆栈指针(MSP):用于处理模式
初始值则需要在复位流程中从存储器的第一个字中取出
进程堆栈指针(PSP):用于线程模式
初始值未定义
链接寄存器LR(R13)
当子程序或函数被调用时,LR用来保存返回的地址
程序计数器PC (R15)
指向“正在取指”的指令,是可读写的
读操作返回的是当前指令地址+4;写 PC会引起程序的跳转操作。
特殊功能寄存器
程序状态寄存器 (PSRs)
应用状态寄存器PSR (APSR):保存当前指令运算结果的状态
N负数或小于标志
1:负数或小于
0:正数或大于
Z零标志
1:为0
0:为1
C进位借位
1:进位或减法不借位
0:不进位或借位
V溢出
1:溢出
2:不溢出
Q置顶饱和
达到上限置1
中断状态寄存器PSR (IPSR):保存当前中断的向量号。
包含当前激活的异常的中断服务寄存器ISR的编号
执行状态寄存器PSR (EPSR) [ICI/IT: ICI指令/IT指令状态位;T总为1
中断屏蔽寄存器
中断屏蔽寄存器( PRIMASK )(1位)
1:所有中断被屏蔽(除 NMI(不可屏蔽中断)和HardFault(硬件默认异常)异常)
0:中断正常响应。只有最低位有效。
异常关闭寄存器( FaultMASK )(1位)
1:除NMI外所有异常被屏蔽
0:异常能正常响应。只有最低位有效
BASEPRI(最多有9位)
优先级号大于/等于阀值的中断被屏蔽。 (号数越大,优先级越低) 一共255个。
控制寄存器 (CONTROL)2位
CONTROL[0]
1:用户级
0:特权级
处理模式下只能为0
CONTROL[1]
0:只使用MSP
1:用PSP
存储器组织
存储器系统特性
4GB,32为寻址
存储器映射是预定义的
支持小端和大端的存储器系统
支持非对齐传输
存储器映射
程序代码访问(如CODE区域)
数据访问(如SRAM区域)
外设(如外设区域)
处理器的内部控制和调试部件(如私有外设总线)
各个存储段
Code段
主要用于程序代码,也用于异常向量表
片上SRAM段
数据存储器。
栈内存操作(堆栈)
1. 临时存储寄存器(寄存器组中)中的数据。
2. 用于向函数或子程序中传递参数。
3. 用于存储局部变量。
4. 当中断等异常产生时用于保存处理器状态和寄存器数值。
分类
MSP
PSP
异常和中断
定义
异常:当内核产生复位、存取失败、遇到未定义指令时,正常执行的程序被暂 停,转到相应的处理程序执行称之为异常。每个异常对应一个异常处理程序。
中断:当处理器内核的外部发生某一事件,产生触发信号,引起CPU暂停当前执行的程序,转去执行处理相应事件的程序
嵌套向量中断控制器NVIC
处理Cortex-M4处理器中的异常
中断配置
优先级
中断屏蔽。
异常向量表
1、Cortex-M4处理器向量表中的每个元素代表一个异常类型处理程序的起始地址,每个起始地址占一个字,即4个字节。 2、向量表的存储位置是可以设置的,通过NVIC中的一个重定位寄存器来指出向量表的地址。 3、复位后,重定位寄存器的值默认为0,向量表则位于地址0x0处,用于初始时的异常分配。
复位和复位流程
类型
大类
内核复位是指只复位处理器,不复位 外设寄存器。
系统复位是既复位处理器,又复位外设寄存器
对于cortexM4
上电复位
系统复位
处理器复位
处理
从地址 0x0000 0000 处读取MSP的初始值。
从地址 0x0000 0004 处读取程序计数器PC的初始值
11个系统异常,和最多240个外部中断 由外设产生的中断信号,除了SysTick之外,全都连接到NVIC 的中断输入信号线。
CM4允许多个异常同时发生,并按固定的优先级进行处理