U boot中定製自己的命令

2021-06-02 06:37:28 字數 961 閱讀 1802

我們使用u-boot的時候,大多數都是直接編譯再移植了,很少改動裡面的具體內容,特別是其中包含的命令等。雖然裡面包含了一些常用的提供給使用者進行互動的命令,並且也比較實用了。但是,根據某些開發板的特殊操作和使用者的特定需求,還是不得不去在uboot中,新增一些供自己除錯和開發的命令,這樣會更方便快捷的開展工作。

這樣,就介紹一下關於如何在uboot中,新增命令的方法和步驟。

首先,介紹以下有關uboot的命令定義。

每個命令都是通過u_boot_cmd巨集來定義的。這個巨集定義了乙個相關的結構體,檔案是uboot/include/command.h,結構體為cmd_tbl_s。

具體的命令定義為:

#define u_boot_cmd(name,maxargs,rep,cmd,usage,help) \

cmd_tbl_t __u_boot_cmd_##name struct_section =

每乙個 u-boot 命令有乙個結構體來描述。結構體包含的成員變數:命令名稱、最大參,數個數、重複數、命令執行函式、用法、幫助。

而相關命令的具體執行在uboot/common/cmd_***x.c檔案中實現的。

接著,以我自己新增的mytest命令為例子,講述新增命令的過程。

1)在對應的開發板配置檔案中,新增相應命令的巨集定義。如:在uboot/include/configs/mx25_3stack.h檔案中,新增#define config_cmd_mytest。

當然,也可以在uboot/include/config_cmd_default.h檔案中,新增該命令的巨集定義。

2)在uboot/common/目錄下,建立相應的命令執行檔案,如cmd_mytest.c,注意命名的規範,必須是cmd_***.c才行。

裡面的內容也是又格式要求的,如函式的格式,必須指定引數的;還有相應結尾部分的u_boot_cmd定義部分,使不能預設的。如果命令不需要跟引數,則把maxargs設定為1即可了。

U boot中定製自己的命令

我們使用u boot的時候,大多數都是直接編譯再移植了,很少改動裡面的具體內容,特別是其中包含的命令等。雖然裡面包含了一些常用的提供給使用者進行互動的命令,並且也比較實用了。但是,根據某些開發板的特殊操作和使用者的特定需求,還是不得不去在uboot中,新增一些供自己除錯和開發的命令,這樣會更方便快捷...

u boot 中的命令實現

u boot 中的命令實現 我們知道,u boot的執行過程是首先進行一些初始化化工作,然後在乙個死 迴圈中不斷接收串列埠的命令並進行解釋執行,下面我們就看看執行部分 的實 現,見common main.c中的run command int run command const char cmd,in...

u boot中新增命令

看下ping命令實現的例子 檔案common cmd net.c static int do ping cmd tbl t cmdtp,int flag,int argc,char const argv printf host s is alive n argv 1 return 0 u boot ...