STM32F407学习记录(五)Cortex-M3/M4权威指南:第一章
2026/7/15 3:36:39 网站建设 项目流程

前言:本文章相当于学习笔记,摘录总结。推荐自行观看相关书籍(权威指南)。

1.1什么是ARM Coretex-M处理器

1.1.1Cortex-M3和Cortex-M4处理器

介绍Cortex-M3/M4以及特点

1.1.2Cortex-M处理器家族

Cortex-M3/M4是基于Armv7-M架构。

Cortex-M0/M0+是基于Armv6-M架构。

1.1.3处理器和微控制器的区别

Arm公司不生产微控制器,Arm公司设计处理器,然后授权处理器给其他芯片制造商去设计微控制器,而一个微控制器除了处理器,还包括其他部分,如下图。

1.1.4ARM和微控制器供应商

ARM公司提供处理器的设计源代码给微控制器供应商,微控制器供应商在此基础上二次开发,设计其他部分。

1.1.5选择Cortex-M3和Cortex-M4微控制器

Cortex-M微控制器有很多,从低成本到高性能的多处理器系统。产品中选择哪种微控制器,有很多考虑的因素。

1.2Cortex-M处理器的优势

1.2.1低功耗

1.2.2性能

可以处理许多复杂的应用场景

1.2.3能耗效率

1.2.4代码密度

Thumb ISA(指令集)提供了良好的代码密度,意味着完成相同的任务,所需代码更少,如此对flash的容量需求更少,芯片厂商可以设计更小封装的微控制器。

1.2.5中断

Cortex-M3/M4处理器具有可配置的中断控制器,支持240个中断向量,(8~256)个中断优先级。中断嵌套由硬件自动处理,具有零等待状态存储器的系统的中断等待仅为12个周期。

12个周期指的是从硬件触发中断信号,到CPU执行中断服务程序(ISR)第一条指令,中间只隔了12个CPU时钟周期

具有零等待状态存储器的系统:这是实现“仅12个周期”的前提条件。

为什么会有这个前提条件:

  • 很多单片机内部Flash(闪存)比CPU主频慢,CPU读取指令时需要插入“等待周期”(让CPU干等着)。

  • “零等待”意味着存储器(Flash或SRAM)的速度跟得上CPU,读取指令不需要插入任何等待周期。

  • 正因如此,CPU在响应中断时,取中断向量(去哪个地址执行)、取第一条指令都能无缝衔接,不会因为存储器太慢而把12个周期拖长到几十个周期。

1.2.6易于使用

几乎所有代码都可以用C实现

1.2.7可扩展性

1.2.8调试特性

1.2.9OS支持

1.2.10多种系统特性

1.2.11软件可移植性和可重用性

1.2.12选择(设备、工具和OS等)

1.3ARM Cortex-M处理器应用

1.4ARM处理器和ARM微控制器的资源

1.4.1ARM网站上有什么

ARM参考文献

1.4.2微控制器供应商提供的文档

比如STM32参考手册

1.4.3工具供应商提供的文档

比如keil

1.4.4其他资源

1.5背景和历史

1.5.1ARM简史

1990年成立,除了处理器设计,ARM还提供外设和存储器控制器等系统级IP的授权。

1.5.2ARM处理器的发展

Cortex-M3发布前,ARM处理器已经有很多用在微控制器中,其中最成功的处理器之一为ARM7TDMI处理器。它支持两套指令集(32位ARM指令集、16位Thumb指令集),可同时使用这两套指令集。从那时起,为了应对不同的应用,ARM继续开发新的处理器,例如ARM9、ARM11。在ARM11发布之后,ARM决定将优化的Thumb-2指令集等新技术应用在微控制器和汽车部件等低成本市场上。

ARM通过多样化的CPU,从而扩展产品线,Cortex这以新的处理器名也是因此而来,其包含三类:

  • A类用于高性能的开放应用平台(比如应用在linux、安卓)
  • B类用于需要实时性能的高端嵌入式系统(比如应用在汽车、移动通信基带控制器)
  • M类用于深度嵌入式微控制器系统(比如应用在微控制器和混合信号设计的小型应用)

1.5.3Thumb ISA的架构版本

ARM开发新的处理器、新的指令集,架构特性也不断更新。

一个架构有不同的版本。比如ARMv7架构被分为了3类:

* Cortex-A处理器:ARMv7-A架构。
* Cortex-R处理器:ARMv7-R架构。
* Cortex-M处理器:ARMv7-M 和 ARMv6-M架构。

随着Cortex-M3处理器的成功,另外一种名为ARMv6-M架构也出现了,以满足超低功耗设计的需要。它使用和ARMv7-M架构相同的编程模型和异常处理方法(如NVIC),并且主要使用ARMv6 的Thumb 指令,以降低设计的复杂度。Cortex-M0,Cortex-M0+和Cortex-M1处理器基于ARMv6-M架构。

原先的处理器同时支持32位ARM指令16位Thumb指令,但是需要处理在两种指令状态进行切换。而Thumb-2指令集天生支持16位和32位指令,无需切换。

比如:不支持Thumb-2指令集的处理器在需要处理复杂计算时,就需要切换到ARM状态。

1.5.4处理器命名

1.5.5关于ARM生态系统

个人理解:

ARM架构相当于一个“规范”,规范更新迭代也就是下图:

不同架构支持不同的指令集,比如v7架构支持Thumb-2指令集。

一个架构有不同的版本,相当于特调版本,如:ARMv7-A架构、ARMv7-R架构、ARMv7-M。

处理器就是根据特调版本规范设计出来的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询