SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
1
SPRESENSE勉強会 #2
マルチコアを試してみよう!
@SonyDevJapan
ハッシュタグ:#spresense
2
Audio Products for Music Lovers
Provide New User Experience
• 192kHz/24bit High-Resolution audio
• 4 analog or 8 digital microphone inputs
• Class-D full digital amplifier
CPU ARM® Cortex®-M4F x 6
Clock Up to 156MHz
SRAM 1.5MB
Flash Memory 8MB
Digital I/O GPIO, SPI, I2C, UART, PWM
Analog Inputs 6ch (5.0V range)
Audio I/O 8ch Digital MICs or 4ch Analog MICs,
Stereo Speaker
GNSS GPS, GLONASS, BeiDou, Galileo
Others Camera IF, SD CARD, I2S
Low Power Multi Processor
• 28nm FD-SOI*3 technology
• 0.7V core voltage
• ASMP framework*4 for the multi processor
*3 Fully Depleted Silicon-On-Insulator to enable ultra-low-power features
*4 Software Framework to make communication between processors
Positioning Features
• Ultra low power consumption
• GPS, GLONASS, QZSS
Multiple GNSS systems supported
SPRESENSE™
3
SPRESENSE Processor; Inside block of CXD5602
Application Domain
アプリケーションを動作させるブロック
System and IOP Domain
システム管理・電源ドメイン管理ブロック
Sensor Domain
接続されたセンサーを管理するブロック
GNSS Domain
接続されたセンサーを管理するブロック
4
Application Domain
Tile
(128KB)
Tile
(128KB)
Tile
(128KB)
SRAM (1.5MB)
12枚のタイル
アプリケーションが動作するブロック
マルチコアでも、精緻な電源制御による省電力化を訴求!
■ アプリケーション向けに6つのCoretex-M4と1.5MBのメモリ
■ Camera I/Fと2DGエンジン
■ USB/SDIO/eMMCなどの外部I/F
■ 内部に専用DMAコントローラを持つAudioブロック
5
マルチレイヤーAHBとは?
マルチレイヤAHBは,複数のマスタ・モジュールと,複数のスレーブ・モジュールを相互結線する構造を持つ。
例えばこの図では,マスタ#1がスレーブ#2にアクセスするのと同時に,マスタ#2がスレーブ#1にアクセスで
きる。各モジュールとマルチレイヤAHBの間は,AHB-Lite規格のバス信号で結ばれている。
マスタのアクセス先のスレー
ブが異なっていれば並行して
同時アクセス可能 http://www.kumikomi.net/archives/2006/07/11arml.php?page=7
※ 「AHB Lite」 AHB仕様からアービトレーション関係の信号を省いたというバス規格
6
マルチコア構造の詳細
M4F M4F M4F M4F M4F M4F
Bus Matrix (Multi Layer AHB)
SRAM
128kB
Protec
tion
SRAM
128kB
Protec
tion
SRAM
128kB
Protec
tion
SRAM
128kBProtec
tion
SRAM
128kB
Protec
tion
SRAM
128kB
Protec
tion
SRAM
128kB
Protec
tion
SRAM
128kB
Protec
tion
SRAM
128kB
Protec
tion
SRAM
128kB
Protec
tion
SRAM
128kB
Protec
tion
SRAM
128kB
Protec
tion
Address Converter
Exclusive Load/Store
7
Main CPU
Main CPU
Main CPU
Sub CPU
ソフトウェアの構造(1)
Sub CPU
Sub CPU
Sub CPU
Sub CPU
Main CPU
NuttX
Supervisor
Sub CPU
Worker
Spresense SDKのマルチコア構造(V1.3.0時点)
Spresense Arduino Library のマルチコア構造(V1.3.0時点)
Main CPU
NuttX
Sketch
Multicore
MP Library
Sub CPU
NuttX
Sketch
5CPU
ASMP
Framework
Multicore
MP Library
NuttX
Sketch
Multicore
MP Library
8
ソフトウェアの構造(2)
Pros Cons
Spresense
SDK
V1.3.0
• フットプリントが小さい
• 統合された開発環境で管理しやすい
• 純粋な演算処理ではパフォーマンスを発
揮する
• ハードウェアへのアクセスライブラリが整備されて
いない
• CPU間通信がポーリングベースの処理構造
• printf や malloc などのシステムライブラリが
整備されていない
Spresense
Arduino
Library
V1.3.0
• ハードウェアへのアクセスが可能
• CPU間通信がイベントドリブンで無駄が
少ない
• malloc, printf の他、多くの Arduino
Library が活用できる
• HWのマルチ分散制御に向いている
• フットプリントが大きい
• コア毎にプログラムを管理しなければならず、開
発が煩雑になる
9
Sketch (22kB)
ソフトウェアの構造(3)
Sub CPU
NuttX
Sketch
NuttX (106kB)
128kB SRAM
128kB SRAM
大き目のスケッチの場合は、
タイル2枚(256kB)必要
空の setup()
loop() 含む
10
Arduino IDE を用いたマルチコアプログラミング入門
11
“Boot”サンプルプログラムのMain用スケッチを選択します
各CPU毎にスケッチが必
要なので、一つのサンプ
ルに複数のスケッチがあ
ります
12
Main用のスケッチを確認します
MP.begin(subid) により、引数 subid で指定
した SubCore を起動します。
ここでは、SubCore1 ~ SubCore4 の計 4 個
の SubCore を起動しています。
13
スケッチを焼き込む対象を “MainCore” に指定する
メニューを閉じても
どのコアが対象になって
いるか確認できます
14
Main用のスケッチを書き込みます
Main は必ず 768kB メモリ
を確保しています。
(内:NuttX 155kB)
SubCore のプログラムが書
き込まれていないので、エ
ラーが返ってきます。
15
“Boot”サンプルプログラムのSub用スケッチを選択します
Sub用のスケッチは
“Sub1”から”Sub4”まで、
あります。
Windowsの方は“管理者として実行”で実行すると別
プロセスでArduino IDE が起動できるので、対象と
するコアを変えても、他の(例えばMainコア用)
Arduino IDE の設定に影響出ません。
16
Sub用のスケッチを確認します
Sub用のスケッチは、単に
“MP.begin()” と引数なしで宣
言します。
ログ出力には、MPLog を
使いましょう
Serial.print() を複数のコア使うとリ
ソースにアクセスが競合するので、
文字列が壊れます。MPLog を使えば、
出力する文字列は保たれます。
17
スケッチを焼き込む対象を “SubCore” に指定する
メニューを閉じても
どのコアが対象になって
いるか確認できます
しつこいですが、、、
“管理者として実行”して、個々の
Arduino IDEを開いていれば、ここを
変えても他のウィンドウに影響を与
えません。
18
Subのスケッチを書き込みます
小さなスケッチなので
128kB に収まっています
全ての Sub のスケッチを書
き込むとエラーがなくなり
ます
19
MiltiCore MP Library のインタラクション
それぞれのコアに”MP Library”を呼び必要があります
◆ begin() : Specify SubCore number to be launched from MainCore
◆ end() : Specify the SubCore number to be terminated from MainCore
◆ Send() : Arbitrary message transmission
◆ Recv() : Arbitrary message reception
◆ RecvTimeout() : Set reception mode
MP.begin (SubCore number)
でSubCoreを起動します
MainCore は全てのSubCoreか
ら返答が来るまで待ちます
SubCore は、引数なしで、
MP.begin()を呼ぶだけです
Send()/Recv() でメッセージのやりとり
が可能です。
RecvTimeout () 設定で、メッセージの
待ち方を指定できます
・メッセージを永久にまつ
・タイムアウトする
・ポーリングする (non-blocking)
20
マルチサウンド・リアルタイム解析
SubCore1
FFT
SubCore2
Rendering
MainCore
Audio Processing
21
void setup() {
// Initailize Drawing library.
・
// Initialize communication libaray.
MP.begin();
}
void loop() {
・
// Wait for receiving data from SubCore2
ret = MP.Recv(&msgid, &fftData, 1);
// Draw Received Data
}
void setup() {
// Initialize communication library.
MP.begin();
}
void loop() {
・
// Wait for receiving data from MainCore
ret = MP.Recv(&msgid, &capture);
fft(); // Do FFT
// Send FFT result to SubCore2
MP.Send(FFT_NEOPIXEL, fftData, 2);
}
void setup() {
// Initializing Audio
・
・
/* Launch SubCore */
ret = MP.begin(1); // Launch SubCore1 program
ret = MP.begin(2); // Launch SubCore2 program
・
}
void loop() {
・
・
・
// Send decoded audio data to SubCore1
MP.Send(sndid, &param, 1);
・
・
}
マルチサウンド解析スケッチの概要
MainCore :
マイクのキャプチャ
SubCore1 :
FFTによるサウンド解析
SubCore2 :
ディスプレイ処理
22
void setup() {
// Initailize Drawing library.
・
// Initialize communication libaray.
MP.begin();
}
void loop() {
・
// Wait for receiving data from SubCore2
ret = MP.Recv(&msgid, &fftData, 1);
// Draw Received Data
}
void setup() {
// Initialize communication library.
MP.begin();
}
void loop() {
・
// Wait for receiving data from MainCore
ret = MP.Recv(&msgid, &capture);
fft(); // Do FFT
// Send FFT result to SubCore2
MP.Send(FFT_NEOPIXEL, fftData, 2);
}
void setup() {
// Initializing Audio
・
・
/* Launch SubCore */
ret = MP.begin(1); // Launch SubCore1 program
ret = MP.begin(2); // Launch SubCore2 program
・
}
void loop() {
・
・
・
// Send decoded audio data to SubCore1
MP.Send(sndid, &param, 1);
・
・
}
マルチサウンド解析スケッチの概要
MainCore :
マイクのキャプチャ
SubCore1 :
FFTによるサウンド解析
SubCore2 :
ディスプレイ処理
Spresense meetup#2 try_multicore_programming

