2021-10-30

本文深入解析Cortex-M3处理器的核心架构,涵盖三级管道、编程模型(寄存器与PSR)、Thumb-2指令集、运行模式(Thread与Handler)、非对齐存储接口等内容,适合理解嵌入式CPU工作原理的开发者。
摘要由CSDN通过智能技术生成

学习笔记(一)ARM Cortex-M3的内核架构

ARM Cortex-M3的内核架构

1、 Cortex-M3 CPU:核心中的核心

在CPU的学习中,涉及到的知识是:管道、编程模型、CPU运行模式、Thumb-2指令集、非对齐存储接口。

管道

三级管道技术
在这里插入图片描述

编程模型

①基于“载入-存储”式的架构。

为了执行数据处理指令,操作数必须装载进一系列的中央寄存器,数据操作必需在这些寄存器中进行,而数据运算的结果会被存储到存储区中。
在这里插入图片描述

②CPU寄存器组

所有程序活动都在CPU寄存器组里面进行,包含了16个32位寄存器。

寄存器R0-R12可以用来保存程序变量
寄存器R13(banked寄存器):保存堆栈指针(也是blanked的含义)
寄存器R14(链接寄存器):在执行跳转指令时保存程序返回地址(实现CPU快速的进出调用程序(如果程序中存在几级嵌套调用,则R14的值会被自动压栈)
寄存器R15(程序计数器(PC)):中央寄存器的一员,可以像对其他寄存器一样对R15进行读/写操作。
在这里插入图片描述

③PSR(Program Status Register,程序状态寄存器)

最高五位是代状态码标志位,一般称为应用程序寄存器(Application Program States Register,APSR)
在这里插入图片描述

④EPSR(Execution Program Status Register,程序执行状态寄存器)

EPSR在PSR中的位置为6-28位,包含三个分区
1、“if then”分区
假设条件为真,置位并且通知CPU处理后续4条指令;反之,4条指令会被当成NOP指令通过管道。
2、“中断可持续指令区”
当一个多周期指令过早的被打断时,中断可持续指令区会将下一步将要装载或存储的多周期指令的存储器编号保存。
3“Thumb指令区”
表示当前内容是ARM指令集还是Thumb指令集,而M3中这一位永远都是1,因为M3只支持Thumb-2指令集。

Cortex-M3 CPU的运行模式

线程(Thread)模式和处理(Handler)模式

运行模式状态堆栈
Handler (一个异常正在处理)私有模式全控制开放OS和异常使用主堆栈
Thread (无异常、执行正常代码)私有/非私有模式主/进程堆栈
系统在复位后,会以最开放的模式运行。无论是线程(Thread)模式和处理(Han
dler)模式,都会在私有模式下进行。
如果使用RTOS,为保证在代码崩溃的时候不危及系统,
可以使Cortex-M3进入一个高级模式,在这种模式里,RTOS或异常处理在Handler
模式下使用私有模式,并且使用主堆栈;而代码使用线程(Thread)模式并且使用
进程堆栈。

Thumb-2指令集

32位指令可以提高运行速度;16位指令可以提高代码密度

非对齐存取接口

ARM7和9的指令集支持使用字节(8位)、半字(16位)、字(32位)和各种有符号(signed)、无符号(unsigned)变量。
Cortex-M3处理器的“位带”技术允许程序标志位写入字或半字变量内部,而不是每个标志位都占用1字节的空间。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值