1. island_peak

    Posted

    island_peak
Changes in title
+【APS-WEB】SPRESENSEを使った「初心者講座マルチコア編」環境設定手順のまとめ
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,327 @@
+![P7030070.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/f5ac727d-6f88-3ef9-5944-6d8d2352abdd.png)
+
+現在、弊社ではオンラインで無償の教育教材を初心者講座として配布しています。ここでは、初心者講座に掲載しているソースコードを実際に実行するための、環境構築手順をまとめます。多くのみなさまが「自分のPCを使って、自宅ですぐに開発に着手」できるよう **Windows 10(64bit) 日本語版 [Home/Pro]をはじめとして**、 手順を準備しております( **初心者講座に依存する操作方法は、初心者講座の各WEBページをご参照ください** )。是非ご活用ください。
+
+# 本資料の対象となる初心者講座
+
+- 初心者講座「マルチコア編」
+ - https://www.aps-web.jp/academy/amp/
+
+# セットアップ手順
+
+### 基本的なセットアップ手順は以下の手順を基にしています。
+[Spresense SDK スタートガイド (IDE 版)](https://developer.sony.com/develop/spresense/docs/sdk_set_up_ide_ja.html)
+
+<font color=red>※SPRESENSE™ Arduino IDE、TeraTermを利用中の方は、事前にウィンドウを閉じてください</font>
+
+## Windows PCをご準備ください
+- 今回は **Windows 10 64bit環境** を利用します。
+ - SPRESENSEの開発はmacOSやLinux(Ubuntu)でも開発可能です。
+
+## SPRESENSEとPCを接続するためのUSBドライバ(USB-UARTドライバ)をインストールします。
+
+- 以下よりUSB-UARTドライバをダウンロードします(SPRESENSE対応版です)。
+ - [CP210x USB to serial driver (v10.1.3) for Windows 10](https://github.com/sonydevworld/spresense-hw-design-files/raw/master/misc/usb-to-uart-bridge-vcp-drivers/CP210x_Universal_Windows_Driver-v10.1.3.zip)
+- インストールします。
+ - ダウンロードしたZIPファイルをダブルクリックします。
+ - 解凍ウィザードが表示されるので、任意の場所へ解凍します。
+ - 解凍先のフォルダで `CP210xVCPInstaller_x64.exe` を実行します
+
+## 開発に必要なツールをインストールします。
+
+### まず、MSYS2 をダウンロードします。
+
+- [MSYS2](https://www.msys2.org/)から `msys2-x86_64-20190524.exe` をダウンロードします。
+- ダウンロードしたファイルをインストールします(特に設定を変更する必要はありません)
+
+### 続いて、開発環境をインストールします。
+
+- スタートメニューから「MSYS2 64bit」-「MSYS2 MSYS」を実行します。
+- コマンドプロンプトに、以下のコマンドを入力し、順次実行します。
+ - インストールにはネットワークが必要です。
+ - `$`は入力不要です。
+ - `#`はコメントです。
+
+```bash
+# ホームディレクトリへ移動します
+$ 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
+```
+<img width="891" alt="スクリーンショット 2019-10-19 16.36.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/837956f1-aa68-4b07-8358-6d5bc4a041b4.png">
+
+## Visual Studio Code(統合開発環境:IDE)をインストールします。
+
+- [Visual Studio Code](https://code.visualstudio.com/)のインストーラをダウンロードします。
+ - インストールにはネットワークが必要です。
+
+### Spressenseを開発するための拡張機能をインストールします。
+
+#### 拡張機能の追加画面を開きます。
+
+- Visual Studio Codeを起動します。
+ - 拡張機能を管理するタブ(下画像の赤枠)を選択し、拡張機能検索ボックス(下画像の緑枠)をクリックします。
+ - 拡張機能のインストールにはネットワークが必要です。
+
+![vs001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/0fc8e784-111e-bd7a-309f-7056c3e08e4b.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/955507d8-0429-cb66-cd75-9f8a2e4fd108.png)
+
+
+#### MSYS2 と Visual Studio Code の連携を設定します
+
+- Visual Studio Code画面上で **F1キー** を入力します。
+ - コマンドパレット(下図オレンジ枠)が表示されます。
+ - `MSYS2`と入力し「Spresense:MSYS2パスの設定(Windowsのみ)」を選択します。
+ - MSYS2がインストールされているフォルダを指定します。
+ - MSYS2はデフォルトで `C:¥msys64` にインストールされます。
+
+![vs003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/8e046a39-a7f8-07d7-b89b-a284e338f5b8.png)
+
+## 初心者講座マルチコア編にて使うソースコードを入手します。
+
+### 既にソースコードを入手している場合
+
+- 続いて **初心者講座マルチコア編にて使うソースコード** を指定します。
+ - ダウンロードしてあるソースコードを最新の状態にします。
+ -
+```bash
+# ホームディレクトリへ移動します
+$ cd ~/
+# spresenseのソースコードがダウンロードされていることを確認します
+$ ls spresense
+$ cd ./spresense
+# APS-WEBが配布しているソースの最新版を取得します。
+$ git pull
+```
+
+### はじめてソースコードを入手する場合
+
+- 続いて **初心者講座マルチコア編にて使うソースコード** を指定します。
+ - インストールにはネットワークが必要です。
+ - 実行に必要なサンプルソースコードが含まれています。
+ - `$`は入力不要です。
+ - `#`はコメントです。
+
+```bash
+# ホームディレクトリへ移動します
+$ cd ~/
+# APS-WEBが配布しているソース一式を入手します。
+$ git clone --recursive https://github.com/inscape-sa/spresense-aps-v1.git spresense
+# spresenseのソースコードがダウンロードされていることを確認します
+$ ls spresense
+```
+
+ソースコードの入手に成功すると、下記のようにspresenseフォルダが作成されます。
+
+![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3332393736332f64633064396132622d303562302d346263352d376562302d3036346632633033633230352e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/a7c61636-1484-55f9-8549-6ce1b05c1843.png)
+
+### ソースコードを掲載回のバージョンに切り替える
+
+<font color="red">**本箇所操作の下記コマンドは、初心者講座の本文にあわせてください。**</font>
+
+- <font color="red">git tag</font>
+- <font color="red">git checkout</font>
+- <font color="red">git branch</font>
+- <font color="red">git reset</font>
+
+```bash
+# spresenseのフォルダに移動します
+$ cd spresense
+# spresensenの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](https://community.nxp.com/docs/DOC-331683) を入手します。
+ - サイト下部付近にダウンロード用のリンクがあります。
+- 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ピッチのジャンパピン](http://akizukidenshi.com/catalog/g/gP-03687/)を別途入手ください。
+
+![P8241569.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/decc8990-378f-a421-5465-1353db132285.png)
+
+![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3332393736332f39626631373234662d623965392d613764662d646564642d3338383464393234393830322e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/eac3aeab-a9b8-4c3b-38a2-6d1fa51d8392.png)
+
+![vs014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/1b7bcec2-969f-6046-f6c7-5d02450b5311.png)
+
+# 動作確認中に発生しやすいトラブルと対応
+
+## flash_writerが見つからない(No such file or directory)
+
+Windows上でSpresense SDK(Visual Studio Code)を実行した際 **一部の条件において「Spresense SDKを構成する一部のファイルがウィルス(脅威)と判定」され、Windowsによって自動的に検疫(削除)され「ファイルが見つからない」旨のエラーが発生する** ことがあります
+
+![acd-amp-04-fig05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/2df62eaf-4fc1-616a-cf04-46686208da4c.png)
+
+この場合、回復させるにはWindowsのコントロールパネルにある「ウィルスと驚異の防止」設定から検疫されたファイルを確認し、復元ボタンをクリックしてください。
+
+![acd-amp-04-fig03@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/2f041297-a217-3603-23cf-8f96b37f9a48.png)
+
+
+### 参考情報
+[Windows Defender AV で検疫済みのファイルを復元する](https://docs.microsoft.com/ja-jp/windows/security/threat-protection/windows-defender-antivirus/restore-quarantined-files-windows-defender-antivirus)
+
+# 実際に環境が正常に動作するか確認する
+
+## 開発ターゲットを組み上げる(SPRESENSE™デバイスの準備)
+
+以下の機材を組み上げてください
+
+1. SPRESENSE™ Main Board
+2. SPRESENSE™ Extension Board
+
+<img width="216" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/9143ece3-2448-732d-7f36-392a857c36e6.png">
+
+## PCとmicro-USBケーブルで接続してください。
+
+SPRESENSEが認識され「デバイスマネージャ」にCOMポートとして表示されます。
+
+<img width="924" alt="スクリーンショット 2019-10-09 9.11.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/50a9a78c-8789-0b18-fa2c-bc0873bbf699.png">
+
+## Visual Studio Code開発環境でプロジェクトをビルドします
+
+- プロジェクトを開いて、プログラムをビルドします(下記手順)。
+
+### ①ワークスペースを開く
+
+- ワークスペースは "C:¥msys64/home/(ユーザー名)/spresense/"に格納されています(下記①)。
+- ワークスペースが開かれると、画面左にファイル一覧が表示されます(下記③)。
+
+<img width="1015" alt="スクリーンショット 2019-10-09 9.12.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/5a36d461-694c-69d7-1054-907302c3eb3b.png">
+
+### ②SPRESENSEを接続したシリアルポートを選択する
+<img width="1050" alt="スクリーンショット 2019-10-09 9.12.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/34aff8db-3c63-d9cc-f06f-831cd70011f4.png">
+
+### ③ブートローダを書き込む
+
+- F1キーを入力し、Spresense bootloader と入力
+ - Spresense:ブートローダの書き込みを実行します。
+ - Webからのダウンロードを求められますので、同意しダウンロードしてください
+ - 初回のみインストールにはネットワークが必要です。
+ ![スクリーンショット 2019-10-19 16.54.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/48dba9fc-c42a-f94b-a20b-bc5572224f11.png)
+
+ - 画面右下にダウンロードしたファイルを求めるメッセージが出ますので、ZIPファイルを選択してください。
+ - Spresenseにブートローダのプログラムが数種類書き込まれます
+ - **注意:ウィルス検疫によりプログラムが削除される場合があります**
+ - **対応:上記の「flash_writerが見つからない」手順で復旧してください**
+
+念の為、ウィルス検疫の影響を受けていないか、再実行しておきましょう。
+
+ - Spresense:ブートローダの書き込みを **再度** 実行します。
+
+
+### ④カーネル(OS)、アプリケーションをビルドし、デバイスへ書き込む
+
+- 00_sandboxフォルダの中のファイルどれでも良いので右クリック。
+- **Spresense:カーネルのビルド** を実行(下記①)。
+- ビルド完了を待つ。
+- **Spresense:アプリケーションのビルド** を実行(下記②)。
+- ビルド完了を待つ。
+- **Spresense:ビルドと書き込み** を実行(下記③)。
+- プログラムがデバイスに書き込まれます。
+ - **注意:ウィルス検疫によりプログラムが削除される場合があります**
+ - **対応:上記の「flash_writerが見つからない」手順で復旧してください**
+- Nsh(nsh>)が表示されます。
+
+![スクリーンショット 2019-10-19 16.58.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/28d192fe-dc23-ca79-e298-6fc8f47abe61.png)
+
+
+### ⑤表示されているターミナルでプログラムを実行する
+
+- Nsh(nsh>)が表示されます。
+- **aps_multicore** と入力し **Enterキー** でプログラムを実行します。
+
+<img width="1004" alt="スクリーンショット 2019-10-09 9.13.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/5d88b123-404a-baaa-627f-d1b94da68af5.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329763/4f156711-4855-a10d-5c98-d3ca60cd297f.png)
+
+### GitHubの基本的な操作方法
+
+- 参考手順:GitHubの操作
+ - [GitHubでForkしてPullRequestを送るのはこんなに簡単](https://qiita.com/YumaInaura/items/acff806290c8953d3185)
+ - [GitHubでフォーク元の差分を取り込む](https://qiita.com/icb54615/items/3544c419a3f6fc3534fb)
+
+
+