【嵌入式开发】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

时间: 2024-12-22 13:45:57

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

ARM处理器工作模式

++++++++++++++++++++++++++++++++++++++++++ 本文转载自mr_raptor的专栏,感谢mr_raptor大神. http://blog.csdn.net/mr_raptor/article/details/6556157 ++++++++++++++++++++++++++++++++++++++++++ 1.1 ARM处理器工作模式 CPU的模式可以简单的理解为当前CPU的工作状态,比如:当前操作系统正在执行用户程序,那么当前CPU工作在用户模式,这时网

[国嵌笔记][021-022][ARM处理器工作模式]

[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Supervisor(svc):系统保护模式,linux内核运行在系统保护模式 5.Abort(abt):异常模式 6.Undefined(und):未定义指令模式 7.System(sys):系统模式 [ARM寄存器详解] ARM寄存器(37个) 通用寄存器(31个) 1.未分组通用寄存器(R0-R7) 2.分组通

2.2 ARM处理器工作模式

ARM Architecture Reference Manual Arm 指令框架手册 1. 处理器7种工作模式 Processor mode Mode number Description User usr 0b10000 Normal program execution mode FIQ fiq 0b10001 Supports a high-speed data transfer or channel process Supervisor svc 0b10011 A protected

嵌入式开发之赛灵思 xilinx Zynq芯片简介---Zynq-7000 EPP (XC7Z010 and XC7Z020)

(1)企业简介 作为DSP 和视频应用领域的头号 FPGA 供应商,赛灵思致力于通过其目标设计平台提供业内领先的 DSP 开发工具.方法.IP 和技术支持.赛灵思面向 DSP 的目标设计平台将这些元素带入了产品化解决方案,为有经验的用户加快了开发速度,并且为新用户简化了FPGA 应用.工程师可以在应用基础设施上花更少的时间,而将更多精力投在能够提供独特价值的设计上. Xilinx DSP 解决方案的优势 (2) (3) Zynq-7000 EPP (XC7Z010 and XC7Z020) xc

【嵌入式开发】裸机引导操作系统和ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )

[嵌入式开发]ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 ) 一. 内存 简介 1. 两大内存分类 ( 1 ) DRAM 简介 ( 定期刷新 | 速度慢 | 成本低 ) DRAM 简介 : 1.硬件描述 : DRAM 基本由一个个小电容基本原件组成, 电容的两端保留电荷; 2.优缺点描述 : ① 优点 : 成本很低, 很便宜; ② 缺点 : 需要 定期刷新数据, 速度较慢; a.

【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boot 源码 : http://download.csdn.net/detail/han1202012/8342761 -- S3C2440 文档 : http://download.csdn.net/detail/han1202012/8342701 -- S5PV210_iROM_Applicati

基于软件开发对嵌入式开发的思考

由于本人专业方向是计算机体系结构方向的,平时做嵌入式方面的实验以及项目较多,这个学期又学习了软件工程的课程,因此想借此机会,总结下在软件工程上面学习到的知识,并看看是否有什么能够借鉴到嵌入式方向的开发上面去. 首先我想总结下,软件开发与嵌入式开发的不同之处.作为软件开发,首先应当从用户或者用户的需求入手,明白用户想让你去实现什么功能,而到了具体的实现,有时却限制的不是那么的死.而至于嵌入式的开发,从需求入手是相同的,但是对于实现的方式,却明显不同于传统的软件开发.对于编程语言,不同的嵌入式开发平

ARM工作模式

ARM工作模式 一.存储器格式(字对齐): Arm体系结构将存储器看做是从零地址开始的字节的线性组合.从零字节到三字节放置第一个存储的字(32位)数据,从第四个字节到第七个字节放置第二个存储的字数据,一次排列.作为32位的微处理器,arm体系结构所支持的最大寻址空间为4GB. 存储器格式 1.大端格式:高字节在低地址,低字节在高地址: 2.小端格式:高字节在高地址,低字节在低地址: 指令长度: Arm微处理器的指令长度是32位的,也可以为16位(thumb状态下).Arm微处理器中支持字节(8位

自己学驱动17——ARM工作模式和ARM9寄存器

1.ARM体系CPU的7种工作模式 (1)用户模式(usr):ARM处理器正常的程序执行状态. (2)快速中断模式(fiq):用于高速数据传输或通道处理. (3)中断模式(irq):用于通用的中断处理. (4)管理模式(svc):操作系统使用的保护模式. (5)数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护. (6)系统模式(sys):运行具有特权的操作系统任务. (7)未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的