启动文件包括软件和硬件两方面。
1、设置栈sp。
设置栈我们要初始化硬件,因为要访问内存。
如果板子上是SRAM可以直接使用,不需要初始化;
如果是SDRAM,我们需要初始化硬件:
[1] 关闭看门狗
[2] 初始化时钟
[3] 初始化SDRAM
2、设置返回地址
3、调用main
3、清理工作
简单的启动文件代码如下:
.text
.global _start
_start:
ldr r0, =0x53000000 @ WATCHDOG寄存器地址
mov r1, #0x0
str r1, [r0] @ 清看门狗,否则CPU会不断重启
ldr sp, =1024*4 @ 设置堆栈
bl main @ 调用C程序中的main函数
halt_loop:
b halt_loop