Khepera III 工具箱/編寫自己的模組
如果你想在多個程式中使用相同的程式碼段(例如感測器板介面或通用演算法),建立模組可能很有用。這樣的模組可以在所有程式中包含並使用。
Khepera III 工具箱為你提供了一個模組模板和一個 Makefile。
確保你擁有一個工作開發環境,如編寫自己的程式中所述。
要建立一個新模組,請輸入
cd my_khepera3_module_directory k3-create-module my_new_module
其中my_new_module表示你的模組名稱。這將建立一個名為my_new_module的資料夾,其中包含標頭檔案和實現檔案(my_new_module.h,my_new_module.c)。還會建立一個 Makefile。
要檢查一切是否正常,請嘗試編譯新模組
cd my_new_module make
這將建立一個名為my_new_module.a的存檔檔案。
現在你可以編輯my_new_module.h和my_new_module.c檔案。如果你的模組更復雜,你當然可以建立其他my_new_module_*.c和my_new_module_*.h檔案(注意字首my_new_module_!)。所有這些附加檔案將自動編譯,並可用於包含該模組的程式。
模組不能獨立執行。要測試模組,你必須建立一個包含此模組的程式。要包含你的模組,請在程式的Makefile中新增以下行
MY_MODULES := path/to/my_new_module
這將告訴編譯器查詢該模組的*.h檔案,並將my_new_module.a存檔整合到程式中。(如果你的程式需要多個模組,只需在同一行新增它們。注意所有模組資料夾都必須位於相同的位置。)
現在,你可以在程式中使用模組的功能,並用它來測試這些功能。注意,無論何時更改模組中的程式碼,都需要先重新編譯模組,然後重新編譯程式。
可以透過修改Makefile中的以下行來更改二進位制可執行檔案的名稱
ARCHIVE := my_new_module.a
注意,存檔檔案應該始終與專案資料夾同名,字尾為.a。
模組可以包含其他模組。要包含標準模組,請在 Makefile 中新增以下行(當然,還有你想要新增的模組)
MODULES := khepera3 commandline i2cal
要包含你自己編寫的其他模組,請新增
MY_MODULES := path/to/my_other_module_1 path/to/my_other_module_2
到 Makefile 中。
與程式一樣,我們強烈建議使用版本控制系統,如SVN(Subversion)來儲存你的 Khepera III 模組。SVN 可能是當今最突出的系統,易於設定和使用。
如果你使用版本控制系統,你應該檢入模組的以下檔案
- 所有原始檔(*.c,*.h)
- Makefile
- 編譯後的存檔檔案(*.a)(這樣,對於沒有設定編譯器的人來說,就可以使用編譯後的副本)
- 程式所需的任何其他檔案
你不應該檢入
- 中間編譯檔案(*.o,*.d)