Help us understand the problem. What is going on with this article?

【APS-WEB】SPRESENSEを使った「初心者講座マルチコア編」Windows環境設定手順のまとめ(v1.4.0対応版)

acd-amp-main@2x.png

弊社WEBサイト「APS-WEB」では、オンラインの教材「初心者講座」を掲載しております。ここでは、初心者講座マルチコア編に掲載されたソースコードを実際にお手元で実行するための環境構築手順を紹介いたします。多くのみなさまが「自分のPCを使って、すぐに機能を試し、PoCへ向けて開発に着手」できるよう まずは、Windows 10(64bit) 日本語版 [Home/Pro]での構築手順 を展開いたします(初心者講座の各回に依存する操作方法は、初心者講座の各WEBページをご参照ください)。是非、お役立てください。

対象となるバージョン

SPRESENSE SDK 1.4.0をベースとしたソースコード

対象外

  • 初心者講座 マルチコア編 第9回以降
  • SPRESENSE SDK 1.5.0(2019/12/18リリース)をベースとしたソースコード

【APS-WEB】SPRESENSEを使った「初心者講座マルチコア編」Windows環境設定手順のまとめ(v1.5.0対応)をご参照ください

本資料の対象となる初心者講座は...

セットアップ手順は以下のとおりです。

基本的なセットアップ手順は以下の手順を基にしています。

SPRESENSE SDK スタートガイド (IDE 版)

※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 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

スクリーンショット 2019-10-19 16.36.35.png

Visual Studio Code(統合開発環境:IDE)をインストールします。

  • Visual Studio Codeのインストーラをダウンロードします。
    • インストールにはネットワークが必要です。

SPRESENSEを開発するための拡張機能をインストールします。

拡張機能の追加画面を開きます。

  • Visual Studio Codeを起動します。
    • 拡張機能を管理するタブ(下画像の赤枠)を選択し、拡張機能検索ボックス(下画像の緑枠)をクリックします。
    • 拡張機能のインストールにはネットワークが必要です。

vs001.png

拡張機能をインストールします。

  • 開発に必要な拡張機能をインストールします。

    • 拡張機能のインストールにはネットワークが必要です。
    • 「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を再起動します。
  • インストール後は下記の様に拡張機能が追加された状態になります。

vs002.png

MSYS2 と Visual Studio Code の連携を設定します。

  • Visual Studio Code画面上で F1キー を入力します。
    • コマンドパレット(下図オレンジ枠)が表示されます。
    • MSYS2と入力し「SPRESENSE:MSYS2パスの設定(Windowsのみ)」を選択します。
    • MSYS2がインストールされているフォルダを指定します。
      • MSYS2はデフォルトで C:¥msys64 にインストールされます。

vs003.png

初心者講座マルチコア編にて使うソースコードを入手します。

既に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フォルダが作成されます。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3332393736332f64633064396132622d303562302d346263352d376562302d3036346632633033633230352e706e67.png

ソースコードを掲載回のバージョンに切り替える。

本箇所操作の下記コマンドは、初心者講座の本文にあわせてください。

  • 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.0.1
v1.0.2
v1.1.0
v1.1.1
v1.1.2
v1.1.3
v1.2.0
v1.2.1
v1.3.0
v1.3.1
v1.4.0
v1.4.0.is.1
# ソースコードを"1.4.0.is.1"という名前でブランチを生成します
$ git checkout -b 1.4.0.is.1 refs/tags/v1.4.0.is.1
Switched to a new branch '1.4.0.is.1'
# このように切り替わっています
$ git branch
* 1.4.0.is.1
  master
# 1.4.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(ジャンパ有)状態 とします。

P8241569.png

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3332393736332f39626631373234662d623965392d613764662d646564642d3338383464393234393830322e706e67.png

vs014.png

動作確認中に発生しやすいトラブルと対応。

flash_writerが見つからない(No such file or directory)。

