[][mobile][Homepage][BBS][Blog][YouTube][asablo]

過去の記事の検索が簡単にできるよ (・∀・) 例 ランチャー9
カスタム検索

MPLAB IDEのプロジェクトをMPLABXに移行する方法2013/03/12 14:37:42



最近のマイクロチップ社のYoutubeをみているとMPLABXをフィーチャーした動画をよく目にするようになった。MPLAB IDEにはない素敵な機能が多い。特にソースコードの差分をずっと保存しているLocal History機能は強力だ。

MPLAB IDE8で既に作ったプロジェクトは、実はいとも簡単にMPLABXへインポートができるのである。しかも読み込んだプロジェクトはMPLAB IDEのソースコードと共存して、排他的に別々に動作が可能だ。

今回はインポート手順について紹介しよう。なお、マイクロチップのチャンネルでも同様な紹介をしているのでそちらの動画もご覧いただくと、より一層理解できるだろう。


現在の最新ダウンロードはこちら。
  →MPLAB IDE8.89
  →MPLABX1.70
  →Microsoft XCコンパイラ (これもインストール)



今回はこちらのソースコード。ホームページのHello Worldでも紹介している12F1822のLEDピカピカだ。MPLAB IDE8.88で書かれていろこのプロジェクトをMPLABXで読み込んでみよう。



まずはMPLABXをインストール。インストールするとき、以前のバージョンのMPLABXがある場合はアンインストールが必須なので、スタートメニューからMPLABXを探してアンインストーラーを実行後にインストールだ。
インストールが終わって、MPLABXのアイコンがデスクトップ上にできるので、ダブルクリックで起動すると、以前のバージョンを使っていた場合は、その情報を継承するか聞いてくるので、普通なら「はい」を選択。



起動時画面。読み込みは、File→Import→MPLAB IDE v8 Projectを選択。



読み込みたい*.mcpファイルの入ったフォルダをBrowseをクリックして指定しNext。



この情報は、既にmcpファイルから読み込まれているのでそのままNext。



デバッグ用のヘッダー使用。普通は何もせずNextで良い。



ツールのセレクト。私はPICkit3を持っていたのでそこにフォーカスしてNext。
一般的にはSimulatorにフォーカスしてNextでよい様だ。



コンパイラの選択は、使用しているコンパイラをフォーカスしてNext。私の場合、XC8 Ver1.12。



プロジェクト名やフォルダは自動的に出来上がる。*.cや*.hなどのファイルが以前と共有されるので、MPLAB IDE v8でもビルドができる。ちなみに分けたい場合は新規プロジェクトで作成したほうが良い。
日本語特有の注意として、 Encodingは必ず Shift-JISを選択することである。
選択をクリックしてSキーを押すと簡単に見つけられる。これ以外のEncodingで行うと、日本語でコメントが書いてあるソースが正しく表示できなくなる。



最後にサマリーが表示される。Finishでインポート終わりだ。
新しくインポートされたファイルは以前に使用していたフォルダの次に*.xと名前の付いた物が専用フォルダとしてできる。注意事項として、中身を直接編集することはしないで欲しいとマイクロチップの動画で説明があった。



さて、読み込まれた直後の画面。赤く囲んだ部分をクリックしてみると、


MPLAB8からMPLABXへの移行手順

ツリーが展開されるので、main.cをダブルクリックしてみる。すると右側にソースが表示される。
ハンマー&ほうきのアイコンをクリックするとビルド開始だ。



正常にビルドできるとメッセージにsuccessfulと表示され、メモリーゲージに使用量が表示されているのが観察できる。ソースコードをよく見たら赤い波線が引かれている。これは
Unable to resolve identifier(識別子を解決できない)というエラー。今まで使っていた
__configという部分は、XC8コンパイラを呼び出してビルドするので問題ないが、Hitech PICCからXCになった時に、この部分の仕様が変わった様だ。

このままでももちろん問題はないが、新しいconfig定義として書き直しておくか。



Hitech PICC時代ではヘッダーファイルを調べて見ていたものが、Microsoft XC8ではインストールされたフォルダの所にhtmlで開けるドキュメントがあり、これが各チップのconfigを記載する方法が書いてある。 C:\Program Files\Microchip\xc8\v1.12\docs\chips
12F1822を開いてみる事に。



これがconfigの書き方の例。幾つかの用法が書かれており、後半は各機能のパラメータ説明が書かれている。
__CONFIG( 
FOSC_INTOSC & WDTE_ON & PWRTE_ON & MCLRE_OFF & CP_OFF 
& CPD_OFF & BOREN_NSLEEP & CLKOUTEN_ON & IESO_OFF & FCMEN_OFF
);
__CONFIG(
WRT_OFF & PLLEN_OFF & STVREN_ON & BORV_LO & LVP_OFF
);
この部分を、

#pragma config FOSC = INTOSC
#pragma config WDTE = ON
#pragma config PWRTE = ON
#pragma config MCLRE = OFF
#pragma config CP = OFF
#pragma config CPD = OFF
#pragma config BOREN = NSLEEP
#pragma config CLKOUTEN= ON
#pragma config IESO = OFF
#pragma config FCMEN = OFF
#pragma config WRT = OFF
#pragma config PLLEN = OFF
#pragma config STVREN = ON
#pragma config BORV = LO
#pragma config LVP = OFF
この様に置き換えて、再度ビルド。



エラーもなく正常ビルド完了。波線も消えてスッキリ。ただし、__delay_ms(xxx)などのインライン関数などは、赤い波線が残る。以上でプロジェクトの移行だが、やってみるととっても簡単。
おっと、ここで注意。この#pragmaで指定したconfigは、ここで定義したが、一番最初に読まれるファイルで定義するべきである。そうしないと、理解できないエラーに悩まされることがある。
私が確認した現象では、__Delay関数用の_XTAL_FREQ定義以降に読まれた#pragma config以降に、一部のconfigがセット出来ない現象が発生した。
main.cであれば先頭に、main.hなどのヘッダーなどがあれば先頭で書く。



追記:別の方法としてコンフィギュレーションビットは、Windows→PIC Memory View→Configuration Bitsを選択し、該当ビットをマウスで選択して、Generate Source Code to Outputをクリックすると、注釈をつけたコンフィギュレーションをテキスト形式に書き出してくれるので、それをコピーアンドペーストして利用すると簡単に扱える。



もう一つ、数ある特化した機能の中でLocal Historyを紹介しておこう。これは、変更点をいつでもタイムマシンの様に過去に遡って戻ることができるのである。MPLAB IDEでは、一旦プロジェクトを閉じたらUndoはクリアされるが、これは標準で7日、設定では1年でもOKだ。
使い方は簡単。左側に表示されているソースファイルを右クリックして、Local Historyを選択するだけだ。


挿入や削除された行や構文がビジュアルで分かるようになっている。上図では今日変更した部分は8箇所ということである。これはとても頼もしい機能だ。



標準で7日だが、365日に設定しておくことをオススメする。設定部分はOptionから上図の部分まで辿って行き、残して欲しい日数を入れるだけである。

その他にも色々なツールや使い方がある。せっかくマイクロチップ社が日本語の字幕をつけているので、これらの動画を全部見ることをおすすめしたい。


  →日本語動画の紹介ページ  Microchipオフィシャルの日本語によるMPLABX解説動画
  →MPLABX日本語説明書(pdf) (・∀・)

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
全角で「あ」をタイプしてください。Japanese language only.

コメント:

トラックバック





Google
www Blog HP BBS


air_variableサイトをまとめて検索 
カスタム検索
[][admin][mobile][Homepage][BBS][Blog][YouTube][asablo]