Cortex-M与Cortex-A处理器运行模式与寄存器组对比

目录

一、运行模式对比

1、Cortex-M运行模式

2、Cortex-A运行模式

二、寄存器组

1、Cortex-M寄存器组

2、Cortex-A寄存器组


一、运行模式对比

1、Cortex-M运行模式

STM32只有两种运行模式,hander模式线程模式。根据操作权限的不同,又分为特权级用户级。为了提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作,处理器支持两种特权级(特权级hander模式、特权级线程模式)

 

不同级别和操作模式下的转换:

 

2、Cortex-A运行模式

Cortex-A就有9种运行模式

 

除了 User(USR)用户模式以外,其它 8种运行模式都是特权模式。这几个运行模式可以通过软件进行任意切换,也可以通过中断或者异常来进行切换。受限的资源就必须进行模式切换。但是用户模式是不能直接进行切换的,用户模式下需要借助异常来完成模式切换,当要切换模式的时候,应用程序可以产生异常,在异常的处理过程中完成处理器模式切换

 

二、寄存器组

1、Cortex-M寄存器组

 

R0-R12:通用寄存器,都是32 位通用寄存器,用于数据操作。但是注意:绝大多数16 位Thumb 指令只能访问R0‐R7,而32 位Thumb‐2 指令可以访问所有寄存器

R13:两个堆栈指针,因此任一时刻只能使用其中的一个

  • 主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程)
  • 进程堆栈指针(PSP):由用户的应用程序代码使用。

R14:连接寄存器,当呼叫一个子程序时,由R14 存储返回地址

R15:程序计数寄存器,指向当前的程序地址。如果修改它的值,就能改变程序的执行流

特殊功能寄存器:Cortex‐M3 还在内核水平上搭载了若干特殊功能寄存器,包括程序状态字寄存器组(PSRs)、中断屏蔽寄存器组(PRIMASK, FAULTMASK, BASEPRI)、控制寄存器(CONTROL)

 

2、Cortex-A寄存器组

Cortex-A架构提供了16个32位的通用寄存器 (R0~R15)供软件使用,前 15个 (R0~R14)可以用作通用的数据存储, R15是程序计数器 PC,用来保存将要执行的指令。 ARM还提供了一个当前程序状态寄存器 CPSR和一个备份程序状态寄存器 SPSR,SPSR寄存器就是 CPSR寄存器的备份。

 

Cortex-A7 有9 种运行模式,每一种运行模式都有一组与之对应的寄存器组。每一种模式可见的寄存器包括15 个通用寄存器(R0~R14)、一两个程序状态寄存器和一个程序计数器PC。在这些寄存器中,有些是所有模式所共用的同一个物理寄存器,有一些是各模式自己所独立拥有的。浅色字体的是与User 模式所共有的寄存器,蓝绿色背景的是各个模式所独有的寄存器。

R0-R7:未备份寄存器,所有的处理器模式下这 8个寄存器都是同一个物理寄存器,在不同的模式下,这8个寄存器中的数据就会被破坏。所以没有特殊用途

R8-R12:备份寄存器,在快速中断模式下 (FIQ)它们对应着 Rx_irq(x=8~12)物理寄存器,其他模式下对应着 Rx(8~12)物理寄存器。

R13:栈指针,一共有 8个物理寄存器,其中一个是用户模式 (User)和系统模式 (Sys)共用的,剩下的 7个分别对应 7种不同的模式。

R14:连接寄存器,当呼叫一个子程序时,由R14 存储返回地址。一共有 7个物理寄存器,其中一个是用户模式 (User)、系统模式 (Sys)和超级监视模式 (Hyp)所共有的,剩下的 6个分别对应 6种不同的模式。

R15:程序计数寄存器,指向当前的程序地址。如果修改它的值,就能改变程序的执行流

CPSR:当前程序状态寄存器。该寄存器包含了条件标志位、中断禁止位、当前处理器模式标志等一些状态位以及一些控制位

总结一下, Cortex-A内核寄存器组成如下:

①、 34个通用寄存器,包括 R15程序计数器 (PC),这些寄存器都是 32位的。

②、 8个状态寄存器,包括 CPSR和 SPSR。

③、 Hyp模式下独有一个 ELR_Hyp寄存器。

 

参考资料:

《Cortex M3权威指南(中文)》

