- 66
- 0
- 约7.72千字
- 约 14页
- 2019-06-11 发布于广东
- 举报
boot loader启动代码分析
1, bootloader (第一部分)主要完成以下工作:
设置CPUX作模式;
关闭中断;
关闭 Cache 和 Write buffer;
初始化SDRAM,配置存储设备;
复制FLASH中的代码和数据到SDRAM中;
内存重映射,配置存储设备;
把 RM 和 ZI 从 LOAD ADDR 复制到 execute ADDR.
设置栈空间指针,跳转到C语言函数入口(启动代码第 二部分)。
2,具体代码分析
1,设置CPU工作模式
MRS rO, cpsr
#读取CPSR状态寄存器的值
CPSR状态寄存器结构:
N
Z
C
V
I
F
T
Mode
BIC tO, rO, #MASK_MODE
定义值为0x0000003F,把MODE清零;
ORR r0, r0, #MODE_SVC32
宏定义值为0把MODE设置为SVC模式;
ORR r0, r0, #I_BIT
宏定义值为0x80,关IRQ;
ORR r0, t0, #F_BIT
宏定义值为0x40,关FIQ;
MSR cpsr.c, rO
回写cpsi?状态寄存器
设置完CPSR后,状态寄存器中的值:
N
Z
C
V
1
1
T
10011
关闭中断
Table 13-4. INTMSK Register
Register
Offset Address
R/W
Desc
原创力文档

文档评论(0)