LoginSignup
11
5

More than 3 years have passed since last update.

macOSでSPRESENSE SDKを使った開発環境を用意する

Last updated at Posted at 2019-05-01

SONYから発売されているSPRESENSEを使ってみたくなったので開発環境を用意しました。

公式には、Arduino LibraryとSPRESENSE SDKと2つの開発環境が用意されています。

Arduino Libraryの方はArduino IDEで開発するため、macOS、Linux、Windowsとマルチプラットフォームで開発ができます。
一方で、SPRESENSEのマルチコアを利用した開発など、高度な開発はできません。

SPRESENSE SDKを使うと、SPRESENSEの全ての機能が利用できる一方で、開発環境がUbuntuにしか対応していません。

今回はDockerを利用することで、macOSの上でビルドを行い、マイコンへの書き込みまでができるように試してみたいと思います。

基本的には、公式のSPRESENSE SDKチュートリアルにしたがって作業を進めていきますが、Ubuntu向けの説明となっているため改変しながら進めていきます。

事前準備

  • gitコマンドが必要です。Xcodeをインストールし、gitが使えるようにしてください。
  • Homebrewが必要です。こちらのドキュメントにしたがってインストールしてください。
  • Dockerが必要です。Docker Desktop for Macをインストールしてください。
  • USBシリアル変換チップのドライバが必要です。こちらから、CP210x USB to serial driver for Macintosh OSXをダウンロードしてインストールしてください。
  • Python3系

kconfig-frontends のインストール

SPRESENSE SDKでは、ビルド環境の設定等にkconfigを利用しています。
Homebrewでインストールできたのでインストールします。

brew tap PX4/homebrew-px4
brew update
brew install kconfig-frontends

SPRESENSE SDKをダウンロードする

git clone --recursive https://github.com/sonydevworld/spresense.git

サンプルアプリケーションのビルド設定

コンフィギュレーションはmacで行います。

cd spresense/sdk
tools/config.py --kernel release
tools/config.py examples/hello

途中でunameのエラーが出ますが、問題ありません。(Cygwinかのチェックにしか -o オプションは使われていません)

うまくいくと最後に以下のようなファームウエアを書き込む指示が出力されます。

WARNING: New loader v1.2.1 is required, please download and install.
         Download URL   : https://developer.sony.com/file/download/download-spresense-firmware-v1-2-001
         Install command:
                          1. Extract loader archive into host PC.
                             ./tools/flash.sh -e <download zip file>
                          2. Flash loader into Board.
                             ./tools/flash.sh -l /Users/chibiegg/Downloads/spresense/firmware/spresense -c <port>

サンプルアプリケーションのビルド

ビルドはDockerイメージと起動スクリプトが用意されているのでそちらを使います。

cd ../
source ./spresense_env.sh 
spresense make -j8 buildkernel
spresense make -j8

spresense_env.sh をロードすると spresense コマンドがAliasで用意されます。
spresense の後に実行するコマンドを指定すると、Dockerのイメージの中で実行されるように作られています。

実行する際には ./spresense ディレクトリがカレントディレクトリである必要があります。

うまくいくと sdk/nuttx.spk ファイルが生成されています。

ブートローダーの書き込み

先ほどの出力に表示されたURL (https://developer.sony.com/file/download/download-spresense-firmware-v1-2-001) からZIPをダウンロードします。

表示された通りコマンドを実行してブートローダーを書き込みます。

cd sdk
./tools/flash.sh -e /Users/chibiegg/Downloads/spresense-binaries-v1.2.1.zip
./tools/flash.sh -l /Users/chibiegg/Downloads/spresense/firmware/spresense -c /dev/tty.SLAB_USBtoUART

うまく書き込めた場合、以下のような出力が出ます。

>>> Install files ...
install -b 115200
Install /Users/chibiegg/Downloads/spresense/firmware/spresense/loader.espk
|0%-----------------------------50%------------------------------100%|
######################################################################

118832 bytes loaded.
Package validation is OK.
Saving package to "loader"
updater# install -b 115200
Install /Users/chibiegg/Downloads/spresense/firmware/spresense/AESM.espk
|0%-----------------------------50%------------------------------100%|
######################################################################

28944 bytes loaded.
Package validation is OK.
Saving package to "AESM"
updater# install -b 115200
Install /Users/chibiegg/Downloads/spresense/firmware/spresense/gnssfw.espk
|0%-----------------------------50%------------------------------100%|
######################################################################

450768 bytes loaded.
Package validation is OK.
Saving package to "gnssfw"
updater# install -b 115200
Install /Users/chibiegg/Downloads/spresense/firmware/spresense/dnnrt-mp.espk
|0%-----------------------------50%------------------------------100%|
######################################################################

88352 bytes loaded.
Package validation is OK.
Saving package to "dnnrt-mp"
updater# sync
updater# Restarting the board ...
reboot

アプリケーションの書き込み

先ほどビルドしたサンプルプログラムを書き込みます。

./tools/flash.sh -c /dev/tty.SLAB_USBtoUART nuttx.spk 

こんな感じの出力が出ます。

>>> Install files ...
install -b 115200
Install nuttx.spk
|0%-----------------------------50%------------------------------100%|
######################################################################

154304 bytes loaded.
Package validation is OK.
Saving package to "nuttx"
updater# sync
updater# Restarting the board ...
reboot

実行

あとは、元のチュートリアルの通りminicomなどでシリアルポートに接続して、helloコマンドが実行できたらOKです。

minicomもbrewでインストールできます。

brew install minicom

image.png

11
5
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
11
5