這個菜單其實就是一個uboot中的命令,uboot啓動時,如果進入下載模式,就先運行這個命令。 命令的執行內容就是通過串口打印出一個菜單,等待用戶輸入,再執行相應的動作。 先自己寫一個cmd_menu.c的文件,放到common目錄下,修改同目錄下的Makefile文件,加入編譯選項: COBJS-$(CONFIG_CMD_MENU) += cmd_menu.o cmd_menu.c裏面的內容:
先將cmd_bootm.c裏面的頭文件包含進去。
menu是名字,CONFIG_SYS_MAXARGS表示最大的參數,0表示不可重複,do_menu是實現的函數。接下來的是短的幫助信息,接着是長的幫助信息。 參照cmd_bootm.c裏面的int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) 寫 實現do_menu
}這裏調用了menu_shell()它的實現如下:
其實主要的就是按鍵的讀取函數和菜單命令的實現,run_command();
這只是一些簡單的菜單命令。呵呵,有點意思。