| 学习笔记总目录 |
|---|
| 专题一:工作两年再学习嵌入式系列文章-目录 |
| 专题二:直流无刷电机控制从0到1系列文章-目录 |
| 专题三:硬件从0到1从0到1系列文章-目录 |
| 专题四:从0到1写嵌入式操作系统系列文章-目录 |
2.1.概述
Cortex-M3内核是ARM公司开发的CPU内核,它是32位RISC处理器,哈佛结构,3级流水线,内嵌中断向量控制器和SysTick定时器。完全的MCU芯片集成了Cortex-M3内核以及其他组件。这些其他组件通常由IC制造商设计开发。
2.1.1.工作模式和权限级别
2.1.2.通用寄存器
因为CPU有两个级别,所以有两个堆栈,R13是两个寄存器(MSP和PSP)的代号,具体指哪个需要看当前CPU处于什么级别。
2.1.3.程序状态寄存器
2.1.4.异常屏蔽寄存器
2.1.5.压栈和出栈
Cortex-M3使用的是“向下生长的满栈”模式,采用双堆栈机制。
① 压栈操作
② 出栈操作
2.1.6.预定义的存储器映射
具体以芯片的数据手册为准。
- SRAM:片内RAM,用于存放堆栈、变量等数据。
- Code:用于存放可执行代码和常量。
2.1.7.系统异常向量表
2.1.8.进入异常
2.1.9.退出异常
2.1.10.复位异常响应
2.1.11.PendSV异常
在PendSV中执行RTOS上下文切换,即不同任务间的切换;将这个异常配置为最低优先级,上下文切换的请求将自动延迟到其他ISR都完成后才处理,并且可以被其它异常或中断抢占。
2.2.汇编指令
Cortex-M3使用的是Thumb-2指令集,长度可以是16bit或32bit;指令可以携带后缀。
2.2.1.典型写法
2.2.2.指令分类
2.2.3.存储器访问
2.2.4.批量存储器访问
2.2.5.访问特殊功能寄存器
MRS和MSR用于访问xPSR、PSP、MSP等特殊功能寄存器。