《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.3》

 

 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ARM Cortex-M3和Cortex-M4处理器权威指南是一本针对ARM架构的处理器的详细手册。该指南提供了有关这两款处理器的全面信息,使得读者能够充分了解它们的功能和特点。 首先,该指南介绍了Cortex-M3和Cortex-M4处理器的基本架构。它解释了处理器的不同功能模块,例如中央处理单元(CPU)、内存保护单元(MPU)和系统控制单元(SCU)。此外,该指南还描述了这些处理器所支持的指令集架构和编程模型。 其次,该指南深入探讨了Cortex-M3和Cortex-M4处理器的性能特点。它详细介绍了这两款处理器的时钟频率、Cache大小、浮点运算能力和并行处理能力等关键参数。此外,该指南还讨论了这些处理器在功耗管理、中断处理和异常处理等方面的出色表现。 此外,该指南还提供了丰富的编程指南和示例代码,帮助读者使用Cortex-M3和Cortex-M4处理器进行软件开发。它介绍了处理器的开发工具链、调试和仿真工具,以及软件开发的最佳实践。此外,该指南还解释了处理器的专有指令和寄存器,以及如何充分利用这些功能。 最后,该指南还介绍了Cortex-M3和Cortex-M4处理器的实际应用案例。它列举了一些使用这些处理器开发的典型应用,例如物联网设备、嵌入式系统和工控系统等。此外,该指南还提供了设计和优化这些应用的一些建议和技巧,帮助读者充分利用这些处理器的潜力。 综上所述,ARM Cortex-M3和Cortex-M4处理器权威指南是一本全面的技术手册,为读者提供了关于这些处理器的详尽信息。它涵盖了处理器的架构、性能特点、编程指南和实际应用等方面,是开发人员和研究人员的重要参考资料。 ### 回答2: 《ARM Cortex-M3和Cortex-M4处理器权威指南》是一本深入介绍ARM Cortex-M3和Cortex-M4处理器的权威指南。这本书详细介绍了这两款处理器的架构、特性和应用,对于工程师、开发者和学习者来说,都是一本非常重要和实用的参考书。 首先,该书详细解释了ARM Cortex-M3和Cortex-M4处理器的架构设计和功能,包括处理器的可靠性、性能优化和功耗管理等方面。读者可以深入了解这两款处理器的内部结构和工作原理,有助于在实际应用中充分发挥其优势。 另外,该书还介绍了使用Cortex-M3和Cortex-M4处理器进行嵌入式系统设计的一些最佳实践和技巧。这包括了基本的编程模型、中断处理、低功耗设计和调试方法等方面。读者可以学习到如何有效地开发和优化嵌入式系统,提高系统性能和稳定性。 此外,该书还提供了丰富的实际应用案例和示例代码,以帮助读者更好地理解和掌握Cortex-M3和Cortex-M4处理器的使用。这些案例涵盖了多个应用领域,如物联网、工业控制、医疗设备等,读者可以从中学习到如何将这两款处理器应用到实际项目中。 总之,《ARM Cortex-M3和Cortex-M4处理器权威指南》是一本涵盖了ARM Cortex-M3和Cortex-M4处理器的全面指南。无论是初学者还是有经验的开发者,都可以从中获得宝贵的知识和经验,提高在嵌入式系统设计和开发领域的能力。 ### 回答3: 《ARM Cortex-M3和Cortex-M4处理器权威指南》是一本讲述ARM Cortex-M3和Cortex-M4处理器的权威性指南。ARM Cortex-M系列处理器是一种低功耗、高性能处理器架构,被广泛应用于嵌入式系统。 该指南首先介绍了ARM Cortex-M系列处理器的基本架构和特点。它详细解释了这两个处理器的指令集、寄存器和内存管理单元的功能。读者可以了解不同寄存器的作用和寄存器级别的操作。 在介绍基本架构之后,指南详细描述了Cortex-M3和Cortex-M4处理器心特性和性能差异。读者将了解到Cortex-M4相较于Cortex-M3的新增功能,比如浮点运算单元(FPU)和DSP指令集扩展。这些功能使Cortex-M4更适合用于数字信号处理(DSP)和浮点运算密集型应用。 此外,指南还讨论了Cortex-M3和Cortex-M4的系统设计和软件开发。读者将了解到处理器的时钟和功耗管理、中断控制器的配置、外设接口和调试技术等方面的知识。同时,本指南还提供了开发工具和软件编程模型的指导,帮助读者更好地利用Cortex-M系列处理器进行嵌入式开发。 总之,《ARM Cortex-M3和Cortex-M4处理器权威指南》是一本全面指导读者了解和使用ARM Cortex-M3和Cortex-M4处理器的权威性参考书。无论是硬件工程师还是嵌入式开发人员,都可以从中获得宝贵的知识和指导,提升他们在嵌入式系统开发领域的技术水平。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值