i-focus i-focus BB
    • カテゴリ
    • 最近
    • タグ
    • 人気
    • ユーザー
    • グループ
    • 登録
    • ログイン

    新規モジュールの作り方

    AAASWatchPro
    makefile
    1
    2
    569
    もっと見る
    • 古いものから新しい順
    • 新しいものから古い順
    • 最高評価
    返信
    • スレッドとして返信する
    投稿するのにログインして下さい
    このスレッドが削除されました。スレッド管理権を持っているユーザーにしか読めません。
    • X
      XinC
      最後に編集した時間

      複雑なシステムをより効率的に開発するため、モジュール化しなければならないです。これから、Mocor RTOS向け(他の組み込みプロジェクトもだいたい同じ)新規モジュールの作り方を紹介します。

      あらすじ

      • 新規ディレクトリを作成
      • そのディレクトリにヘッダーとソースを作成
      • makeディレクトリに当該モジュールのMakefileを作成
      • そのMakefileに必要なヘッダーとソースを追加
      • 当該プロジェクトのルートディレクトリにあるMakefileで、当該ライブラリを共通パスに追加

      これで、mainモジュールのMakefileを編集しなくても、新規モジュールの関数を呼び出すことができます。

      例

      • 課題:MS_Ref/sourceにABCモジュールを追加したい
      • 解決策:
        1. MS_Ref/sourceにifcs_abc/inc及びifcs_abc/src、二つのディレクトリを作成
        2. MS_Ref/source/ifcs_abc/incにifcs_abc.hを追加
        3. MS_Ref/source/ifcs_abc/srcにifcs_abc.cを追加
        4. make/ifcs_abcディレクトリを作成し、そのディレクトリにifcs_abc.mkを作成
        5. ifcs_abc.mkにヘッダーやソースなどを追加
        6. ANTISW3.modulesに"EXPORTLIBS += ifcs_abc"及び"LINKLIBLIST += $(addprefix $(MY_BASELIB_DIR)/,ifcs_abc.a)"を追加
        7. Makefile.rulesに"COMMON_INCPATH += MS_Ref/source/ifcs_abc/inc"を追加
        8. 「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に追加すること。

      1 件の返信 最後の返信 返信 引用 0
      • X
        XinC
        最後に編集した時間

        Makefile変数の説明

        EXPORTLIBS: チップメーカー(UNISOC)が提供したライブラリ(ほぼ静的リンク)
        
        COMPLIBS: デフォルトでコンパイル時に生成するライブラリ
        
        3RD_LIBS: 外部ライブラリ
        
        COMMON_INCPATH: 全域的にアクセス可能なヘッダーのパス
        
        1 件の返信 最後の返信 返信 引用 0
        • First post
          Last post