如何在U-Boot中添加自定义命令

如何在U-Boot中添加自定义命令

1、U-boot命令机制

U-boot中每个命令都使用一个struct cmd_tbl_t定义,该定义在include/commands.h中实现。
要添加一个新命令,要在源码common目录下添加对应的c文件,并且加到Makefile。
命令实现模板如下

    #include <common.h>
               #include <command.h>
       int do_hello(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
               {        printf(“hello world\n”);
                       return 0;            }
               U_BOOT_CMD(hello, CONFIG_SYS_MAXARGS, 1, do_hello, “usage info”,  “help info”);
 #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \

其中U_BOOT_CMD是uboot中定义的宏,实际上就是定义一个类型为cmd_tbl_t的结构体并对其赋值;在该结构体中定义好命令名称、参数、命令处理函数等。当用户输入命令后,uboot在接受到命令后到U_BOOT_CMD中依次查找每个cmd_tbl_t,匹配上了就执行这个cmd指向的实现函数。

2、实现步骤

  1. /include/config_cmd_all.h 添加CONFIG_CMD_NANDBOOT宏
  2. /include/config_cmd_default.h 同上
  3. /include/configs/SEP0611.h 添加宏 (以上头文件的修改,都是为了条件编译做准备的)
  4. /common/cmd_nandboot.c 自己定义的命令 具体实现命令的函数 (命令的实现与命令的注册都在这儿)
  5. /common/Makefile 把自己写的实现命令文件添加到Makefile中,(参加编译需要配置一下)

3、执行过程:

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/howiexue/article/details/79836382