`

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

 
阅读更多

作者 : 韩曙亮

博客地址 :http://blog.csdn.net/shulianghan/article/details/42375701

相关资源下载 :

-- 三星ARM Architecture Reference Manual 文档 :http://download.csdn.net/detail/han1202012/8324641




一. ARM 芯片类型


1. ARM 分类



(1) ARM 分类类型(芯片 | 核 | 指令架构)


ARM 分类 :

-- ARM 芯片类型 : 6410, 2440, 210;

-- ARM 核类型 : arm11, arm9, CortexA9;

-- 指令架构 : armv7, armv6;



(2) ARM芯片 与 ARM核 关系


芯片 和 核关系 : 芯片包含核;

-- 2440 芯片 : 包含 arm9 核;

-- 6410 芯片 : 包含 arm11 核;

-- 210 芯片 : 包含 CortexA8 核;



(3) ARM核 与 指令架构 关系


ARM 核 与 指令架构 关系 :

-- ARM9 : armv4 指令架构;

-- ARM11 : armv6 指令架构;

-- CortextA8 : armv7 指令架构;



2. ARM 演化变迁



(1) 经典阵营


发展历程 : ARM7 --> ARM9 --> ARM11, ARM11 性能最高, ARM7 性能最低;



(2) Cortex 阵营


Cortext 系列 :

-- Cortex-M 系列 : 没有操作系统, 面向工控领域, 与单片机差不多;

-- Cortex-R 系列 : 面向实时应用, 强调实时性, 可以运行操作系统;

-- Cortex-A 系列 : 主要面向多媒体应用, 目前多数的智能手机属于该系列;


性能递推 : Cortex-M0 -->Cortex-M1 -->Cortex-M3 -->Cortex-M4 -->Cortex-R4 -->Cortex-A5 -->Cortex-A8 -->Cortex-A9 ;


(3) Cortex 与 ARM 对比


ARM 与 Cortext 对比 :

-- ARM7 : ARM 7 与 Cortext-M3 类似, 都没有操作系统, 性能上 Cortex-M3 略高, 但是高的有限;

-- ARM9 和 ARM11 : ARM9 和 ARM11 与 Cortex-R4 性能类似, ARM11 不如 Cortex-A5, 远远比不上 Cortex-A8 和Cortex-A9;



3. 芯片性能对比(处理速度 | 缓存 | 内存接口 | OS)


(1) 处理速度对比

芯片处理速度对比 : 去芯片对应的芯片手册中查找 Clock&Power Management 章节, 查看时钟相关参数;

-- 6410 : 533MHz ~ 667MHz;

-- 2440 : 12MHz 晶振 对应 405 ~ 532 MHz 处理速度;

-- 210 : 800MHz ~ 1GHz;



(2) 缓存对比


芯片缓存对比 : 去芯片对应的芯片手册;

-- 6410 :16K 指令缓存, 16K 数据缓存;

-- 2440 :16K 指令缓存, 16K 数据缓存;

-- 210 : 32KB指令缓存, 32KB 数据缓存;



(3) 内存接口对比


芯片内存接口对比 : SDRAM 已经淘汰掉了;

-- 2440 : 提供 SDRAM 内存接口;

-- 6410 : 提供了 SDRAM, 也提供了 DDR 内存接口;

-- 210 : 提供了 DDR1 和 DDR2 两种内存接口;



(4) 支持的操作系统

芯片支持操作系统对比: 去芯片对应的芯片手册中查找;

--6410: WinCE | Linux | Android;

--2440: WinCE | Linux;

--210: WinCE | Linux | Android;



(5) 其它商业信息


芯片商业对比:

--6410: 继续使用;

--2440: 三星宣布停产;

--210: 继续使用;




二. ARM 工作模式


对应手册 :ARM Architecture Reference Manual.pdf 手册, 在本博客中提供下载;

-- 章节内容 :Programmers’ Model, A2.2 Page 41;

-- 手册下载地址 :http://download.csdn.net/detail/han1202012/8324641



1. 处理器工作模式



(1) ARM 工作模式图例


工作模式图示 : 图片截图自ARM Architecture Reference Manual.pdf手册, Page 41, A2.2 章节;




(2) ARM 工作模式介绍


工作模式介绍 :

-- User 模式 (usr) : 普通应用程序运行的模式;

-- FIQ 模式 (fiq) : 快速中断模式;

-- IRQ 模式 (irq) : 普通中断模式;

-- Supervisor 模式 (svc) : 为操作系统提供的保护模式;

-- Abort 模式 (abt) : 访问虚拟内存导致异常的模式;

-- Undefined 模式 (und) : 未定义指令模式;

-- System 模式 (sys) : armv4 以上版本才有该模式;


Linux 系统工作模式 : 系统运行在 usr 模式, 内核运行在 svc 模式;




三. ARM 寄存器


对应手册:ARM Architecture Reference Manual.pdf手册, 在本博客中提供下载;

--章节内容:Programmers’ Model, A2.3 Page 42;

--手册下载地址:http://download.csdn.net/detail/han1202012/8324641



1. 寄存器简介


寄存器简介 :

-- 寄存器个数 : ARM 有 37 个寄存器;

-- 通用寄存器 : 31 个通用寄存器, 程序计数器 也是一个通用寄存器;

-- 状态寄存器 : 6 个状态寄存器;

-- 图示 :


-- 寄存器图示 : 截图自 Page 43;





2. 通用寄存器



(1) 通用寄存器分类


通用寄存器分类 :

-- 不分组寄存器 : R0 ~ R7;

-- 分组寄存器 : R8 ~ R14, 不同模式下使用的寄存器都不相同;

-- 程序计数器 : PC 指针, 是 R15;



(2) 常用通用寄存器解析


R13 寄存器 : 通常用来做 SP 堆栈指针;


R14 寄存器 : 通常用来做 链接寄存器;

-- 作用一 : 保存函数返回地址;

-- 作用二 : 异常发生时, 主要用于记录函数返回地址;


R15 寄存器 : PC 指针, 程序计数器;




3. 状态寄存器



(1) 对应各个模式的状态寄存器出现原因


状态寄存器 :

-- 图示 :


-- 对应各个模式的状态寄存器 : 当出现中断后, 执行中断程序, 需要将对应的 CPRS 保存到对应模式的 SPRS_xxx 寄存器中, 如当前在 scv 模式中断, 将状态寄存器保存到 SPSR_svc 寄存器中, 中断执行完后, 将状态从 SPSR_svc 中写回到 CPRS 寄存器中;



(2) CPSR 寄存器位简介



CRSR 寄存器简介 :

-- 图示 :


-- N 位 : 两个数a 和 b比较, 即做减法 (a-b), 如果 a < b, 减法结果是负数, N = 1; 如果 a >= b, 减法结果是正数或0, N = 0;

-- Z 位 : 两个数进行比较, 只有两个数相等时 Z = 1;

-- I 位 : I = 1 时不能产生中断;

-- F 位 : F = 1 时不能产生快速中断;

-- M 位 : 占了 5 个位 0 ~ 4, 主要用于标明处理器模式, 可以读取模式 和 设置模式, 如下图 :






四. ARM 寻址方式


对应手册:ARM Architecture Reference Manual.pdf手册, 在本博客中提供下载;

--章节内容:Programmers’ Model, A2.3 Page 42;

--手册下载地址:http://download.csdn.net/detail/han1202012/8324641


寻址方式 : 处理器根据指令给出的信息找到指令的操作数;



1. 立即数寻址


立即数寻址简介 :

-- 寻址过程 : 操作数本身就在指令中给出, 取出指令同时也可以获取操作数;

-- 操作数 : 指令中取出的操作数就是立即数;

-- 寻址方式 : 这种从指令中取出立即数的方式就是立即数寻址;


立即数寻址示例 :

-- 示例 : ADD R0, R0, #0x3F;

-- 解析 : 将 R0 + #0x3F 相加, 结果放入到 R0 中;


立即数寻址要求 : 第二个源操作数以 "#" 为后缀;



2. 寄存器寻址


寄存器寻址简介 : 利用寄存器中的数值作为操作数;

-- 示例 : ADD R0, R1, R2;

-- 示例解析 : 将 R1 和 R2 寄存器中的数字相加, 结果存放到 R0 中;



3. 寄存器间接寻址


寄存器间接寻址简介 : 寄存器中存放的操作数在内存中, 寄存器存放内存的地址;

-- 示例 : LDR R0, [R2];

-- 示例解析 : 寄存器 R2 中存放的是 操作数的内存地址, 从内存中取出操作数存入 R0 中;



4. 基址变址寻址


基址变址寻址简介 :

-- 基址寄存器 : 寄存器中存放一个基地址;

-- 偏移量 : 指令中给出一个偏移量, 与基址寄存器放在一个中括号号中;

-- 示例 : LDR R0, [R1. #4];

-- 示例解析 : 从 R1 中取出地址, 然后 该地址 加上 4, 从 相加后的地址中取出数据;



5. 相对寻址


相对寻址简介 : PC 指针当前值为基地址, 指令中地址标号是偏移量, 两者相加后是有效地址;

-- 示例 : BL NEXT 时会跳转到 NEXT 处执行, 执行完后会返回到原程序处;

BL NEXT ;跳转到 NEXT 处执行

... ...

NEXT

... ...

MOV PC, LR ;从子程序返回



作者:韩曙亮

博客地址:http://blog.csdn.net/shulianghan/article/details/42375701

相关资源下载:

--三星ARM Architecture Reference Manual 文档:http://download.csdn.net/detail/han1202012/8324641

分享到:
评论

相关推荐

    嵌入式开发教程之ARM 指令的寻址方式--千锋培训

    在ARM架构的嵌入式系统中,理解指令的寻址方式是编程和优化代码的基础。以下是对ARM指令寻址方式的详细说明: 1. **立即寻址**: 在立即寻址模式中,操作数直接包含在指令中。例如,`ADD R0, R0, #1` 将寄存器R0的...

    ARM嵌入式系统基础教程

    3. **编程模型**:理解ARM的寻址模式、数据类型、指令格式以及如何编写汇编语言程序。同时,也会涉及ARM与 Thumb 模式之间的切换及其差异。 4. **中断和异常处理**:学习中断和异常的基本概念,如何设置中断向量表...

    51单片机,arm等处理器的寻址方式对照表

    ### 51单片机与ARM处理器的寻址方式对照分析 #### 一、51单片机寻址方式解析 51单片机作为一种广泛应用于嵌入式系统的微控制器,其寻址方式多样,能够满足不同的编程需求。下面详细介绍51单片机的几种主要寻址方式...

    Arm嵌入式开发

    如“嵌入式系统简介”、“ARM体系结构及编程模型”、“ARM指令系统及汇编程序设计”等,开发者可以深入了解Arm架构,掌握其指令系统和汇编语言,进而有效地进行嵌入式系统开发。这些资源不仅提供了理论知识,还可能...

    ARM指令的寻址方式-块复制寻址.pdf

    ARM指令集是广泛应用于嵌入式系统...总之,ARM指令的块复制寻址方式提供了一种高效的数据传输机制,通过合理选择不同的指令类型,可以优化内存操作,提升程序性能,这对于嵌入式系统和移动设备的软件开发具有重要意义。

    ARM指令的寻址方式-寄存器寻址.pdf

    参考文献中的《ARM 嵌入式系统设计原理与开发实例》和《ARM9 嵌入式系统设计-基于 S3C2410 与 Linux》是深入学习ARM指令集和嵌入式系统设计的宝贵资源,它们包含更多关于寄存器寻址和其他相关主题的详细信息和实例。...

    ARM寻址方式与指令系统

    ARM处理器具有多种工作模式,如用户模式、系统模式、管理模式、异常模式等,每种模式都有自己的特定用途和上下文信息。同时,ARM处理器共有37个寄存器,其中31个为通用寄存器,用于存储操作数和地址,6个为状态...

    ARM嵌入式系统基础教程习题答案

    本资源为 ARM 嵌入式系统基础教程习题答案,涵盖了嵌入式系统的基本概念、嵌入式处理器、嵌入式操作系统、项目开发生命周期、风险分析、系统规范、系统规划、项目讨论等方面的知识点。 一、嵌入式系统基本概念 * ...

    arm嵌入式期末考试试题.pdf

    根据给定文件的信息,我们可以总结出以下几个...通过以上总结,我们可以看到ARM嵌入式系统的基础知识涵盖了操作系统的特点、指令集架构、寻址方式、寄存器功能等多个方面,这些都是学习和理解ARM体系结构的关键内容。

    ARM 处理器寻址方式

    ARM处理器的寻址方式是其架构设计中的关键组成部分,这些寻址方式不仅体现了ARM处理器的高效性和灵活性,也反映了RISC(精简指令集计算机)原则下对指令集的优化设计。下面,我们将深入探讨ARM处理器中提到的八种...

    ARM寻址方式——堆栈寻址

    "ARM寻址方式——堆栈寻址" ARM处理器中的堆栈寻址是一种重要的寻址方式,用于实现数据...ARM寻址方式中的堆栈寻址是一种重要的寻址方式,具有广泛的应用前景和优点,在嵌入式系统开发和操作系统中发挥着重要的作用。

    嵌入式ARM系统原理与实例开发(第二版).pptx

    本文档对嵌入式ARM系统原理和实例开发进行了深入讨论,涵盖了ARM处理器概述、处理器内部结构、CISC和RISC、指令流水线、硬件架构、开发工具和开发流程等多方面的知识点,为读者提供了一个系统的了解ARM处理器的机会...

    ARM嵌入式系统开发手册

    ARM嵌入式系统开发手册 第 1 章 ARM 微处理器概述 5 1.1 ARM-Advanced RISC Machines 5 1.2 ARM 微处理器的应用领域及特点 5 1.2.1 ARM 微处理器的应用领域 5 1.2.2 ARM 微处理器的特点 6 1.3 ARM 微处理器系列 6 ...

    ARM指令的寻址方式-寄存器偏移寻址.pdf

    ARM指令集是嵌入式系统设计中的核心组成部分,其中寄存器偏移寻址是一种高效且灵活的寻址模式,特别是在处理数据移位操作时。本文主要探讨了寄存器偏移寻址以及ARM内核的桶型移位器在实现这种寻址方式中的作用。 ...

    基于ARM的微机原理与接口技术(基于嵌入式ARM芯片) (2).zip

    《基于ARM的微机原理与接口技术》是深入学习嵌入式系统开发的重要教材,尤其在当前物联网、智能家居等领域的广泛应用下,ARM处理器扮演着核心角色。本资料主要围绕基于嵌入式ARM芯片的微处理器架构、工作原理、接口...

    ARM处理器的编程模型和arm处理器结构详解

    ARM公司不直接制造或销售芯片,而是采取授权模式,将处理器核心技术卖给半导体制造商。这种模式使得许多公司能够生产基于ARM架构的芯片,包括Samsung、Atmel、Intel、Motorola、TI、Qualcomm等众多知名品牌。 **ARM...

    嵌入式ARM系统原理与实例开发.rar

    1. **处理器架构**:了解ARM处理器的指令集、寄存器结构、数据类型和寻址模式,这是编写高效程序的基础。 2. **嵌入式操作系统**:嵌入式系统常使用RTOS(实时操作系统),如FreeRTOS、RTOS VxWorks、Linux等。理解...

    ARM指令集 寻址

    ARM指令集支持多种寻址模式,使得程序员能够更灵活地进行编程,并提高代码效率。本篇文章将详细介绍ARM指令集中常见的几种寻址方式及其应用。 #### 二、ARM指令集寻址方式详解 ##### 1. 立即寻址 立即寻址是指...

    ARM指令的寻址方式-寄存器间接寻址.pdf

    在实际应用中,寄存器间接寻址常用于嵌入式系统设计,如在ARM9处理器基础上构建的S3C2410平台上。嵌入式系统通常需要高效地管理有限的内存资源,并且可能需要频繁地根据程序状态调整数据访问模式。 总的来说,...

Global site tag (gtag.js) - Google Analytics