0. はじめに
QEMUを使ったArm Cortex-M向けシミュレータ環境についての
構築手順をちょっと前に書きましたが、つい最近、AVH-FVPなる
ものの存在を知りました。Arm公式の仮想ハードウェアだそうで。
デバッグ環境構築手順の正解にたどり着くまでにはだいぶ試行錯誤
したので、手順を書き残しておくことにします。VSCodeのみで
完結するので、QEMU環境よりも簡単にセットアップできます。
Linux Mintにも対応しています。
CIも導入できます。
以前の記事はこちらです。
1. シミュレータ環境の概要
こちらのサイトから引用しています。
1.1 AVH-FVPって何?対応製品は?
Arm仮想ハードウェア(AVH)は、一般的な開発キット、Armベースの
プロセッサ、システムを仮想化することで、ソフトウェア開発を柔軟に
拡張できるようにし、加速します。これは、Armのモデリング技術を
進化させたもので、ハードウェアの到着を待つ必要や、テスト用の
評価ボードを構築・設定する複雑さを排除します。さらに、DevOpsや
MLOpsといった現代的なアジャイル開発手法を可能にします。
AVH-FVPはArm Cortex-M CPUおよびArm Corstoneリファレンスサブ
システムの、機能的に正確な固定仮想プラットフォーム(FVP)です。
以下の製品に対応しています。
- Corstone-320、Corstone-315、Corstone-310、Corstone-300
- すべてのCortex-Mプロセッサコア
1.2 必要となるツール類
本環境では以下を使用します。
インストール手順については後述します。
- VSCode
1.3 動作確認に使用するプロジェクト
本環境の動作確認には、AVH-Helloのプロジェクトを使用します。
GitHubからリポジトリをクローンして使用しますので、以下のURLから
Gitのインストーラをダウンロードしてインストールしてください。
https://git-scm.com/downloads
【Linux Mint】ソフトウェアマネージャーから以下をインストール。
- Git
リポジトリのクローン用にフォルダを作成します。(「C:\GIT」など)
フォルダの何もないところで右クリックし、「ターミナルで開く(T)」を
選択するとWindows PowerShellが開きます。以下のコマンドを実行すると
「AVH-Hello」フォルダが作成され、リポジトリがクローンされます。
git clone https://github.com/Arm-Examples/AVH-Hello
2. Visual Studio Codeの設定
こちらの記事から引用しています。
2.1 Visual Studio Codeのインストール
VSCodeを以下よりダウンロードし、インストールします。
https://code.visualstudio.com/
インストール設定はデフォルトでも問題ありませんが、
使い勝手が良くなるのでコンテキストメニューの追加をオススメします。
【Linux Mint】同サイトから.debをダウンロードしてインストール。
コンテキストメニューのチェック項目はありません。
2.2 Visual Studio Codeを日本語化する
以下の拡張機能をインストールします。
- Japanese Language Pack for Visual Studio Code
インストールが完了したらVSCodeの再起動を行います。
完了後に画面右下に「Change Language and Restart」と表示されるので
クリックしてください。
2.3 VSCodeの拡張機能のインストール
VSCodeの拡張機能から以下の拡張機能を導入します。
- Arm Keil Studio Pack (MDK v6)
- Arm Debugger
Keil Studioをインストールすると画面下部に「No Arm License」の表示が
出ます。クリックして適切なライセンスを設定してください。非商用での
使用の場合は、「Community Edition」を選択してアクティベートします。
3. ツール類のインストール
必要なツールは自動的にダウンロードとインストールが行われます。
別途インストールが必要なツールはありません。
4. デバッガの動作確認
こちらの記事から引用しています。
4.1 プロジェクトフォルダを開く
リポジトリのクローンで作成された「AVH-Hello」フォルダを右クリックし、
「Code で開く」を選択してください。VSCodeが開くと、必要なツール類の
ダウンロードとインストールが始まります。完了までしばしお待ちください。
4.2 ターゲットデバイスの選択
ここでは、「Arm Cortex-M23」を対象としたデバッグを行う方法を説明します。
まずは、VSCode画面左側のアクティビティバーから「CMSIS」を選択します。
CMSISのプライマリサイドバーが表示されるので、「⚙️」アイコンをクリックして
「Manage Solution」ウィンドウを開きます。以下のように設定してください。
設定後はウィンドウ左上の「Save」をクリックして変更内容を反映させます。
| 項目 | 設定 |
|---|---|
| Active Target: Target Type | CM23 |
| Debug Adapter for CM23: | Arm-FVP |
| Debug Adapter for CM23: Model | FVP_MSP2_Cortex-M23 |
Arm CMSIS Solution拡張機能のバージョン1.62.0では、リスト最上段のTarget Typeしか選択できないバグがありました。バージョン1.62.1では修正されています。
4.3 アプリケーションの実行
CMSISサイドバーの「🔨」アイコンをクリックしてソリューションをビルドし、
となりにある「▶」アイコンをクリックしてアプリケーションを実行します。
以下の画面が表示されればOKです。右上の閉じるボタンで終了してください。
4.4 デバッガの設定
VSCode画面左側のアクティビティバーから「エクスプローラー」を選択し、
エクスプローラーサイドバーから.vscode/launch.jsonを開いてください。
エディタウィンドウの右上に「Open Arm Debug Configuration」ボタンが
あるので、ここからデバッガ設定画面を開きます。
デバッガ設定画面左上の「New Configuration」をクリックして、デバッガ
設定を新規作成します。選択肢が出るので、「Arm Debugger Launch」から
「Model debug connection」を選択してください。名前はデフォルトの
「Connect to Model」で問題ないので、そのままEnterキーを押します。
設定画面が更新されますので、以下のように設定してください。
| 項目 | 設定 |
|---|---|
| Connections: Select Target | Arm FVP - MSP2_Cortex_M23 - Bare Metal Debug - Cortex-M23_0
|
| Application: Program Files |
${workspaceFolder}\out\Hello\CM23\Debug\AC6\Hello.axf |
| Debugger: Run Control | Debug From Entry Point - Start debugging from entry point
|
4.5 デバッグの開始
VSCode画面左側のアクティビティバーから「実行とデバッグ」を選択し、
実行とデバッグサイドバー上部のドロップダウンリストから「Connect to
Model」を選択します。「▶」ボタンを押すと、デバッガが起動します。
「cmsis_armclang_m.h」が開かれ、__set_PSP関数内でブレークしている
様子が確認できたら動作確認は完了です。

