学习笔记总目录
专题一:工作两年再学习嵌入式系列文章-目录
专题二:直流无刷电机控制从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.工作模式和权限级别

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.1.2.通用寄存器

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】
  因为CPU有两个级别,所以有两个堆栈,R13是两个寄存器(MSP和PSP)的代号,具体指哪个需要看当前CPU处于什么级别。

2.1.3.程序状态寄存器

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.1.4.异常屏蔽寄存器

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.1.5.压栈和出栈

  Cortex-M3使用的是“向下生长的满栈”模式,采用双堆栈机制。
① 压栈操作
专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】
② 出栈操作
专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.1.6.预定义的存储器映射

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】
具体以芯片的数据手册为准。

  • SRAM:片内RAM,用于存放堆栈、变量等数据。
  • Code:用于存放可执行代码和常量。

2.1.7.系统异常向量表

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.1.8.进入异常

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.1.9.退出异常

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.1.10.复位异常响应

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.1.11.PendSV异常

  在PendSV中执行RTOS上下文切换,即不同任务间的切换;将这个异常配置为最低优先级,上下文切换的请求将自动延迟到其他ISR都完成后才处理,并且可以被其它异常或中断抢占。
专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.2.汇编指令

  Cortex-M3使用的是Thumb-2指令集,长度可以是16bit或32bit;指令可以携带后缀。

2.2.1.典型写法

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.2.2.指令分类

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.2.3.存储器访问

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.2.4.批量存储器访问

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】
专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.2.5.访问特殊功能寄存器

MRS和MSR用于访问xPSR、PSP、MSP等特殊功能寄存器。
专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.2.6.中断开关

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.2.7.无条件跳转

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.2.8.比较条件跳转

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

2.2.9.逻辑或操作

专题四:从0到1写嵌入式操作系统之 【2.Cortex-M3内核】

相关文章: