近两年随着电子产品智能需求提升,灵动微通用类MCU需求暴涨,例如仅仅一个智能门就需要三颗MCU如果需要实现无线控制,还需要能支持无线蓝牙的的MCU。而对于低阶机器人来说,就需要23颗MCU ,高阶机器人需要30多颗MCU,此外如果需要机器人有表情,则需要更多MCU,还有如果机器人融入更多情绪功能则需要的MCU还会更多。而Cortex-M3内核MCU是目前使用比较广泛的。MCU目前使用内核常用的有Cortex-M3,Cortex-M0/MO+,Cortex-M4.下面介绍比较常用Cortex-M3的八个知识点
Cortex-M3的八个知识点
1.指令集
32位ARM指令集:对应ARM状态
16位Thumb指令集:对应Thumb状态(是ARM指令集的一个子集)
指令集演进图
2.BKP备份寄存器(42个16位寄存器组成),用来存储用户应用程序数据。在Vdd掉电时由Vbat供电。。在待机复位、系统复位、电源复位后,这些寄存器不会被复位
3.不再像别的ARM7那样从thumb状态和ARM状态来回切换
Thumb-2指令集横空出世,Cortex-M3不支持ARM指令集
4.DMA用来提供外设和存储器以及存储器和存储器之间的高速数据传输,而不需要CPU干预。
当DMA和CM3核同时访问相同的目标(外设或者RAM)时,总线仲裁器会循环调度,确保CM3核得到至少一半的系统总线带宽。
5.Cortex-M3的内核是指MCU的CPU,而完整的MCU还要加上其他外设,如存储器、IO等其他模块。
下图是一个MCU内部组成结构图
6.ARM结构的发展V4(ARM7)、V5(ARM9)、V6(ARM11)、V7A/R/M(Cortex系列)
ARM处理器架构进化史
7.Cortex-M3使用的是Thumb-2指令集:支持16位/32位指令,因此不用再来回切换
8.Cortex-M3为32位处理器内核。存储器机构、寄存器、内部的数据路径都是32位的。采用哈弗结构,拥有独立的指令总线和数据总线,使得指令总线和数据总线并行不悖。但是指令总线和数据总线共享同一个存储器空间。
原文地址:https://blog.51cto.com/14618340/2459626