1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Zephyr編】micro:bitで本格的な組込みソフトウェア開発環境を構築し、サンプルプログラムをVSCodeからデバッグできるようにする

Last updated at Posted at 2020-07-12

【Zephyr編】micro:bitで本格的な組込みソフトウェア開発

BBC micro:bit は、様々な方法で、組込みソフトウェア開発が可能です。
本記事では、リアルタイムオペレーティングシステムの実装である Zephyr を使って、本格的な組込みソフトウェア開発環境を構築し、VSCodeでサンプルプログラムをデバッグ実行します。

Windows 10 (64bit版) 上での開発環境構築

次のドキュメントを参考にして、Windows 10 (64bit版) 上に開発環境を構築します。

Getting Started Guide
https://docs.zephyrproject.org/latest/getting_started/index.html

本記事では、具体的なダウンロード元やインストールフォルダを示していますので、将来、バージョンアップなどにより、動作しなくなる可能性があります(2020/07/10現在)。

Getting Started Guide

(1) Windows Update の実施

[スタート]-[設定]-[更新とセキュリティ]-[Windows Update] で、更新プログラムのチェックをし、必要に応じて、ダウンロードをインストールを実施します。

(2) Chocolateyと依存パッケージのインストール

次のファイルをダウンロードし、c:\temp\install.ps1として保存します。
https://chocolatey.org/install.ps1 ←右クリックで「名前を付けてリンク先を保存」

コマンドプロンプトを管理者として実行し、次のコマンドで、ダウンロードしたinstall.ps1を実行します。

cmd.exe
PowerShell -ExecutionPolicy RemoteSigned c:\temp\install.ps1

新たに、コマンドプロンプトを管理者として実行し、次のコマンドで、依存パッケージをインストールします。

cmd.exe
choco feature enable -n allowGlobalConfirmation
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'
choco install ninja gperf python git

一旦、Windows 10を再起動します。

(3) Zephyrの取得とPython関連パッケージのインストール

コマンドプロンプトを開き(通常)、次のコマンドで、C:\zephyr 開発用ディレクトリとPython仮想環境を作成します。

cmd.exe
cd c:\
mkdir zephyr
cd zephyr
pip install virtualenv
virtualenv venv
c:\zephyr\venv\scripts\activate
pip install west

続けて、次のコマンドで、Zephyrの取得とPython関連パッケージをインストールします。

cd c:\zephyr
west init zephyrproject
cd zephyrproject
west update
west zephyr-export
pip install -r c:\zephyr\zephyrproject\zephyr\scripts\requirements.txt

(4) Toolchainのインストールと環境変数の設定

gcc-arm-none-eabi-7-2018-q2-update-win32.exeをダウンロードし、インストールします。
※インストール先のフォルダ名にはスペースを含めないようにします。
例えば、C:\GNUToolsArmEmbedded2018-q2-updateへインストールします。
``

次の2つの環境変数を設定します。

# 環境変数
1 ZEPHYR_TOOLCHAIN_VARIANT gnuarmemb
2 GNUARMEMB_TOOLCHAIN_PATH C:\GNUToolsArmEmbedded2018-q2-update

環境変数は、[スタートボタン]の右クリック-[システム]-[システム情報]-[システムの詳細設定]で、「環境編巣(N)...]ボタンを押下して、「新規(N)...」または「新規(W)...」で、ユーザー環境変数またはシステム環境変数として、追加設定します。

(5) BBC micro:bit サンプルプログラム

コマンドプロンプトを起動し、次のコマンドで、サンプルプログラムのビルドを実行します。

cmd.exe
c:\zephyr\venv\scripts\activate
cd c:\zephyr\zephyrproject\zephyr\
west build -p auto -b bbc_microbit samples\boards\bbc_microbit\display

(6) BBC micro:bit 本体への書き込み

ビルドが完了したら、BBC micro:bit 本体とパソコンをUSB通信ケーブルで接続し、次のコマンドで本体へ書き込みます。

cmd.exe
west flash

※ 本体への書き込みができない場合、BBC micro:bit のファームウェアの最新化を行ってください。

VSCodeを用いた開発環境の構築

Visual Studio Code (VSCode)を用いたに開発環境を構築します。

VSCodeのインストール

https://code.visualstudio.com/Download のページから、Windows版のVSCodeをダウンロードし、インストールします。

VSCode拡張機能のインストール

VSCodeを起動し、次の2つの拡張機能をインストールします。

  1. C/C++ 拡張機能(Microsoft)
  2. Native Debug 拡張機能(webfreak)

C/C++ 拡張機能 のインストール

  1. Ctrl-Pを押下し、VSCodeの検索ボックスを開きます。
  2. 検索ボックスにext install cpptoolsと入力し、Enterキーを押下します。
  3. リストのトップに拡張機能のC/C++が表示されますので、インストールボタンでインストールします。

Native Debugger 拡張機能 のインストール

  1. Ctrl-Pを押下し、VSCodeの検索ボックスを開きます。
  2. 検索ボックスにext install webfreak.debugと入力し、Enterキーを押下します。
  3. リストのトップに拡張機能のNative Debugが表示されますので、インストールボタンでインストールします。

