【嵌入式开发】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处理器工作模式 | ARM 寄存器 | ARM 寻址)相关推荐
- 【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )
文章目录 一.ARM 处理器工作模式 二.ARM 架构模型 一.ARM 处理器工作模式 参考 [嵌入式开发]ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存 ...
- 【嵌入式开发】ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存器 CPSR SPSR | 模式设置代码编写 | 设置 svc 模式 )
一. 处理器工作模式相关介绍 1. 处理器模式简介 (1) 处理器工作模式分类 (2) 处理器不同工作模式区别 (3) Linux 系统运行的模式 (4) 特权模式 说明 (5) 异常模式 (6) 系 ...
- 嵌入式ARM设计编程(三) 处理器工作模式
文章和代码已归档至[Github仓库:hardware-tutorial],需要的朋友们自取.或者公众号[AIShareLab]回复 嵌入式 也可获取. 一.实验目的 (1) 通过实验掌握学会使用ms ...
- ARM处理器工作模式
一.ARM体系的CPU有以下7种工作模式: 1.用户模式(usr):正常的程序执行状态 2.快速中断模式(fiq):用于支持高速数据传输或通道处理 3.中断模式(irq):用于普通中断处理 4.管理模 ...
- linux嵌入式开发arm7,基于ARM7系列芯片嵌入式平台上实现的设计方案-嵌入式系统-与非网...
本文介绍的方法是在用ARM7系列芯片S3C4510B和μClinux构建的嵌入式平台上实现的.在嵌入式系统设计过程中,系统的掉电保护越来越受到重视整个掉电保护实现的基本思路是:产生掉电信号,捕捉掉电信 ...
- ARM汇编指令(ARM工作模式、寄存器)
1.ARM工作模式 从编程的角度来看,ARM微处理器的工作状态一般有两种,并可在两种工作状态之间进行切换: △:第一种为ARM状态,此时处理器执行32位的的字对齐的ARM指令. △:第二种为Thumb ...
- 嵌入式开发之赛灵思 xilinx Zynq芯片简介---Zynq-7000 EPP (XC7Z010 and XC7Z020)
(1)企业简介 作为DSP 和视频应用领域的头号 FPGA 供应商,赛灵思致力于通过其目标设计平台提供业内领先的 DSP 开发工具.方法.IP 和技术支持.赛灵思面向 DSP 的目标设计平台将这些元素 ...
- TI公司DSP集成开发环境(CCS)有哪几种工作模式?各自特点是什么?
1.软件仿真器模式(Simulator方式) 特点:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制. 2.硬件在线编程模式(Emulator方式) 特点:可以在DSP芯片上实时运行,与硬件 ...
- Arm汇编寻址方式工作模式
目录 Arm汇编寻址方式 Arm处理器工作模式 异常返回 Arm汇编寻址方式 8种寻址方式: 寄存器寻址 mov r0, r1 立即数寻址 mov r0 ...
最新文章
- java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...
- Logistic Classification
- 科学小世界,婚姻大殿堂
- Storm 1.1.0 集群安装
- 工作68:json校验工具
- javascript中的命名规则和方法
- 基于JAVA+SpringMVC+Mybatis+MYSQL的图书管理系统
- xdf文件改word_真正Txt 文本文件和Doc Word文件批量互转工具
- sourceMap到底是个啥玩意?
- 机器学习:使用python生成训练集和测试集的方法实现
- 淘宝开放接口api分享
- 计算机 统计学考研,统计学考研科目有哪些
- 【centos6.5】安装LNMP(linux公社)
- 五位创想者,讲述五个非典型创业故事
- magento 模块化开发_Magento中的PayPal信用卡令牌化
- android智能机顶盒的ota设计,智能机顶盒APP方案开发,让生活更有趣!
- 解决Creo8.0许可证无效的问题
- CSS3小猪佩奇社会猪
- SQL考试练习题及全部答案2
- qt套件中未设置qt版本, NO C++ compiler set in kit