uboot 启动流程 freescale

来源:互联网 发布:linux下卸载jdk1.8 编辑:程序博客网 时间:2024/05/01 04:59

配置文件: include/configs/mx53_xx.h

1. board/freescale/“platform”/u-boot.lds (链接脚本)

ENTRY(_start) 指示程序的入口函数_start


2. cpu/arm_cortexa8/start.S

// 程序开始的一些基本设置,汇编,不知说啥

#endif
    ldr pc, _start_armboot  @ jump to C code

_start_armboot: .word start_armboot  // 最后跳到函数 start_armboot


3. lib_arm/board.c (start_armboot)

// u-boot 进入的第一个C函数,完成系统的初始化,处理用户输入命令


3.1 board_late_init (); // board/freescale/“platform”/mx53_smd.c

3.1.1  board_special_init(void)  //初始化gpio

3.1.2 board_pm_setup(void) // 电源设置 usb充电或AC充电之类

3.1.3 check_autotest_mode(); // 检查是否为autotest mode : 即检查某个按键是否按下,是则设置命令环境变量 setenv("bootcmd", "run bootcmd_autotest");

3.2 check_recovery_mode(); // 检查是否为 recovery mode

3.3 进入mian loop        main_loop ();


4 。 main_loop (); // common/mian.c

// 处理输入命令,按设置好的环境变量启动linux


原创粉丝点击