CMD配置位于config_cmd_default.h   configs/at91/sam9g10ek.h

头文件位于include/command.h

41 struct cmd_tbl_s {
 42     char        *name;      /* Command Name         */
 43     int     maxargs;    /* maximum number of arguments  */
 44     int     repeatable; /* autorepeat allowed?      */
 45                     /* Implementation function  */
 46     int     (*cmd)(struct cmd_tbl_s *, int, int, char *[]);
 47     char        *usage;     /* Usage message    (short) */
 48 #ifdef  CFG_LONGHELP
 49     char        *help;      /* Help  message    (long)  */
 50 #endif
 51 #ifdef CONFIG_AUTO_COMPLETE
 52     /* do auto completion on the arguments */
 53     int     (*complete)(int argc, char *argv[], char last_char, int maxv, ch    ar *cmdv[]);
 54 #endif
 55 };
 56
 57 typedef struct cmd_tbl_s    cmd_tbl_t;

71 /*
 72  * Monitor Command
 73  *
 74  * All commands use a common argument format:
 75  *
 76  * void function (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 77  */
 78
 79 typedef void    command_t (cmd_tbl_t *, int, int, char *[]);

89 #define Struct_Section  __attribute__ ((unused,section (".u_boot_cmd")))

91 #ifdef  CFG_LONGHELP
 92
 93 #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
 94 cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help}
 95
 96 #else   /* no long help info */
 97
 98 #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
 99 cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage}
100
101 #endif  /* CFG_LONGHELP */

以最简单的命令ersion为例介绍:

位于lib_arm/board.c

75 const char version_string[] =
 76     U_BOOT_VERSION" (" __DATE__ " - " __TIME__ ")"CONFIG_IDENT_STRING;

common/command.c

31 int
 32 do_version (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 33 {
 34     extern char version_string[];
 35     printf ("\n%s\n", version_string);
 36     return 0;
 37 }
 38
 39 U_BOOT_CMD(
 40     version,    1,      1,  do_version,
 41     "version - print monitor version\n",
 42     NULL
 43 );
 44

uboot中CMD的实现的更多相关文章

  1. uboot中的命令体系

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

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

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

  3. 七、在U-boot中让LCD显示图片

    1. 增加Nandflash读取代码 因为要显示图片,而图片明显是放在Nandflash中比较合适,因此需要有能够操作Nandflash的函数.在U-boot中已经有能操作Nandflash的函数了, ...

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

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

  5. uboot中的快捷菜单的制作说明

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

  6. 在u-boot中添加命令

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

  7. 在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 ...

  8. uboot中添加FIQ中断及相关问题

    本文主要说明了在uboot中添加FIQ中断时遇到的问题以及对应的解决办法. 首先交代一下项目的软硬件环境.硬件方面,使用s3c2440作为主控芯片,外接串口.网卡等设备.软件方面,主控芯片上电后运行u ...

  9. DSP中CMD文件

    DSP中CMD文件 (2012-12-26 20:54:17) 转载▼ 标签: 杂谈 分类: DSP FPGA DSP的存储器的地址范围,CMD是主要是根据那个来编的.CMD 它是用来分配rom和ra ...

随机推荐

  1. OOAD和UML

    ooad: object oriented analysis designer 又有两个分支: ooa(object oriented analysis):what to do ood(object  ...

  2. javascript高级程序设计第二章

    看后总结: 1.js代码用得最多的两种加载方式: a)外部文件形式:<script type="text/javascript" src="jquery.min.j ...

  3. printDocument设置适应边框打印 特重要 找了半天 设置一个属性即可

    private void pd_PrintPage(object sender, PrintPageEventArgs e) { e.Graphics.SmoothingMode = System.D ...

  4. python学习笔记——multiprocessing 多进程组件 进程池Pool

    1 进程池Pool基本概述 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量时间,如果操作的对象数目不大时,还可以直接适用Process类动态生成 ...

  5. python新手中常见疑惑及解答

    1 lambda函数 函数格式是lambda keys:express   匿名函数lambda是一个表达式函数,接受keys参数,返回表达式的值.所以不用return,也没有函数名,经常用在需要ke ...

  6. django中templates阅读笔记

    一.基本知识 1.模版是独立于django的,可以独立运行. 模版变量是用两个大括号括起来的字符串,表示变量.例如{{ person_name }} 模版标签,是用一对大括号和一对百分号括起来的,例如 ...

  7. Spark1.4.1 编译与安装

    1.下载下载地址:http://spark.apache.org/downloads.html 选择下载源码 2.源码编译1)解压tar -zxvf spark-1.4.1.tgz2.编译spark有 ...

  8. Python学习笔记11:标准库之文件管理(os包,shutil包)

    1 os包 os包包含各种各样的函数,以实现操作系统的很多功能.这个包很庞杂.os包的一些命令就是用于文件管理. 我们这里列出最经常使用的: mkdir(path) 创建新文件夹.path为一个字符串 ...

  9. SourceInsight-查看java中接口对应的实现类

    1.双击选中需要查看的接口名称,然后右击选择“Show in Relation Window” 2.然后在右侧会弹出一个Relation的窗口 如果没有列出对应的实现类,可以在接口名上再次右击,依次选 ...

  10. 公共的Json操作C#类

    using System; using System.Data; using System.Text; using System.Collections.Generic; using System.R ...