MCU内核-第二章 Cortex-M内核介绍

作者&投稿:长于 (若有异议请与网页底部的电邮联系)
~ 在STM32微控制器的世界里,STM32系列芯片以其强大的性能和丰富的特性吸引着开发者们的目光。其中,Cortex-M系列内核作为核心组件,扮演着至关重要的角色。让我们深入了解一下Cortex-M内核,特别是Cortex-M3这一型号,它在STM32 MCUs中的独特之处。

首先,Cortex-M3内核不仅仅是CPU的引擎,它拥有一个集成的单元,包括NVIC(嵌入式向量中断控制器)和内存接口,以及追踪接口,这些组件协同工作,确保了中断控制的精确性和调试的便捷性。在R0到R15的一系列寄存器中,特别引人注目的是R13,它拥有两个堆栈指针——MSP(模式寄存器堆栈指针)和PSP(程序状态寄存器堆栈指针),它们在异常处理和应用程序执行中起到关键的支撑作用。

寄存器结构同样复杂且精细,如PSRs(程序状态寄存器)控制着ALU标志、中断状态和中断号,中断屏蔽寄存器和控制寄存器则通过特定指令进行访问。Cortex-M3内核设计了两种操作模式——handler(处理程序)和线程,以及两种特权级别,确保了内存访问的安全性,对用户级和系统级空间进行严格的隔离。

存储器管理由MPU(内存保护单元)进行精细控制,用户级权限仅限于自身的空间,禁止触及系统控制和特殊功能寄存器。在异常处理中,MSR(模式选择寄存器)的操作被严格禁止。线程和特权级的切换,如同一场精密的舞蹈,由硬件自动执行,特权级下的处理器可以通过CONTROL[0]指令轻松切换到用户级,而异常处理始终保持在特权级。

系统服务请求和上下文切换的控制则巧妙地通过SVC(系统服务调用)和PendSV(可悬挂服务)来实现。SVC必须即时响应,而PendSV则提供了一种延时执行的可能性,比如在任务A请求切换时,操作系统会暂停PendSV的执行,待任务A完成后再恢复到任务B。在没有操作系统的指令执行过程中,函数间的顺序执行是基础,涉及通用寄存器和程序计数器(PC)的操作,而函数调用则通过LR(链接寄存器)的指令跳转来完成。

函数调用时,R0到R3用于传递参数,LR则负责返回值的处理。在C语言的函数调用流程中,为了保护现场和中断执行,需要保存LR并指向栈指针,恢复现场则在函数返回时进行。在OS中,MSP和PSP作为双堆栈,MSP主要用于内核和异常处理,PSP则专用于应用程序任务。在初始化时,MSP由系统复位值指定,而PSP则在OS的初始化过程中设置。任务切换时,通过操作堆栈指针SP来实现。

总结来说,Cortex-M3内核在STM32 MCUs中通过其精巧的架构、严谨的权限管理和高效的服务调用机制,为开发者提供了强大的性能和灵活的控制,确保了系统的稳定性和高效性。


宜秀区15390427406: CORTEX - M3具体指什么? -
柏莫麝香: ARM公司提出的一种新内核,ARM Cortex系列还有Cortex-A、Cortex-B、Cortex-M系列. Cortex\M3处理器内核是单片机的中央处理单元(CPU).完整的基于CM3的MCU还需要 很多其它组件.在芯片制造商得到CM3处理器内核的使用授权后,它们就可以把CM3内核用 在自己的硅片设计中,添加存储器,外设,I/O以及其它功能块.不同厂家设计出的单片机 会有不同的配置,包括存储器容量、类型、外设等都各具特色

宜秀区15390427406: Cortex - M3的概述 -
柏莫麝香: Cortex-M3是一个32位处理器内核.内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的.CM3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖.这样一来数据访问不再占用指令总线,从而提...

宜秀区15390427406: 怎么学cortex -
柏莫麝香: Cortex只是一个内核,是arm公司出的.在Cortex之前,ARM核都是以ARM为前缀命名的,从ARM1一直到ARM11,之后就是Cortex系列了.Cortex在英语中有大脑皮层的意思,而大脑皮层正是人脑最核心的部分,估计ARM公司如此命名正有此...

宜秀区15390427406: Cortex - M3可支持4GB存储空间,不同区域的划分是怎样的? -
柏莫麝香: Cortex-M3是ARM处理器内核,有多家公司的单片机采用这个内核.它可支持4GB存储空间. 程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内.

宜秀区15390427406: arm cortex - m4内核mcu:哪家的更好? -
柏莫麝香: M4内核目前有多家半导体公司已经设计出了通用芯片,恩智浦的LPC54xx系列、意法的STM32F4xx系列,各有各的优势,比如LPC54xx的特定是有个低功耗的M0+核,STM32F4xx的特点是RAM大,看不同应用场合,合适就好.

宜秀区15390427406: 为什么大家喜欢stm32 -
柏莫麝香: 主要原因有: stm32是32位的Cortex内核MCU,相对于以往的8位、16位的MCU,拥有更高的运算速度及更高的指令执行效率; Cortex-M3内核只有单一固定的存储器映射,这使得软件在各种相同内核的MCU中能方便移植,参考《Cortex-M3权威指南》; stm32在32位的MCU中价格相对较低,性价比高; ST官方提供的资料十分齐全、详细,还提供固件库支持,使用非常方便,能够加快开发进度.

宜秀区15390427406: Cortex - M3 中的3 什么意思 -
柏莫麝香: 这是一个内核名称,叫M3的内核,没有具体其它的意思,楼主不要将其分开理解,还有cortex-M4,像STM32F407系列的都是M4的内核,M3是STM32F10*系列的的...希望对你有用

宜秀区15390427406: 单片机的cpu内核指什么 -
柏莫麝香: 内核主要指架构方面,比如有51内核的,有cortex-m3核等等

宜秀区15390427406: Cortex - A8内核芯片啥意思 -
柏莫麝香: 就是说这芯片的内核采用的是ARM公司设计的Cortex-A8内核.至于片上外设部分则可能是芯片公司自行设计.

宜秀区15390427406: stm32f4属于arm单片机吗 -
柏莫麝香: 是属于ARM系列中的Cortex-M系列的产品.ARM系列根据内核的不同可分为:一、Cortex-A系列面向应用的应用处理器如高通的公版CPU、华为的麒麟、联发科的CPU等等当前手机上大量使用的都使用了Cortex-A系的内核;二、Cortex-R系列,面向实时领域,这个比较少见,多用于工业上对实时要求较高的场合;三、Cortex-M系列内核主要面向低成本高性能的嵌入式领域如Stm32 K40等等.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网