Más contenido relacionado

La actualidad más candente

Trap Handling in Linux
Trap Handling in LinuxTrap Handling in Linux
Trap Handling in LinuxYongraeJo
 
Zephyr-Overview-20230124.pdf
Zephyr-Overview-20230124.pdfZephyr-Overview-20230124.pdf
Zephyr-Overview-20230124.pdfibramax
 
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方Hiroshi Tokumaru
 
LTO/オートローダー/仮想テープライブラリの基礎知識
LTO/オートローダー/仮想テープライブラリの基礎知識LTO/オートローダー/仮想テープライブラリの基礎知識
LTO/オートローダー/仮想テープライブラリの基礎知識MKT International Inc.
 
2021 10-12.linx device-tree
2021 10-12.linx device-tree2021 10-12.linx device-tree
2021 10-12.linx device-treeShin-ya Koga
 
fdコマンドを使おう
fdコマンドを使おうfdコマンドを使おう
fdコマンドを使おうHideaki Miyake
 
mpeg2ts1_es_pes_ps_ts_psi
mpeg2ts1_es_pes_ps_ts_psimpeg2ts1_es_pes_ps_ts_psi
mpeg2ts1_es_pes_ps_ts_psihexiay
 
Performance Comparison of Mutex, RWLock and Atomic types in Rust
Performance Comparison of Mutex, RWLock and  Atomic types in RustPerformance Comparison of Mutex, RWLock and  Atomic types in Rust
Performance Comparison of Mutex, RWLock and Atomic types in RustMitsunori Komatsu
 