Windows上でSPRESENSE SDK(Visual Studio Code)を実行した際 一部の条件において「SPRESENSE SDKを構成する一部のファイルがウィルス(脅威)と判定」され、Windowsによって自動的に検疫(削除)され「ファイルが見つからない」旨のエラーが発生する ことがあります。

acd-amp-04-fig05.png

この場合、回復させるにはWindowsのコントロールパネルにある「ウィルスと驚異の防止」設定から検疫されたファイルを確認し、復元ボタンをクリックしてください。

acd-amp-04-fig03@2x.png

参考情報。

Windows Defender AV で検疫済みのファイルを復元する

実際に環境が正常に動作するか確認する。

開発ターゲットを組み上げる(SPRESENSE™デバイスの準備)。

以下の機材を組み上げてください。

  1. SPRESENSE™ Main Board
  2. SPRESENSE™ Extension Board

acd-amp-main@2x.png

PCとmicro-USBケーブルで接続してください。

SPRESENSEが認識され「デバイスマネージャ」にCOMポートとして表示されます。

スクリーンショット 2019-10-09 9.11.09.png

Visual Studio Code開発環境でプロジェクトをビルドします。

  • プロジェクトを開いて、プログラムをビルドします(下記手順)。

①ワークスペースを開く。

  • ワークスペースは "C:¥msys64/home/(ユーザー名)/spresense/"に格納されています(下記①)。
  • ワークスペースが開かれると、画面左にファイル一覧が表示されます(下記③)。

スクリーンショット 2019-10-09 9.12.12.png

②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のプロジェクトフォルダを更新する必要があります

spresense-workshop-vscode-ext-1001.png

更新が必要なプロジェクトの場合、画面下部にアラートが表示されます。

spresense-workshop-vscode-ext-1002.png

プロジェクトを更新するには「F1」キーを入力し「Spresense:プロジェクトフォルダ設定の更新」をクリックし、プログラムが格納されているワークスペースフォルダー「aps00_sandbox」をクリックします(プロジェクトフォルダを更新しないまま進めるとビルドに失敗することがあります、ご注意ください)。

spresense-workshop-vscode-ext-1003.png

③SPRESENSEを接続したシリアルポートを選択する。

スクリーンショット 2019-10-09 9.12.24.png

④ブートローダを書き込む。

  • F1キーを入力し、SPRESENSE bootloader と入力。

    • SPRESENSE:ブートローダの書き込みを実行します。
    • Webからのダウンロードを求められますので、同意しダウンロードしてください。
      • 初回のみインストールにはネットワークが必要です。 スクリーンショット 2019-10-19 16.54.55.png
    • 画面右下にダウンロードしたファイルを求めるメッセージが出ますので、ZIPファイルを選択してください。
    • SPRESENSEにブートローダのプログラムが数種類書き込まれます。
      • 注意:ウィルス検疫によりプログラムが削除される場合があります。
      • 対応:上記の「flash_writerが見つからない」手順で復旧してください。

念の為、ウィルス検疫の影響を受けていないか、再実行しておきましょう。

  • SPRESENSE:ブートローダの書き込みを 再度 実行します。

⑤カーネル(OS)、アプリケーションをビルドし、デバイスへ書き込む。

  • 00_sandboxフォルダの中のファイルどれでも良いので右クリック。
  • SPRESENSE:カーネルのビルド を実行(下記①)。
  • ビルド完了を待つ。
  • SPRESENSE:アプリケーションのビルド を実行(下記②)。
  • ビルド完了を待つ。
  • SPRESENSE:ビルドと書き込み を実行(下記③)。
  • プログラムがデバイスに書き込まれます。
    • 注意:ウィルス検疫によりプログラムが削除される場合があります。
    • 対応:上記の「flash_writerが見つからない」手順で復旧してください。
  • Nsh(nsh>)が表示されます。

スクリーンショット 2019-10-19 16.58.03.png

