【uboot】uboot添加自定义命令

实现步骤:

  1. 1.uboot源码下新建cmd/cmd_xx.c
  2. 2.添加基本的命令和函数
  3. 3.cmd下makefile添加 obj-y += cmd_update.o

头文件:

#include <common.h>

#include <command.h>

函数:

/*

    第一个参数:添加的命令的名字

    第二个参数:添加的命令最多有几个参数(注意,假如你设置的参数个数是3,

              而实际的参数个数是4,那么执行命令会输出帮助信息的)

    第三个参数:是否重复(1重复,0不重复)(即按下Enter键的时候,

              自动执行上次的命令)

    第四个参数:执行函数,即运行了命令具体做啥会在这个函数中体现出来

    第五个参数:帮助信息(short)

    第六个参数:帮助信息(long)

*/

static int do_update(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])

{

        return 0;

}

添加命令update:

// U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage, _help)

U_BOOT_CMD(update, 4, 0, do_update,

    "update command",

    " - check boot progress and timing\n"

    "update all\n"

    "update uboot \n"

    "update image \n"

    "update rootfs \n"

);

/*
 * @Author: error: git config user.name && git config user.email & please set dead value or install git
 * @Date: 2022-11-15 23:26:50
 * @LastEditors: error: git config user.name && git config user.email & please set dead value or install git
 * @LastEditTime: 2022-11-16 21:38:40
 * @FilePath: \uboot\cmd\cmd_update.c
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include <common.h>
#include <command.h>


/*
    第一个参数:添加的命令的名字
    第二个参数:添加的命令最多有几个参数(注意,假如你设置的参数个数是3,而实际的参数个数是4,那么执行命令会输出帮助信息的)
    第三个参数:是否重复(1重复,0不重复)(即按下Enter键的时候,自动执行上次的命令)
    第四个参数:执行函数,即运行了命令具体做啥会在这个函数中体现出来
    第五个参数:帮助信息(short)
    第六个参数:帮助信息(long)
*/
static int do_update(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
    /* 判断参数个数 */
    if (argc != 2)
    {
        printf("update params num err\n");
        return 1;
    }

    if (0 == strncmp("uboot", argv[0], sizeof("uboot")))
    {
        printf("update uboot success\n");
    }
    else if (0 == strncmp("image", argv[0], sizeof("image")))
    {
        printf("update image success\n");
    }
    else if (0 == strncmp("rootfs", argv[0], sizeof("rootfs")))
    {
        printf("update rootfs success\n");
    }

    return 0;
}

/* 
U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage, _help) 

*/	
U_BOOT_CMD(update, 4, 0, do_update,
	"update command",
	" - check boot progress and timing\n"
	"update all\n"
	"update uboot \n"
	"update image \n"
    "update rootfs \n"
);

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值