版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012351051/article/details/86670221
u-boot包含的功能已经非常多了,不亚于一个小型操作系统,允许程序员与u-boot进行交互, 而交互的背后就是通过命令来实现的,比如u-boot最重要的功能——引导kernel,就是通过bootm命令来实现的,在致远imx287开发板上,该命令为 多次指向完成:
#ifdef CONFIG_BOOTCOMMAND
"bootcmd=" CONFIG_BOOTCOMMAND "\0"
#endif
而CONFIG_BOOTCOMMAND则在对应的mx28_evk.h中定义:
#define CONFIG_BOOTCOMMAND "run nand_boot"
而nand_boot的定义如下:
"nand_boot=nand read.jffs2 $(loadaddr) $(kerneladdr) $(kernelsize);" \
"bootm $(loadaddr);"
这句话翻译过来就是,对Nand Flash进行操作,将内核kernel从“kerneladdr”地址开始读,共读“kernelsize”大小,搬迁到loadaddr地址处,搬迁后,通过bootm命令,开始从“loadaddr”位置执行命令,也就是对kernel进行解压等等。