Cortex-M3/M4学习随笔——一些处理器基本信息

news/2024/11/25 14:39:14/

cortex-m3和cortex-m4处理器的一般信息

处理器类型

ARM Cortex-M为32位RISC处理器,具有以下特征:

1.32位寄存器

2.32位内部数据通路

3.32位总线接口

当然,除了32位数据,Cortex-M处理器(以及其他任何ARM处理器)还可以高效地处理8位和16位数据。Cortex-M3/M4处理器还支持涉及64位数据的多种运算。

Cortex-M3/M4处理器都具有三级流水线(取指、译码、执行),它们都基于哈佛总线架构,取指令和数据访问可以同时执行。

ARM Cortex-M处理器的存储器系统使用32位寻址,地址空间最大位4GB。存储器映射是一致的,这就意味着尽管总线接口多个,4GB存储空间却只有一个。存储器空间包括程序代码、数据、外设以及处理器内的调试支持部件。许多嵌入式系统需要的存储器不超过1MB,32位的寻址能力可以确保将来升级和拓展的可能

与其他任何ARM处理器相同,Cortex-M处理器基于一种加载-存储架构。若处理的是存储器中的数据,就需要将其从存储器加载到寄存器组中的寄存器里。在处理器处理完成后,若有必要,还要写回存储器。

处理器架构

对于ARM处理器,架构一般指两个方面:

  1. 架构。指令集架构(ISA)、编程模型以及调试方法

  1. 微架构。接口信号、指令执行时序以及流水线阶段等实现相关的细节,微架构为处理器设计相关的。

从理论上来说。在开发Cortex-M产品的软件时,开发人员无须了解微架构的任何信息。不过,在有些情况下,知道一些微架构的细节可能会有帮助,尤其是在优化软件或C编译器以获得最佳性能时。

指令集

Cortex-M处理器使用的指令集名为Thumb(其中包括16位Thumb指令和更新的32位Thumb指令),Cortex-M3/M4处理器用到了Thumb-2技术,它允许16位和32位指令混合使用,以获取更加的代码密度和效率。

ARM7TDMI等经典的ARM处理器具有两种操作状态:32位的ARM状态和16位的Thumb状态。在ARM状态,内核能够以很高的性能执行所有支持的指令;而对于Thumb状态,指令是16位的,这样可以获得更好的代码密度,不过Thumb指令不具有ARM指令的所有功能,要完成特定操作,需要更多的指令。

要同时得到两者的优势,许多经典ARM处理器的应用程序混合使用了ARM和Thumb代码。不过并不理想,它会带来状态切换间的开销,两种状态的分离还增加了软件变异过程的复杂度。

随着Thumb-2技术的引入,Thumb指令被扩展为16位和32位两种解码方式。现在,无须再两个不同状态间切换就可以满足所有需求。事实上,Cortex-M处理器根本不支持32位的ARM指令,甚至中断处理都可以完全在Thumb状态中实现。利用Thumb-2技术与经典的ARM处理器相比,Cortex-M处理器具有诸多优势。例如:

  1. 无状态切换开销,节省执行时间和指令空间

  1. 无须指定源文件中的ARM状态或Thumb状态,开发软件也相对容易

  1. 在获得最佳的代码密度和效率的同时,还能很容易达到高性能

  1. 利用Thumb-2技术,与ARM7TDMI等经典处理器相比,Thumb指令集已经得到了很大的拓展。

模块框图

图 Cortex-M3/M4处理器框图

存储器系统

Cortex-M3/M4处理器本身并不包含存储器,但他们具有通用的片上总线接口,因此,微控制器供应商可以将他们自己的存储器系统添加到系统中。一般来说,微控制器供应商需要将下面的部件添加到存储器系统中:

  • 程序存储器,一般是Flash。

  • 数据存储器,一般是SRAM。

  • 外设。

Cortex-M处理器的总线接口为32位宽,其基于高级微控制器总线架构(AMBA)标准。Cortex-M3/M4处理器主要使用的总线接口协议为AHB Lite,它用于程序存储器和系统总线接口。AHB Lite协议为流水线结构的总线协议,可以在低硬件成本下实现高运行频率。

中断和异常支持

Cortex-M3/M4处理器中存在一个名为NVIC的中断控制器,它是可编程的且其寄存器经过了存储器映射。NVIC的地址固定,而且NVIC的编程模型对于所有的Cortex-M处理器都是一致的。

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


http://www.ppmy.cn/news/427008.html

相关文章

Arm Cortex-M3 MCU性能

Arm Cortex-M3 MCU性能 基于ARM Cortex-M和RISC-V内核,研发出来了产品组合和全面的软硬件支持。 Arm Cortex-M3 MCU 基于Arm Cortex-M3内核的32位通用微控制器(MCU)。 GD32F101/103系列 • GD32F101为基本型 • GD32F103为增强型 • 高达108MHz主频 • 16K~3M Fla…

Cortex内核的比较(M3和M4)

** Cortex内核的比较(M3和M4) ** 一、开发板资源描述 二、STM32总结 1、stm32是基于ARM内核的32位MCU。 2、高性能、低电压、低功耗。 3、简单易用,自由,低风险。 三、Cortex内核的比较 四、Cortex-M4内核 五、M3和M4内核的比较…

Cortex-M3微处理器

Cortex-M3系列微处理器应用:专们3为那些对成本和功耗非常敏感但同时又对性能有较高要求的应用而设计的。 其核心是基于哈佛架构的三级流水线内核。 该内核基于最新的ARMv7架构,采用Thumb-2指令集,继承了分支预测,单周期乘法&#…

Cortex-M3/M4(1)-处理器概述

CortexM3/M4处理器概述 1.前言2. 什么是Cortex-M处理器?2.1 是什么处理器2.2 Cortex-M处理器由来2.3 Cortex-M特点2.4 Cortex-M应用 3.处理器信息3.1 架构3.2 指令集3.3 存储器系统 参考文献 1.前言 基于Cortex-M3/M4的控制器应用广泛,正好受领导之意要…

AX9000利用docker实现迅雷远程下载2

高级容器设置参考我1的设置AX9000利用docker实现迅雷远程下载1 只需选择 cnk3x/xunlei 设置覆写 run /xunlei/xlp其他设置看我的1的设置即可。

迅雷远程服务器连接失败是什么原因,迅雷远程页面常见错误码及处理.docx

这是关于磊科路由器产品远程下载页面常见错误以及处理方法的一则规范性文件,对于用户有着极大的实用意义。 磊科迅雷远程页面常见错误码及处理107一般是创建文件或写数据失败。FAT32的U盘创建大于4G的会报这个错误,FAT32不支持创建大于4G文件。NTFS硬盘有…

WD My Cloud安装迅雷远程下载固件

以下内容转载自ljl0878,感谢技术分享 《WDMycloud安装迅雷固件》 准备工具:putty、WinSCP(或者FlashFax均可) 下载迅雷远程下载固件,下载地址(我下载的是Xware1.0.4 里面的Xware1.0.4_armel_v5te ) 解压后得到EmbedThunderManager、ETMDaemon、portal三个文件。 安装方法…

pandorabox安装迅雷远程下载插件

下载或直接通过opkg在线安装luci-app-xunlei,链接:http://pan.baidu.com/s/1qYB4gDe 密码:13tq 不要安装到U盘,否则页面上不会显示“迅雷远程下载”项 安装完后进行配置 使能xunlei启动项 然后把云盘里的Xware1.0.30_mipsel_32_uc…