0. はじめに
Arm Keil MDKではARM Cortex-Mの一部のコアがシミュレータに
対応していなかったので、商用でも無償で利用できるシミュレータ
環境を構築してみました。VSCode拡張機能との相性問題で
動作確認に手間取ったため、手順を書き残しておきます。
1. シミュレータ環境の概要
こちらの動画から引用しています。
Debugging FreeRTOS with QEMU in VSCode - YouTube
1.1 QEMUって何?QEMUで何ができるの?
QEMUは、多種のハードウェアを仮想化できるマシンエミュレータです。
異なるアーキテクチャ間での仮想化も可能です。
例えば、以下のような理由でハードウェアが手元にない場合に、
仮想化したハードウェア上でアプリケーションを実行することができます。
- 組込み製品の設計段階でチップセットが未選定
- 評価ボードが実験室など別の場所にある
- 物理的なハードウェアなしで自動テストを実行したい
- テストに使用するハードウェアが不足している
1.2 必要となるツール類
本環境では以下を使用します。
インストール手順については後述します。
- VSCode
- Make
- Arm GNU Toolchain
- QEMU
1.3 動作確認に使用するプロジェクト
本環境の動作確認には、FreeRTOSのプロジェクトを使用します。
GitHubからリポジトリをクローンして使用しますので、以下のURLから
Gitのインストーラをダウンロードしてインストールしてください。
https://git-scm.com/downloads
リポジトリのクローン用にフォルダを作成します。(「C:\GIT」など)
フォルダの何もないところで右クリックし、「ターミナルで開く(T)」を
選択するとWindows PowerShellが開きます。以下のコマンドを実行すると
「FreeRTOS」フォルダが作成され、リポジトリがクローンされます。
リポジトリ内のものをすべて取得するために「--recurse-submodules」
オプションが必要です。
git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules
2. Visual Studio Codeの設定
こちらの記事から引用しています。
VSCode | Visual Studio Codeを日本語化する
2.1 Visual Studio Codeのインストール
VSCodeを以下よりダウンロードし、インストールします。
https://code.visualstudio.com/
インストール設定はデフォルトでも問題ありませんが、
使い勝手が良くなるのでコンテキストメニューの追加をオススメします。

2.2 Visual Studio Codeを日本語化する
以下の拡張機能をインストールします。
- Japanese Language Pack for Visual Studio Code
インストールが完了したらVSCodeの再起動を行います。
完了後に画面右下に「Change Language and Restart」と表示されるので
クリックしてください。
2.3 VSCodeの拡張機能のインストール
VSCodeの拡張機能から以下の拡張機能を導入します。
当方の環境では最新版で不具合があったので、自動更新をオフにして
「特定のバージョンをインストール...」から「1.14.5」をインストール
しています。
- C/C++
3. ツール類のインストール
こちらの記事から引用しています。
ベストなWindowsへのMakeのインストール方法は? #Windows - Qiita
3.1 Makeのインストール
WindowsにMakeをインストールする方法はいくつかありますが、
ここではChocolateryを使用したインストール方法を紹介します。
まずはChocolateryをインストールします。Windows PowerShellを
「管理者権限」で開いて、以下のコマンドを実行してください。
管理者権限のない状態でコマンド実行すると、フォルダだけが作成
されて、以降のインストールが失敗する事態となります。(1敗)
Set-ExecutionPolicy Bypass -Scope Process -Force; `
[System.Net.ServicePointManager]::SecurityProtocol = `
[System.Net.ServicePointManager]::SecurityProtocol -bor 3072; `
iex ((New-Object System.Net.WebClient).DownloadString( `
'https://community.chocolatey.org/install.ps1'))
続いて、次のコマンドを実行するとMakeをインストールできます。
choco install make
3.2 Arm GNU Toolchainのインストール
公式サイトからインストーラをダウンロードしてインストールします。
「...i686-arm-none-eabi.exe」を選択してください。Windows向けには
「i686版」と「x86_64版」が用意されていますが、インストール先は
双方とも何故か「C:\Program Files (x86)」となっています。
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
Arm GNU Toolchainを使用するには環境変数「Path」の設定が必要です。
インストール時は「Add path to environment variable」を有効にしてください。

3.3 QEMUのインストール
公式サイトからインストーラをダウンロードしてインストールします。
「Windows」を選択して「64-bit」をクリックすると、インストーラの
ダウンロードリンクが表示されます。
https://www.qemu.org/download/
QEMUを使用するためには、手動で環境変数を追加する必要があります。
ユーザー環境変数「Path」に以下を追加してください。
| 変数 | 値 |
|---|---|
| Path | C:\Program Files\qemu |
4. デバッガの動作確認
こちらの動画から引用しています。
Debugging FreeRTOS with QEMU in VSCode - YouTube
4.1 プロジェクトフォルダを開く
リポジトリのクローンで作成された「FreeRTOS」フォルダから、
さらに「FreeRTOS」フォルダ、「Demo」フォルダと開いていきます。
以下のフォルダを右クリックし、「Code で開く」を選択してください。
- CORTEX_MPS2_QEMU_IAR_GCC
4.2 launch.jsonの修正
VSCodeの「エクスプローラー」ビューから、「.vscode」フォルダ内の
「launch.json」を開いてください。「miDebuggerPath」キーに対する
値を、実際のインストール先のパスに修正する必要があります。
以下のような値になると思います。
| キー | 値 |
|---|---|
| miDebuggerPath |
C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/バージョン番号/bin/arm-none-eabi-gdb.exe |
4.3 デバッグの開始
VSCodeの「実行とデバッグ」ビューを表示し、「デバッグの開始」横の
ドロップダウンリストから「Launch QEMU RTOSDemo」を選択します。
再生ボタンを押すと、プロジェクトがビルドされてデバッガが起動します。
「startup_gcc.c」が開かれ、Reset_Handler関数内でブレークしている
様子が確認できたら動作確認は完了です。