`

【嵌入式开发】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 指令的寻址方式--千锋培训

    文档介绍了1、立即寻址,2、寄存器寻址,3、寄存器间接寻址,4、基址变址寻址,5、多寄存器寻址,6、相对寻址,7、堆栈寻址

    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指令集 寻址

    立即寻址、寄存器寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址、堆栈寻址 ARM 指令集: 跳转指令、数据处理指令、乘法指令与乘加指令、程序状态寄存器访问指令、加载/存储指令、批量数据加载/存储...

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

    ARM指令的寻址方式-寄存器偏移寻址.pdf 学习资料 复习资料 教学资源

    从51到ARM 32位嵌入式系统入门

    3.4ARM处理器的寻址方式 3.4.151系列与ARM系列寻址方法的比较 3.4.2寄存器寻址 3.4.3立即寻址 3.4.4寄存器移位寻址 3.4.5寄存器间接寻址 3.4.6变址寻址 3.4.7多寄存器寻址 3.4.8堆栈寻址 3.4.9寻址方式的应用 3.4.10...

    从51到ARM32位嵌入式系统入门 part0

    3.4ARM处理器的寻址方式 3.4.151系列与ARM系列寻址方法的比较 3.4.2寄存器寻址 3.4.3立即寻址 3.4.4寄存器移位寻址 3.4.5寄存器间接寻址 3.4.6变址寻址 3.4.7多寄存器寻址 3.4.8堆栈寻址 3.4.9寻址方式的应用 3.4.10...

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

    ARM指令的寻址方式-块复制寻址.pdf 学习资料 复习资料 教学资源

    ARM开发详解.pdf

    2.4 处理器模式 12 2.5 寄存器组织 13 2.5.1 ARM 状态下的寄存器组织 13 2.5.2 Thumb 状态下的寄存器组织 15 2.5.3 程序状态寄存器 16 2.6 异常(Exceptions) 18 2.6.1 ARM 体系结构所支持的异常类型 18 2.6.2 对...

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

    ARM指令的寻址方式-寄存器寻址.pdf 学习资料 复习资料 教学资源

    基于ARM的处理器体系结构.ppt

    Load/Store结构:处理器只处理寄存器中的数据。独立的load和store指令用来完成数据在寄存器和外部存储器之间的传送。因为访问存储器很耗时,所以把存储器访问和数据处理分开。这样有一个好处,就是可反复地使用保存...

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

    ARM指令的寻址方式-多寄存器寻址.pdf 学习资料 复习资料 教学资源

    常用ARM指令集及汇编.pdf

    ARM 处理器寻址方式2 寄存器寻址2 立即寻址2 寄存器偏移寻址2 寄存器间接寻址3 基址寻址3 多寄存器寻址4 堆栈寻址4 块拷贝寻址5 相对寻址5 指令集介绍7 ARM 指令集7 指令格式7 第 2 个操作数7 #immed...

    周立功ARM培训精华(全套)

    1.ARM处理器寻址方式 2.指令集介绍 ARM指令集 Thumb指令集 第五章 LPC2000系列ARM硬件结构 1.简介 2.引脚配置 3.存储器寻址 4.系统控制模块 5.存储器加速模块 6.外部存储器控制器 7.引脚连接模块 8. 向量中断控制器 ...

    ARM应用系统开发详解

    2.4 处理器模式 2.5 寄存器组织 2.5.1 ARM状态下的寄存器组织 2.5.2 Thumb状态下的寄存器组织 2.5.3 程序状态寄存器 2.6 异常(Exceptions) 2.6.1 ARM体系结构所支持的异常类型 2.6.2 对异常的响应 2.6.3 从异常...

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

    ARM指令的寻址方式-寄存器间接寻址.pdf 学习资料 复习资料 教学资源

    ARM详解 ARM入门必备

    似乎搞ARM开发入门都是用这本书。 上网搜了很久,勉强下载下来了 1分,算是搜索小费啦 然后我还转转成了PDF更合适大家看啦!嘿嘿 介绍如下: 目录 第1 章 ARM 微处理器概述 5 1.1 ARM-Advanced RISC Machines 5 1.2...

    第4章 ARM指令寻址方式《ARM系列处理器应用技术完全手册》

    ARM指令集可以分为跳转指令、数据处理指令、程序状态寄存器传输指令、Load/Store指令、协处理器指令和异常中断产生指令。根据适用的指令类型不同,指令的寻址方式分为:数据处理指令操作数寻址方式和内存访问指令...

    国嵌嵌入式(linux)培训课件ARM程序设计与系统移植

    2. ARM处理器工作模式 3. ARM系统寄存器 4. ARM寻址方式 5. ARM 汇编指令集 6. ARM环境C语言编程 7. ADS集成开发环境 第二天 1. LED程序设计 2. ARM中断与异常 3. S3c2440 GPIO 4. 按键程序设计

    ARM汇编.pdf

    第2章介绍ARM编程模型的基本知识,包括寄存器的组织和ARM微处理器的工作模式,ARM体系结构中异常及处理等基本概念。通过本章的阅读,可使读者了解ARM编程模型的基本知识,为进一步的开发做准备。 第3章详细介绍ARM...

Global site tag (gtag.js) - Google Analytics