#define U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, _comp) \ ll_entry_declare(cmd_tbl_t, _name, cmd) = \ U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd, \ _usage, _help, _comp); 在宏定义里面填写cmd的名称最多参数,是否重复执行和具体执行函数等...
U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, NULL) \ #define U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, _comp) \ ll_entry_declare(cmd_tbl_t, _name, cmd) = U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _he...
所以我们最开始放出的这一段代码中,函数则是具体的命令执行过程,U_BOOT_CMD宏则是对命令的一种声明。 自定义U_BOOT_CMD实现 第一步:我们就按照前面给出的这段代码去具体实现,在board目录下(自定义命令可以不把源文件存放至uboot存放命令源文件的地方),新建.c文件,名字随便起,输入开头给出的代码内容。具体的...
U_BOOT_CMD( version, 1, 1, do_version, "version - print monitor version\n", NULL ); 这个宏替换后变成: cmd_tbl_t __u_boot_cmd_version __attribute__ ((unused,section (".u_boot_cmd"))) = {#name, maxargs, rep, cmd, usage, help} 总结:这个U_BOOT_CMD宏的理解,关键在于结构体...
如果要添加自己的uboot命令必须要使用U_BOOT_CMD()这个宏。以hdmi检测功能为例: U_BOOT_CMD(hdmidet, 1, 1, do_hdmidet, "detect HDMI monitor", "" ); 1. 2. 3. 4. U_BOOT_CMD()宏定义 typedef struct cmd_tbl_s cmd_tbl_t; #define U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage...
每个命令都是通过U_BOOT_CMD宏来定义的。这个宏定义了一个相关的结构体,文件是uboot/include/command.h,结构体为cmd_tbl_s 具体的命令定义为: 1. #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ 2. cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage...
如果开发板需要很特殊的操作,可以添加新的U-Boot命令。U-Boot的每一个命令都是通过U_Boot_CMD宏定义的。 这个宏在<include/command.h>头文件中定义。 代码语言:javascript 复制 #defineU_BOOT_CMD(name,maxargs,rep,cmd,usage,help)\ cmd_tbl_t __u_boot_cmd_##name Struct_Section={#name,maxargs,rep...
如果开发板需要很特殊的操作,可以添加新的U-Boot命令。U-Boot的每一个命令都是通过U_Boot_CMD宏定义的。 这个宏在头文件中定义。 #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage} ...
查看U_BOOT_CMD宏定义 #define U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage, _help) ...
U_BOOT_CMD宏定义是在文件include/command.h中,添加自己的命令时一般是在common/目录下新建一个C文件,C文件中包含的头文件可以从该目录下其他命令文件(如cmd_nand.c)复制过来,新建的C文件中一般使用宏U_BOOT_CMD进行声明,例如U_BOOT_CMD(lcdmenu, CFG_MAXARGS, 0, do_lcd_menu,"menu ...