注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zpehome的博客

Hope is a good thing,the best of things

 
 
 

日志

 
 

ARM体系结构  

2013-02-24 21:50:32|  分类: 嵌入式软件 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

数据类型:字节、半字、字;

地址空间:最大寻址空间4GB(2的32次方字节);

大小端格式(Cortex-M3是小端模式):

大端格式是低地址处存储的是字数据的高字节,高地址处存储字节数据的低字节

小端格式是低地址处存的是字数据的低字节,高地址存放的是字数据的高字节

7种工作模式:

用户模式、特权模式(系统模式、快速中断模式FIQ、外部中断模式IRQ、超级用户模式SVC、异常模式ABT、未定义模式)

ARM处理器共有37个寄存器,31个通用寄存器(包括PC指针)、6个状态寄存器,均为32位

未分组寄存器R0-R7,R0-R3在子程序调用时,传递参数和保存子程序的返回值。

分组寄存器R8-R14

1.R8-R12每个寄存器对应两个不同的物理寄存器,FIQ模式访问R8_fiq-R12_fiq,其他模式访问R8_usr-R12_usr

2.R13-R14,每个寄存器对应6个不同物理地址寄存器,其中一个是系统和用户模式共用,其他5个对应其他工作模式

3.R13用作堆栈指针SP

4.R14用作连接寄存器LR

程序计数器R15(PC)

当前程序状态寄存器R16(CPSR)

R14:当执行BL或BLX子程序调用指令时,R14得到R15的备份。

R15:PC总是指向当前指令的下两条指令的地址。即PC的值为当前指令的地址值加8。

R16:当前程序状态寄存器

 31                                                              0
 N  Z  C  V  Q                                        F  T  M4  M3  M2  M1  M0
      
v条件位:
N = 1-结果为负,0-结果为正或0
Z = 1-结果为0,0-结果不为0
C =1-进位,0-借位
V =1-结果溢出,0结果没溢出
vQ 位:
仅ARM 5TE/J架构支持
指示增强型DSP指令是否溢出
vJ 位
仅ARM 5TE/J架构支持
J = 1:  处理器处于Jazelle状态 
 
v中断禁止位:
I  = 1: 禁止  IRQ.
F = 1: 禁止  FIQ.
vT Bit
仅ARM  xT架构支持
T = 0: 处理器处于 ARM 状态
T = 1: 处理器处于 Thumb 状态
vMode位(处理器模式位):
0b 10000 User   正常程序执行的模式
0b 10001 FIQ   用于高速数据传输和通道处理
0b 10010 IRQ   用户通常的中断使用
0b 10011 Supervisor   供操作系统使用的一种保护模式

0b 10111 Abort    用于虚拟存储及存储保护

0b 11011 Undefined      用于支持通过软件仿真硬件的协处理器

0b11111 System  用于运行特权级的操作系统任务
 

  
异常类型
  
具体含义
  
复位
  
复位电平有效时,产生复位异常,程序跳转到复位处理程序处执行。
  
未定义指令
  
遇到不能处理的指令时,产生未定义指令异常
  
软件中断
  
执行SWI指令产生,用于用户模式下的程序调用特权操作指令
  
指令预取中止
  
处理器预取指令的地址不存在,或该地址不允许当前指令访问,产生指令预取中止异常
  
数据中止
  
处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常
  
IRQ
  
外部中断请求有效,且CPSR中的I位为0时,产生IRQ异常
  
FIQ
  
快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常

基本的中断处理程序结构

HandlerRQ               ;中断响应,从向量表跳来
SUB      r14,r14,#4 ;计算返回地址
STMFD r13!,{r0-r3,r14};保护现场
BL        lrqHandler ;跳到具体的异常处理函数
LDMFD  r13!,{r0-r3,pc}^ ;恢复现场

 
v段:AREA   .text,CODE,READONLY
v标示符:用于表示指令和数据的地址
引用格式:
      %{F|B}{A|T} N(0-99)
F表示指向前搜索局部标示符
B只向后
A在所有的宏里搜索
T当前宏里搜索 
 
v程序入口:ENTRY
v程序结束:END

条件码助记符: 
EQ 相等
NE 不相等
CS/HS 无符号数大于或等于
CC/LO 无符号数小于
MI 负数
PL 正数或零
VS 溢出
VC 没有溢出
HI 无符号数大于
LS 无符号数小于或等于
GE 有符号数大于或等于
LT 有符号数小于
GT 有符号数大于
LE 有符号数小于或等于
AL 无条件执行,跟不写一样

  评论这张
 
阅读(98)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017