Cortex-M3与M4权威指南

处理器类型

所有的ARM Cortex-M 处理器是32位的精简指令集处理器。它们有:

  • 32位寄存器
  • 32位内部数据路径
  • 32位总线接口

除了32位数据,Cortex-M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作(例如,乘法、累加)。

Cortex-M3和Cortex-M4处理器都有一个三阶段的流水线设计(指令获取、解码和执行),都有一个哈佛总线架构,允许同时获取指令和数据访问。

ARM Cortex-M处理器的内存系统使用32位寻址,这允许最大4GB的地址空间。内存映射是统一的,这意味着虽然可以有多个总线接口,但只有一个4GB的内存空间。内存空间由处理器内的程序代码、数据、外设和一些调试支持组件使用。

就像任何其它ARM处理器一样,Cortex-M处理器基于负载存储架构。这意味着需要从内存加载数据,处理数据,然后使用许多单独的指令将数据写回内存。

例如,要增加存储在SRAM中的数据值,处理器需要使用一条指令从SRAM读取数据并将其放入处理器内部的寄存器中,第二条指令增加寄存器的值,然后第三条指令将该值写回内存。处理器内部寄存器的详细信息通常被称为程序员模型。

处理器体系架构

处理器只是微控制器芯片的一部分。
存储系统、外设和各种接口功能由微控制器供应商开发。
在ARM处理器中,架构可以分为两个区域:

  • 体系结构:指令集体系结构(ISA),程序员模型(软件看到的)和调试方法(调试器看到的)。
  • 微体系结构:特定于实现的细节,如接口信号、指令执行时间、管道阶段。微体系结构是特定于处理器设计的。

指令集

Cortex-M处理器使用的指令集被称为Thumb(这包括16位的Thumb指令和更新的32位指令)。
M3和M4处理器集成了Thumb-2技术,允许16位和32位指令,以实现高代码密度和高效率。

经典的ARM处理器,例如ARM7TDMI,处理器有两种运行状态:一个32位的ARM状态和一个16位的Thumb状态。
在ARM状态下,指令是32位的,内核可以以非常高的性能执行所有支持的指令。
在Thumb状态下,指令是16位的,提供了很好的代码密度,但Thumb指令不具备ARM指令的所有功能,可能需要更多的指令来完成某些类型的操作。

为了获得两者的优势,许多经典ARM处理器的应用程序混合了ARM和Thumb代码。
然而,混合代码安排并不总是理想地工作。存在开销(在执行时间和指令数)。
在这里插入图片描述
在状态之间切换,以及两种状态的分离会增加软件编译过程的复杂性,并且使没有经验的开发人员更难优化软件。

随着Thumb-2技术的引入,Thumb指令集已经扩展到支持16位和32位指令编码。
现在,无需两种不同的操作状态之间切换,就可以处理所有的要求。
实际上,Cortex-M处理器根本不支持32位ARM指令。甚至中断处理也完全在Thumb状态下处理,而在经典ARM处理器中,中断处理程序进入ARM状态。
采用Thumb-2技术,Cortex-M处理器与经典ARM处理器相比具有许多优势,例如:

  • 没有状态切换开销,节省了执行时间和指令空间
  • 不需要在源文件中指定ARM状态或Thumb状态,使软件开发更容易
  • 这样更容易同时获得最佳的代码密度、效率和性能
  • 使用Thumb-2技术,与ARM7TDMI等经典处理器相比,Thumb指令集得到了很大的扩展。请注意,尽管所有的Cortex-M处理器都支持Thumb-2技术,但它们实现了Thumb ISA的不同子集。

框图

从高层角度来看,Cortex-M3和M4非常相似。
尽管在内部数据路径设计上存在显著差异,但处理器的某些部分(如指令预取缓冲区,部分指令解码和执行阶段)以及NVIC也彼此相似。
此外,“核心”层之外的组件几乎是相同的。

Cortex-M3和Cortex-M4处理器包含处理器的核心、嵌套矢量中断控制器(NVIC)、SysTick计时器和可选的浮点单元(用于Cortex-M4)。除了这些,处理器还包含:一些内部总线系统,一个可行的内存保护单元(MPU)和一组支持软件调试操作的组件。

Cortex-M3和Cortex-M4处理器是高度可配置的。例如,调试功能是可选的,如果产品中不需要调试支持,则允许片上系统设计人员删除调试组件。这使得设计的硅面积大大减少。在某些情况下,硅设计人员还可以选择减少硬件指令断点和数据观察点比较器的数量,以减少栅极计数。许多系统特性,如中断输入的数量、支持的中断优先级的数量和MPU也是可配置的。

内存系统

