Chinaunix首页 | 论坛 | 博客
  • 博客访问: 63163
  • 博文数量: 12
  • 博客积分: 230
  • 博客等级: 入伍新兵
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-22 13:20
文章分类

全部博文(12)

文章存档

2012年(12)

我的朋友

分类: LINUX

2012-05-03 22:38:14

1、  电源模式4

a)         正常模式:正常运行模式

b)        低能模式:不带Pll(产生操作USB主从时钟)的低频时钟;

c)        休眠模式:只是使CPU的时钟停止;

d)        停止模式:所有时钟都停止;

255个中断源

       看门狗定时器,5个定时器,9UART24个外部中断,4DMA控制器

       2RTC2ADC 1I2C 2SPI 2USB 一个LCd和一个电池管理

37种工作模式:

       用户模式:user

       快速中断模式:fiq 用于支持数据传输或者通道处理

       中断模式:irq用于普通中断处理

       超级用户模式:svc操作系统的保护模式

       异常中断模式:abt输入数据后登入或者预取异常中断指令

系统模式:sys使操作系统使用的一个有特权的用户模式

未定义模式:und执行了未定义指令进入该模式

4、寄存器

   3732位寄存器:31个通用寄存器,6个状态寄存器

   ARM状态寄存器器,在ARM状态下任何时刻都可以看到16个通用寄存器   

5、程序状态寄存器

   一个当前状态寄存器CPSR , 5个保存程序状态寄存器用于异常中断处理;

保留最近完成的ALU 操作的信息

控制中断的使能和禁止

设置处理器的操作模式

下图2-6 显示了程序状态寄存器的位定义:

6、指令长度

ARM状态下32位长度,THUMB状态下16位长度

数据类型: 支持8位字节、半字16位、字32位;

字必须4字节对齐、半字2字节对齐;

7、异常发生之后:

      1)将下一条指令的地址保存到相应的Link寄存器。如果异常是从ARM状态进入的,下一条指令的地址拷贝到Link 寄存器(根异常的类型,数值为当前PC+4 PC+8,具体请看表2-8)。如果异常是从THUMB 态进入,那么写入到link 寄存器的值是当前的PC 偏移一个值。这表示异常处理程序不需要关心是从哪种状态进入异常的。例如,在SWI 情况下,

无论是来自ARMTHUMB 状态,处理程序只要采用MOVSPCR14-svc语句,总可以返回到原始程序的下一条语句。

2. 拷贝CPSR 到相应的SPSR

3. 根据异常类型强制改变CPRS 模式位的值;

4. PC 的值指向异常处理向量所指的下一条指令。

阅读(1505) | 评论(0) | 转发(0) |
0

上一篇:TCP/UDP相关知识总汇

下一篇:没有了

给主人留下些什么吧!~~