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