Cortex-M3与M4权威指南

发布时间:2024年01月22日

前言

嵌入式市场正在发生一场大革命:现在大多数新的微控制器都基于ARM架构,特别是流行的Cortex-M3和Cortex-M4处理器。

许多设备都将基于Cortex-M3和Cortex-M4微控制器,可能只使用一个小电池甚至能量收集作为电源。

今天使用基于ARM Cortex-M3和Cortex-M4处理器的设备是很简单的,因为有大量的开发工具、调试实用程序和许多示例项目可用。
然而,编写高效的应用程序可能需要对硬件架构和软件模型有深入的了解。
提供深入了解流行的软件开发工具以及基于Cortex微控制器软件接口标准(CMSIS)的广泛编程示例。

它还涵盖了Cortex-M4处理器的数字信号处理(DSP)功能和用于与模拟世界接口的CMSIS-DSP库。

什么是ARM Cortex-M处理器?

一般来说,ARM Cortex-M处理器被视为精简指令集计算(RISC)处理器。
但是随着处理器技术的进步,大多数RISC处理器的指令集也变得越来越复杂,以至于传统的RISC和CISC处理器之间的边界定义已经不再适用。

Cortex-M3和Cortex-M4处理器处理器之间有很多相似之处。
大多数指令在两个处理器上都可用,并且处理器具有相同的NVIC,MPU等程序模型。然而,它们的内部设计存在一些差异,这使得Cortex-M4处理器在DSP应用中提供更高的性能,并支持浮点运算。

因此,两个处理器上可用的一些指令可以在Cortex-M4上以更少的时钟周期执行。

Cortex-M处理器家族

在这里插入图片描述
Cortex-M3和Cortex-M4处理器基于ARMv7-M架构。两者都是为微控制器设计的高性能处理器。
由于Cortex-M4处理器具有SIMD,快速MAC和饱和算术指令,因此它还可以执行一些传统上由单独的数字信号处理器(DSP)执行的数字处理应用程序。

Cortex-M0、Cortex-M0 +和Cortex-M1处理器基于ARMv6-M,它的指令集更小。Cortex-M0和Cortex-M0 t在门数方面都非常小,最小配置只有大约12K门2,是低成本微控制器产品的理想选择。Cortex-M0t处理器具有最先进的低功耗优化,并具有更多可用的可选功能。

处理器和微控制器之间的区别

ARM不制造微控制器。
ARM芯片设计师设计需要的处理器和各种组件,并将这些设计授权给各种芯片设计公司,包括微控制器供应商。
通常我们称这些设计为“知识产品”(IP),其商业模式称为IP 许可。

什么是ARM Cortex-M处理器?

在这里插入图片描述
在典型的微控制器设计中,处理器只占用一小部分硅面积。其它区域由存储器、时钟生成(例如锁相环)和分布逻辑、系统总线和外设(硬件,如I/O接口单元、通信接口、定时器、DAC、ADC等)占用。

虽然许多微控制器供应商使用ARM Cortex-M处理器作为它们的CPU,但存储器系统、存储器映射、外设和操作特性(例如时钟速度和电压)可以在不同产品之间完成不同。
这使得微控制器制造商可以在其产品中添加其它功能,并将其产品与市场上的其它产品区分开来。

这本书重点是Cortex-M3和Cortex-M4处理器。
对于完整的微控制器系统设计的细节,例如外设细节,内存影视和I/O引脚分配,仍然需要阅读微控制器供应商提供的参考手册。

ARM以及微控制器供应商

当一家公司获得Cortex-M处理器设计许可后,ARM会用一种名为V erilog-HDL(硬件描述语言)的语言提供处理器的设计源代码。然后,这些公司的设计工程师添加它们自己的设计模块,例如外设和存储器,并使用各种EDA工具将整个设计和各种其它形式转换为晶体管级芯片布局。

挑选Cortex-M3和Cortex-M4微控制器

