弊社WEBサイト「APS-WEB」では、オンラインの教材「初心者講座」を掲載しております。ここでは、初心者講座マルチコア編に掲載されたソースコードを実際にお手元で実行するための環境構築手順を紹介いたします。多くのみなさまが「自分のPCを使って、すぐに機能を試し、PoCへ向けて開発に着手」できるよう まずは、Windows 10(64bit) 日本語版 [Home/Pro]での構築手順 を展開いたします(初心者講座の各回に依存する操作方法は、初心者講座の各WEBページをご参照ください)。是非、お役立てください。
対象となるバージョン
SPRESENSE SDK 1.5.0(2019/12/18リリース)をベースとしたソースコード
対象外
- 初心者講座 マルチコア編 第1〜8回
- SPRESENSE SDK 1.4.0(2019/12/18リリース)をベースとしたソースコード
【APS-WEB】SPRESENSEを使った「初心者講座マルチコア編」Windows環境設定手順のまとめ(v1.4.0対応)をご参照ください
本資料の対象となる初心者講座は...
- 初心者講座「マルチコア編」
セットアップ手順は以下のとおりです。
基本的なセットアップ手順は以下の手順を基にしています。
※SPRESENSE™ Arduino IDE、TeraTermを利用中の方は、事前にウィンドウを閉じてください。
Windows PCをご準備ください。
- 今回は Windows 10 64bit環境 を利用します。
- SPRESENSEの開発はmacOSやLinux(Ubuntu)でも開発可能です。
macOSを利用される場合は、いくつか追加の操作が必要となります。
「macOS上でAPSのgitリポジトリを使う場合。」をご参照ください。
SPRESENSEとPCを接続するためのUSBドライバ(USB-UARTドライバ)をインストールします。
- 以下よりUSB-UARTドライバをダウンロードします(SPRESENSE対応版です)。
- インストールします。
- ダウンロードしたZIPファイルをダブルクリックします。
- 解凍ウィザードが表示されるので、任意の場所へ解凍します。
- 解凍先のフォルダで
CP210xVCPInstaller_x64.exe
を実行します。
開発に必要なツールをインストールします。
まず、MSYS2 をダウンロードします。
-
MSYS2から
msys2-x86_64-20190524.exe
をダウンロードします。 - ダウンロードしたファイルをインストールします(特に設定を変更する必要はありません)。
MSYS2のツールを管理するパッケージデータベースの管理用鍵を最新のものにします
※2020/11/09に更新 - 本手順を必ず実行ください。本手順を省略した場合、開発環境のインストールに失敗する恐れがあります。
- スタートメニューから「MSYS2 64bit」-「MSYS2 MSYS」を実行します。
- コマンドプロンプトに、以下のコマンドを入力し、順次実行します。
- インストールにはネットワークが必要です。
-
$
は入力不要です。 -
#
はコメントです。
# ホームディレクトリへ移動します。
$ cd ~/
# 管理用の鍵をダウンロードします
$ curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
# 管理用の鍵の正しさを証明する署名ファイルをダウンロードします
$ curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
# 2つのファイルがダウンロードできていることを確認します
$ ls
msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
# 管理用の鍵をインストールします
$ pacman -U msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
...
# パッケージデータベースを更新します
$ pacman -Syy
...
# 以上で前準備は完了となります。
# Windowsを再起動してください
続いて、SPRESENSE開発環境をインストールします。
- スタートメニューから「MSYS2 64bit」-「MSYS2 MSYS」を実行します。
- コマンドプロンプトに、以下のコマンドを入力し、順次実行します。
- インストールにはネットワークが必要です。
-
$
は入力不要です。 -
#
はコメントです。
# ホームディレクトリへ移動します。
$ cd ~/
# 開発ツールのインストーラを入手します。
$ curl -L https://raw.githubusercontent.com/sonydevworld/spresense/master/install-tools.sh > install-tools.sh
# インストールを開始します。
$ bash install-tools.sh
# 開発時に使う環境設定をロードします。
$ source ~/spresenseenv/setup
# 起動時に、開発時に使う環境変数が自動的にロードさせるようにします。
$ echo "source ~/spresenseenv/setup" >> ~/.bashrc
Visual Studio Code(統合開発環境:IDE)をインストールします。
-
Visual Studio Codeのインストーラをダウンロードします。
- インストールにはネットワークが必要です。
SPRESENSEを開発するための拡張機能をインストールします。
拡張機能の追加画面を開きます。
- Visual Studio Codeを起動します。
- 拡張機能を管理するタブ(下画像の赤枠)を選択し、拡張機能検索ボックス(下画像の緑枠)をクリックします。
- 拡張機能のインストールにはネットワークが必要です。
拡張機能をインストールします。
-
開発に必要な拡張機能をインストールします。
- 拡張機能のインストールにはネットワークが必要です。
-
「japanese language pack for visual studio code」 をインストールします。
- インストール完了後、Visual Studio Codeを再起動します。
-
「SPRESENSE VSCode IDE」 をインストールします。
-
(備考)
C/C++
、Cortex-Debug
も自動的にインストールされます。 -
(注意) 事前に過去の拡張機能がインストールされている場合は削除してください。
spresense-configuration-ui-0.0.12.vsix
spresense-serial-terminal-0.0.12.vsix
spresense-settings-0.0.12.vsix
- インストール完了後、Visual Studio Codeを再起動します。
-
(備考)
インストール後は下記の様に拡張機能が追加された状態になります。
MSYS2 と Visual Studio Code の連携を設定します。
- Visual Studio Code画面上で F1キー を入力します。
- コマンドパレット(下図オレンジ枠)が表示されます。
-
MSYS2
と入力し「SPRESENSE:MSYS2パスの設定(Windowsのみ)」を選択します。 - MSYS2がインストールされているフォルダを指定します。
- MSYS2はデフォルトで
C:¥msys64
にインストールされます。
- MSYS2はデフォルトで
初心者講座マルチコア編にて使うソースコードを入手します。
既にAPS初心者講座用のソースコードを入手している場合。
注意
初心者講座に使うソースコードは、Sony Developer World より配布されているソースコード( こちら )から分岐されたソースコードです。https://github.com/sonydevworld/spresense よりソースコードを入手済の場合は 『はじめてAPS初心者講座用のソースコードを入手する場合』 の手順を参考に、別フォルダへダウンロード( git clone [URL] spresense-aps
)し、以降はダウンロードしたフォルダ名に読み替えて実行してください。
手順
-
初心者講座マルチコア編にて使うソースコード を指定します。
- ダウンロードしてあるソースコードを最新の状態にします。
# ホームディレクトリへ移動します
$ cd ~/
# SPRESENSEのソースコードがダウンロードされていることを確認します
$ ls spresense
$ cd ./spresense
# APS-WEBが配布しているソースの最新版を取得します。
$ git pull
はじめてAPS初心者講座用のソースコードを入手する場合。
-
初心者講座マルチコア編にて使うソースコード を
git clone
で指定します。- インストールにはネットワークが必要です。
- 実行に必要なサンプルソースコードが含まれています。
-
$
は入力不要です。 -
#
はコメントです。
# ホームディレクトリへ移動します
$ cd ~/
# APS-WEBが配布しているソース一式を入手します。
$ git clone --recursive https://github.com/inscape-sa/spresense-aps-v1.git spresense
# SPRESENSEのソースコードがダウンロードされていることを確認します
$ ls spresense
ソースコードの入手に成功すると、下記のようにspresense
フォルダが作成されます。
ソースコードを掲載回のバージョンに切り替える。
本箇所操作の下記コマンドは、初心者講座の本文にあわせてください。
- git tag
- git checkout
- git branch
- git reset
# SPRESENSEのフォルダに移動します
$ cd spresense
# SPRESENSEのgitと接続されているsubmoduleを確認します
$ git submodule
c58c11ddd182e8ed04eb931bbf2a82f190874c9d externals/nnabla-c-runtime (v1.0.19)
74f203ea59d99b2ccd8fe2b19c79b0eaadfc31ca nuttx (v1.0.2-20-g74f203e)
# SPRESENSEのgitのリリースリストが表示されます
$ git tag -l
v1.0.0
...
v1.5.0
v1.5.0.is.1.0
# ソースコードを"1.5.0.is.1.0"という名前でブランチを生成します
$ git checkout -b 1.5.0.is.1.0 refs/tags/v1.5.0.is.1.0
Switched to a new branch '1.4.0.is.1'
# このように切り替わっています
$ git branch
* 1.5.0.is.1
master
# 1.5.0.is.1の状態にリセットします
$ git reset --hard HEAD
LPC-Link2をCMSIS-DAP準拠のICEデバッガに設定する。
NXP LPC-Link2(秋月電子通商の販売ページ)、エンクロージャー により、実行中のSPRESENSEの内部を解析することが可能です。ただしLPC-Link2は出荷時にCMSIS-DAP2に準拠するプログラムは書き込まれていないため、下記手順によりCMSIS-DAP準拠のICEデバッガに更新する必要があります。
-
LPC-Link 2 Configuration Tool を入手します。
- サイト下部付近にダウンロード用のリンクがあります。
- LPC-Link 2にデバッガとして使うためのファームウェアを書き込みます。
- LPC-Link 2 の JP1をOpen(何もつけない:ジャンパ無)状態 とし、PCに接続します。
- LPC-Link 2 Configuration Toolを起動し、下記の手順でファームウェアを書き込みます。
- 「LPC-Link2 CMSIS-DAP debugger with bridges」を選択。
- 「Program the Link2 with the currently selected image」をクリック。
- 画面右に「Program operation successful」と表示されれば、書き込み完了です。
- LPC-Link 2 Configuration Toolを終了します。
- LPC-Link 2 を PCから抜去します。
- LPC-Link 2 の JP1をClose(ジャンパ有)状態 とします。
- ※LPC-Link2にはジャンパが同梱されていないため、2.54mmピッチのジャンパピンを別途入手ください。
動作確認中に発生しやすいトラブルと対応。
flash_writerが見つからない(No such file or directory)。
Windows上でSPRESENSE SDK(Visual Studio Code)を実行した際 一部の条件において「SPRESENSE SDKを構成する一部のファイルがウィルス(脅威)と判定」され、Windowsによって自動的に検疫(削除)され「ファイルが見つからない」旨のエラーが発生する ことがあります。
この場合、回復させるにはWindowsのコントロールパネルにある「ウィルスと驚異の防止」設定から検疫されたファイルを確認し、復元ボタンをクリックしてください。
参考情報。
Windows Defender AV で検疫済みのファイルを復元する
実際に環境が正常に動作するか確認する。
開発ターゲットを組み上げる(SPRESENSE™デバイスの準備)。
以下の機材を組み上げてください。
- SPRESENSE™ Main Board
- SPRESENSE™ Extension Board
PCとmicro-USBケーブルで接続してください。
SPRESENSEが認識され「デバイスマネージャ」にCOMポートとして表示されます。
Visual Studio Code開発環境でプロジェクトをビルドします。
- プロジェクトを開いて、プログラムをビルドします(下記手順)。
①ワークスペースを開く。
- ワークスペースは "C:¥msys64/home/(ユーザー名)/spresense/"に格納されています(下記①)。
- ワークスペースが開かれると、画面左にファイル一覧が表示されます(下記③)。
②Visual Studio Codeの拡張機能「SPRESENSE VSCode IDE」と、開発対象となるVisual Studio Codeプロジェクトのバージョンを一致させる(2020/01/21 - 追記)
2020年1月現在、SPRESENSEの拡張機能「SPRESENSE VSCode IDE」は、バージョン1.1.0が配布されています。ダウンロードしたプログラムがバージョン1.0.0で開発されている場合、Visual Studio Codeのプロジェクトフォルダを更新する必要があります
更新が必要なプロジェクトの場合、画面下部にアラートが表示されます。
プロジェクトを更新するには「F1」キーを入力し「Spresense:プロジェクトフォルダ設定の更新」をクリックし、プログラムが格納されているワークスペースフォルダー「aps00_sandbox」をクリックします(プロジェクトフォルダを更新しないまま進めるとビルドに失敗することがあります、ご注意ください)。
③SPRESENSEを接続したシリアルポートを選択する。
④ブートローダを書き込む。
-
F1キーを入力し、SPRESENSE bootloader と入力。
念の為、ウィルス検疫の影響を受けていないか、再実行しておきましょう。
- SPRESENSE:ブートローダの書き込みを 再度 実行します。
⑤カーネル(OS)、アプリケーションをビルドし、デバイスへ書き込む。
- "sandbox01"フォルダの中のファイルどれでも良いので右クリック。
- SPRESENSE:カーネルのビルド を実行(下記①)。
- ビルド完了を待つ。
- SPRESENSE:アプリケーションのビルド を実行(下記②)。
- ビルド完了を待つ。
- SPRESENSE:ビルドと書き込み を実行(下記③)。
- プログラムがデバイスに書き込まれます。
- 注意:ウィルス検疫によりプログラムが削除される場合があります。
- 対応:上記の「flash_writerが見つからない」手順で復旧してください。
- Nsh(nsh>)が表示されます。
⑥表示されているターミナルでプログラムを実行する。
- Nsh(nsh>)が表示されます。
- aps_template_asmp と入力し Enterキー でプログラムを実行します。
以上で、準備は完了となります。お疲れ様でした。
(補足) 新しいアプリケーションを開発する場合の手順
SPRESENSE SDK スタートガイド (IDE 版) の 「ワークスペースの作成」をご参照ください。
- "sandbox01"フォルダのを右クリック(下記①)。
- SPRESENSE:プロジェクトフォルダーへの追加(下記②)。
- 追加先のフォルダーを選択(下記③)。
- 追加するプログラムのタイプを選択(ASMP = サブコア連携:下記④)。
- サブコア用実行ファイルの名前を入力(下図⑤)。
- サブコア制御用のメインコアプログラムの自動生成をON(下記⑥)。
- メインコアで実行するコマンド名(コマンド名_mainが関数)を追加(下図⑦)。
まとめ
以上の手順で、APS初心者講座マルチコア編をお手元で試すことができます。なお、カメラはLCDを使ったサンプル・プログラムを実行するには「APS学習ボード」のご利用をお勧めします。なお、APS主催のSPRESENSEハンズオンセミナーも計画しておりますので、併せてご活用ください。会場(オフライン)でも、お会いできますこと楽しみにしております。
弊社ハンズオンにて当日ご利用できる機材は以下を計画しております。
※ 一部開催都合により、内容が変化する可能性があります。
※ 持ち帰り可能な機材については、別途イベントページにてご案内いたします。
- LCDパネル (LCD 2.2inch ディスプレイ (ILI9431))
- APS学習ボード(SPRESENSE Extension Board用)
- CMSIS-DAP準拠 ICEデバッガ (NXP LPC-Link2)
- SPRESENSE Extension Board
- SPRESENSE Main Board
- SPRESEBSE Camera Board
- micro-USBケーブル
- micro-SDカード
- Windows 10 (64bit) PC
- USBハブ