文章结构

  • 一、 ARM芯片主要类别
  • 二、ARM Cortex-M3简介
    • 1.Cortex-M3功能说明
    • 2.Cortex M3的总线接口
    • 3.寄存器组说明
      • (1)低组寄存器,高组寄存器
      • (2)堆栈指针R13:
      • (3)链接寄存器R14
      • (4)程序计数寄存器R15
      • (5)特殊功能寄存器

一、 ARM芯片主要类别



ARM7、ARM9、ARM11, ARM芯片主要用于嵌入式微处理器功能

Cortex-M系列处理器主要是针对微控制器领域开发的,在该领域中,既需进行快速且具有高确定性的中断管理,又需将门数和功耗控制在最低。应用包括:混合信号设备、智能传感器、汽车电子等广泛微控制器方案应用领域。

Cortex-R,A–微处理器实时处理器为要求可靠性、高可用性、容错功能、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。

1.一些相关名词-各类架构下比较重要的技术或者功能。
VFP:浮点体系结构 (VFP:Vector Floating Point)为半精度、单精度和双精度浮点运算中的浮点操作提供硬件支持。为汽车动力系统、车身控制应用和图像应用(如打印中的缩放、转换和字体生成以及图形中的 3D 转换、FFT 和过滤)中使用的浮点运算提供增强的性能。

SIMD:当前的智能手机和 Internet 设备必须提供高级媒体和图形性能,才具有竞争力。ARMv6 和 ARMv7 体系结构中的 SIMD 扩展改进了此类性能。可适用于众多软件应用领域,包括视频和音频编解码器,这些扩展将性能提高了将近 75% 或更多。

Jazelle®技术:提高执行环境(如 Java、.Net、MSIL、Python 和 Perl)速度。Jazelle技术是ARM提供的组合型硬件和软件解决方案。

TrustZone®安全扩展:提供可信计算,是系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理 (DRM) 和基于Web的服务。

NEON:通用 SIMD 引擎可有效处理当前和将来的多媒体格式,从而改善用户体验。

Virtualization:随着软件复杂性的提高,对于在同一个物理处理器上提供多种软件环境的要求也同时增多

NVIC(Nested Vectored Interrupt Controller): 是Cortex‐M系列处理器在内核上搭载了一个嵌套向量中断控制器,它与内核有紧密的耦合。NVIC提供如下的功能:1)可嵌套中断支持;2)向量中断支持;3)动态优先级调整支持;4)中断延迟大大的缩短;5)中断可屏蔽。

WIC(Wake-Up Interrupt Controller):是唤醒中断控制器,可以使处理器和NVIC处于一个低功耗睡眠的模式。

二、ARM Cortex-M3简介

ARM Cortex-M3为了占用微控制器领域所生产的
32-bit微处理器:32-bit的数据路径,32-bit寄存器,32-bit处理器接口。

“哈佛”结构:独立的指令总线和数据总线,允许数据和指令并行访问。这样,数据访问不再占用指令总线,从而提升性能。

MPU(内存保护单元):比较复杂的应用需要更多的存储系统功能,提供一个可选的MPU,在需要的情况下也可以使用外部缓存。主要起保护作用,让不希望用户需修改的部分受到保护,而不会受到伤害。

Cortex-M3选择了适合于微控制器应用的三级流水线,但增加了分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。

内部调试组件:提供调试操作支持,用于在硬件水平上支持调试操作,如指令断点、数据观察点等功能。

1.Cortex-M3功能说明


主要包括Cortex M3处理器核心、可嵌套中断向量控制器NVIC、总线阵列、存储保护单元MPU、闪存地址重载及断点单元FPB、数据监测点与跟踪DWT、仪表跟踪宏单元ITM、嵌入跟踪宏单元ETM、跟踪端口接口单元TPIU、AHB访问端口、串口线和JTAG调试口等。

2.Cortex M3的总线接口



最底部是I-code,D-code总线。中间4个事系统总线负责的区域,最上方有一部分是系统总线,剩下的是外部私有外设总线。

3.寄存器组说明

(1)低组寄存器,高组寄存器

(1)R0‐R7也被称为低组寄存器。所有指令都能访问它们。它们的字长全是32 位,复位后的初始值是不可预料的。
(2)R8‐R12也被称为高组寄存器。这是因为只有很少的16位Thumb 指令能访问它们,32位的指令则不受限制。它们也是32位字长,且复位后初始值是不可预料的。

(2)堆栈指针R13:

R13是堆栈指针,Cortex-M3处理器内核中共有两种堆栈指针,一般调用堆栈时用的是当前正在使用的那个,如果需要转换需要特定的代码。
主堆栈指针或写作SP_main(有特权访问内核或者异常服务时使用主堆栈指针)。这是默认的堆栈指针,它由OS内核、异常服务例程以及所有需要特权访问的应用程序代码来使用。
进程堆栈指针(PSP)(常规应用程序的代码),或写作SP_process。用于常规的应用程序代码(不处于异常服用例程中时)。

(3)链接寄存器R14

