平成27年 5月 21日
MPLAB Harmonyをライブラリ化する(3) USBドライバをライブラリ化(その3)
昨日までの変更でUSART 2CHのループバックが動作します。動作画面は面倒なので割愛します。
次はこの機能をライブラリにします。
基本的にはプロジェクト中のファイルから
- main()関数を削除する
- 割り込み処理関数(__ISR記述のある関数)のみが単独ファイルになっている場合は、リンクが上手くいかないので初期化関数など他の関数のソースファイルと一緒に収めなおす。または割り込み処理関数はライブラリに含めない。
を変更すればライブラリ化できます。新規にライブラリ用のプロジェクトを作る方法もありますが、現在のプロジェクトに新規コンフィグレーションとしてライブラリ化を追加できます。
まず、最初にMPLAB画面左上のProjectウインドウからカレントプロジェクトを右クリックしてプロジェクトプロパティを開きます。
ここで、画面左下にある[Manage Configrations]ボタンを押して、既存のプロジェクトをコピーして名前を変更します。ここではdebugプロジェクトをコピーしてlibraryプロジェクトと名前を変更します。画面は追加・変更後の画面です。OKを押してメイン画面に戻ります。
次に画面左側のCategoriesからlibraryプロジェクトのBuildingを選択すると以下のような画面になります。ここで、画面中央上部のConfigration
typeをapplicationからlibraryに変更します。これでビルド条件がアプリケーションからライブラリに変わります。これでOKとしてメイン画面に戻ります。
最後に、libraryコンフィグレーションからmain.cファイルを外します。
最初はまずlibraryコンフィグレーションを選択します。画面中央上部のドロップウインドウから選択します。
次に画面左上のprojectウインドウのSource Filesからmain.cを右クリックすると下記のプロパティ画面が表示されます。
ここでExclude from buildにチェックを入れます。これでlibrayコンフィグレーションからmain.cファイルは外れます。
後は通常通りにビルドすればライブラリが作られます。必要に応じて最適化レベル・デバッグ情報の設定などを行います。
この作業によってユーザープログラムからはUSBドライバの内部を意識することなく、新規に追加した数個の関数のみを使用してプログラムを書くことが出来ます。また、インクルードファイルも新規に作ったlib_usb_cdc_dual.hのみをインクルードすれば良いのでMPLAB
Harmonyのインストール先を意識する必要が無くなります。USBシリアルではCH数以外のパラメータを変更することは殆ど無いと思われます。精々PID/VIDを変更する程度でしょう。毎回コンパイルするのも面倒です。何よりヘッダーファイルのインクルード先の設定が面倒でした。これで少しは楽が出来ます。
最後に、今回のプロジェクトの圧縮ファイルをダウンロード出来るようにしておきます。
このフォルダはMPLAB Harmony\v_100\app\usb\deviceフォルダに置く前提でコンパイルできます。
ダウンロード :
Lib_cdc_test-2015-05-20.zip