S3C2440A
来源:互联网 发布:淘宝网商城女鞋休闲鞋 编辑:程序博客网 时间:2024/05/21 11:35
1、
从编程者的角度,ARM920T可工作在ARM/THUMB两种状态。
ARM状态:执行32位的,字对齐的ARM指令(常用)
THUMB状态:执行16位的,半字对齐的THUMB指令(用的相对较少)
注:两种工作状态的改变并不会引起工作模式及寄存器值的改变!!
进入THUMB状态:执行BX指令。
进入ARM状态:在THUMB状态时,执行BX指令。或处理器处理异常。
2、
大端模式:要存储数据的高位存储在内存中的底位。
小端模式:要存储数据的高位存储在内存中的高位。
3、
ARM指令:4字节(32位)须4字节对齐
THUMB指令:2字节(16位)须2字节对齐
4、
字节(8位)、半字(16位)、字(32位)
5、
ARM920T支持7中工作模式:
User(用户模式):正常的ARM程序执行。
Fiq(快速中断):支持快速的数据或通道的加工
Irq(普通中断):用于普通中断处理
Svc(管理模式):用于操作的保护模式
Abt(数据、指令预取):当数据或指令预取失败进入的模式
Sys(系统模式):为操作系统提供的特权用户模式
Und(未定义指令):当未定义指令执行时进入的模式
注:模式的改变可通过软件来控制,或外部中断、异常的产生。大部分的用户程序执行在用户模式。非用户模式称为特权模式。进入特权模式主要是进入中断或异常服务。或者访问被保护的资源。
寄存器:
ATM920T一共有37个寄存器:31个通用的32位的寄存器和6个状态寄存器。但是这些寄存器不能同时使用。处理的操作状态和模式决定了使用哪些寄存器。
ARM状态寄存器集:
在ARM状态,16个通用寄存器和一个或两个状态寄存器在任何时候可见。在特权模式时,模式相关的备份寄存器将切入。
ARM状态下的寄存器有R0-R15,在这些寄存器中,除了R15外都是通用的寄存器。可用来保存地址或数据。第17个寄存器(CPSR)用来保存状态。
R14:被用作子程序连接寄存器。当BL指令被执行是,R14将保存R15(程序计数器)的值,在其他情况下可用作通用寄存器。相应的备份寄存器R14_svc,R14_fiq,R14_irq,R14_abt,R14_und用来保存当中断或异常发生时,R15(PC)的返回值。或在对应模式时执行BL指令时该模式的PC值。
R15:该寄存器被用作PC(程序计数器)。在ARM状态,bits[1:0]填充0,bits[31:2]填充PC。在THUMB状态,bits[0]填充0,bits[31:1]填充PC。
R16:该寄存器CPSR(当前程序状态寄存器)。包含条件码和当前程序的模式。
注:R13:通常用作堆栈指针寄存器。R14:存放子程序返回地址。R15:程序计数器PC。
FIQ模式用7个备份寄存器R8-14(R8_fiq—R14_fiq)在ARM状态由于有很多备份寄存器,所以这些寄存器的值不用保存。在IRQ/SVC/ABT/UND等模式下,有连个备份寄存器R13和R14。允许这些模式有一个私有的堆栈指针和连接寄存器。
至于THUMB状态就不再讨论。
程序状态寄存器:
ARM920T包含一个当前程序状态寄存器(CPSR)和5个保存程序状态寄存器(SPSR),该寄存器主要用于当异常发生时保存前一状态的CPSR的值。
N
Z
C
V
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
I
F
T
M4
M3
M2
M1
M0
条件标志:
N:取反、小于
Z:为0
C:进位、借位
V:溢出
控制位:
I:1(关普通中断),0(开普通中断)
F:1(关快速中断),0(开快速中断)
T:1(THUMB状态),0(ARM状态)
M[4:0]:
10000
用户模式
10001
快速中断模式
10010
普通中断模式
10011
管理模式
10111
预取指令、数据无效
11011
未定义模式
11111
系统模式
6、
异常发生时处理器会暂时终止当前程序的运行,转去执行中断处理。在转去执行中断处理之前,当前处理器的状态必须保存以便异常处理完能够正常返回。在同一时间有可能产生多种异常,如果发生了,处理器将按照固定的顺序去处理。
进入异常处理器要做的事:
1、
2、
3、
4、
1、
2、
3、
对应的表:
BL
SWI
UDEF
FIQ
IRQ
PABT
DABT
RESET
软中断:软中断指令(SWI)被用作进入管理模式。通常是需要使用管理模式功能时使用。从管理模式返回只需以下指令:MOV
7、
地址
异常
进入的模式
优先级
0x00000000
Reset
管理
1
0x00000004
未定义指令
UND
6
0x00000008
软中断
管理
6
0x0000000C
预取指令无效
ABORT
5
0x00000010
预取数据无效
ABORT
2
0x00000014
保留
保留
0x00000018
IRQ
IRQ
4
0x0000001C
FIQ
FIQ
3
复位的过程:
当复位信号变低时,ARM920T丢弃正在执行的指令,并且继续以字地址增加去取指令。
当复位信号变高时,ARM920T:
1、
2、
3、
4、
- S3C2440A
- S3C2440A
- S3C2440A的中断控制器
- S3C2440A处理器开发板
- 基于S3C2440A+SDRAM(K4M51163)
- 基于S3C2440A+SDRAM(K4M51163)
- s3c2440a启动过程详解
- s3c2440a启动过程详解
- S3C2440A中断小记
- s3c2440a时钟模块
- s3c2440a启动过程详解
- S3C2440A外部中断BUG
- 1.S3C2440A存储器映射
- s3c2440A操作24C08
- S3C2440A SDRAM配置
- S3C2440A的DMA
- 《S3C2440A时钟体系小结》
- S3C2440A IIC驱动(AT24c04)
- 遇到的问题----DBI的ODBC报错运行perl脚本时报错:[unixODBC][Driver Manager]Data source name not found, and no default
- HttpClient的使用
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- java实现十种常见内部排序
- 第十六周 项目三 填空学指针
- S3C2440A
- S3C2440A之MMU
- 计算机编程语言
- 字符编码学习笔记
- HZK16的介绍及使用
- IIRF(Ionic's Isapi Rewrite Filt er)入门,在IIS上重写Url
- Linux内核热拔插机制
- CCIR656
- sysfs之kobject分析