博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
u-boot 2016.05 添加u-boot cmd
阅读量:5863 次
发布时间:2019-06-19

本文共 2241 字,大约阅读时间需要 7 分钟。

记录一下如何在u-boot 添加一个自己想要的命令。

首先来看一下宏,include/command.h    218 #define U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage, _help)      \               219     U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, NULL)
U_BOOT_CMD 宏第一个参数是你的命令的名字。                 第二个参数你最大参数个数                 第三个参数是是否能复用。                 第四个参数是实现的函数名                 第五个简单说明。                后面是help
  • 举例:
nandecc.c                                                                                       #include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#if defined(CONFIG_SOC_KEYSTONE) #include
#else #include
#endif #include
#include
#include
#include
#include
#include
#include
#ifdef CONFIG_CMD_NANDECC extern void omap_nand_switch_ecc(nand_ecc_modes_t hardware, int32_t mode); static int do_switch_ecc(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]) { int type = 1; if (argc < 2) goto usage; if (strncmp(argv[1], "hw", 2) == 0) { if (argc == 3) type = simple_strtoul(argv[2], NULL, 10); omap_nand_switch_ecc(NAND_ECC_HW, type); } else if (strncmp(argv[1], "sw", 2) == 0) omap_nand_switch_ecc(NAND_ECC_NONE, 1); else goto usage; return 0; usage: printf("Usage: nandecc %s\n", cmdtp->usage); return 1; } U_BOOT_CMD( nandecc, 3, 1, do_switch_ecc, "Switch NAND ECC calculation algorithm b/w hardware and software", "[sw|hw
] \n" " [sw|hw]- Switch b/w hardware(hw) & software(sw) ecc algorithm\n" " hw_type- 0 for Hamming code\n" " 4 for bch4\n" " 8 for bch8\n" " 16 for bch16\n" ); #endif
  • 将该文件添加进所属文件的Makefile,上述例子所在目录是cmd 目录。
    我将在该目录里面加入如下选项:
cat cmd/Makefile        //...    98 obj-$(CONFIG_CMD_NANDECC) += nandecc.o    //...
  • 然后在你的config.h 里面添加相关宏定义开关:
cat include/configs/am335x_sbc7109.h    //...    343 #define CONFIG_CMD_NANDECC      //...
  • 然后启动u-boot ,看是否有nandecc 这条命令。有即成功加入。

转载地址:http://uwynx.baihongyu.com/

你可能感兴趣的文章
php 直接调用svn命令
查看>>
建立低权限的ftp帐号
查看>>
htpasswd
查看>>
Android窗口机制(三)Window和WindowManager的创建与Activity
查看>>
Android 编译出错解决
查看>>
iOS--The request was denied by service delegate (SBMainWorkspace) for reason:
查看>>
Android 打开WIFI并快速获取WIFI的信息
查看>>
Spring boot 入门篇
查看>>
【IOS开发】GDataXML解析XML
查看>>
Iptables
查看>>
我的友情链接
查看>>
GridView多行多列合并单元格(指定列合并)
查看>>
什么是DDOS攻击?怎么防御?
查看>>
状态模式(State Pattern)
查看>>
log4j日志框架学习
查看>>
function 与 => 的区别
查看>>
VBScript:写excel的例子
查看>>
TYVJ P1077 有理逼近 Label:坑,tle的好帮手 不懂
查看>>
面试题:缓存Redis与Memcached的比较 有用
查看>>
通过UIWebView加载读取本地文件
查看>>