ワークスペースの関連付け

エクスプローラーでC:\zephyrフォルダーを開き、ファイル名やフォルダ名以外の空白の部分で、右クリックし、`Code で開く'で、VSCodeで開きます。

デバッグ環境構成の定義(GDB)

VScodeのメニューから[実行(Debug)]-[構成を開く(Open Configuration)]を選択し、環境の選択の中からGDBを選択します。launch.jsonファイルが追加され、テキストエディタに表示されますので、次の内容で上書き保存します。

launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gdb_zephyr",
            "type": "gdb",
            "request": "attach",
            "executable": "${workspaceRoot}\\zephyrproject\\zephyr\\build\\zephyr\\zephyr.elf",
            "target": ":3333",
            "cwd": "${workspaceRoot}",
            "gdbpath": "C:\\GNUToolsArmEmbedded2018-q2-update\\bin\\arm-none-eabi-gdb.exe",
            "remote": true,
            "autorun": [
                "monitor reset"
                ],
        }
    ]
}

サンプルプログラムのデバッグ

サンプルプログラムをステップ実行でデバッグしてみます。

ブレークポイントの追加

zephyrproject\zephyr\samples\boards\bbc_microbit\display\src\main.cを開き、行番号の左で、ブレークポイントを追加・削除できます。

GDBサーバーの開始

Ctrl-@キーを押下し、ターミナルを開きます。次のコマンドを実行し、GDBサーバーを起動します。

コマンドプロンプトを起動し、次のコマンドを実行し、GDBサーバーを起動します。

c:\zephyr\venv\scripts\activate
cd c:\zephyr\zephyrproject\zephyr\
west debugserver

デバッグ実行の開始

次の手順で、デバッグ実行を開始します。

  1. Ctrl-Shift-Dキーを押下し、左縦のアクティビティバーから「実行(Debug)」アイコンを選択し、左側のペインを切り替えます。
  2. 「実行(Debug)」ドロップダウンリストで、gdb_zephyrを選択します。
  3. 「実行(Debug)」横の緑色の「デバッグの開始」ボタンをクリックするとGDBセッションが開始されます。
  4. すぐさま、デバッグが開始され、ブレークポイントで、一時停止します。
  5. 「続行(F5)」で、処理が続行され、次のブレークポイントで一時停止します。

VSCodeのタスク

バッチファイル

C:\zephyrフォルダーに次の3つのバッチファイルを作成します。

build.bat
call .\venv\scripts\activate.bat
cd .\zephyrproject\zephyr\
west build -p auto -b bbc_microbit %1
flash.bat
call .\venv\scripts\activate.bat
cd .\zephyrproject\zephyr\
west flash
debug.bat
call .\venv\scripts\activate.bat
cd .\zephyrproject\zephyr\
west debugserver

tasks.jsonの追加

次の手順で、tasks.jsonファイルを追加します。

  1. Ctrl-Shift-Pキーを押下し、表示された検索ボックスで、tasksと入力すると候補が絞り込まれますので、タスク: タスクの構成 / Tasks:Configure Taskを選択します。
  2. テンプレートからtasks.jsonを作成をクリックし、リスト末尾のOthersをクリックします。
  3. tasks.jsonファイルが追加され、エディタに表示されます。

tasks.jsonの内容を次の定義内容で上書き保存します。

tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build_zephyr",
            "type": "process",
            "command": "build.bat",
            "group":{
                "kind": "build",
                "isDefault": true
            },
            "args": [
                "samples\\boards\\bbc_microbit\\display"
            ]
        },
        {
            "label": "flash_zephyr",
            "type": "process",
            "command": "flash.bat",
            "dependsOn": [
                "build_zephyr"
            ]
        },
        {
            "label": "debug_zephyr",
            "type": "process",
            "command": "debug.bat",
        }
    ]
}

タスクの実行方法

例えば、debug_zephyrタスクを実行するには、次の手順で操作します(他のタスクも同様)。

  1. Ctrl-Shift-Pキーを押下し、検索ボックスを開きます。
  2. tasksと入力すると、候補が絞り込まれますので、タスク: タスクの実行 / Tasks: Run Taskをクリックします。
  3. debug_zephyrが実行するタスクの選択候補に表示されますので、それをクリックします。
  4. 下段のペインで、`debug.bat'が実行されます。

尚、build_zephyrタスクに関しては、その定義でgroupが指定されていますので、Ctrl-Shift-Bキーで、実行できます。

まとめ

micro:bitで本格的な組込みソフトウェア開発ができることを確認しました。

  • リアルタイムオペレーティングシステムの実装であるZephyr を使いました。
  • C/C++による本格的な組込みソフトウェア開発環境を構築しました。
  • サンプルプログラムのLチカをmicro:bit本体で動作させました。
  • VSCodeでサンプルプログラムをデバッグ実行し、ステップ実行できることを確認しました。
  • westコマンドをVSCodeのタスクとして実行できるようにしました。
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?