前回からの続きです。
このテーマを最初からご覧になる場合はこちらからどうぞ。
プログラムの転送とデバッグ
まずは、評価ボード「MSP-EXP430F5529LP」をUSB経由で開発用のパソコンと接続しましょう。
次にパソコン上でデバイスマネージャーを開きます。
ポート(COMとLPT)のサブカテゴリーとして「MSP Application UART1」と「MSP Debug Interface」というポートが追加されているはずです。
(私のパソコンでは、それぞれ「COM13」と「COM12」として認識されていますね。)
今回は、その内で「MSP Application UART1」の方に注目してください。
次に「TeraTerm」をご用意ください。
インストールしていない方は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「TeraTermの導入」の項目を参考にしてください。
もちろん、シリアル通信のターミナルであれば、他のものもお使いいただけます。
今回のTOPPERS/ASPのサンプルプログラムは、シリアル通信のメッセージを出力しますので、先程「MSP Application UART1」として認識されたシリアルポート番号でターミナルを立ち上げておきましょう。
設定は、こんな感じです。
ボーレートは「9600」です。
(私のパソコンは、「MSP Application UART1」をCOM13として認識していました。)
さて、Code Composer Studioに戻りましょう。
まだサンプルプログラムをビルドしていない場合は、画面右側の「Build Targets」タブの中、「OBJ」ディレクトリ直下の「all」をダブルクリックして、ビルドを完了させましょう。
次にデバッガの設定を行います。
画面上部にある緑色の「虫マーク」。
その脇に「▼」ボタンがありますので、それをクリック。
そこで現れた「Debug Configurations...」という項目をクリックしましょう。
すると以下のようなダイアログが現れます。
左側のリストから「Code Composer Studio - Device Debugging」という項目をダブルクリックしてください。
ダイアログ右側がガラリと変わりましたね?
まずは上部の「Name:」の部分に、このデバッグ設定の分かりやすい名前を付けてあげましょう。
(例では「OBJ」としています。)
続いて「Use default target configuration」のチェックボックスをクリックしてチェック状態にします。
それと同時に中央のリストボックスに「MSP430」というチェックボックスがチェック状態で表示されることを確認しておいてください。
さて、お次は現在の「Main」タブから「Program」タブへ切り替えます。
クリックです。
まずは、プロジェクトを指定します。
「Project」テキストボックスの右端の「Workspace...」ボタンをクリックします。
以下のようなダイアログが表示されますので、これから実機に転送するプログラムのプロジェクトを選択します。
今回の場合は、この記事の通りに作業いただいた場合は「asp_1.9.2」(もし他の名称でプロジェクトを作成した方は、そのプロジェクト名)一つしか無いはずですので、これをクリックした後「OK」ボタンをクリックします。
次に、実機に転送するプログラムを指定します。
「Program」テキストボックスの右端の「File System...」ボタンをクリックします。
以下のように、ファイル選択ダイアログが開きますので、プログラムが保存されている場所に移動しましょう。
これまで、この記事の通りに作業いただいた場合は以下のパスにあるはず…
C:\cygwin64\home\<ユーザ名>\asp_1.9.2\OBJ
…って、無いじゃん!
そう、ファイル選択ダイアログで上記のパスに移動しても「targetConfigs」ディレクトリ以外は、デフォルトでは何も表示されないのです。
なので、ダイアログ右下の「Program Files」のドロップダウンリストをクリックしてください。
ここで「All Files (*)」を選択してください。
そうすると色々なファイルが表示されるようになります。
この中で「asp.exe」というのが、ビルドして今回実機に転送したいプログラムの実体なのですが、拡張子が「.exe」と特殊なので、デフォルトのフィルタに引っかからなくて表示されなかっただけなんです。
実はこの「asp.exe」、拡張子こそ「.exe」ですが、中身はまんま「.elf」ファイルです。
もし「asp.exe」が見つからない場合は、まだビルドされていない可能性が考えられますので、再度ビルド作業を行なってください。
見つかった場合は「asp.exe」を選択して「開く」ボタンをクリックします。
さて、以上で設定は終わりです。
ダイアログ下部の「Apply」ボタン、「Debug」ボタンの順にクリックするとデバッガが起動します。
以下のような表示が出ることがあります。
気にせずに「Proceed」ボタンをクリックしてください。
毎度出てきて鬱陶しい!と思う方は「Always launch without asking」チェックボックスにチェックを入れちゃってください。
もう二度と聞かれなくなります。
デバッグ設定中らしいです。
地味に時間がかかります。
プログラムの転送と書き込みが始まりましたかね?
プログラムの転送と書き込みが完了すると、以下のような画面の状態になるはずです。
「View Disassembly...」というボタンをクリックしてみましょう。
左側に「Disassembly」タブが追加され、アセンブラのリストが表示されます。
そして、どうやら004400というアドレスでプログラムが停止しているようですね。
これで良いんです!
004400というのはMSP430マイコンのスタートアップアドレスです。
ターゲットである「MSP-EXP430F5529LP」評価ボードに「asp.exe」というプログラムが転送され、それが書き込まれた後にリセットが発生し、それによって現在004400番地で処理が停まっている様子がコレです。
さて、この状態から実際にプログラムを続行させてみましょう。
画面上部の「▶」ボタンをクリックすると、プログラムが続行されます。
はい、ここで長らく放置していた「TeraTerm」を見てみましょう。
以下のように、サンプルプログラムが動作していることが確認できます。
(…ん?ちょっと出力に違和感あるよ?という方は、後ほどコチラを御覧ください)
プログラムを停止する場合は、画面上部の「■」ボタンをクリックします。
停止させてみましょう。
ブレークポイントを仕掛けましょう。
画面右の「Project Explorer」のソースコードリストの中から「sample1.c」をダブルクリックし、ソースコードを表示します。
このソースコードの丁度中盤くらい、メインタスクの始めに仕掛けましょうか。
ブレークポイントは、ソースコードビューの左端をダブルクリックすると丸が表示され、セットできる…って思うでしょう?
ところが、このCode Composer Studioでは通用しないようです。
ブレークポイントを仕掛けるには、ソースコードビューの左端を右クリックして出てきたメニューの「Brakepoint(Code Composer Studio)」→「Brakepoint」を順にクリックしなければいけません。
すると、以下のように該当のソースコードの左端に丸マークが表示されて、ブレークポイントが設定されたことが分かります。
と同時に「Brakepoint」タブが画面上部に出現し、該当のソースコードがリストアップされます。
めんどくさ…。
因みに、普通にソースコードビューの左端をダブルクリックしてブレークポイントを設定しようとすると、丸マークも正しく表示されて一見問題ないように見えますが…。
実際にデバッグしてみると、見事に空振りするので注意です。
ともあれ、これで本当にブレークポイントがかかるのか、試してみましょう。
画面上部にある緑色の「虫マーク」。
(ほんとコレ、何虫がモデルなんだ?…カメムシ?)
その脇に「▼」ボタンがありますので、それをクリック。
すると今後は、さっき色々と入力した「OBJ」のデバッグ設定が登録されていますので、これをクリックすると、デバッガが起動します。
しばらくして、プログラムの転送と書き込みが完了すると、前と同じように004400番地でプログラムが停止しますので、画面上部の「▶」ボタンをクリックして、プログラムを続行させます。
程なくして、以下のように正しくブレークポイントを仕掛けた位置でプログラムが停止するはずです。
ここからは、「F6」キーでステップオーバー、「F5」キーでステップインなど、おなじみの操作が使用できます。
因みに、ステップオーバーやステップインなどを行っている時に命令が飛んでしまったり前後したりする場合は、最適化のせいです。
デバッグ時は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「サンプルプログラムのデバッグ」の項目を参考に最適化を解除しましょう。
さて、次回はサンプルプログラムの動きの説明や、今回のMSP430用ASPカーネルのウンチクを書いていきます。
MSP430の特徴である低消費電力をどうやって実現しているか?(…ていうか実現できてるの?)などなど、けっこう色々あります。
0 件のコメント:
コメントを投稿