Build Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.jsBuild Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.jsmganeko
 
Algorithm (MAC/GCM/GMAC)
Algorithm (MAC/GCM/GMAC)Algorithm (MAC/GCM/GMAC)
Algorithm (MAC/GCM/GMAC)Nam Yong Kim
 
Legacy code refactoring video rental system
Legacy code refactoring   video rental systemLegacy code refactoring   video rental system
Legacy code refactoring video rental systemJaehoon Oh
 
UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)Kris Mok
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device driversHoucheng Lin
 
コンテキストと仲良く
コンテキストと仲良くコンテキストと仲良く
コンテキストと仲良くkarupanerura
 
Making a spresense Wi-Fi add-on board
Making a spresense Wi-Fi add-on boardMaking a spresense Wi-Fi add-on board
Making a spresense Wi-Fi add-on boardMasawo Yamazaki
 
この手に超高精度GPSを!
この手に超高精度GPSを!この手に超高精度GPSを!
この手に超高精度GPSを!KLab Inc. / Tech
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法kazkiti
 
Return Oriented Programming
Return Oriented ProgrammingReturn Oriented Programming
Return Oriented Programmingsounakano
 

La actualidad más candente (20)

DRIVE PX 2
DRIVE PX 2DRIVE PX 2
DRIVE PX 2
 
Trap Handling in Linux
Trap Handling in LinuxTrap Handling in Linux
Trap Handling in Linux
 
Zephyr-Overview-20230124.pdf
Zephyr-Overview-20230124.pdfZephyr-Overview-20230124.pdf
Zephyr-Overview-20230124.pdf
 
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方
 
LTO/オートローダー/仮想テープライブラリの基礎知識
LTO/オートローダー/仮想テープライブラリの基礎知識LTO/オートローダー/仮想テープライブラリの基礎知識
LTO/オートローダー/仮想テープライブラリの基礎知識
 
2021 10-12.linx device-tree
2021 10-12.linx device-tree2021 10-12.linx device-tree
2021 10-12.linx device-tree
 
fdコマンドを使おう
fdコマンドを使おうfdコマンドを使おう
fdコマンドを使おう
 
mpeg2ts1_es_pes_ps_ts_psi
mpeg2ts1_es_pes_ps_ts_psimpeg2ts1_es_pes_ps_ts_psi
mpeg2ts1_es_pes_ps_ts_psi
 
