完成uboot第二阶级的一系列的硬件初始化工作, 然后转入main函数. 该函数是C程序的入口函数,从汇编语言跳转到此
void start_armboot (void),在此函数中初始化各个设备:
cpu_init, board_init, interrupt_init, env_init, init_baudrate, serial_init, console_init_f,
display_banner, print_cpuinfo, checkboard, dram_init, display_dram_config,
之后flash_init ();用vfd_setmem,lcd_setmem, mem_malloc_init等分配好空间。
devices_init()中有设备的初始化;接下来是console_init_r ();eth_initialize();
然后在main_loop ();不断循环。
bootm命令调用do_bootm函数,进行引导各种操作系统映像,可以引导linux vxworks,QNX等。
具体完成的工作有:保存内核引导地址,分析内核帧头,复制内核映像到SDRAM,调用dobootm_linux()函数。
dobootm_linux函数是专门引导linux映像的函数。打印出“Starting kernel ...”
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。