zoukankan      html  css  js  c++  java
  • uboot中添加自定义命令

    uboot中可以通过修改源程序来添加自定义命令,进一步扩展uboot的功能。

    我想在uboot下添加一条新的命令(名为varcpy),用来拷贝uboot中的环境变量。

    修改方式如下:

    创建新文件common/cmd_varcpy.c,并在该文件中添加如下内容:

    #include <common.h>
    #include <command.h>
    
    #ifdef CONFIG_CMD_VARCPY
    int do_varcpy(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
    {
        int i;
        if(argc != 3)
            cmd_usage(cmdtp);
        setenv(argv[2],getenv(argv[1]));    
    
        return 0;
    }
    
    U_BOOT_CMD(
        varcpy,    3,        1,    do_varcpy,
        "copy oldvar to newvar",
        "oldvar newvar
    "
        "    - copy enviroment value of oldvar to a new variable named as newvar
    "
    );
    #endif

    在common/Makefile中添加一行:

    COBJS-$(CONFIG_CMD_VARCPY) += cmd_varcpy.o

    在include/configs/hwgw6410_dev.h下添加一行:

    #define CONFIG_CMD_VARCPY

    然后重新编译,将生成的uboot烧写到开发板,然后就可以使用该命令了。使用方式如下:

    hwgw # printenv
    baudrate=115200
    bootargs=console=ttySAC,115200
    bootcmd=if mmc rescan 0 ; then fatload mmc 0 0x50000000 reload.img; source 0x50000000; fi 
    bootdelay=3
    ethact=dm9000
    ethaddr=00:12:39:8f:ad:b3
    ipaddr=192.168.1.111
    oldipaddr=192.168.1.111
    serverip=192.168.1.149
    stderr=serial
    stdin=serial
    stdout=serial
    
    Environment size: 324/16380 bytes
    hwgw # varcpy serverip oldserverip
    hwgw # printenv
    baudrate=115200
    bootargs=console=ttySAC,115200
    bootcmd=if mmc rescan 0 ; then fatload mmc 0 0x50000000 reload.img; source 0x50000000; fi
    bootdelay=3
    ethact=dm9000
    ethaddr=00:12:39:8f:ad:b3
    ipaddr=192.168.1.111
    oldipaddr=192.168.1.111
    oldserverip=192.168.1.149
    serverip=192.168.1.149
    stderr=serial
    stdin=serial
    stdout=serial

    Environment size: 352/16380 bytes

    从上面的输出信息可以看到,使用varcpy将serverip拷贝到oldserverip后,得到的环境变量多了一行关于oldserverip的信息。

  • 相关阅读:
    UVa OJ 148 Anagram checker (回文构词检测)
    UVa OJ 134 LoglanA Logical Language (Loglan逻辑语言)
    平面内两条线段的位置关系(相交)判定与交点求解
    UVa OJ 130 Roman Roulette (罗马轮盘赌)
    UVa OJ 135 No Rectangles (没有矩形)
    混合函数继承方式构造函数
    html5基础(第一天)
    js中substr,substring,indexOf,lastIndexOf,split等的用法
    css的textindent属性实现段落第一行缩进
    普通的css普通的描边字
  • 原文地址:https://www.cnblogs.com/qiaoqiao2003/p/3758835.html
Copyright © 2011-2022 走看看