市场上有各种各样的Cortex-M单片机产品。这些范围从低成本,现成的微控制器产品到芯片上的高性能多处理器系统。
在为产品选择微控制器设备时,有许多因素需要考虑。例如:

  • 外设和接口特性
  • 应用程序的内存大小要求
    在这里插入图片描述
  • 低功耗要求
  • 性能和最大频率
  • 芯片方案
  • 操作条件(电压,温度,电磁干扰)
  • 成本和可用性
  • 软件开发工具支持和开发工具包
  • 未来升级能力
  • 固件包和固件安全性
  • 应用程序说明、设计示例和支持的可用性

关于如何选择最好的微控制器并没有什么黄金法则。所有这些因素都取决于您的目标应用程序以及您的项目情况。

一些因素,如成本和产品可用性,可能会因时而异。

Cortex-M处理器的优势

低功耗
Cortex-M处理器设计也针对低功耗进行了优化。
目前,许多Cortex-M微控制器的功耗低于200mA/MHz,其中一些远低于100mA/MHz。
此外,Cortex-M处理器还支持睡眠模式功能,可与各种先进的超低功耗设计技术一起使用。

性能
Cortex-M3和Cortex-M4处理器可以提供超过3 CoreMark/MHz和1.25 DMIPS/MHz(基于Dhrystone 2.1基准)。这使得Cortex-M3和Cortex-M4微控制器可以处理许多复杂和苛刻的应用。或者,您可以使用慢得多的时钟速度运行应用程序,以减少功耗。

典型的ARM微控制器内部有什么?

微控制器内部有许多不同的东西。
在许多微控制器中,处理器占用的硅面积不到10%,其余的硅模被其他元件占用,如:

  • 程序存储器(如闪存)
  • SRAM
  • 外设
  • 内部总线基础设施
  • 时钟发生器(包括锁相环),复位发生器,以及这些信号的分配网络
  • 电压调节器和电源控制电路
  • 其它模拟元件(如ADC、DAC、电压基准电路)

虽然这些组件中的一些对程序员是直接可见的,但其它一些对软件开发人员可能是不可见的(例如,用于制造测试的支持电路)。

用于系统管理的外设和控制寄存器可以从内存映射中访问。
为了方便软件开发人员,大多数微控制器供应商为它们的微控制器提供C头文件和驱动程序库。
在大多数情况下,这些文件是用Cortex微控制器软件接口标准(CMSIS)开发的,这意味着它使用一组标准化的头文件来访问处理器特性。

调试适配器

在这里插入图片描述
为了将程序代码下载到微控制器,并执行诸如停止和单步进之类的调试操作,您可能需要一个调试适配器来将PC上的USB连接转换为微控制器使用的调试通信协议。

大多数C编译器供应商都有自己的调试适配器产品。例如,Keil?拥有ULINK产品系列(图2.2),IAR提供I-Jet产品。大多数开发套件还支持第三方调试适配器。请注意,不同的供应商可能对这些调试适配器有不同的术语,例如,调试探针、USB-JTAG适配器、JTAG/SW仿真器、JTAG在线仿真器(ICE)等。

一个带有USB调试适配器的开发板的例子:
在这里插入图片描述

软件开发流程

软件开发流程取决于使用的编译器套件。如果正在使用集成开发环境(IDE)的编译器套件,软件开发流程通常包括:

  • 创建项目时,需要创建一个项目,该项目将指定源文件的位置、编译目标、内存配置、编译选项等。许多IDE都有这个步骤的项目创建向导。
  • 添加文件到工程——需要添加项目所需的源代码文件。可能还需要在项目选项中指定任何包含的头文件的路径。
    显然,您可能还需要创建新的程序源代码文件并编写程序。请注意,您应该能够重用设备驱动程序库中的许多文件,以减少编写新文件的工作量。
    这包括启动代码、头文件和一些外围控制函数。
  • 设置项目选项——在大多数情况下,创建的项目文件允许许多项目选项,例如编译器优化选项、内存映射和输出文件类型。根据您拥有的开发板和调试适配器,您可能还需要设置调试和代码下载选项。

在这里插入图片描述

文章来源:https://blog.csdn.net/Caramel_biscuit/article/details/135742692
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。