U-boot中定制自己的命令

转载 2011年01月18日 08:56:00

 我们使用U-boot的时候,大多数都是直接编译再移植了,很少改动里面的具体内容,特别是其中包含的命令等。虽然里面包含了一些常用的提供给用户进行交互的命令,并且也比较实用了。但是,根据某些开发板的特殊操作和用户的特定需求,还是不得不去在Uboot中,添加一些供自己调试和开发的命令,这样会更方便快捷的开展工作。
     这样,就介绍一下关于如何在Uboot中,添加命令的方法和步骤。
     首先,介绍以下有关Uboot的命令定义。

     每个命令都是通过U_BOOT_CMD宏来定义的。这个宏定义了一个相关的结构体,文件是uboot/include/command.h,结构体为cmd_tbl_s。

image

具体的命令定义为:
#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) /
cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help}
     每一个 U-Boot 命令有一个结构体来描述。结构体包含的成员变量:命令名称、最大参,数个数、重复数、命令执行函数、用法、帮助。
     而相关命令的具体执行在uboot/common/cmd_xxxx.c文件中实现的。

     接着,以我自己添加的MYTEST命令为例子,讲述添加命令的过程。
     1)在对应的开发板配置文件中,添加相应命令的宏定义。如:在uboot/include/configs/mx25_3stack.h文件中,添加#define CONFIG_CMD_MYTEST。

image

      当然,也可以在uboot/include/config_cmd_default.h文件中,添加该命令的宏定义。
      2)在uboot/common/目录下,建立相应的命令执行文件,如cmd_mytest.c,注意命名的规范,必须是cmd_xxx.c才行。
      里面的内容也是又格式要求的,如函数的格式,必须指定参数的;还有相应结尾部分的U_BOOT_CMD定义部分,使不能缺省的。如果命令不需要跟参数,则把maxargs设置为1即可了。

image

      在U_BOOT_CMD中指明的命令执行函数,在该函数中,就是我们要设计的命令操作内容。也就是说,这部分完成的我们定制的命令的功能的。
      还有,要在uboot/comman/Makefile文件中,加入生成相应的.o文件才可以的。
      3)重新编译uboot文件,会在uboot/common/中,生成相应的.o文件。将生成的uboot下载到开发板后,通过终端可以看到我们加入的命令。在终端中输入问号或者help命令即可。执行该命令,只学要输入命令的名字,在回车就可以运行了。
      通过在uboot中加入命令,可以完成我们的一些特定的操作,实现调试和测试目的等。

U-Boot移植——修改提示符

0 开发环境     宿主机:Ubuntu14.04     开发板:Mini2440     U-Boot:u-boot-1.1.6      编译器:arm-linux-gc 1 修改配置头文件...
  • Q1302182594
  • Q1302182594
  • 2016年05月18日 20:01
  • 897

u-boot分析 七 (添加u-boot命令,学习u-boot命令实现原理)

u-boot分析 七(添加u-boot命令,学习u-boot命令实现原理)本文目标:理解u-boot命令的实现原理。上一篇文章分析了u-boot是如何启动kernel的,其中就涉及到bootm命令,考...
  • itxiebo
  • itxiebo
  • 2016年03月27日 12:13
  • 3491

向uboot增加新的命令

一、命令的具体定义 每个命令都是通过U_BOOT_CMD宏来定义的,这个宏定义了一个相关的结构体cmd_tbl_s,是在uboot/include/command.h 文件中。 如下所示: ...
  • zhengqijun_
  • zhengqijun_
  • 2017年05月15日 22:14
  • 328

u-boot学习(四):u-boot常用命令以及uboot命令的添加

u-boot的主要目的是启动内核,在启动内核之前,我们一般使用u-boot的命令来
  • To_Be_IT_1
  • To_Be_IT_1
  • 2014年06月03日 20:53
  • 2357

u-boot学习(六):自己写bootloader

按照前面分析的u-boot的启动流程,自己写一个简单的Bootloader。这是参考韦东山老师的视频写的。 1、初始化硬件:关看门狗、设置时钟、设置SDRAM、初始化NAND Flash 2、如果...
  • To_Be_IT_1
  • To_Be_IT_1
  • 2014年06月04日 11:02
  • 2969

uboot 的内存命令使用: mw (修改) md (显示),u-boot 内存 memory

修改: mw [内存地址] [值] [长度]例如:mw 0x02000000 0 128表示修改地址为0x02000000~0x02000000+128的内存值为0. //--------------...
  • lanmanck
  • lanmanck
  • 2009年06月10日 14:11
  • 16641

U-Boot 中 PING 命令处理流程

U-Boot 中 PING 命令处理流程 这里打算从 U-Boot 的 ping 命令说起。ping 命令是用于测试网络是否和目标网络畅通简单工 具,在 U-Boot 中 ping 命令的使用方法...
  • Cupid99
  • Cupid99
  • 2017年02月06日 21:08
  • 712

定制自己的VIM

昨天折腾了一天,看了好多资料,终于把自己的VIM改成一个很好看的配色还有把PYTHON的开发环境也配置的差不多了。从完全不会VIM配置,都后面熟悉了很多参数。慢慢得一个一个做实验,去修改自己的.vim...
  • u010008539
  • u010008539
  • 2015年05月03日 13:11
  • 552

U-boot各种配置 和U-boot源码最为详细的讲解

U-boot原厂版本移植 网址:http://blog.csdn.net/qq_28992301/article/details/51912763 今天开始移植三星...
  • a746742897
  • a746742897
  • 2016年11月12日 16:25
  • 2774

函数main_loop和u-boot命令执行

一.main_loop函数执行流程和命令解释器 run_main_loop是board_r中函数运行列表init_fnc_t init_sequence_r[]最后一个函数,它又调用了main_loo...
  • metersun
  • metersun
  • 2016年09月21日 09:11
  • 2138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:U-boot中定制自己的命令
举报原因:
原因补充:

(最多只允许输入30个字)