OK6410开发板uboot启动流程分析
的有关信息介绍如下:uboot引导程序开发是一个系统驱动开发者能力的最全面体现,怎样灵活的根据自己的研发板进行移置适合自己的uboot是很关键的。下面就来同大家一同分享它的启动流程 。
打开Source Insight软件,创建一个工程并搜索启动程序start.S
_start是u-boot-1.1.6启动后的第一个执行地址,对arm11来说,它只是简单的复位向量并且跳转到reset处执行。
跳转到uboot/board/samsung/smdk6410/lowlevel_init.S中去进行时钟,串口,关中断,关看门狗,简单的nand初始化等。
uboot.lds文件,在uboot/board/samsung/smdk6410目录下,是告诉编译器这些段该怎样划分,为保存start.S会第一个执行做了保障。
CPU在完成基本的初始化后就会进行C语言代码入口文件 _armboot_start , 在uboot/lib_arm/board.c中完成一些结构的初始化。
在位置uboot1.1.6\lib_arm\board.c中start_armboot函数中运行,全局为量的初始化,调用通过初始化函数,初始化基本设备,初始化环境变量,进入主循环。
start_armboot除了以上的工作外,在一切准备就绪之后,就进入u-boot主循环
main_loop()函数。
main_loop代码比较长,基本就是执行用户输入的命令。此函数所在位置uboot_ok6410\common\main.c中的main_loop()函数
注意:在uboot1.1.6\include\configs目录中的smdk6410.h中定义了命令的定义,网络的配置等信息。