Linux | uboot2017添加自定义命令

----the version of uboot is 2017

假设我要添加一个自定义命令叫“test”,添加步骤如下(三步即可):

1.在cmd/下编写一个test.c文件,文件里包含功能函数和宏U_BOOT_CMD (注:功能函数必须是这个格式:do_xxxx(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);)

Linux | uboot2017添加自定义命令

 

2.在cmd/下的Makefile里添加:obj-y += test.o或者obj-$(CONFIG_CMD_TEST) += test.o(注:第二种方法需要,定义CONFIG_CMD_TEST这个宏,暂时不知道要在哪里定义)

 

3.在configs/ft2004_defconfig里添加CONFIG_CMD_TEST=y

注意!注意!注意!本文只是单纯介绍如何添加一个自定义命令,没有详细介绍原理哦!

背景知识:

U_BOOT_CMD 在include/command.h中定义,而U_BOOT_CMD 是用一个struct cmd_tbl_s 结构体定义,这个结构体仍是在include/command.h中实现。

truct cmd_tbl_s {

char *name; /* 命令名 */

int maxargs; /* 最大参数个数 */

int repeatable; /* 是否(既然是“是否”,应该是填0或者1)自动重复 ,就是下一次按回车时会再次执行*/

int (*cmd)(struct cmd_tbl_s *, int, int, char *[]); /* 响应函数 */

char *usage; /* 简短的帮助信息 */

#ifdef CONFIG_SYS_LONGHELP

char *help; /* 较详细的帮助信息 */