新規モジュールの作り方
-
複雑なシステムをより効率的に開発するため、モジュール化しなければならないです。これから、Mocor RTOS向け(他の組み込みプロジェクトもだいたい同じ)新規モジュールの作り方を紹介します。
あらすじ
- 新規ディレクトリを作成
- そのディレクトリにヘッダーとソースを作成
- makeディレクトリに当該モジュールのMakefileを作成
- そのMakefileに必要なヘッダーとソースを追加
- 当該プロジェクトのルートディレクトリにあるMakefileで、当該ライブラリを共通パスに追加
これで、mainモジュールのMakefileを編集しなくても、新規モジュールの関数を呼び出すことができます。
例
- 課題:MS_Ref/sourceにABCモジュールを追加したい
- 解決策:
- MS_Ref/sourceにifcs_abc/inc及びifcs_abc/src、二つのディレクトリを作成
- MS_Ref/source/ifcs_abc/incにifcs_abc.hを追加
- MS_Ref/source/ifcs_abc/srcにifcs_abc.cを追加
- make/ifcs_abcディレクトリを作成し、そのディレクトリにifcs_abc.mkを作成
- ifcs_abc.mkにヘッダーやソースなどを追加
- ANTISW3.modulesに"EXPORTLIBS += ifcs_abc"及び"LINKLIBLIST += $(addprefix $(MY_BASELIB_DIR)/,ifcs_abc.a)"を追加
- Makefile.rulesに"COMMON_INCPATH += MS_Ref/source/ifcs_abc/inc"を追加
- 「make p=UWS6130E_WA_2h11 m="ifcs_abc"」で当該モジュールをコンパイル
ifcs_abc.mkの参考例
MINCPATH = MS_Ref/source/ifcs_abc/inc MSRCPATH = MS_Ref/source/ifcs_abc/src SOURCES = ifcs_abc.c
注意事項:ABCモジュールに使われたヘッダーを必ずMINCPATHに追加すること。
-
Makefile変数の説明
EXPORTLIBS: チップメーカー(UNISOC)が提供したライブラリ(ほぼ静的リンク) COMPLIBS: デフォルトでコンパイル時に生成するライブラリ 3RD_LIBS: 外部ライブラリ COMMON_INCPATH: 全域的にアクセス可能なヘッダーのパス