uboot 新增命令

迷霧綠洲發表於2014-05-28

uboot中有幾十個常用的命令,可以幫助我們快速實現資料的拷貝、傳遞、狀態顯示等需求

但是這還不夠 ,我們需要更多的命令實現差異化,uboot提供的命令也不夠

新增命令需要三步:

這裡就舉一個例子  新增 一個名字叫test的命令

新增前一定要檢測不要和存在的命令重名

一 、新增命令實現函式的檔案

在common 資料夾下新增檔案  cmd_show.c

這裡面推薦這麼命名,可以看到這個資料夾下都是這麼命名的 ,我們也不要換了   當然是可以改的   只要和第二步配合好就行了

裡面這麼寫就好 

#include <common.h>
#include <command.h>

#ifdef CONFIG_CMD_SHOW

int do_show(cmd_tbl_t *cmdtp,int flag,int argc,char *argv)

{

printf("do test \n");

return 0;

}

U_BOOT_CMD(

show,1,0,do_test,"usage:show\n","show:test\n"

);

#endif


二、common資料夾下的makefile

增加一條

COBJS-y += cmd_show.o

這也就是增加我們第一步那個.c增加到編譯中

三、在include 資料夾下的configs的資料夾下找到你用的板子的.h

如果是atmel的板子  裡面就可以去選at打頭的對應型號的.h  

#define CONFIG_CMD_SHOW

可以看一下  這個是和第一條對應的   這裡有一個點需要注意  如果這是儲存了  cmd_test.c中的條件編譯沒有被開啟 也就是還是顯示灰色的

不要擔心  更不要在檔案中新增 include 第三步的.h     不然會出錯的   因為已經包含了



這樣就完成了新增命令新增  可以在命令中打test了

U-Boot 2010.06-dirty (May 28 2014 - 17:57:58)

DRAM:  64 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0
U-Boot> show
do test
U-Boot>

以上就是列印結果

相關文章