U-Boot的命令为用户提供了交互功能,并且已经实现了几十个常用的命令。如果开发板需要很特殊的操作,可以添加新的U-Boot命令。U-Boot的每一个命令都是通过U_Boot_CMD宏定义的。这个宏在
#defineU_BOOT_CMD(name,maxargs,rep,cmd,usage,help)\
cmd_tbl_t__u_boot_cmd_##nameStruct_Section={#name,maxargs,rep,cmd,usage}
其中:
·name:命令的名字,他不是一个字符串,不能用双引号括起来
·maxargs:最大的参数个数
·command:对应的函数指针
·usage:一个字符串,简短的使用说明
·help:一个字符串,比较详细的使用说明
对于bootm命令,其定义如下:
[plain]view plaincopy
1.U_BOOT_CMD(//bootm命令
2.bootm,CFG_MAXARGS,1,do_bootm,
3."bootm-bootapplicationimagefrommemory\n",
4."[addr[arg...]]\n-bootapplicationimagestoredinmemory\n"
5."\tpassingarguments'arg...';whenbootingaLinuxkernel,\n"
6."\t'arg'canbetheaddressofaninitrdimage\n"
7.#ifdefCONFIG_OF_FLAT_TREE
8."\tWhenbootingaLinuxkernelwhichrequiresaflatdevice-tree\n"
9."\tathirdargumentisrequiredwhichistheaddressoftheofthe\n"
10."\tdevice-treeblob.Tobootthatkernelwithoutaninitrdimage,\n"
11."\tusea'-'forthesecondargument.Ifyoudonotpassathird\n"
12."\tabd_infostructwillbepassedinstead\n"
13.#endif
14.);
bootm命令是用来引导经过U-Boot的工具mkimage打包后的kernelimage的。U-Boot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。 mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置,入口点在内存的那个位置以及映象名是什么。
U-Boot正是通过bootm命令引导Linux内核的。bootm命令调用do_bootm函数,下面我们来分析一下:
do_bootm函数流程分析
do_bootm_linux函数
-
Linux
+关注
关注
87文章
11354浏览量
210657 -
Uboot
+关注
关注
4文章
126浏览量
28378
原文标题:非常详细!图文带你详解U-Boot引导内核分析
文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
U-Boot介绍
U-boot的基本介绍
![<b class='flag-5'>U-boot</b>的基本介绍](https://file1.elecfans.com/web2/M00/8C/C4/wKgaomSxDC-AIi1QAACKegMzhAU876.png)
U-Boot是如何引导系统的
u-boot详解
u-boot引导启动Linux 2.6的内核
U-Boot的启动及移植分析
Porting U-Boot to the Control
u-boot的Makefile分析
U-Boot结构功能介绍
![<b class='flag-5'>U-Boot</b>结构功能介绍](https://file1.elecfans.com//web2/M00/A5/A8/wKgZomUMOXeAD3-GAAAxLI3Aifs249.jpg)
U-Boot源代码分析之Linux的引导
u-boot简介
U-Boot架构浅析
![<b class='flag-5'>U-Boot</b>架构浅析](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
tiny4412编译与移植U-Boot
![tiny4412编译与移植<b class='flag-5'>U-Boot</b>](https://file.elecfans.com//web2/M00/66/AB/pYYBAGMOIoqAWweoAAFTzdNj8LY073.png)
评论