【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)
: 12MHz 晶振 对应 405 ~ 532 MHz 处理速度;
-- : 16K 指令缓存, 16K 数据缓存;
-- : 32KB 指令缓存, 32KB 数据缓存;
(3) 内存接口对比
: 提供 SDRAM 内存接口;
-- : 提供了 SDRAM, 也提供了 DDR 内存接口;
-- : 提供了 DDR1 和 DDR2 两种内存接口;
(4) 支持的操作系统
: WinCE | Linux;
-- : 三星宣布停产;
-- 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 寻址)的更多相关文章
- ARM处理器工作模式
学习ARM处理器参考的首选资料是ARM Architecture Reference Manual,是最专业权威的学习资料. ARM处理器共有7种工作模式,如表1-1和1-2所示: 表1-1 处理器工 ...
- [国嵌笔记][021-022][ARM处理器工作模式]
[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Superviso ...
- ARM的工作模式和寄存器
以前学的时候学的是S3C6410的开发板,它是三星公司推出的基于ARM v6架构(指令集),处理器是ARM11. ARM架构是构建每个ARM处理器的基础. 目前最新的是ARM v8架构:http:// ...
- 2.2 ARM处理器工作模式
ARM Architecture Reference Manual Arm 指令框架手册 种工作模式 Processor mode Mode number Description User usr 0 ...
- 嵌入式开发之赛灵思 xilinx Zynq芯片简介---Zynq-7000 EPP (XC7Z010 and XC7Z020)
(1)企业简介 作为DSP 和视频应用领域的头号 FPGA 供应商,赛灵思致力于通过其目标设计平台提供业内领先的 DSP 开发工具.方法.IP 和技术支持.赛灵思面向 DSP 的目标设计平台将这些元素 ...
- 【嵌入式开发】裸机引导操作系统和ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )
[嵌入式开发]ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 ) 一. 内存 ...
- 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 : -- u-boo ...
- ARM体系的7种工作模式
一.ARM体系的CPU有以下7种工作模式: 用户模式(usr) 大多数程序运行于用户模式 特权模式 系统模式(sys) 运行具有特权的操作系统任务 异常模式 中断模式(irq) ...
- ARM编程模式和7钟工作模式
一. ARM的基本设定 1.1. ARM 采用的是32位架构 1.2. ARM约定: a. Byte : 8 bits b. Halfword :16 bits (2 byte) c. Word : ...
随机推荐
- typedef的基本用法
1. 四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针 ...
- sql server 表分区
背景: 一般情况下,我们建立数据库表时,表数据都存放在一个文件里. 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的 ...
- js遍历 for-of
for-of遍历 entries() 返回一个遍历器对象,用来遍历[键名, 键值]组成的数组.对于数组,键名就是索引值:对于 Set,键名与键值相同.Map 结构的 Iterator 接口,默认就是调 ...
- C语言 递归 汉诺塔问题 最大公约数问题
函数不能嵌套定义,但能嵌套调用(在调用一个函数的过程中再调用另一个函数) 函数间接或直接调用自己,称为递归调用 汉诺塔问题 思想:简化为较为简单的问题 n=2 较为复杂的问题,采用数学归纳方法分析 ...
- Unity使用C++作为游戏逻辑脚本的研究
文章申明:本文来自JacksonDunstan的博客系列文章内容摘取和翻译,版权归其所有,附上原文的链接,大家可以有空阅读原文:C++ Scripting( in Unity) 一.C#和C++的通信 ...
- ERP中的序列管理
1.序列管理 序列管理主要实现系统用到序列生成规则的配置.主要包含序列配置.序列生产两个功能点. 2.术语说明 序列号:指序列中按步长递进的数字. 序列值:指按规则组合了 "拥有者.序列类型 ...
- ZOJ-2965
Accurately Say "CocaCola"! Time Limit: 2 Seconds Memory Limit: 65536 KB In a party he ...
- Spring boot 整合 Mybatis + Thymeleaf开发web(二)
上一章我把整个后台的搭建和逻辑给写出来了,也贴的相应的代码,这章节就来看看怎么使用Thymeleaf模板引擎吧,Spring Boot默认推荐Thymeleaf模板,之前是用jsp来作为视图层的渲染, ...
- dict 字典的用法
因为这一章节用的比较多,而需要注意的得比较多, 所以总结的笔记也相对比较多一点,我就直接单独写了一页 ## {key:value} 1. key不能为列表 2.value可以是任意类型值 3.返 ...
- Redis从入门到精通:中级篇
原文链接:http://www.cnblogs.com/xrq730/p/8944539.html,转载请注明出处,谢谢 本文目录 上一篇文章以认识Redis为主,写了Redis系列的第一篇,现在开启 ...