U-Boot的命令为用户提供了交互功能,并且已经实现了几十个常用的命令。如果开发板需要很特殊的操作,可以添加新的U-Boot命令。U-Boot的每一个命令都是通过U_Boot_CMD宏定义的。这个宏在<include/command.h>头文件中定义
#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命令,其定义如下:
U_BOOT_CMD(//bootm命令
bootm, CFG_MAXARGS, 1, do_bootm,
"bootm - boot application image from memory\n",
"[addr [arg ...]]\n - boot application image stored in memory\n"
"\tpassing arguments 'arg ...'; when booting a Linux kernel,\n"
"\t'arg' can be the address of an initrd image\n"
#ifdef CONFIG_OF_FLAT_TREE
"\tWhen booting a Linux kernel which requires a flat device-tree\n"
"\ta third argument is required which is the address of the of the\n"
"\tdevice-tree blob. To boot that kernel without an initrd image,\n"
"\tuse a '-' for the second argument. If you do not pass a third\n"
"\ta bd_info struct will be passed instead\n"
#endif
);
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函数
分享到:
相关推荐
图解U-Boot:第二阶段源码分析(清晰)
常用软件测试工具 工具名称 功能范围 WinRunner-----功能:1.插入检查点;2.检验数据;...它对分析源码和跟踪错误方面有一定独到的见解,并且采用图解的方法跟踪源码。白盒方面Compuware也非常不错;
Python学习笔记 官方文件 非官方资讯 线上课程 学习中: Udemy- Udemy- Udemy- 已服用: Udemy- 书籍 已购入: 2019-03-29:碁峰.Al Sweigart H&C-Python骇客...赵英杰-超图解Python物联网实作入门-使用ESP
25、常见隐患排查图解,一看就懂比检查表简单!.ppt 26、隐患排查图解—特种设备.ppt 27、企业隐患排查标准对照图解.ppt 28、节后14项排查重点,11 项必查隐患清单,12 项必做安全检查.docx 29、构建风险分级管控和...
linux内核图解-内核图解
图解ARM-Linux的启动全过程:从内核的自解压到引导阶段,再到内核初始化,自后是文件系统的初始化。
模拟电子技术
亮白风格-图解网络-小林coding-v2.0.pdf
暗黑风格-图解网络-小林coding-v2.0.pdf
linux内核图解linux内核图解linux内核图解linux内核图解linux内核图解
亮白风格-图解网络-小林coding-v3.0.pdf
图解网络--小林coding 暗黑版+亮白版
leetcode 分类 LeetCode-Journey 项目主要是用于记录刷题轨迹。 在不断完善中... 项目结构 目前项目有三个目录: ...该目录暂时也还是会空着,应该还没想好用怎样的形式以图解的方法对题目进行分析。目前还在探索中...
svm思维导图图解------
目录SENet : 2017MobileNet-V2:2018ShuffleNet-V2: 2018MobileNet-V3: 2019EfficientNet: 2019Transformer in Transformer: 2021ViT-Image Recognition at Scale: 2021Perceiver: 2021图解Object_Detection框架Multi...
design-pattern-with-picture:《图解设计模式》结城浩着官方源码
图解网络-暗黑风格-绝对值
图解ARM-Linux的启动全过程:内核自解压阶段——>内核引导阶段——>内核初始化阶段——>BusyBox初始化阶段。
2007-09-23 18:12 886,078 6 sniffit使用图解.pdf 2004-03-11 11:11 2,976,256 abc_HB分析.doc 2013-08-06 15:37 0 ppp.txt 2003-01-08 09:42 5,947,133 Snif1.cap 2003-01-08 09:43 3,823,729 Snif2.cap 2004-03-11...