SPRESENSEのVisual Studio Code環境立ち上げ
最終更新日  2019/10/16
使用OS ver  Ubuntu18.04
Software  SPRESENSE SDK 1.14.1、VisualStudioCode1.39.1、Spresense VSCode IDE 1.0.1
Proxy    なしで確認
はじめに
基本的にはSpresense SDK スタートガイド (IDE 版)が分かりやすいのでなぞればOK
一部はまりポイントをメモします
日本語化は嫌いなのでしませんでした
環境構築
「1. 開発ツールのセットアップ」
下記を実施しているなら不要
ARM&nuttx開発環境構築@Ubuntu18.04
SPRESENSEのSDK導入、ビルド、ロード方法
「2. デバッガの準備(ICEデバッグを行う場合)」
ICEデバッグを行わないなら不要
改造してICEデバッグしたいならやること
「3. IDEのインストール」
VisualStudioCodeのインストールとSpresense VSCode IDEを実施する
Visual Studio Codeの設定
WORKSPACE作成
Spresense SDKを読み込む
左カラムにあるファイルアイコンをクリック
OpenFolderを選択
Spresenseディレクトリを選択
左カラムにspresenseディレクトリが読み込まれる
終わったら下の方で完了POPUPが出る
プロジェクトディレクトリを作成
メニューの File -> Add folder to Workspace
作成済みの既存ディレクトリを選択 or 新しいディレクトリを作成し、Addをクリック
今回はgen_modulesにした
これがプロジェクトディレクトリになる
ワークスペース名をつけて保存
メニューのFile -> Save workspace as ...
とりあえず、公式サイトに合わせて名前はWORKSPACEを入力
なぜか隠しファイルが出るようになった。Ctrl+Hで変更。
ターミナル設定
新規ターミナル選択
メニューのTerminal -> New Terminalを選択
spresenseとgen_moduleが出るのでどっちかを選ぶ(どっちでもいいらしい)
とりあえず、spresenseを選んだ
このワークスペースによるターミナルシェルの変更を許可しますか?と出たら許可する
なぜか出なかった。Ubuntuだから?
もしPermissionでしくったら VSCodeの場合
公式に方法書いてあった。手順は下記。
F1 を押し、コマンドパレットを開く
terminal manage と入力しコマンドを絞り込む
Terminal: Manage Workspace Shell Permissions を選択
Allow Workspace Shell Configuration を選択
VSCodeでターミナルの許可をしてもしくった場合
UbuntuやMacの場合、プロジェクトをUSBメモリなどからコピーすると、shファイルの権限が外れている
具体的には、.vscode/にあるbuild.shとclean_flash.shの権限が外れているので、ビルドでしくる
下記で対応
$ cd ~/gen_modules/.vscode/
$ chmod 777 build.sh
$ chmod 777 clean_flash.sh
アプリケーションコマンド追加
プロジェクトディレクトリgen_module上で右クリック
Spresense: Create application commandを選択
アプリケーションコマンド名を入力するダイアログが表示される
追加したいコマンドの名前を入力し ENTER
今回はhelloとつけた
EXPLORERに表示されることを確認
ASMPワーカーを作成
プロジェクトディレクトリgen_modules上で右クリック
Spresense: Create ASMP worker programを選択
ASMPワーカー名を入力するダイアログが現れる
ASMPワーカー名を入力するダイアログが現れる
今回はhello_asmpとつけた
新しいASMPワーカーを使用したアプリケーションを作成しますか? というダイアログが表示される
YESを選択
EXPLORERにhelloとhello_workerが表示されていることを確認
hello:ワーカー用サンプルアプリケーションの含まれるディレクトリ。要はメインコアのアプリ
hello_worker:ワーカープログラムの含まれるディレクトリ。要はサブコアのアプリ
kernelのコンフィグレーション
Ctrl+Shift+Pでコマンドパレットを表示
メニューのViewからも出せる
spresense kernel configと入力
入力途中くらいでSpresense: Kernel configが出てくるので選択
コンフィグレーションを行うプロジェクトを選択
spresenseとgen_moduleが出るのでgen_moduleを選ぶ
spresenseを選ぶとbuildが通らない
config画面が開くので設定
開いたら好きなように設定(基本は変えなくていい)
終わったらsave
configuration has been savedと表示されたらOK
configを閉じる
SDKのコンフィグレーション
Ctrl+Shift+Pでコマンドパレットを表示
メニューのViewからも出せる
spresense sdk configと入力
入力途中くらいでSpresense: sdk configが出てくるので選択
コンフィグレーションを行うプロジェクトを選択
spresenseとgen_moduleが出るのでgen_moduleを選ぶ
spresenseを選ぶとbuildが通らない
config画面が開くのを待つ
開いたらnewをクリック
ポップアップでNew Configurationが開く
必要なデバイス、機能のプリセットを選択し、 OK
ASMPワーカープログラムを追加した場合は、 Feature → asmp を有効にする
追加で必要な設定を行い、、終わったらsave
configuration has been savedと表示されたらOK
設定はsdkの.configファイルに書かれているCtrl + Hで見れる。
開発作業
コーディング
helloアプリに出力を記入
code:hello_main.c
#include <sdk/config.h>
#include <stdio.h>
int hello_main(int argc, char *argv[])
{
printf("Hello SPRESENSE!!");
return 0;
}
hello_asmpはデフォでprintfが入っていたので特に何もしない
カーネルビルド
ビルドしたいプロジェクト(今回はgen_modules)を右クリック
Spresense: Kernel Cleanをクリックして、一旦綺麗にしておく
Spresense: Kernel buildをクリックして、build
アプリケーションビルド
ビルドしたいプロジェクト(今回はgen_modules)を右クリック
Spresense: Application Cleanをクリックして、一旦綺麗にしておく
Spresense: Application buildをクリックして、build
これでnuttxファイルが生成
gen_modules/outディレクトリに入っている
ブートローダーのインストール
VisualStudioCode用のbootloaderをSPRESENSEに入れないといけないっぽい
SPRESENSEを接続する
Ctrl+Shift+Pでコマンドパレットを表示
メニューのViewからも出せる
spresense bootloaderと入力
入力途中くらいでSpresense: Flash bootloaderが出てくるので選択
これでbootloaderの書き込みが始まる
書き込み
ビルドしたいプロジェクト(今回はgen_modules)を右クリック
Spresense: Build and Flashをクリック
結果
ちゃんとHello worldをメインコアとサブコアで処理できた!
https://gyazo.com/89bb9b323cd2bb1aa5121b0345e4f2e7