ARM开发总结的小常识
字节 8位
半字 16位
字
Code, RO-data
RW-data,ZI-data
Code为程序代码部分
RO-data 表明 程序界说的常量 const temp;
RW-data 表明 已初始化的全局变量
ZI-data 表明 未初始化的全局变量
Program Size: Code=”18248″ RO-data=320 RW-data=260 ZI-data=3952
Code, RO-data,RW-data …………..flash
RW-data, ZIdata……………….RAM
初始化时RW-data从flash拷贝到RAM
生成的map文件坐落list文件夹下 (KEIL)
ARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)
R0-R15 (R15-PC,R14-LR,R13-SP) 32位
每个反常方式还带有一个程序状况保存寄存器 (SPSR),它用于保存在反常事情产生之前的CPSR
LDMIA R1!,{R2-R7, R12} ;将R1单兀中的数据读出到R2-R7,R12,
STMIA RO!,{R3-R6,R10}
在数据传送之前,将偏移量加到Rn中,其成果作为传送数据的存储地址.若运用后缀“!”,则成果写回到Rn中,且Rn值不允许为R15.指令举例如下:
LDR
LDMFD
“^”符号表明这是一条特别方式的指令。这条指令在从存储器中装载PC的一起(PC是最终康复的),CPSR也得到康复
大端格局(Big-endian)
小端格局(Little-endian)
数据0x12345678存储格局
低地址<----0x12|0x34|0x56|0x78---->高地址
低地址<----0x78|0x56|0x34|0x12---->高地址
ARM微处理器支撑7种运转方式,分别为: CPSR M[4:0]
用户方式(usr):ARM处理器正常的程序履行状况。
快速间断方式(fiq):用于高速数据传输或通道处理。 10001
外部间断方式(irq):用于通用的间断处理。
管理方式(svc):操作体系运用的保护方式。
数据拜访停止方式(abt):当数据或指令预取停止时进入该方式,可用于虚拟存储及存储保护。10111
体系方式(sys):运转具有特权的操作体系使命。 11111
界说指令间断方式(und):当未界说的指令履行时进入该方式,可用于支撑硬件协处理器的软件仿真。 11011
ARM正常作业一般作业在用户方式和体系方式,复位的时分进入管理方式
关于ARM指令集来说,PC指向当时指令的下两条指令的地址
留意pc,在调试的时分显现的是当时指令地址,而用mov lr,pc的时分lr保存的是此指令向后数两条指令的地址
假定反汇编代码:
(此刻检查PC寄存器的值是0x000001,但实践PC值是0x000003, lr里边保存的便是0x000003)
fields 指定传送的区域(psr
c 操控域屏蔽字节(psr[7..0])
x 扩展域屏蔽字节(psr[15..8])
s 状况域屏蔽字节(psr[23..16])
f 标志域屏蔽字节(psr[31..24])
例如:MSR cpsr_c, #0xD3 ;