生活就像海洋,只有意志坚强的人,才能到达彼岸。
全部博文(52)
2013年(52)
分类: LINUX
2013-09-19 20:22:29
1、关于ARM的名词归类
在ARM领域里。我们会经常看到这样一些名词,如:ARMv6、ARMv7、S3c6410、ARM9、S3c2440、ARM11、CortexA8、S5Pv210.我们可以把这些名词分类来整理一下。
芯片 ARM核 指令架构
2440 ARM9 ARMv4
6410 ARM11 ARMv6
210 A8 ARMv7
2、ARM核的演变图
-M系列主要面向面对工控,-R面向实时,-A面向多媒体
3、关于2440、6410、210三款芯片的性能对比
芯片型号 |
2440 |
6410 |
210 |
处理速度 |
400M——500M |
533M——667M |
800M——1G |
缓存大小 |
16KB |
16KB |
32KB |
内存接口 |
SDRAM |
SDRAM/DDR |
DDR/DDR2 |
其他 |
宣布停产 |
尚有生产 |
尚有生产 |
4、ARM的工作模式:
ARM处理器的工作模式有7种,他们分别是:usr、fiq、irq、svc、abt、und、sys;各种工
作模式都有不同的工作范围和权限,其主要是为了系统的安全性。
5、ARM寄存器详解
由上图可知,ARM共有37个寄存器,其中包含31个通用寄存器,6个状态寄存器。在31
个通用寄存器中,其中有分组通用给寄存器(R0—R7)、分组通用寄存器(R8-R14)。程序计
数器R15,即PC指针。 在这些寄存器中,R13正常使用的是作为堆栈指针,就是SP。R14
是链接寄存器LR,它有两个特殊的作用:一是保存子函数的返回地址,二是当发生异常时,
保存异常处理的返回地址。
在状态寄存器CPSR或SPSR寄存器中,有些位需要我们掌握的就是N、Z、I、F、M。
N:当两个数相减的时候,如果是负数则N=1,如果是整数或者0则N=0;
Z:两个数相比较,如果相等则Z=1,否则等于0;
I:当这个位设置为1时将不使能普通中断;
F:当这个位设置为1时将不使能快速中断;
M[4:0]:决定了进程的操作在哪种工作模式,可以通过读这几位来了解此时工作在什么模式,
也可通过写着几位来切换工作模式。
6、ARM寻址方式
所谓的寻址方式就是处理器根据指令中的信息来找到指令所需操作数的方式。
(1)立即数寻址
立即数寻址,是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即数寻址。例如一下指令:
ADD R0,R0,#0x3f; R0<---R0+0x3f
在以上指令中,第二个源操作数即为立即数,要求以“#”为前缀。
(2)寄存器寻址
寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是一种执行效率较高的
寻址方式。
ADD R0,R1,R2 ;R0 <---R1 + R2
该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。
(3)寄存器器间接寻址
寄存器间接寻址就是寄存器中的存放的是操作数在内存中的地址。例如以下指令:
LDR R0,[R2] ;R0<---[R2]
在这条指令中,以寄存器R2的值作为操作数的地址,在存储器中取得一个操作数后与
R1相加,结果存入寄存器R0中。
(4)基址变址寻址
基址变址寻址就将寄存器里的内容(基地址)与指令中给出的地址偏移量相加,从而得
到操作数在内存中的地址:
LDR R0, [R1,#4] ;R0<----[R1+4]
(5)相对寻址
与基址变址寻址方式相类似,相对寻址PC指针的当前值为基地址,指令中的地址标号
作为偏移量,将两者相加后得到操作数的有效地址。以下程序段完成子程序的调用和返回,
跳转指令BL采用了相对寻址方式:
BL NEXT; 跳转到子程序NEXT处执行
.......
NEXT
......
MOV PC, LR;从子程序返回