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 なしで確認
はじめに
一部はまりポイントをメモします
日本語化は嫌いなのでしませんでした
環境構築
「1. 開発ツールのセットアップ」
下記を実施しているなら不要
「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
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