uboot cmdline解读

uboot cmdline解读来源:http://blog.csdn.net/shengzhadon/article/details/527662631、最关键的数据结构定义2、用宏定义的方式,定义变量3、概括4、举例5、简化版写法A、定义结构体B、直接用宏定义变量,将中间步骤直接省略C、应用D、系统组成E、系统动作

来源:http://blog.csdn.net/shengzhadon/article/details/52766263

 

1、最关键的数据结构定义

2、用宏定义的方式,定义变量

3、概括

如前所述,U_BOOT_CMD的作用就是定义一个结构体变量(struct cmd_tbl_s),并将其存放再uboot的没有被占用的section中。展开就是:

注:该变量属性是4字节对齐(aligned(4) ),存放在未被使用的section中,并将该section命名为【".u_boot_list_2_"#name】(attribute_((unused, section(".u_boot_list_2"#name))))。

 

4、举例


命令nfs

即为:

将_u_boot_list_2_cmd_2_nfs变量4字节对齐存放在未被使用的uboot的section中,该section被命名为.u_boot_list_2_nfs。

5、简化版写法

A、定义结构体

B、直接用宏定义变量,将中间步骤直接省略

C、应用

D、系统组成

通过多条 PARSE_CMD_LINE 宏,注册(生成)多条命令行子功能。

只需要将其追加到一个列表中即可遍历访问:

cmd_tbl_s *cmd_tbl[] =

{

&cmd_list_clean,

&cmd_list_help,

};

E、系统动作

主函数 main运行一个while(1)列循环,然后不断监测用户输入。

如检测到用户输入了 clean则清空屏幕。

或者其它命令,解析成命令和相应参数