EclipseでMbedでnRF52なローカル開発環境

(1) やりたいこと

※1 オンラインコンパイラはいざというときにサーバが落ちてるということが多々あったし、BLEのライブラリとかころころ仕様が変わって過去のソースのビルドが通らなくなるし、そのうち昔のMbed OS 2とかビルドできなくなるかもしれないおそれがあるし、いろいろ不安。

※2 Mbed StudioはMbed OS 5のみサポートし、Mbed OS 2はサポートしてないしする予定もないらしい。あと、クールすぎてオッサンにはとっつきにくい。

(2) 方針

GNU MCU Eclipseをインストールし、オンラインコンパイラから「GNU ARM Eclipse」向けにエクスポートしたプロジェクトをインポートするという方法を取ることにする。
gnu-mcu-eclipse.github.io

(3) GNU MCU Eclipseのインストール

少々面倒くさいが以下の手順でインストールする。

(3.1) Node.jsのインストール

nodejs.org

(3.2) xpm(xPack package manager)のインストール
npm install --global xpm
(3.3) xpmでいろいろインストール
xpm install --global @gnu-mcu-eclipse/arm-none-eabi-gcc
xpm install --global @gnu-mcu-eclipse/windows-build-tools
xpm install --global @gnu-mcu-eclipse/openocd
xpm install --global @gnu-mcu-eclipse/qemu
(3.4) Eclipse + CDT + GNU MCU Eclipseプラグインのインストール

自分で構築するのは面倒なので、CDTとGNU MCU Eclipseプラグインが入った状態のEclipseを下記からダウンロードし、適当な場所に展開して使用する。
github.com

Windowsで32ビット版のJavaがインストールされている場合「Java was started but returned with exit code=13」というエラーが発生する。その場合は64ビット版のJavaをインストールする。
www.java.com

(4) オンラインコンパイラからプロジェクトをインポート

Mbedのオンラインコンパイラでプロジェクトを選択して、右クリックメニューから「プログラムのエクスポート」を選択する。するとターゲットとツールチェインを選択するダイアログが出るので、ツールチェインの選択肢から「GNU ARM Eclipse」を選択して、zipファイルをダウンロードする。

Eclipseの [File] > [Import] > [General] > [Existing projects into Workspace] でzipファイルを選択し、インポートする。

(5) デバッガの設定

[Run] > [Debug Configurations] で [DGB SEGGER J-Link Debugging] を選択し、[Debugger]タブの [Device Name] に「nRF52832_xxAA」などと入力する。デバイス名については下記ページを参照。