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的地址)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/redxu/archive/2010/12/15/6077084.aspx