Cortex-M3/M4(2)-架构

1. 概述

什么是架构?百度百科说软件架构是系统的草图,用来指导软件系统的设计。
我理解,就像公司组织架构一样,根据需求目标,确定整体框架,框架里的每一部分都有各自的职能,部分之间有联系。架构规定了,构成部分,每个部分该做什么事,部分之间如何沟通。
Cortex-M3/M4处理器都是基于ARM-v7架构。

2.Cortex-M架构

Cortex-M架构(架构有的称为体系结构)包括ARM-v6,ARM-v7,ARM-v8和ARM-v8.1,处理器对应的架构如下表。
在这里插入图片描述
对比几种架构如下:
在这里插入图片描述
Cortex-M架构更为详细的信息参照官网:
https://developer.arm.com/architectures/cpu-architecture/m-profile

3. Cortex-M3/M4-架构组成部分

架构将从几个方面进行介绍,包括编程模型,存储器,中断,复位等方面进行,相当于针对组织架构的各部分分别介绍。

3.1 编程模型

编程模型,我理解是一个编程的模板。编程模型将从操作模式状态和寄存器两个方面介绍。

3.1.1 操作模式状态

Cortex-M3/M4处理器有两种操作状态和模式。
1.操作状态
包括调试状态和Thumb状态。
调试状态:处理器被暂停,进入此状态,停止指令执行。
Thumb状态:执行Thumb指令,进入此状态。
Cortex-M处理器在启动后默认处于特权线程模式以及Thumb状态。
在这里插入图片描述
2. 操作模式
操作模式有两种:处理模式和线程模式。
线程模式:执行普通代码
处理模式:主要执行中断服务程序等异常处理。处理模式下,具有特权访问等级(特权访问等级可访问处理器的所有资源,非特权访问等级某些状态不能访问)。

3.1.2 寄存器

这里的寄存器指的是处理器内核里的寄存器,用来对数据进行处理和控制。Cortex-M3/M4处理器的寄存器由寄存器组特殊寄存器浮点寄存器组成。
1)寄存器组
寄存器组有13个32位通用寄存器,3个特殊寄存器,总共16个寄存器。
在这里插入图片描述
栈指针:R13,通过PUSH/POP实现栈存储的访问。栈指针包括两种:主栈指针(MSP)和进程栈指针(PSP),由CONTROL寄存器决定。
MSP:默认的栈指针。用于处理模式。
PSP:用于线程模式。
链接寄存器:R14,用于调用函数或子程序时保存返回地址
程序计数器:可读可写。
2)特殊寄存器
包括程序状态寄存器、中断/异常屏蔽寄存器、控制寄存器。
在这里插入图片描述
程序状态寄存器包括以下三个寄存器

  • 应用状态寄存器(APSR)
  • 执行状态寄存器(EPSR)
  • 中断状态寄存器 (IPSR)

下图是以上状态寄存器位数的定义。
在这里插入图片描述
在这里插入图片描述
中断/异常屏蔽寄存器:

  • PRIMASK: 1位宽的中断屏蔽寄存器,异常优先级最高,为0。
  • FAULTMASK:故障屏蔽寄存器,异常优先级为1。
  • BASEPRI:根据优先级屏蔽。

CONTROL寄存器决定了

  • 栈指针的选择
  • 线程模式的访问,是特权还是非特权。

3)浮点寄存器
主要是指Cortex-M4浮点寄存器。主要包括浮点单元寄存器组和浮点状态寄存器。
在这里插入图片描述

3.2 存储器系统

特点如下:

  • 4GB寻址空间(32位)
  • 被定义的存储器映射
  • 支持大小端存储
  • 存储器保护单元(MPU)
  • 支持非对齐传输
  • 写缓冲

关于存储器映射,为了方便Cortex-M不同系列的移植和重用
4GB的存储空间被划分为以下几种,如下图所示:

  • 代码访问
  • 数据访问
  • 外设
  • 内部控制和调试部件
    在这里插入图片描述

3.3 异常和中断

打断正常执行程序的事件就是异常,中断是异常的一种。异常源有多个,如下所示:
在这里插入图片描述
NVIC:Nested vectoredinterrupt controller嵌套向量中断控制器,作用是管理异常,比较中断优先级,确定异常入口以及屏蔽中断等。
下图是异常类型总结表
在这里插入图片描述在这里插入图片描述

3.4 复位

复位类型有三种:

  • 上电复位。复位微控制器的所有
  • 系统复位。只复位处理器和外设,调试部分不复位
  • 处理器复位。
    复位流程如下:
    在这里插入图片描述
    先读主栈指针2个字,再读复位向量的地址。

参考文献

《ARM Cortex-M3与Cortex-M4权威指南》
《Arm Cortex-M Processor Comparison Table》

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cortex-M3和Cortex-M4是ARM架构的微控制器。它们广泛应用于嵌入式系统和物联网设备中,具有高性能、低功耗和强大的性能优化能力。 Cortex-M3和Cortex-M4使用的指令集是ARMv7-M架构,其中包含了大量的指令,用于实现各种功能和操作。下面是这两种微控制器常用的指令集: 1. 数据处理指令:这些指令用于对数据进行处理和操作,比如加法、减法、移位等。Cortex-M3和Cortex-M4支持32位整数和浮点数的处理指令,可以高效地执行各种数学运算。 2. 控制指令:这些指令用于控制程序的流程,比如条件判断、跳转和函数调用等。Cortex-M3和Cortex-M4支持分支指令、循环指令和中断指令,可以实现灵活的控制流程和异常处理能力。 3. 存储器访问指令:这些指令用于对存储器进行读写操作,包括读取数据、存储数据和移动数据等。Cortex-M3和Cortex-M4支持多种不同的存储器访问指令,包括字节访问、半字访问和字访问等,可以高效地操作各种类型的存储器。 4. 特殊功能寄存器指令:这些指令用于对特殊功能寄存器进行读写操作,包括配置系统控制寄存器、中断寄存器和电源管理寄存器等。Cortex-M3和Cortex-M4提供了一套完整的特殊功能寄存器指令集,方便对系统进行配置和管理。 总结来说,Cortex-M3和Cortex-M4常用的指令集主要包括数据处理指令、控制指令、存储器访问指令和特殊功能寄存器指令。这些指令可以满足微控制器在嵌入式系统和物联网设备中的各种需求,实现高效、低功耗的数据处理和控制功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值