2009年2月6日 星期五

VIVI Bootloader 如何新增指令?

 STEP1.




先來設定一下工作目錄所在位置, 在這裡我的 Bootloader 資料放在  /home/dclab/bootLoader/vivi  ,所以後面就用 $VIVI表示




# export VIVI=/home/dclab/bootLoader/vivi




 STEP2.




首先我們新增一個檔案 led.c  , 這個檔案內容負責宣告新增指令用!




# vim $VIVI/lib/led.c







[檔案]  $vivi/lib/led.c:




#include <config.h>
#include <command.h>
#include <types.h>
#include "printk.h"

void command_led(int argc, const char **argv){
    printk("show led....\n");               //    當執行指令後, 螢幕顯示出來的資訊內容!
}   

user_command_t led_cmd = {                                //    宣告一個指令結構
    "led",                                                               //     命令的名稱   
    command_led,                                                  //     實現該命令的具體函數
    NULL,                                                              //     指向下一條命令的指
    "help led [{cmds}]\t\t\t -- Led show program"    //     命令的使用說明
};







[參閱]  $vivi/include/command.h:




typedef struct user_command {
const char *name;
void (*cmdfunc)(int argc, const char **);
struct user_command *next_cmd;
const char *helpstr;
} user_command_t;













 STEP3.



[檔案]  修改 $vivi/lib/command.c 檔案, 尋找 int init_builtin_cmds(void)  處, 新增以下內容:





+ :351    extern user_command_t led_cmd;  // 新增於 int init_builtin_cmds(void) 上方

+ :398    add_command(&led_cmd);             // 新增於 int init_builtin_cmds(void)








[檔案]  修改 $vivi/lib/Makefile 檔案, 新增以下內容





+ :10   obj-y += led.o








 STEP4.




接著就可以編譯 vivi 看看




# make clean
# make








開發版上測試指令, 輸入上方宣告的指令  " led "




# led




























參考資料:
http://blog.csdn.net/hansir007/archive/2007/08/29/1764077.aspx




http://www.cublog.cn/u/21948/showart.php?id=379460

沒有留言:

張貼留言