⑥表示されているターミナルでプログラムを実行する。

  • Nsh(nsh>)が表示されます。
  • aps_multicore と入力し Enterキー でプログラムを実行します。

スクリーンショット 2019-10-09 9.13.16.png

以上で、準備は完了となります。お疲れ様でした。

まとめ

以上の手順で、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ハブ

acd-amp-05-fig06@2x.png

macOS上でAPSのgitリポジトリを使う場合。

SPRESENSE SDKは、マルチプラットフォーム対応としてmacOS上でも開発することができます。macOS用の詳細なセットアップ手順は Spresense SDK スタートガイド (IDE 版) のmacOSの節をご参照ください。

macOSで上記の手順を実行する場合、いくつか操作が必要となります。下記に要点を抜粋します。

Q. Visual Studio Codeで開いたワークスペースのアプリケーションフォルダが開けない場合。

git cloneにより取得したワークスペースが、下記のようにエラー表示され開けない場合があります。

macbook_fig001.png

解決方法

こうした場合は「」表示のある_aps_sample¥aps00_sandboxを右クリックし「ワークスペースからフォルダーを削除」を選択し、まずワークスペース上からフォルダを見えない状態(実際のファイルは削除されません)にした上で、
macbook_fig001-01.png

再度、ワークスペースを右クリックし「Add Folder to Workspace...(ワークスペースにフォルダを追加)」をクリック。git clone コマンドで取得したspresenseフォルダ内にある _aps_sample/aps00_sandbox を選択してください。
macbook_fig002@2x.png

Q. カーネルやアプリケーションのビルド時にbuild.shに実行権限(Permission)がなく、エラー終了する場合。

チェックアウトし、ビルド準備が整った後に「SPRESENSE:カーネルのビルド」「SPRESENSE:アプリケーションのビルド」「SPRESENSE:ビルドと書き込み」を選択した際、build.shの実行権限がなく「Permission denied」となることがあります。
macbook_fig004.png

解決方法

こうした場合、git clone コマンドで取得したspresenseフォルダ内にある_aps_sample/aps00_sandbox へ移動し、さらにその奥にある.vscodeフォルダ(非表示ですが存在します)に移動。chmod 0777 *.sh を実行し、ビルドスクリプトに実行権限を付与してください。

macbook_fig005.png

  • コマンドプロンプトに、以下のコマンドを入力し、順次実行します。
    • $は入力不要です。
    • #はコメントです。
# spresenseをダウンロードしたフォルダへ移動
#(ホームディレクトリのspresenseへgit cloneした場合)
$ ~/
$ ./spresense/
# ビルドスクリプトのあるフォルダへ移動
$ cd ./_aps_sample/aps00_sandbox
$ cd ./.vscode
# ここにbuild.shなどがあります
$ ls -l
-rw-r--r--  1 shino  staff  5800 10 28 20:38 build.sh
-rw-r--r--  1 shino  staff   778 10 28 20:38 c_cpp_properties.json
-rw-r--r--  1 shino  staff   614 10 28 20:38 clean_flash.sh
-rw-r--r--  1 shino  staff   832 10 28 20:38 launch.json
-rw-r--r--  1 shino  staff    74 10 28 20:38 spresense_prj.json
-rw-r--r--  1 shino  staff  3519 10 28 20:38 tasks.json
# 実行権限を付与します
$ chmod 0777 *.sh
$ ls -l
-rwxrwxrwx  1 shino  staff  5800 10 28 20:38 build.sh
-rw-r--r--  1 shino  staff   778 10 28 20:38 c_cpp_properties.json
-rwxrwxrwx  1 shino  staff   614 10 28 20:38 clean_flash.sh
-rw-r--r--  1 shino  staff   832 10 28 20:38 launch.json
-rw-r--r--  1 shino  staff    74 10 28 20:38 spresense_prj.json
-rw-r--r--  1 shino  staff  3519 10 28 20:38 tasks.json

参考にしたWEBサイト

GitHubの基本的な操作方法について。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした