MCU内核-第二章 Cortex-M内核介绍
作者&投稿:长于 (若有异议请与网页底部的电邮联系)
首先,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中通过其精巧的架构、严谨的权限管理和高效的服务调用机制,为开发者提供了强大的性能和灵活的控制,确保了系统的稳定性和高效性。
柏莫麝香: 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等等.