このページについて
オンライン・ワークショップ 「マルチコアでハイパフォーマンスを実現するエッジコンピューティング入門」 に関して、お客様からいただいた質問および回答を掲載しています。
本ワークショップに関するご質問は、購入済かつ視聴期間中のお客様に限らせていただいております。
機器の操作方法について
開発
- 開発環境がPCにインストールできない(“bash install-tools.sh”以降に進めない)(回答済み:2020年7月15日)
開発環境をインストールするinstall-tools.shスクリプトは、開発に必要なファイルをインターネット上から収集する役割を果たします。そのため、ウィルス対策ソフト等により通信が阻害されると、インストールに失敗します。Windowsやウィルス対策ソフトのファイアウォール設定をご確認ください。 - 開発環境をインストールした際、bash install-tools.shにて「エラーが発生したため、パッケージを更新できませんでした」や「No such file or directory」のエラーメッセージが出力される(回答済み:2020年11月07日)
MSYS2がパッケージを管理するために持っているPGP鍵が古くなっている状態が疑われます。以下の動画を参考にPGP鍵のアップデートを実施した後、再度インストールをお試しください。 - カメラボードのケーブルが外れてしまった。(回答済み:2020年11月25日)
もしカメラボードからカメラケーブルが抜けた場合は、下記手順にて接続することができます。ただし、ケーブルが斜めに挿入されたり、挿入が不完全な状態で通電した場合、カメラボードとメインボードを接続した直後に電源が強制的に遮断します(通電を示す青色LEDが消灯状態になります)。詳細な手順は下記を参照ください。2.2.4. SpresenseメインボードとSpresenseカメラボードの接続方法と準備
2.2.5. Spresenseカメラボード側のフラットケーブルについて - Visual Studio(not-code)でも使えるのか。
2020年6月時点ではVisual Studio Codeのみとなっております。Visual Studio Codeは無償版となり、有償のプラグインも必要としないため、是非お試しください。 - SPRESENSEの開発環境をアンインストールしたい/開発環境を構築しなおしたい(回答済み:2020年10月15日)
開発環境のアンインストールや、開発環境をロールバックさせてゼロから構築する場合、ファイルの削除が必要となります。アンインストールにより消滅するファイルがあることをご理解いただきました上で「SPRESENSE SDKアンインストール手順」の動画内容を確認し、開発環境のアンインストールを実施してください。 - SPRESENSEのターミナルで「test_asmp」が存在しないエラーが発生する(回答済み:2020年9月24日)
「作成するASMPワーカーを使用するサンプルアプリケーションを作成する」を有効化していない、あるいは「サンプルアプリケーション名」の入力値が違う、といった可能性があります。別名でアプリケーションが生成されている可能性もありますので、ターミナルにhelpと入力しEnterキーを押すと組み込まれているコマンド一覧を参照してください。出力をヒントに自動生成されたプログラム名を推定できます。 - gitコマンドでソースコードを入手したが、カメラアプリケーションが含まれていない(回答済み:2020年7月31日)
本講座では2段階の操作で演習用コードを取得します。まず「git clone」にて仮ソースコードツリーを入手します(下図①)。次に「git checkout」と「git reset」にて演習用のカメラアプリケーションが含まれたソースコードへと更新します(下図②)。①の段階ではカメラアプリケーションはソースコードに含まれておりませんので、ご注意ください。詳細手順は受講者様へご案内します開発環境セットアップWEBサイトにて公開しております。
- Visual Studio Code上でウィンドウ名やメニュー名が教本と異なる(回答済み:2020年8月1日)
本講座ではVisual Studio CodeにSpresense VSCode IDE v1.1.0をインストールした状態での手順を紹介しております。v1.2.0など新しいSpresense VSCode IDEの場合、今日ほんと画面表示が異なり、操作方法が変化します。下記手順を実施し、Spresense VSCode IDE v1.1.0をインストールしてください。詳細手順は受講者様へご案内します開発環境セットアップWEBサイトにて公開しております。
- aps00_sandboxを右クリックしても「プロジェクトフォルダーへの追加」が見当たらない(回答済み:2020年10月12日)
(1) Windows開発用PC上でVisual Studioを起動してください
(2) Visual Studio Codeでプロジェクトを開いてください。
(3) 下記掲載画像のように拡張機能がインストールされているかご確認ください。
(3-1) C/C++
(3-2) Cortex-Debug
(3-3) Japanese Language Pack
(3-4) Spresense VSCode IDE
(4) Spresense VSCode IDEのバージョンが1.1.0になっていることを確認してください(特に設定しないと1.2.1になりがちです)
もし1.1.0でない場合は…
(4-1) 横の歯車をクリックし
(4-2)「別のバージョンをインストール」をクリック
(4-3) 1.1.0を選択してください
(4-4)トール後、Visual Studio Codeを終了
(4-5) Visual Studio Codeを再度起動し1.1.0になっていることを確認します
(5) 以上の手順で解決するかと思います。
- ビルド時「diff」や「make」コマンドが見つからない旨のエラーが表示される(回答済み:2020年8月10日)
Visual Studio Codeから呼び出されるビルド用シェルプロンプトがMSYS2でない場合にこうしたエラーが表示されます(Windowsの初期設定ではPower Shellまたはコマンドプロンプトが表示されることがあります)。Visual Studio Codeを起動しワークスペースを開いた状態で、F1キーを入力し、MSYS2のパス設定を行ってください(以下画像)。また、Visual Studio Codeの拡張機能ボタンをクリックし「Spresense VSCode SDK」のバージョンが1.1.0であるか確認し、1.1.0以外の場合、下記手順に従ってバージョンを変更してください。すべての手順が完了した後にVisual Studio Codeを再起動し、ビルドを再開してください。
- ビルド操作時に「arm-none-aebi-〜」コマンドが見つからない旨のエラーが表示される(回答済み:2020年8月10日)
ソースコードをSPRESENSEのArmアーキテクチャ用にビルドするクロスビルド用のツールをVisual Studio Codeから呼び出せていない状態です。まず、WindowsスタートメニューからMSYS2を開き、下記の設定を行った後に、Visual Studio Codeを再起動してMSYS2から「arm-none-aebi-〜」を参照できることを確認してください。すべての手順が完了した後にVisual Studio Codeを再起動し、ビルドを再開してください。
- ビルドエラーが発生|エラーメッセージに「mp〜」が見つからない旨のメッセージが表示される(回答済み:2020年9月30日)
何らかの操作により、aps00_sandboxフォルダに含まれている「sdk.config」というビルド全体を管理するファイルが初期化され、マルチコア機能(mp〜)全体が無効化され、ビルド時にオブジェクトを発見できない状況と思われます。この場合は、sdkコンフィグを復旧させる必要があります。エラーメッセージの出方により対処が異なりますので、個別にお問い合わせください。
デバイス/設計技術について
アプリケーション
- サンプルアプリにはどのようなものがあるのか。
サンプルアプリケーションには、加速度や大気圧といったメジャーなものから、ハイレゾオーディオやイヤホンジャックを使って特定パターンの音波を再生するものなど、様々なものが含まれています。詳細は、こちらのリストをご参照ください。 - SPRESENSEでアプリケーション開発をしたい場合、どこから着手すれば良いか。
まずサンプルアプリケーションをいくつか実行してみましょう。その中で、興味ないもの、ビジネスにの要件沿わないものはサンプルアプリケーションをそのまま活用し、貴社の技術がもっともはまる場所、を知ることから始めると良いかな、と私は思います。 - カメラボード接続後、電源が投入できなくなった。(回答済み:2020年7月13日)
メインボード-カメラボード間を接続するフレキシブルケーブルにて接触不良が発生している可能性があります。SPRESENSEでは信号線がショートすると保護回路が働き、電源が入らない(SPRESENSEメインボード上のパワーLEDが点灯しない)状態となります。カメラ接続後に電源が投入できなくなった場合、①フレキシブルケーブルがメインボードにしっかり直角に深くまで刺さっているコト、②フレキシブルケーブルがカメラボードにしっかり直角に深くまで刺さっていること、それぞれをご確認ください。
デバッグ
- デバッグモードで見えるペリフェラルのレジスタを教えて欲しい。(回答済み:2020年10月03日)
SPRESENSEの内部ブロックに明記されている多くのデバイスの状態を観測可能です。 - LPC-LINK2によるデバッグ時に「Failed to launch OpenOCD GDB Server: Timeout.」「Error: CMSIS-DAP command CMD_INFO failed.」が表示されデバッグできない。
StackOverFlow掲示板上でソニー様が回答されている内容を紹介いたします。またOSのクリーンインストールにより回復することもあります。ただし、LPC-LINK2の利用については、弊社回答範囲外となりますため、メーカーや接続対象部材のメーカーへお問い合わせください。
▼spresense IDEの設定&デバッガについて|stackerflow
▼Eclipse IDE(LPC-Link2) デバッグの実行でエラーになる|stack overflow - サブコアのデバッグ方法を知りたい。
可能となりました。ソニー様のSPRESENSE公式サイトをご参照ください。なお、本機能はソースコードのバージョンv1.5.0以降が必要となります。 - サブコアとメインコアを同時にデバッグできるか。(回答済み:2020年7月13日)
本機能はソースコードのバージョンv1.5.0以降にて可能となりました。デバッグに関連するファイルや設定方法、実行方法については「【マルチコア・デバッグ超入門】サブコアとメインコアをシームレスにデバッグ 」にて動画を交えながらわかりやすく紹介しております。さらなる詳細は、ソニー様のSPRESENSE公式サイトをご参照ください。
技術解説
- IIRフィルタが搭載されているメリットは何か?敷居値判定では駄目なのか?
IIRフィルタの強みは「特定の波の場合」という判断を実装できることです。計測中の環境状態の変化により、出力が常に一定値以上になった場合でも、その信号の中からパターンを選び出し、CPUを的確に起こすことができます。例えば、波の無い川が緩やかに増水した場合と、波は未だ浅いが大きなうねりを立て始めた危険な川を分析し、特定できる、というイメージです。 - CPU/GPU/マルチコアを最適に選定する方法を知りたい。
自身が設計しているアプリケーションやサービス、通信、センシングの間の待ち時間など、様々なファクターを集めて、システムにボトルネックが生まれないよう、各部品の処理性能を見積もり、ピックアップすることが望ましいです。例えば、積極的なマルチコア化は非常に魅力的ですが、マルチコアかにより他のボトルネックが見えてきますので、こうした状況をどのように解決すべきか、という視点で製品を絞ると、無駄のない部品選定をすることができます。 - サブコアやGPUを効率的に使えているのか、使用率を可視化するにはどうしたら良いか。
明確な方法とは言えませんが。2つございます。1つ目は実行中のプログラムのプログラムカウンタを取得して、どの関数がどの程度機能しているかを推定する方法です。2つ目は、アイドルタスクやWFI/WFE(割り込み起床、イベント起床)の関数で停止している状態を解析する方法です。前者の方が実装しやすく、馴染みが深いかと思います。 - SPRESENSEではCPUバスの衝突がどのようなシーンで発生するのか。
マルチコアとペリフェラルの出入口はAXIバス1系統に限られるため、複数のCPUから同じデバイスに対して操作した場合はバスの衝突が発生します。古典的な例では、ハードウェアアドレスとレジスタ仕様が分かっているため、OS抜きにユーザープログラムからペリフェラルを操作するという技術もありますが、逆にこの操作がボトルネックを発生させる可能があり、推奨できません。音声解析や画像処理など大きなデーターを扱う場合は、CPU起因でなくDMAコントローラを使って、データを移動させると少ない衝突、かつ128KB境界を意識したデータ転送が可能となります。 - SPRESENSEのハードウェアのブロック図 GNSS Domain に書かれているDSP(Cortex-M4)は自分でプログラムするものなのか。
マルチコアとペリフェラルの出入口はAXIバス1系統に限られるため、複数のCPUから同じデバイスに対して操作した場合はバスの衝突が発生します。古典的な例では、ハードウェアアドレスとレジスタ仕様が分かっているため、OS抜きにユーザープログラムからペリフェラルを操作するという技術もありますが、逆にこの操作がボトルネックを発生させる可能があり、推奨できません。音声解析や画像処理など大きなデーターを扱う場合は、CPU起因でなくDMAコントローラを使って、データを移動させると少ない衝突、かつ128KB境界を意識したデータ転送が可能となります。 - SCUによるセンサーの監視と、すべてのCPU(Application Domain)を眠らせる順序、方法について概略を教えてほしい。
こちらのサイトをご覧ください。 - SIMD演算のメリット、実装方法を詳しく知りたい。
マルチコア上での高速化が限界を迎えるとSIMD演算なの手法が活気付きます。例えば128要素の配列の総和を求める場合、一つずつ足すよりも、全員が加算を開始したほうが最適化に機能するためです。 - Corte-M4のFPUを使うためには、何か特別な操作が必要か。
特定の操作は不要です。SPRESENSE SDKと使うだけで、最適化が適用されているようです。 - GPUの演算器はどのようなプログラムを書けば使えるのか。
今後GPUに関する書籍をいくつか読みまして、ご紹介できればと考えております。 - GPUを使う場合、NVIDIA以外の選択肢は何があるのか。
組み込み業界でいくとNVIDIAやArm Mali、Xilinxが世界中でプラットフォームに活用されています。ご指摘の通り、学習フェーズはNVIDIAが突出しており、クラウドサービスGPUaaSといったサービスも見かけるようになりました。推論フェーズに関しては、各社かなりの作り込みが行われております。是非、各社の情報をご参照ください。 - Arm Cortex-M33の拡張命令機能が、Cortex-M4には無い。開発への影響は?
拡張命令の実装は非常に難しいことから、既にあるCortex-M4の製造ラインへの投入は難しい背景があると思います。一方、拡張命令が適切な効果を発揮するには、命令単体でなく、アプリケーションとして性能を評価する必要があるため、我々も今度の動向に期待しています。
機材について
- はんだ付けをしないでSPRESENSEをデバッグする方法が知りたい。
現在検討中です。いましばらくお待ちください。 - 開発を始めるにあたって、SPRESENSE本体以外に準備する必要があるものを知りたい。
ワークショップのサイトに掲載いたしました。お待たせいたしました。
購入について
- LPC-LINK2はどこで入手できるか。
秋月電子通商など、様々な箇所で入手可能です。ただし、LPC-LINK2の利用については、弊社回答範囲外となりますため、メーカーや接続対象部材のメーカーへお問い合わせください。 - 今回の機材を一式揃えるにはどうすれば良いか。
ワークショップのWEBサイトに購入先リンクを記載しております。ご参照ください。 - 部品実装済みのAPS学習ボードだけを購入できますか?
非売品となりますので、教材とのセット販売に限らせていただいております。市販のAPS学習ボードは、スイッチサイエンス様よりご購入いただけます。必要部品セットもご用意されております。APS学習ボード取り扱い説明書
https://www.aps-web.jp/academy/amp/8467/
APS学習ボード本体(スイッチサイエンス様サイト)
https://www.switch-science.com/catalog/5874/
APS学習ボード用 実装部品セット(スイッチサイエンス様サイト)
https://www.switch-science.com/catalog/5873/
ワークショップについて
- 今回のワークショップを自社のトレーニングプログラムとして受講するにはどうすれば良いか。
オンサイト・トレーニングに関しましては、お問い合わせフォームよりご相談ください。 - PayPal以外の支払い方法はありますか。
発注時にお届け住所を確認できるPayPalでの支払いを推奨しておりますが、貴社が銀行振り込みをご希望される場合は、お問い合わせフォームよりご相談ください。
こんな投稿もいかがでしょう
もっと見る APS
組み込みエンジニア必見!セキュリティマイコン性能比較調査
半導体大手10社が、どのようなコア(CPU)のマイコンを供給していて、どのようなセキュリティ機能を搭載して、どのようなソリューションを提供しているかを調査しました。本調査によって、マイコンを搭載した製品を開発する際に、どのメーカーの、どのようなマイコンを使えば、各システムに合ったセキュリティの高いシステムが構築できるかを簡単に知ることができます。
【オンライン・ワークショップ】IoTの基礎を学ぶ。Arm ® Cortex ® -M4コア(FPU機能搭載)を使ったアナログ微小信号のデジタル処理入門
2020年2月の開催時に満席となった人気の本講座を、オンライン・ハンズオンワークショップ形式とし、勤務先はもちろんご自宅など場所を問わず、いつでも好きな時間に学べるようになりました。短時間ながらマルチコア・プログラミングの基礎をしっかりと習得いただける本講座を、この機会に是非ご利用ください。
【オンライン・ワークショップ】マルチコアでハイパフォーマンスを実現するエッジコンピューティング入門
2019年11月、2020年2月の開催時にいずれも満席となった人気の本講座を、オンライン・ハンズオンワークショップ形式とし、勤務先はもちろんご自宅など場所を問わず、いつでも好きな時間に学べるようになりました。短時間ながらマルチコア・プログラミングの基礎をしっかりと習得いただける本講座を、この機会に是非ご利用ください。