144Labのメカトロソフト屋の入江田です。
ドイツの組み込み向け統合開発環境 を紹介します。
サイト: https://www.segger.com/products/development-tools/embedded-studio/
外観
特徴
- 非常に親切&高機能&軽快な動作
- パッケージマネージャにて必要な依存を容易に管理可能
- 動作環境はWindows/Linux/macOS対応
- 本来有償のIDEだけど、nordicのチップを扱う限り無償で利用可能
- シミュレーションモードもあってPC上でロジックを追うことができます
セットアップ
https://www.segger.com/downloads/embedded-studio/ ここから使っている環境にあったものをダウンロードして入れます。 ちなみにmacOSのHomebrew経由なら以下のコマンドでインストールできます。
brew cask install segger-embedded-studio-for-arm
その後パッケージマネージャから必要なターゲット用のパッケージを選んでインストールするだけです。
nordicのドキュメント
http://infocenter.nordicsemi.com/pdf/getting_started_ses.pdf
nRF-Connect-Desktopによる環境構築
https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop
これを対応ホストを選んでダウンロード&インストールすると、
このようなアイコンのアプリを起動しましょう。
「Add/remove apps」を選び、以下の2つのアプリをinstallします。
- Programmer
- Getting Started Assistant
一般にはJ-Link(SMD/JTAG)経由でFLASH書き換えやデバッグを可能にする方法を使いますが、外部機器の不要なUSBSDFU方式(nRF52840が内蔵してるUSBシリアル)で書き換えたい場合に「Programmer」を使います。
「Launch app」から「Getting Started Assistant」をLaunchします。
右サイドのVariablesを埋めます。ncs_tagは現時点でmasterである必要がありました。 (ドキュメントにはv0.3.0と書いてたんですが) 1〜4の条件をそれぞれ埋めていきます。 (3に該当する部分は「セットアップ」に書いた内容でOK)
Programmerについて
「Launch app」から「Programmer」をLaunchします。
上部のボタンから接続デバイスを選択できます。 接続すると左のチャートに色分けメモリマップが表示されます。
右のチャートはhexファイルを読んだ結果が表示されます。 基本はhexファイルを読み込んでwriteで書き込み、resetでブートです。
J-Linkについて
J-Linkと呼ばれる規格対応のJTAG/SMD接続プローブがあればEmbedded-Studioが連携可能になります。 FLASHの書き換えはもちろん、ソースコードステップでのデバッグも可能になり、デバッグログも出ます。 開発時はJ-Linkプローブが乗った評価ボードで行うことをお勧めします。 量産モデルのターゲットであってもJ-Linkプローブが接続可能にしておくと良いでしょう。
感想
これまで構築した開発環境の中ではもっともスムーズにセットアップできました。 失敗しそうな条件などは徹底的にうまく隠蔽できてそう。 ArduinoIDEとは違い、ビルドコマンドログ等もみれてあとあとCLIによる開発もスムーズに移行できそう。 nordic系の開発をするのならこれが良さそう?
Getting Started Assistantを実施後、nRF-Connect-SDKのサンプルをビルド、書き込んで実行可能なところまで動作確認できました(ble_app_blinky)。