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 != )
cmd_usage(cmdtp);
setenv(argv[],getenv(argv[])); return ;
} U_BOOT_CMD(
varcpy, , , do_varcpy,
"copy oldvar to newvar",
"oldvar newvar\n"
" - copy enviroment value of oldvar to a new variable named as newvar\n"
);
#endif

在common/Makefile中添加一行:

COBJS-$(CONFIG_CMD_VARCPY) += cmd_varcpy.o

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

#define CONFIG_CMD_VARCPY

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

hwgw # printenv
baudrate=
bootargs=console=ttySAC,
bootcmd=if mmc rescan ; then fatload mmc 0x50000000 reload.img; source 0x50000000; fi
bootdelay=
ethact=dm9000
ethaddr=:::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: / 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的信息。

uboot中添加自定义命令的更多相关文章

  1. u-boot中添加自定义命令

    1.u-boot命令机制u-boot中,每个命令都使用一个struct cmd_tbl_s结构体定义,该定义在include/command.h中实现:struct cmd_tbl_s{ char * ...

  2. 在U-Boot中添加自定义命令以实现自动下载程序【转】

    本文转载自:https://gaomf.cn/2016/06/26/%E5%9C%A8U-Boot%E4%B8%AD%E6%B7%BB%E5%8A%A0%E8%87%AA%E5%AE%9A%E4%B9 ...

  3. uboot中的命令体系

    一.uboot的命令体系介绍以及实例分析: U-Boot 的命令实现大多在 common 目录下.在该目录下命令的代码文件都是以“ cmd_”开头的,如下图所示: 其中每一个文件都是一个命令实现的代码 ...

  4. 在u-boot中添加命令

    转:http://www.embedu.org/Column/Column464.htm 作者:曾宏安,华清远见嵌入式学院讲师. u-boot是嵌入式系统中广泛使用的一种bootloader.它不仅支 ...

  5. uboot中fdt命令的使用

    转载:https://blog.csdn.net/voice_shen/article/details/7441894 依linux community的要求,从linux-3.5后,新提交的code ...

  6. uboot中ftd命令

    可以从u-boot官网源码下载一个比较新的u-boot, 查看它的cmd/fdt.cftp://ftp.denx.de/pub/u-boot/ fdt命令使用示例nand read.jffs2 320 ...

  7. linux中添加自定义命令

    centos下设置alias别名,比较简单,例如: vim /root/.bashrc addalias rm='rm -i' Linux alias设置指令的别名命令详解 功能说明:设置指令的别名. ...

  8. uboot启动 及命令分析(3)

    u-boot命令 先贴一个重要结构,位于uboot/include/command.h,这个结构代表每个uboot命令 struct cmd_tbl_s { char     *name;   /* ...

  9. uboot中的快捷菜单的制作说明 【转】

    转自:http://blog.chinaunix.net/uid-22030783-id-366971.html   在uboot中加入快捷操作菜单的方法非常简单,在论坛发布的uboot201003V ...

随机推荐

  1. http://blog.csdn.net/LANGXINLEN/article/details/50421988

    GitHub上史上最全的Android开源项目分类汇总 今天在看博客的时候,无意中发现了 @Trinea在GitHub上的一个项目 Android开源项目分类汇总, 由于类容太多了,我没有一个个完整地 ...

  2. AAuto如何设置定时器

    在设计视图中(一定要有个Form)点击左下角的功能组件   点击定时器即可切换到代码视图,并添加如下代码.其中我每隔一秒改变一下winform.static2.text的文本值      

  3. 谈论程序中的token

    -> //指针,一旦符号分开就会成以下两个意思,我们一定要注意符号 - //减号 > //大与 int a,big; if(x>big) big = x; C语言以及一些其它语言会自 ...

  4. [ACM] POJ 3233 Matrix Power Series (求矩阵A+A^2+A^3...+A^k,二分求和或者矩阵转化)

    Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 15417   Accepted:  ...

  5. Oracle 查询一个表的所有字段

    select * from user_tab_columns where table_name = 'T_B_CLIENT_MSG'

  6. CSS环绕球体的旋转文字-3D效果

    代码地址如下:http://www.demodashi.com/demo/12482.html 项目文件结构截图 只需要一个html文件既可: 项目截图: 代码实现原理: 该示例的实现过程很简单,主要 ...

  7. Character set &#39;utf8mb4&#39; is not a compiled character set

    近期在一次MySQL数据迁移的过程中遭遇了字符集的问题,提示为"Character set 'utf8mb4' is not a compiled character set".即 ...

  8. Codeforces Round #263 (Div. 2) proB

    题目: B. Appleman and Card Game time limit per test 1 second memory limit per test 256 megabytes input ...

  9. GitHub使用问题(遇到一个记一个)

    1.如何创建文件夹: 如图,Create new files,点击后,若需要创建文件,输入文件名即可,但如果创建的是文件夹,需要在文件夹名后 加一个 '/'斜杠,然后就变成文件夹了

  10. Android 虚化图片的方法

    Android 虚化图片 模糊图片 图片毛玻璃效果. 效果如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaDNjNGxlbm92bw==/font/ ...