Cortex-M0基本情况

ARM Cortex-M0是面向嵌入式系统的32位RISC微控制器内核,基于ARMv6-M架构设计,M0在ARM M系列中属于比较入门的平台。ARM这个名字有点意思,Cortex-A系列(Application Processors,应用处理器):这类处理器针对高性能计算设计,适用于运行复杂操作系统和应用程序的设备。Cortex-R系列(Real-time Processors,实时处理器):这个系列的处理器专注于实时数据处理,对中断响应时间和可靠性的要求非常高,适用于汽车安全系统、硬盘驱动控制器等需要高可靠性和实时响应的应用场景。Cortex-M系列(Microcontroller Processors,微控制器处理器):Cortex-M系列处理器主要用于嵌入式控制系统中,如工业自动化、家用电器、医疗设备以及汽车电子等,这些应用往往需要低功耗、小尺寸和高效能比。
再说回CortexM0,我以前一直有个疑问,M3的优势已经那么明显了为什么还有人用冯诺依曼的CortexM0呢,难道就是便宜?后面工作中经手了一些M0的芯片系统设计,发现它至少有三大优势:性价比高、设计逻辑少以及封装尺寸优势。在一些成本功耗敏感的场景下,比如智能家居、可穿戴设备、物联网设备以及一些快消电子产品上,M0优势尤为突出。

冯诺依曼架构

自己写博文的好处就是,知识点可以持续深挖……
微机常见的两种总线结构,一个是经典的冯诺依曼单总线结构,和改进后的双总线哈佛结构。冯诺依曼架构下,CPU通过一条数据总线访问内存中的指令和数据,也就是在同一时间只能访问指令或者访问数据,需要同时取指令和数据时也只能依次进行,那整效率就降低了。

中断机制
M0支持32个中断请求,包括一个NMI(不可屏蔽中断)、复位(Reset)、硬件异常(HardFault)、以及一些外设的中断请求(I2C、EXTI、UART、Timer等)。程序的中断向量表必须放在首地址,这个应该是硬件设计上的要求,M0也不支持向量表的重定向,假如有多级,如带bootloader的,可能就要考虑向量表共用的问题,要靠软件实现。
M0简化了优先级的概念,所有可配置的中断共享相同的优先级水平,这意味着它们之间不存在优先级差异。但是,有一个固定且不可更改的优先级层次结构用于系统异常,比如复位、NMI和硬故障拥有比普通中断更高的优先级。在处理中断时,如果一个更高优先级的中断发生,当前处理会被暂时挂起,直到更高优先级的中断被服务完毕。

通讯更新

请输入您的电子邮件地址进行订阅

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注