R14是链接寄存器(LR)。在一个汇编程序中,可以把它写做LR或R14。LR用于在调用子程序时存储返回地址,也用于异常返回。
程序计数寄存器R15

(4)程序计数寄存器R15

(5)特殊功能寄存器

Cortex‐M3 中的特殊功能寄存器包括:

① 程序状态寄存器组(PSRs 或xPSR)
所有处理器模式下都可访问当前程序状态寄存器CPSR。在每种异常模式下都有一个程序状态寄存器SPSR。
CPSR保存当前程序的状态,当异常出现时,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

嵌入式系统(二):ARM芯片及体系架构(上)相关推荐

  1. arm linux 时钟源 信息,Linux学习——ARM芯片时钟体系

    跟着视频学习了ARM芯片时钟体系,信息量有点大,做个笔记梳理梳理. 1.时钟体系的结构图 有很多外设,一些工作在AHB总线,一些工作在APB总线 CPU工作在FCLK,AHB总线工作在HCLK,APB ...

  2. 嵌入式系统Linux Arm安装net6运行环境

    嵌入式系统Linux Arm安装net6运行环境 1.环境介绍 2.详细步骤 2.1 根据手册进行设备通电,系统启动. 2.2 网络连接及设置本机IP 2.2 使用Telnet访问Arm系统 2.3 ...

  3. 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Archit ...

  4. 通俗来理解 ARM芯片内核,架构,指令集,软核和硬核之间的关系

    1.单片微型计算机: 简称单片机,简单来说就是集CPU(运算.控制).RAM(数据存储-内存).ROM(程序存储).输入输出设备(串口.并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,C ...

  5. 关于ARM芯片中内存架构的疑惑记录

    前言 最开始我疑惑的点是很混乱的,有的ARM芯片在跑裸机程序时候是不需要外置内存的,但是在跑LINUX系统时候,所用的开发板是需要外置RAM与ROM的.这是为什么呢,下面记录下对这个问题的梳理,同时也 ...

  6. Arm发布v9体系架构:Cortex-X2、Cortex-A710和Cortex-A510

    又到了每年一度的 Arm 架构更新的时候.在上个月 Arm 发布了最新的基础架构 Neoverse V1 和 Neoverse N2 CPU IP 之后,现在官方终于推出了移动端新架构. 今年,Arm ...

  7. ARM:嵌入式系统之ARM指令

    嵌入式开发 (2) 1.编绎执行下列汇编程序sy1.S,要在开发板上执行.程序执行后返回到调用处,使用uboot的md 0x20009000 1命令查看0x20009000处的值.理解程序如何返回的调 ...

  8. 掌握ARM芯片时钟体系

    1.s3c2440时钟体系结构 Fclk.Hclk.Pclk如何得到?时钟源 12M晶振----PLL锁相环---->400M\136M\68M 晶振---------|--->MPLL- ...

  9. arm体系结构与编程_教程:如何学习嵌入式系统(基于ARM平台)

    一.嵌入式系统的概念 着重理解"嵌入"的概念 主要从三个方面上来理解. 1.从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是 ...

最新文章

  1. mysql binlog的查询
  2. php protected 属性,PHP 如何获取protected属性?
  3. 【转】Matlab中特殊符号的写法
  4. 正则表达式shell
  5. optaplanner_OptaPlanner –具有真实道路距离的车辆路线
  6. linux 特定用户ssh,linux - 如何在登录后将SSH用户限制为一组预定义的命令?
  7. pytorch图像和张量的相互转换_Day107:Pytorch张量类型的构建与相互转换
  8. poj1006生理周期(中国剩余定理)
  9. 又学到了一个拒绝加班的技巧
  10. 电脑表格日期怎么修改原有日期_一些让你惊呆的电脑办公小技能
  11. java内功 ---- jvm虚拟机原理总结,侧重于虚拟机类加载执行系统
  12. 中国团队入选美国物理学会2018年度国际物理学十大进展
  13. Differential Privacy差分隐私
  14. 小米路由器4C刷机(以OpenWrt为例)
  15. Java5的倍数_关于java:将数字四舍五入到最接近的5的倍数
  16. SpringBoot中配置文件
  17. frp穿透你的远程桌面
  18. Verilog语言要素(二)
  19. 用Kindle阅读PDF最简单的3个方法!
  20. 字符串Hash函数对比

热门文章

  1. mysql修行练级之mysql新手入门常用命令
  2. C罗8000W英镑到底是多少钱?!
  3. (素材源码)猫猫学IOS(十八)UI之QQ聊天布局_键盘通知实现自动弹出隐藏_自动回复
  4. ROM、PROM、EPROM、EEPROM、FLASH ROM
  5. MTK芯片系列手机的维修宝典
  6. DeepFM原理及tensorflow代码实战
  7. 边学边做Unity 3D小游戏日常(二)
  8. 使用canvas制作绘图板
  9. 从哪里租vps远程桌面服务器,vps远程桌面服务器出租费用
  10. 丅rust是什么意思_rust是什么意思_rust的翻译_音标_读音_用法_例句_爱词霸在线词典...