#Spresense 開発環境構築
まえがき
Windows10で、Spresense開発環境を整えます。
CLI環境を作ったあと、VScode IDEでの環境をつくります。
基本はSony公式スタートガイドの通りに進めればいいですが、最新の環境との食い違いで不具合があった所をサポートしながら書き進めます。
CLI版の環境構築
IDEを使用するためにも、まずCLI環境をセットアップしておく必要があります。
MSYS2セットアップ
64bit版のダウンロード
ダウンロードは、こちらのリンクから。
この中から、 msys2-x86_64-20210419.exe をダウンロードします。
MSYS2最新版では、後程IDEで使用するSDKコンフィグが動きませんでした。
ウィルススキャン例外設定
MSYS2をインストールするフォルダ、および上記でダウンロードしたファイルを例外設定します。
MSYS2はウィルススキャンにひっかかりやすいようで、必要なビルドコマンドが隔離されたりしないように設定します。
MSYS2インストール
インストーラに従ってインストールします。
ここではD:\msys64
にインストールしています。
ビルドに必要なパッケージをインストール
「MSYS2 MSYS」を開きます。
「MSYS2 MinGW ~~」のほうではないので注意。
また、pacman DBのアップデート(pacman -Syu等のコマンド)は行わない事。ビルドコマンドパッケージが最新バージョンに更新されてしまい、後程のIDE環境で不具合がでます。
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
Spresense用ツールのインストール
curl -L https://raw.githubusercontent.com/sonydevworld/spresense/master/install-tools.sh > install-tools.sh
bash install-tools.sh
インストールができたら、sourceしておきます。
source ~/spresenseenv/setup
Spresense SDKのclone
git clone --recursive https://github.com/sonydevworld/spresense.git
USBシリアルドライバのインストール
こちらから、ドライバをインストールします。
ドライバをインストール後、SpresenseをUSB接続します。
USBシリアルポートの確認
デバイスマネージャーから、Spresense接続ポートを探します。
デバイス名は、次のようになります(ここではCOM3)
Silicon Labs CP210x USB to UART Bridge(COM3)
CLIサンプルアプリケーション "Hello, World!" をためす
サンプルアプリケーションのコンフィグ
MSYS2を起動し、次のコマンドでコンフィグを行います。
cd spresense/sdk
tools/config.py examples/hello
上記コンフィグコマンドを打った後、次のようなWARNINGが表示されることがあります。
WARNING: New loader vN.N.N is required, please download and install.
この場合、表示されたバージョンのブートローダーのインストールが必要です。
ブートローダーのインストール
1. 上記WARNINGのところで表示されたURLをブラウザで開きます。
2. 表示されたページのDownload nowボタンを押し、End User License Agreementが同意できたらZIPファイルがダウンロードされます。
3. ダウンロードされたZIPファイルをspresense/sdkディレクトリに移動します。
4. ZIPファイルを、次のコマンドで展開します。
./tools/flash.sh -e (ダウンロードしたZIPファイル名)
5. SpresenseメインボードとPCをUSB接続します。
6. 次のコマンドで、ブートローダーバイナリをSpresenseメインボードへ書き込みます。
./tools/flash.sh -l ~/spresense/firmware/spresense -c (COMポート)
SDKとサンプルのビルド
make
バイナリイメージのnuttx.spkファイルができたらOKです。
サンプルアプリケーションをSpresenseボードへの書き込み
tools/flash.sh -c (COMポート) nuttx.spk
正常に書き込みが完了すると、ボードは自動的にリブートし書き込まれたイメージが実行されます。
シリアルターミナル上での動作確認
Windowsなので、Tera Termを使って確認します。
通信設定は、次の設定で。
項目 | 設定値 |
---|---|
ボーレート | 115200 |
データ | 8 bit |
パリティ | none |
ストップ | 1 bit |
フロー制御 | none |
NuttShellへシリアル接続し、コマンドhello
を打って、次のようになればOK
NuttShell (NSH)
nsh> hello
Hello, World!!
nsh>
IDE環境構築
ここからIDE開発環境をセットアップします。
Visual Studio Codeのインストール
こちらからダウンロードして、インストール。
日本語言語パックをインストール
拡張機能から、日本語言語パックもインストールしておきます。
Spresense 拡張機能のインストール
MSYS2インストールPathの設定
- F1キーを押してコマンドパレットを表示
-
spresense msys2
と入力してコマンドを絞り込み「Spresense: MSYS2パスの設定(Windowsのみ)」を選択 - フォルダーの選択画面が出るのでMSYS2のパスを選択して「フォルダーの選択」をクリック
アプリケーションプロジェクトの作成
-
F1キーを押してコマンドパレットを表示
-
spresense workspace
と入力してコマンドを絞り込み「Spresense: ワークスペースセットアップウィザード」を選択 -
「新規ワークスペースの作成」ダイアログが表示されるので、
Spresense SDK パス:CLI開発環境でgit cloneしたspresense SDKのフォルダを選択
プロジェクトフォルダーパス:新しく作成したフォルダーを指定します。 -
「作成」 ボタンをクリックし、「Spresenseセットアップ: セットアップ完了」 が表示されればワークスペースセットアップは完了
-
ファイルから名前を付けてワークスペースを保存を選択することで作成したワークスペースを保存
シェル設定の有効化
- ターミナルから新しいターミナルを選択
- 「新しいターミナルの作業ディレクトリを選択してください」と入力を求められますので、どちらかを選択してください。(どちらでも同じ結果になります。)
公式ガイドでは、「このワークスペースによるターミナルシェルの変更を許可しますか?」とありましたが、このダイアログは出現しませんでした。
アプリケーションコマンド "myapps" の追加
- 上記で作成したプロジェクトフォルダー上で右クリックし、「Spresense: プロジェクトフォルダーへの追加」を選択します。
- 開いた「プロジェクトフォルダーへの追加」ダイアログから、アプリケーションコマンドを追加したいプロジェクトフォルダーを選択し、次へ をクリック
- アイテムの種類から「アプリケーションコマンド」を選択し、次へをクリック
- アプリケーションコマンド名に追加したいアプリケーションコマンドの名前を入力(今回の例では
myapps
です。) - 作成ボタンをクリック
メインソースコードの編集
- 上記のとおりに進めて作成ボタンを押すと、メインソースコードがエディタに表示されます。
- 次のようにソースを編集して、"Hello Spresense!!!"と表示されるようにします。
#include <sdk/config.h>
#include <stdio.h>
int myapps_main(int argc, char *argv[])
{
printf("Hello Spresense!!!\n");
return 0;
}
ビルドのコンフィグレーション
- 次にビルドするためのコンフィグレーションを行います。プロジェクトフォルダー上で右クリックし、プロジェクトメニューから「Spresense: SDKコンフィグ」を選択します。
- 別タブに「SDKコンフィグ」が開くので、「新規作成」をクリック
- 「New Configuration」ダイアログが出たら、何も選択せず、「OK」をクリックしてダイアログを閉じます。
- 「保存」をクリック
-
コンフィグレーションが保存されました。
と通知が表示されるまで待ちます。
プロジェクトのビルド
- プロジェクトフォルダー上で右クリックし、プロジェクトメニューから「Spresense: アプリケーションのビルド」を選択します。
- アプリケーションビルドが開始するので完了まで待ちます。
- ビルドが完了すると、
ターミナルはタスクで再利用されます、閉じるには任意のキーを押してください。
と表示されます。
シリアルポートの設定
- F1キーを押してコマンドパレットを表示
-
spresense serial port
と入力してコマンドを絞り込み「Spresense: シリアルポートの選択」を選択 - シリアルポートの選択 リストの中からSpresenseのポートを選択します。(ここではCOM3)
Spresenseボードへの書き込み
- プロジェクトフォルダー上で右クリックし、プロジェクトメニューから「Spresense: ビルドと書き込み」を選択します。
- ビルドと書き込みが実行され、それが終わると自動でシリアルターミナルが開きます。
動作確認
- 開いたシリアルターミナル上で
myapps
を入力しエンターキーを押します。 - 作成したコマンドの実行結果が表示されます。
NuttShell (NSH) NuttX-8.2
nsh> myapps
Hello Spresense!!!
nsh>