前回からの続きです。
このテーマを最初からご覧になる場合はこちらからどうぞ。
プロジェクトの作成
この「TOPPERS/ASP AVR32版」では、2つのIDE(統合開発環境)を使用する方針です。
すなわち、コードを編集してそれをビルドする時に使う「Eclipse」と、ターゲットへプログラムの書き込みを行い、それをデバッグするための「Microchip Studio」です。
したがって、それぞれの様式に沿った2つのプロジェクトを作成しなければなりません。
では、なぜ2つ使うのか?
Microsoftの「Visual Studio」ベースの「Microchip Studio」が、コーディングをする上で重すぎて使い難いからです。
とはいえ、デバッガの「Atmel-ICE」を使用するためには、どうしても「Microchip Studio」が必要というジレンマ…。
あくまで個人的な好みなので、このあたりの使い分けは自由に選択してください。
とにもかくにも、まずは「Eclipse」のプロジェクトを作りましょう。
これに関しては、以前このブログに記載した「TOPPERS/ASP Arduino MEGA2560版」の記事が参考になります。
8Bitか32Bitかの違いはありますが、同じAVRマイコンですからね。
作業内容は同じです。
このページ(TOPPERS/ASP - Arduino Mega2560版 その4)の「プロジェクトの作成(Eclipse編)」の項目を参考にしてください。
同様に「Microchip Studio」のプロジェクトもこのページ(TOPPERS/ASP - Arduino Mega2560版 その4)の「プロジェクトの作成(Microchip Studio編)」の項目を参考にしてください。
デバッガとターゲットの配線
デバッガの「Atmel-ICE」とターゲットの「AT32UC3A3-XPLD」の間で、こんな感じの配線をします。
「Atmel-ICE」には2種類のケーブルが同梱されているはずです。
今回使用するのは、10ピンがバラバラに出てるやつです。
それをこのように配線しなければなりません。
表がこう。
裏はこんな感じ。
信号の対応表は以下の通り。
まずは、「Atmel-ICE」側は以下の通り。
今回使うのはAVRポートの方ですよ!
次に「AT32UC3A3-XPLD」側は以下の通りです。
結果、バラバラ10ピンケーブルの方は、7番と8番はノンコネクトで大丈夫です。
プログラムの転送とデバッグ
これからTOPPERS/ASPのサンプルプログラムを動かす際には、動作確認のためにどうしてもシリアルポートが必要です。
そこで、以下のような市販のUSB/シリアル通信変換ケーブルを用意します。
シリアル通信をするために必要なポートは、RXDとTXDとGNDの三本ですね。
ターゲット基板上の「J4」ヘッダから取りましょう。
以下の赤い四角で囲った端子を使いましょう。
評価ボードからこうやってGNDとRXDとTXDと、それぞれの線を出してやって…
USB/シリアル通信変換ケーブル側の配線は、上からTXD、RXD、GNDの順番でこんな感じ。
これでシリアルポートが使えるようになりました。
続いて、このUSB/シリアル通信変換ケーブルをパソコンに繋いでみましょう。
パソコン上でデバイスマネージャーを開きます。
ポート(COMとLPT)のサブカテゴリーとして「USB Serial Port」というポートが追加されているはずです。
(私のパソコンでは、「COM15」として認識されていますね。)
このポート番号、覚えておいて下さい。
ここで、デバッガとパソコン、そしてターゲットとパソコンをそれぞれUSBケーブルで繋げちゃいましょ。
面倒なことに、2種類のUSBケーブルが必要です。
デバッガは「Micro-B」、ターゲットは「Mini-B」と、似ているようで違うので要注意です。
ご覧の通り、通電します。
次に「TeraTerm」をご用意ください。
インストールしていない方は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「TeraTermの導入」の項目を参考にしてください。
もちろん、シリアル通信のターミナルであれば、他のものもお使いいただけます。
今回のTOPPERS/ASPのサンプルプログラムは、シリアル通信のメッセージを出力しますので、先程「USB Serial Port」として認識されたシリアルポート番号でターミナルを立ち上げておきましょう。
設定は、こんな感じです。
ボーレートは「9600」です。
(私のパソコンは、USB/シリアル通信変換ケーブルをCOM15として認識していました。)
さて、「Microchip Studio」に戻りましょう。
「Microchip Studio」でプロジェクトを作成した状況から始めます。
以下の画面が表示されたら、上部にある「AT32UC3A3256」というタブをクリックしてください。
すると、以下の表示に切り替わりますので、すかさず左のリストから「Tool」をクリックしてください。
以下のような画面に切り替わります。
「Selected debugger/programmer」のコンボボックスに接続中の「Atmel-ICE」がID番号付きで表示されていますか?
(「J41800113804」というIDは私のですね。)
表示されていない場合は、コンボボックスをクリックして、あなたの「Atmel-ICE」(「J41800113804」以外のもの)を選択してください。
加えて「Interface」は「JTAG」のままで結構です。
(ていうか、それ以外選べないはず。)
この設定を保存しましょう。
画面上部の保存アイコンをクリックしてください。
次に、プログラムのビルドと実行を行います。
画面上部の「▶」ボタンをクリックします。
しばらくすると、立ち上げておいたターミナルに以下のような表示が出ていると思います。
TOPPERS/ASPカーネルとそのサンプルプログラムの転送と実行に成功です。
ブレークポイントを試してみましょう。
動作中のプログラムを停止します。
画面上部の「■」ボタンをクリックします。
ブレークポイントを仕掛けましょう。
画面右の「Solution Explorer」のソースコードリストの中から「sample1.c」をダブルクリックし、ソースコードを表示します。
このソースコードの丁度中盤くらい、メインタスクの始めに仕掛けましょうか。
ブレークポイントは、ソースコードビューの左端をクリックすると赤丸が表示され、セットされていることを表します。
仮に、これを再びクリックするとブレークポイントが解除され赤丸も消えます。
では、ブレークポイントを仕掛けた状態で、プログラムを再び実行してみます。
上手く引っかかってくれるでしょうか…。
以下のようにプログラムが停止すれば成功です!
ここからは、「F10」キーでステップオーバー、「F11」キーでステップインなど、おなじみの操作が使用できます。
因みに、ステップオーバーやステップインなどを行っている時に命令が飛んでしまったり前後したりする場合は、最適化のせいです。
デバッグ時は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「サンプルプログラムのデバッグ」の項目を参考に最適化を解除しましょう。
ソースコードのコピーやら、複数のIDEの操作やら、AVR32版は少々複雑でしたね…。
お疲れ様でした!!
さて、次回はサンプルプログラムの動きの説明や、AVR32版カーネルの詳細な情報や注意事項などを書いていきます。