Cortex-M3和M4处理器本身不包括内存(即,它们没有程序内存,SRAM或缓存)。
相反,它们带有通用的片上总线接口,因此微控制器供应商可以在其设计中添加自己的存储系统。
通常,微控制器供应商需要向内存系统添加以下项目:

  • 程序存储器,通常是闪存。
  • 数据存储器,通常是SRAM
  • 外设

这样,不同的微控制器产品可以有不同的内存配置,不同的内存大小和类型,以及不同的外设。

Cortex-M处理器的总线接口是32位的,基于高级微控制器总线体系结构(AMBA)标准。
AMBA包含几个总线协议规范的集合。
AMBA规范可以从ARM网站获得。

Cortex-M3和M4处理器使用的主要总线接口是AHB Lite(高级高性能总线),用于程序内存和系统总线接口。
AHB Lite协议是一种流水线总线协议,允许高工作频率和低硬件面积成本。
另一种使用的总线协议是高级外围总线(APB)接口。

中断和异常支持

Cortex-M3/M4处理器包括一个嵌套向量中断控制器。它是可编程的,它的寄存器是内存映射的。NVIC的地址位置是固定的,程序员的NVIC模型在所有Cortex-M处理器中是一致的。

除了来自外设和其他外部输入的中断外,NVIC还支持许多系统异常,包括处理器内的不可屏蔽中断(NMI)和其他异常源。

微控制器供应商可以决定NVIC应该提供多少中断信号,以及NVIC设计中支持多少可编程中断优先级。

Cortex-M4特有的功能

Cortex-M4处理器在很多方面与Cortex-M3非常相似。然而,它有许多Cortex-M3没有的功能。这包括DSP扩展和可选的单精度浮点单元。

  • 30
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ARM Cortex-M3Cortex-M4权威指南高清版 姚文祥、吴常玉、曹孟娟、王丽红编写的《ARM Cortex-M3Cortex-M4权威指南(第3版)》经过了全 新修订:增加了ARM Cortex—M4l处理器的信息;对 ARM cortex一M3处理器的讲解进行了*新;对于ARM Cortex—M3和ARM Cortex—M4进行了比较,方便其 他多种处理器架构移植到ARMCortex—M3和ARM cortex—M4。本版的其他修订细节如下: 新增了论述。DSP特性和CMSIS一DSP软件库的两 章内容,介绍了DSP的基础知识以及如何编写Cortex —M4 的DSP软件,其中包括使用CMSIS—DsP库的实例 以及cortex—M4的DsP陛能方面的知识。   新增了介绍cortex—M4浮点单元及其使用的一章 内容。   新增了介绍嵌入式操作系统的使用(基于CMSIs— RTOS)以及支持嵌入式操作系统的处理器特性的一章 内容。   多种调试技术以及疑难解答。   从其他处理器进行软件移植的内容。   此外,本书介绍了ARM架构的背景知识以及指令 集、中断处理等处理器特性,并描述了如何设置并利 用存储器保护单元(MPu)等可用的高级特性。书中论 述Keil MDK、IAR EWARM、gcc以及CooCoxCoIDE工具 入门的章节可以给初学者在编写程序代码方面提供一 些帮助,其中也包括一些重要的软件开发问题,比如 低功耗特性的使用、信息输入/输出的处理、汇编和 c语言的混合编程及其他高级技术话题。
《ARM Cortex-M3Cortex-M4权威指南》是一本关于ARM Cortex-M3Cortex-M4处理器的权威性书籍,由Joseph Yiu所著。本书全面介绍了ARM Cortex-M3Cortex-M4这两种处理器的体系结构、指令集、应用设计实例等内容,是研究这两款处理器的必备手册和高质量参考资料。 本书首先介绍了ARM Cortex-M3Cortex-M4处理器的体系结构,包括CPU核心、内存、外设接口等方面,并深入解析了这两款处理器的指令集,包括基本指令、数据处理指令、浮点运算指令等。此外,本书还详细介绍了由Cortex-M3Cortex-M4构成的微控制器的设计,为读者提供了一系列典型的应用示例,使读者能够更好地了解这两款处理器的应用场景和实际应用荣誉。 此外,《ARM Cortex-M3Cortex-M4权威指南》在讲解ARM Cortex-M3Cortex-M4的过程中,还介绍了具体的编程技巧和调试方法。对于从事嵌入式系统开发的读者而言,这些内容非常有价值。读者不仅能够学习到ARM Cortex-M3Cortex-M4的基本知识,还能够掌握相关开发技巧和工具的使用方法。 总之,《ARM Cortex-M3Cortex-M4权威指南》是一本十分优秀的书籍,为读者提供了全面介绍ARM Cortex-M3Cortex-M4处理器的基础知识,让读者能够更快地了解这两款处理器的特性和应用场景,并使读者能够根据自己的需求来进行开发和应用。该书值得广大嵌入式开发人员的阅读和借鉴。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼干饼干圆又圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值