开发板上电后,执行U-Boot的第一条指令,然后顺序执行U-Boot启动函数。函数调用如图所示。
看一下board/smsk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序。第一个要链接的是cpu/arm920t/start.o,那么U-boot的入口指令一定位于这个程序中。下面分析一下程序跳转和函数调用关系以及函数实现。
1. cpu/arm920t/start.S
这个汇编程序是U-Boot的入口程序,开头就是复位向量的代码。
U-Boot启动代码流程图