ARMv7-A,ARMv7-R和ARMv7-M之间有什么区别?

本文旨在描述一些主要的差异。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
 

你可能感兴趣的:(【armV7】)