汇编问题录

1、ldr r13,=0x1000

对于ldr r13,=0x1000的解释
有“=”号表示ldr是一个伪指令。
ldr r13,=0x1000     //表示把立即数0x1000送入r13,0x1000=4KB代表bootloader结束处  

r13是stack pointer,因为后面要跳到LedMain,这个function是用c写的,所以必须要事先分配stack,否则c程序没法运行。给r13赋值就是分配stack,对跑马灯来说只要是可用内存就行,并不在乎具体地址在哪。

其实只要记住一条,C是基于栈的语言,没有栈是无法运行的,而且栈是从高地址处向低地址处的,所以是从0x1000~0x0。

(将0x1000改成sdram的地址 0x30000000~0x34000000也行,只是不要覆盖到RO Base的地址 (待测)

你可能感兴趣的:(bootloader)