软件、硬件的初始化(启动文件初始化)

1、软件初始化

    1 设置栈 (SP→内存(SRAM))

    2 调用main()

    3  清理工作

2、硬件初始化

    1 关闭看门狗

    2  初始化时钟

    3 初始化SDRAM

.text
.global _start
_start:
            ldr     r0, =0x53000000     @ WATCHDOG寄存器地址
            mov     r1, #0x0                     
            str   r1, [r0]              @ 写入0,禁止WATCHDOG,否则CPU会不断重启
            
            ldr     sp, =1024*4         @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K
                                        @ nand flash中的代码在复位后会移到内部ram中,此ram只有4K
            bl      main                @ 调用C程序中的main函数这行代码bl main;设置返回地址(这个地址就是这条命令的下一条语句)且调用main
halt_loop:
            b       halt_loop
原文地址:https://www.cnblogs.com/yygsj/p/4957487.html