豚吐露@wiki
cli
最終更新:
Bot(ページ名リンク)
-
view
SPRESENSE IDE (CLI版)
WIndows11 22H2 (22621.1848)
Ubuntu 20.04.6 LTS on WSL2
Ubuntu 20.04.6 LTS on WSL2
https://developer.sony.com/ja/spresense/development-guides/sdk_set_up_ja.htmlを参考に環境を構築する。
手順を参考にすると、Linux、msys2(Windows)、Mac、WSLの手順がごっちゃになっとって、どれが必要な手順か分かり難いのでメモ。
手順を参考にすると、Linux、msys2(Windows)、Mac、WSLの手順がごっちゃになっとって、どれが必要な手順か分かり難いのでメモ。
Spresense SDK build instructions
build tools
WSL1のconsoleから以下のinstall commandを実行。
sudo apt update sudo apt upgrade curl -L https://raw.githubusercontent.com/sonydevworld/spresense/master/install-tools.sh > install-tools.sh bash install-tools.sh -r . ~/spresenseenv/setup
install後の確認。
arm-none-eabi-gcc -v
…
gcc version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10)
"Command 'arm-none-eabi-gcc' not found, did you mean:"とか表示されたらsetup command実行し忘れ。
setupは起動する度に実行する必要があるので、bashrcに追加しておくと良い。
echo ". ~/spresenseenv/setup" >> ~/.bashrc
Serial USB接続
dmesgでcp210xの接続状況を確認する。
$ dmesg | grep "cp210"
[ 0.793227] usbcore: registered new interface driver cp210x
[ 0.793836] usbserial: USB Serial support registered for cp210x
[ 101.626573] cp210x 1-1:1.0: cp210x converter detected
[ 101.633942] usb 1-1: cp210x converter now attached to ttyUSB0
4行目の"cp210x converter now attached"ってのが接続されたよってlog。
この末尾に書いてある"ttyUSB0"って名前で認識されてるので、大事。メモっとく。
この末尾に書いてある"ttyUSB0"って名前で認識されてるので、大事。メモっとく。
で、当該行が表示されなかったら、WSLからUSB Serialを利用するを試してみると良い。
SDK source download
cd 【SPRESENSE_SDK_PATH】 git clone --recursive https://github.com/sonydevworld/spresense.git cd spresense git submodule sync git submodule update
submodule commandは、基本的に実行不要なハズ。
sampleのbuild
cd sdk/ tools/config.py examples/hello
"/bin/sh: 1: kconfig-conf: not found"とか表示されたらsetup command実行し忘れ。
実行できるconfigの一覧は以下で取得可能。
tools/config.py -l
build結果は以下でclearできる。
make clean
config含めたbuild結果全てをclearするにはdistclean。
make distclean
make buildの実施。
make -j
SDKのversionが古くて(2.3未満)buildの並列実行ができない場合や、並列実行の影響で負荷が大きくなりすぎてbuildできない場合は、"-j"のoptionを外して実行するか、"-j2"のように並列実行の上限を指定して実行する。
参考までにbuildに必要な時間の差異はこんな感じなので、並列buildできるなら、並列buildした方が良い。
command | build time |
make -j | 11 sec |
make | 44 sec |
build結果書き込み
以下のcommandを実行。
sudo tools/flash.sh -c /dev/ttyUSB0 nuttx.spk
>>> Install files ...
install -b 115200
Install nuttx.spk
|0%-----------------------------50%------------------------------100%|
######################################################################
159616 bytes loaded.
Package validation is OK.
Saving package to "nuttx"
updater# sync
updater# Restarting the board ...
reboot
書き込んでて、bootloaderが古いとか出たらbootloaderの更新が必要。
Cannot open port
Cannot open port : /dev/ttyUSB0 tools/flash.sh spresense
Sonyが確認したWSL環境がどんな環境なんか分からんので何とも言えんのんじゃが...
なんかUSBのPort周りで権限絡みで差異がある。
権限が無いので、sudoで実行するか、権限与えてやるなりすればえぇんじゃが、正直どうするのが正解か分からん。
なんかUSBのPort周りで権限絡みで差異がある。
権限が無いので、sudoで実行するか、権限与えてやるなりすればえぇんじゃが、正直どうするのが正解か分からん。
build結果確認
SpresenseへUARTで接続して動作確認を行う。
serial通信用に"screen"をinstall。
serial通信用に"screen"をinstall。
sudo apt install screen
screenを使ってSpresenseへ接続。
sudo screen /dev/ttyUSB0 115200
UART接続できたら、"hello"とcommand入力。responseに”Hello, World!!”と返ってきたらsampleが正しく書き込まれてることが確認できる。
NuttShell (NSH) NuttX-11.0.0
nsh> hello
Hello, World!!
nsh>
UART接続を終了させるには、"Ctrl+A, K"を入力。以下の確認が表示されるので、"y"を押下。
Really kill this window [y/n]
ここまでできたらCLIの開発環境は整ってるとしてok。
SDK boot loader書き込み
boot loaderは、ブラウザ経由でしかdownloadできません。
downloadしたzip fileを”spresense/sdk”配下に配置し、以下のcommandを実行。
"/dev/ttyUSB0”は"dmesg"commandを実行して確認。
"/dev/ttyUSB0”は"dmesg"commandを実行して確認。
./tools/flash.sh -e spresense-binaries-v3.0.0.zip sudo ./tools/flash.sh -l ~/spresense/firmware/spresense -c /dev/ttyUSB0
+ | 成功時log |
Cannot open port
以下のようにポートが開けないってerrorが出た場合...
Cannot open port : /dev/ttyUSB0
いくつかの原因が考えられるので順番に調べる。
- 正しいportを指定しているか?
- dialout group追加はしているか?
- dialout group追加をしていない場合、sudo実行しているか?
多分、WSL2環境だと"dialout"を追加してもダメだと思うので、3番目のsudo実行をするが正解だと思ってる。
コマンドスクリプト(β版)
必須では無いが、入れとくと便利なので、以下のscriptを".bashrc"に追加しておく。
このscriptを実行しておくと、SPRESENSE SDK配下でなくてもSPRESENSE Applicationを製造するdirectoryを作ることができる。
このscriptを実行しておくと、SPRESENSE SDK配下でなくてもSPRESENSE Applicationを製造するdirectoryを作ることができる。
cd 【SPRESENSE_SDK_PATH】/spresense/sdk/ . tools/build-env.sh
+ | 成功時log |
- spr-config
- spr-make
- spr-create-approot
- spr-set-approot
- spr-create-app
- spr-go-sdk
- spr-go-approot
更新日: 2023年08月14日 (月) 08時10分48秒