跳轉到內容

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.hmy_new_module.c)。還會建立一個 Makefile。

要檢查一切是否正常,請嘗試編譯新模組

cd my_new_module
make

這將建立一個名為my_new_module.a的存檔檔案。

現在你可以編輯my_new_module.hmy_new_module.c檔案。如果你的模組更復雜,你當然可以建立其他my_new_module_*.cmy_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/版本控制系統問題

[編輯 | 編輯原始碼]

程式一樣,我們強烈建議使用版本控制系統,如SVN(Subversion)來儲存你的 Khepera III 模組。SVN 可能是當今最突出的系統,易於設定和使用。

如果你使用版本控制系統,你應該檢入模組的以下檔案

  • 所有原始檔(*.c,*.h)
  • Makefile
  • 編譯後的存檔檔案(*.a)(這樣,對於沒有設定編譯器的人來說,就可以使用編譯後的副本)
  • 程式所需的任何其他檔案

你不應該檢入

  • 中間編譯檔案(*.o,*.d)
華夏公益教科書