平成26年 5月 18日
USB用の実験環境
マイクロチップ社のHPからUSBフレームワークをダウンロードしてきます。どうも昨年末に大きな変更が行われたらしく、Microchip Libraries
for Applicationsという名前になっています。USB関連のプロジェクトも従来のMPLAB用からMPLAB X用に変更されています。このため従来のようにプロジェクトファイル(.mcp,
.mcw)が存在せず、代わりにプロジェクトフォルダが存在します。これに気が付かなかったためにプロジェクトの存在がないと勘違いして、手こずる羽目になりました。
とりあえず最初にやる必要があるのは欲しい機能(プロジェクト)を手持ちの環境に合わせて再コンパイルしなおす事です。手持ちの環境ではCPUはPIC24FJ256GB106です。USBのデバイス側プロジェクトでCDC(シリアル通信用のプロジェクト)関連を探すとcdc_basicという名前のものがあります。このプロジェクトにはPIC24FJ256GB110用があります。これをベースに変更します。
MPLAB Xの起動が非常に遅い
このプロジェクトを起動させると、(私の使用しているPCの性能が低いこともあるのですが)プロジェクトを開き終わるまでに数分以上かかります。最初はPCが固まったのかと思うほどです。このプロジェクトは多くのPICマイコンに対応するために非常に多くのコンフィグレーションを持っています。このため内部的には単純なプロジェクトの数十倍の負荷が掛かっているようです。使用しないコンフィグレーションを削除すれば随分と改善します。今回はPIC16,
PIC18, PIC32関連のコンフィグレーションを全て削除しました。
PIC24FJ256GB106用のコンフィグレーションを追加する
直接、PIC24FJ256GB110のコンフィグレーションを修正してもいいのですが、何か不具合がおきた時にリファレンスとして動作するコンフィグレーションを残しておきたいので、PIC24FJ256GB110とは別にPIC24FJ256GB106用のコンフィグレーションを作ります。
まず、PIC24FJ256GB110用のコンパイルが正しく行えることを確認します。その後は簡単にコピーするだけで良いかと思ったのですが、そうも行きません。
マイコン毎にフォルダを分けている下記2箇所でPIC24FJ256GB110用のフォルダをコピーしてPIC24FJ256GB106用に名前を変更します。このフォルダには共に.cファイルと.hファイルがあるので、Projectツリーへの登録が必要になります。
../src/system_config
../../../../../../bsp
次にコンフィグレーション画面からインクルードディレクトリのエントリーを上記のPIC24FJ256GB106用に変更します(2箇所)。
最後に画面左上のProjectツリーにPIC24FJ256GB106用のソースファイルとヘッダーファイルを追加します。共に各2個のフォルダとその中にあるファイルを追加します。
多数の同じファイル名をどうやって管理しているのか?
一つのプロジェクトで多数のPICマイコン用オブジェクトを出力できるようにコンフィグレーションによって条件コンパイルをかけているんだろうと思ったのですが、それらしいラベルや記述が見当たりません。各マイコン毎に異なる記述はマイコン名をディレクトリとして各フォルダ内ごとに同じファイル名で登録されています。これらのファイルをどのように選択しているのかが分からず時間が掛かりました。
結局、画面左上のProjectツリーから必要なフォルダを右クリック-プロパティを選択することで、下記のファイル選択画面を表示させ、この画面から
コンパイル時に不要なファイル・フォルダにチェックを入れます。これでコンパイル時に検索対象から外されます。
まだ、コンパイルが全て通る状態ではなくマイコンの違いによるエラーが出ています。不要なハードウェア制御部分を削除する必要があります。