SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IoTをかじってみよう

IoTをかじってみよう(5)
~オフラインIDEを使ってmbedアプリケーションをデバッグする

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)。

図27 デバッグの開始
図27 デバッグの開始

 するとエミュレータ選択の画面になります。mbedを用いる場合はCMSIS-DAPが使用可能なので、そのままOKをクリックします(図28)。

図28 デバッガ用エミュレータの指定
図28 デバッガ用エミュレータの指定

 すると自動的にプログラムがターゲットに書き込まれて、プログラムの最初でブレークします(図29)。

図29 プログラム開始点でブレーク
図29 プログラム開始点でブレーク

 Debugビューにはスタックの状態が表示され、エディタには現在停止している行が緑の背景色で表示されます。Step Overのアイコンをクリックすれば次の行まで進んで停止します(図30)。

図30 step overの実行
図30 step overの実行

 Resumeのアイコンをクリックすることで実行を継続できます(図31)。

図31 resumeの実行
図31 resumeの実行

 これまで見たのと同じようにLEDが点滅することが分かるでしょう。LEDの点滅を確認したら、プログラムをSuspend(中断)してみましょう。エディタの行番号の左側をダブルクリックします(図32)。

図32 実行中にブレークポイントを設定する
図32 実行中にブレークポイントを設定する

 これによりダブルクリックした行にブレークポイントを設置できます。プログラムの実行がブレークポイントに達するとプログラムが中断します。このため、すぐに実行が中断された状態になるのが分かると思います。デバッグが終わったら、Terminateアイコンをクリックしてデバッグを終了します(図33)。

図33 デバッガの終了
図33 デバッガの終了

 LPCXpressoを用いると、プログラムの書き込みから起動までがすべて自動で行われるので、通常のPC/Mac用のプログラムを開発している場合と同じようにデバッグできることが分かります。

次のページ
LPCXpressoからWeb IDEへのインポート

この記事は参考になりましたか?

IoTをかじってみよう連載記事一覧

もっと読む

この記事の著者

花井 志生(ペンネーム 宇野るいも)(ハナイ シセイ(ペンネーム ウノルイモ))

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9253 2016/04/05 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー