LPCXpressoでのデバッグ
PC/Macを用いたmbedアプリケーションのデバッグ
一般に組み込み機器のデバッグする場合、何らかのハードウェア上の仕組み(デバッグ・プローブと呼びます)が必要です。例えば、ARM用のこうした仕組みの一つとしてLPC-Linkがあります。LPC-Linkを使用する場合、LPC-Linkをサポートするハードウェア(例えば、OM13054: LPC-Link2)を用意して、デバッグ対象のコントローラと何本かの制御線を使って接続する必要があります。接続を間違えると機器を壊す可能性があるため、初心者にとっては煩雑で神経を使う作業であり、組み込み用の開発の敷居を上げる一つの原因となっているといえるでしょう。
幸いmbedのデモボードではデバッグ・プローブとしてCMSIS-DAPが標準でサポートされています。これを用いると単にUSBケーブルをPC/Macに接続するだけでデバッグが可能です。
ファームウェアの更新
mbedには、これまで見た通り出荷された状態で、USBメモリからのプログラムの書き込みや、デバッグ・プローブ(CMSIS-DAP)といった機能が提供されていますが、これらはファームウェアによって実現されています。CMSIS-DAPのサポートは、リビジョン141212のファームウェアから追加された機能です。念のためファームウェアを最新にしておきましょう。
最新のファームウェアは、mbedのHandbookのページから入手できます。入手したファイルを、これまで同様、USBメモリとして見えているmbedにコピーして、書き込みがきちんと完了するようにPC/Mac側でUSBメモリの取り外し機能を実行したら、USBケーブルを抜き差しします(これまでと違い、mbedのリセットボタンを押すのではなく、USBケーブルの抜き差しが必要です。あまり短時間で抜き差ししないように、念のため10秒くらい待つのが良いでしょう)。これでファームウェアが自動的に更新されて、以前から書き込まれていたアプリケーションが実行を開始します。
LPCXpressoを用いたデバッグ
まずIDE左上にあるProjectビューで、HelloWorldを選択した状態にします。次にIDE左下にあるQuickと書かれたビュー(以降Quickビューと呼びます)から、[Debug HelloWorld]をクリックします(図27)。
するとエミュレータ選択の画面になります。mbedを用いる場合はCMSIS-DAPが使用可能なので、そのままOKをクリックします(図28)。
すると自動的にプログラムがターゲットに書き込まれて、プログラムの最初でブレークします(図29)。
Debugビューにはスタックの状態が表示され、エディタには現在停止している行が緑の背景色で表示されます。Step Overのアイコンをクリックすれば次の行まで進んで停止します(図30)。
Resumeのアイコンをクリックすることで実行を継続できます(図31)。
これまで見たのと同じようにLEDが点滅することが分かるでしょう。LEDの点滅を確認したら、プログラムをSuspend(中断)してみましょう。エディタの行番号の左側をダブルクリックします(図32)。
これによりダブルクリックした行にブレークポイントを設置できます。プログラムの実行がブレークポイントに達するとプログラムが中断します。このため、すぐに実行が中断された状態になるのが分かると思います。デバッグが終わったら、Terminateアイコンをクリックしてデバッグを終了します(図33)。
LPCXpressoを用いると、プログラムの書き込みから起動までがすべて自動で行われるので、通常のPC/Mac用のプログラムを開発している場合と同じようにデバッグできることが分かります。
