夏休みもそろそろ終わりですが、最後にARMの開発ツール「MDK」とそのデバッガ「µVision」を試してみました。
ARM(が買収したKeil)はµVisionとコンパイラやライブラリその他もろもろのツールを合わせて「MDK Microcontroller Development Kit」として提供しているようです。
mbedのクラウド上で作成したコードも、MDK用にエクスポートすれば、ローカルでデバッグすることができます。
このとき、ボードがデバッグ用のインタフェース「CMSIS-DAP」をサポートしていれば、ボード上でコードを実行しながらステップ実行やトレースなどの操作を行うことができます。
幸い、私のボード「mbed LPC1768」はCMSIS-DAP対応のファームウェアが提供されていましたので、このデバッグ機能を試用してみました。
既に先人のレポートがネット上にありましたので、それを参照しつつ進めました。
参考にしたのは以下の2つです。
μVision4でデバッグ! | mbed
mbed LPC1768をMDK-ARMでデバッグ – Qiita
1つ目の記事はやや古く、2012年9月の日付です。文中ではµVisionのバージョンが4になっていますが、現在はバージョン5が提供されています。
2つめの記事は2016年1月のもので、1つ目の記事を参照しています。バージョン5を使う場合のはまりどころが記載されており助かりました。
やることは、大まかに言えば
・MDKのダウンロード&インストール
・MDK v4 Legacy Support for Cortex-M Devicesのダウンロード&インストール
・mbed LPC1768のファームウェアをアップデート
が準備で、そのあと
・mbed用に書いたコードをローカル環境へエクスポート
・MDKのデバッガの設定
・コンパイルして実行
という流れになります。
準備のところは飛ばします。ダウンロードしてインストールするだけですので・・・
なお、MDKをダウンロードするとARMからMDKの日本語スタートアップガイドへのリンクが送られてきますので、メールアドレスはきちんと入力しましょう。
インストールができたら、まずはmbedのファイルをローカルへエクスポートします。
対象はとりあえず先日動作確認したLチカにしました。
右クリックメニューから、プログラムのエクスポートを選びます。
ボードと開発環境の選択が出ます。
開発環境としてKeil uVision4を選んでおきます。
(後述しますが実際にはUVision5でも大丈夫なようです。)
ダウンロードしたZIPファイルを展開すると、こんな感じになっています。
.uvprojファイルをダブルクリックするとMDKが立ち上がります。
MDK v4 Legacy Support for Cortex-M Devicesをインストールしていないと、下図のようなダイアログが出ますのでインストールしましょう。
プロジェクトを開いた画面はこのようになっています。
普通のIDEですね。
まず、「Options for target…」をクリックします。
そして、Debugタブの「Settings…」ボタンからデバッガの詳細設定に入ります。
詳細設定画面で、アダプタを「MBED CMSIS-DAP」に指定します。
また、Debugの設定で「HW RESET」を選び、「Stop after bootloader」をオンにします。
これで準備完了です。
プロジェクトのリビルドボタンを押してビルドします。
プロジェクトフォルダの中に.binファイルができますので、これをmbedデバイスのフォルダへコピーします。
デバッグは、ドコモのロゴを思い出させる虫眼鏡のアイコンをクリックします。
ここで、上で説明した「Stop after bootloader」をオンにしていないと、「The CoreSight debug unit in the target device does not react.」とエラーが出てデバッグが終了してしまいます。
私の環境だけかもしれませんが・・・。
デバッガが起動すればこんな画面が出てきます。
1行ずつのステップ実行などもできます。
とりあえず動作までは確認できました。
無償版ではオブジェクトサイズが32KBまでという制限があるので、あまり大きなものは作れませんが、趣味で使うなら十分な気がします。
以下オマケです。
mbedからのエクスポートの際、UVision5も選択することができますので、やってみました。
プロジェクトファイルを開くと、「LPC1700のパッケージが必要」とメッセージが出るので、インストールします。
あとは基本的に同じです。
デバッガの設定も忘れずに行います。
コメント