Performance Comparison of Mutex, RWLock and Atomic types in Rust
Performance Comparison of Mutex, RWLock and  Atomic types in RustPerformance Comparison of Mutex, RWLock and  Atomic types in Rust
Performance Comparison of Mutex, RWLock and Atomic types in Rust
 
Build Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.jsBuild Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.js
 
Algorithm (MAC/GCM/GMAC)
Algorithm (MAC/GCM/GMAC)Algorithm (MAC/GCM/GMAC)
Algorithm (MAC/GCM/GMAC)
 
Legacy code refactoring video rental system
Legacy code refactoring   video rental systemLegacy code refactoring   video rental system
Legacy code refactoring video rental system
 
UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
コンテキストと仲良く
コンテキストと仲良くコンテキストと仲良く
コンテキストと仲良く
 
Making a spresense Wi-Fi add-on board
Making a spresense Wi-Fi add-on boardMaking a spresense Wi-Fi add-on board
Making a spresense Wi-Fi add-on board
 
この手に超高精度GPSを!
この手に超高精度GPSを!この手に超高精度GPSを!
この手に超高精度GPSを!
 
IPsecについて
IPsecについてIPsecについて
IPsecについて
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
 
Return Oriented Programming
Return Oriented ProgrammingReturn Oriented Programming
Return Oriented Programming
 

Similar a Spresense meetup#2 try_multicore_programming

Sony Spresense #Edge computing device with ultra low power
Sony Spresense #Edge computing device with ultra low powerSony Spresense #Edge computing device with ultra low power
Sony Spresense #Edge computing device with ultra low power義則 太田
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設Minoru Nakamura
 
Kernel bootstrap
Kernel bootstrapKernel bootstrap
Kernel bootstrapKai Sasaki
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設Minoru Nakamura
 
20120519 #qpstudy インターフェース入門
20120519 #qpstudy インターフェース入門20120519 #qpstudy インターフェース入門
20120519 #qpstudy インターフェース入門Hiyou Shinnonome
 
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?Takumi Kurosawa
 
SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」
SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」
SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」Makoto Hirahara
 
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015CODE BLUE
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputingNoboru Irieda
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議Shinra_Technologies
 
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用Ruo Ando
 
Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?Kei Mikage
 
Solnik secure enclaveprocessor-pacsec-final-jp
Solnik secure enclaveprocessor-pacsec-final-jpSolnik secure enclaveprocessor-pacsec-final-jp
Solnik secure enclaveprocessor-pacsec-final-jpPacSecJP
 
201104016 osc2011 kobe
201104016 osc2011 kobe201104016 osc2011 kobe
201104016 osc2011 kobeYamauchi isamu
 
Odyssey MAX 10 FPGA入門セミナーテキスト
Odyssey MAX 10 FPGA入門セミナーテキストOdyssey MAX 10 FPGA入門セミナーテキスト
Odyssey MAX 10 FPGA入門セミナーテキストTsuyoshi Horigome
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 

Similar a Spresense meetup#2 try_multicore_programming (20)

Sony Spresense #Edge computing device with ultra low power
Sony Spresense #Edge computing device with ultra low powerSony Spresense #Edge computing device with ultra low power
Sony Spresense #Edge computing device with ultra low power
 
00 maker
00 maker00 maker
00 maker
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
 
Kernel bootstrap
Kernel bootstrapKernel bootstrap
Kernel bootstrap
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
 
d-kami x86-2
d-kami x86-2d-kami x86-2
d-kami x86-2
 
La76930
La76930La76930
La76930
 
L A76930
L A76930L A76930
L A76930
 
20120519 #qpstudy インターフェース入門
20120519 #qpstudy インターフェース入門20120519 #qpstudy インターフェース入門
20120519 #qpstudy インターフェース入門
 
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
 
SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」
SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」
SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」
 
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
 
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
 
Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?
 
Solnik secure enclaveprocessor-pacsec-final-jp
Solnik secure enclaveprocessor-pacsec-final-jpSolnik secure enclaveprocessor-pacsec-final-jp
Solnik secure enclaveprocessor-pacsec-final-jp
 
201104016 osc2011 kobe
201104016 osc2011 kobe201104016 osc2011 kobe
201104016 osc2011 kobe
 
Odyssey MAX 10 FPGA入門セミナーテキスト
Odyssey MAX 10 FPGA入門セミナーテキストOdyssey MAX 10 FPGA入門セミナーテキスト
Odyssey MAX 10 FPGA入門セミナーテキスト
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 

Spresense meetup#2 try_multicore_programming