本文旨在描述一些主要的差异。M profile和A/R profile之间有很多不同之处。 ARMv7-M中的基本差异如下:
- 不支持ARM指令集(仅支持Thumb指令集)。
- 只有两种操作模式(线程(Thread )模式和处理程序(Handler )模式)。
- 不可配置,固定的默认内存映射(如在ARMv7-R中,但配置不同)。
- 可选内存保护单元(MPU)支持(ARMv7-R中需要)用于可配置内存映射(不支持与ARMv7-A类似的内存管理单元(MMU)支持)。
- 默认情况下不支持协处理器(除了为可选浮点扩展保留的协处理器10和11之外),例如,没有类似ARMv7-AR协处理器15的行为;所有的处理器配置,状态报告和控制寄存器都是内存映射的。
- 中断控制器(嵌套向量中断控制器NVIC)是处理器的一部分。
- NMI(不可屏蔽中断)。
- 状态在异常进入/返回时自动保存/恢复。
- 向量表包含地址,而不是指令。
- 异常处理程序可以很容易地用C进行编程
- Debug针对微控制器应用进行了优化。
- 另外,在ARMv7-M参考手册的修订版E之前,内部缓存是不允许的。
此外,A profile和R profile还提供了很多高级的功能和扩展,这些功能在ARMv7-M中不可用,例如:
- 高级SIMD扩展(以NEON™命名)。
- 性能监视器扩展(用于高级调试/性能分析)。
- 虚拟化扩展(用于虚拟平台支持)。
A profile还提供了安全扩展(以TrustZone®命名)。
原文
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka16827.html
转载链接:https://www.jianshu.com/p/4bd8253dfa8f