Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Zephyr(RTOS)でARMとRISC-Vのコア間通信をしてみた
Search
misoji engineer
March 26, 2026
Technology
200
0
Share
Zephyr(RTOS)でARMとRISC-Vのコア間通信をしてみた
ミソジ 2026/3/27
Zephyr Project meetup: Nagoya, Japan
#ZephyrRTOS
misoji engineer
March 26, 2026
More Decks by misoji engineer
See All by misoji engineer
M5Stack CoreS3とZephyr(RTOS)で Edge AIっぽいことしてみた
iotengineer22
0
450
Zephyr(RTOS)でOpenPLCを実装してみた
iotengineer22
0
300
Zephyr RTOS の発表をOpen Source Summit Japan 2025で行った件
iotengineer22
0
850
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
640
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
1.1k
Edge AI Performance on Zephyr Pico vs. Pico 2
iotengineer22
0
440
Zephyr(RTOS)にEdge AIを組み込んでみた話
iotengineer22
2
1.1k
Zephyr RTOSを使った開発コンペに参加した件
iotengineer22
1
1.3k
KiCadでPad on Viaの基板作ってみた
iotengineer22
0
1.6k
Other Decks in Technology
See All in Technology
SREの仕事は「壊さないこと」ではなくなった 〜自律化していくシステムに、責任と判断を与えるという価値〜 / 20260515 Naoki Shimada
shift_evolve
PRO
1
130
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.5k
Tachikawa.any 運営挨拶
daitasu
0
150
セキュリティ対策、何からはじめる? CloudNative環境の脅威モデリングと リスク評価実践入門 #cloudnativekaigi
varu3
5
800
Agent の「自由」と「安全」〜未来に向けて今できること〜
katayan
0
350
毎日の作業を Claude Code 経由にしたら、 ノウハウがコードになった
kossykinto
1
1.3k
AI時代に、 データアナリストがデータエンジニアに異動して
jackojacko_
0
740
みんなの考えた最強のデータ基盤アーキテクチャ'26前期〜前夜祭〜ルーキーズ_資料_遠藤な
endonanana
0
300
AI-Assisted Contributions and Maintainer Load - PyCon US 2026
pauloxnet
1
100
ブラウザの投機的読み込みと投機ルールAPIを理解し、Webサービスのパフォーマンスを最適化する
shuta13
3
300
拝啓、あの夏の僕へ〜あなたも知っているApp Runnerの世界〜
news_it_enj
0
240
鹿野さんに聞く!CSSの最新トレンド Ver.2026
tonkotsuboy_com
6
2.9k
Featured
See All Featured
Optimizing for Happiness
mojombo
378
71k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
500
Tell your own story through comics
letsgokoyo
1
920
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.6k
Practical Orchestrator
shlominoach
191
11k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.1k
Writing Fast Ruby
sferik
630
63k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
The Language of Interfaces
destraynor
162
26k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
290
Transcript
Zephyr(RTOS)でARMとRISC-Vの コア間通信をしてみた ミソジ 2026/3/27 Zephyr Project meetup: Nagoya, Japan #ZephyrRTOS
自己紹介 名前: ミソジ @misoji_engineer ブログ: エンジニアの電気屋さん(https://misoji-engineer.com/) ハードウェアのエンジニアで、趣味でブログとか書いてます
アジェンダ • このテーマを選んだ理由 • Zephyr(RTOS)のトレンド・強いところ • ARMとRISC-Vでコア間通信したら、面白いのでは? • 実装+テストしてみた Zephyr(RTOS)でコア間通信をしてみた話
このテーマを選んだ理由
Edge AI 去年はZephyr +Edge AIを多く実装してました ▪コンテスト、勉強会、カンファレンスでも良く使っていました (見栄え良い + トレンド性ある + 分かりやすい)
・XIAO nRF54L15 Senseでの音声認識 ・ラズパイPico2Wでのジェスチャー認識
とあるカンファレンスで... 「鉄板」+「良い質問」が来ました ・Edge AIが~ ・Zephyrが~ ・コンテストで~ 自分
とあるカンファレンスで... 「鉄板」+「良い質問」が来ました ・Edge AIが~ ・Zephyrが~ ・コンテストで~ それは Best Choise ですか?
自分
とあるカンファレンスで... 「鉄板」+「良い質問」が来ました ・Edge AIが~ ・Zephyrが~ ・コンテストで~ それは Best Choise ですか?
Zephyrに 実装する意味あるの? 意訳(誤訳): 自分
致命傷で済んだ。 俺も思っていた。マジでクリティカル。
Zephyrである必要は? 正直言うと...無い。 OS無しでもEdge AI処理できる https://www.zephyrproject.org/ もちろん軽量・省電力というEdge AIに有効なRTOSですが... →無理して使う必要は無い。 2025年8月~9月 Edge AI
Earth Guardians https://www.hackster.io/contests/earthguardians 去年参加したEdge AIのコンペでも 自分以外、ほぼArduino(OS無し)で実装
ただ、このままでは悔しいので... Zephyr + Edge AIが有効であるケースを、考えてみる。
Zephyr(RTOS)の トレンド・強いところ
Zephyrの強み SoC内のコア(OS)間の通信・仮想化もトレンドの一つ。 https://www.youtube.com/watch?v=QjiWMYTrMQU 車載系のプラットフォーム例 コア(OS)間の違いを越えた、I/O仮想化(VirtIO) SoC (CPU) ヘテロジニアス (異種混合)化 メイン_Aコア
(Linux) サブ_Mコア (RTOS) 機能安全_Mコア (RTOS) NPU (AI処理) 最近はSoC内の コアの種類・数が多い (使い切れない...) 2025年の OSSJの基調講演
Zephyrのコア間通信のサポート例 色々あるが、IPCが一番ハード寄りで自分好み 項目 IPC (Inter-Processor Communication) VirtIO (Virtual I/O) OpenAMP
(Open Asymmetric Multi-Processing) 定義 コア間通信の総称 I/O仮想化の標準規格 マルチコア連携のフレームワーク レイヤー 物理層・データリンク層(ハード寄り) トランスポート層(抽象化) アプリケーション・管理層(ソフト全体) 主な役割 データの通り道を確保する メモリの使い方の作法を共通化する コアの起動・停止やメッセージを管理する 具体例 共有RAM、メールボックス、割り込み vring(リングバッファ) RemoteProc, RPMsg 一番分かりやすい例えは、**「物流(ロジスティクス)」**です。 • IPC = 道路や橋(物理的なインフラ) • VirtIO = 交通ルールとトラックの規格(運び方の作法) • OpenAMP = 運送会社・物流システム全体(管理と運用) Geminiに聞いてみた IPCとEdgeAIを 絡めればメリットあるのでは...
IPC(Inter-Processor Communication) IPCで「軽量+高速」と「複雑+重い」タスクを分ける 複雑+重い タスク IPC ARMコア ・Edge AI ・ネットワーク
ARMコア ・高速モータ制御 ・高速ADC (サンプリング) 軽量+高速 タスク PWM ADC (Analog- Digital) AI処理 WIFI,LTE, Bluetooth 高速な信号のため、 他処理の影響を小さくしたいケース ・共有RAM ・メールボックス ・割り込み
ちょうど良いネタ(SoC)がある ▪Nordic Wireless SOC nRF54L15 Nordic nRF54L15は「ARM」と「RISC-V」の2つのコア https://www.nordicsemi.com/Products/nRF54L15 IPCの コア間通信
ARM_M33 RISC-V
ARMもRISC-Vも単独ではテスト済 まだ、IPCのコア間通信はテストしていなかった。 ▪去年nRF54L15のカスタムボードで RISC-VとARM_M33の簡単な(GPIO・UART・PWM)動作確認はしていた プロジェクトURL: https://www.hackster.io/iotengineer22/maker-s-nrf54l15-debug-board-1a6a88
Zephyrの良さが活きる。 RTOSとして、「軽量」かつ「多くのアーキテクチャ」に対応 複雑+重い タスク IPC ARMコア ・Edge AI ・ネットワーク RISC-Vコア
・高速モータ制御 ・高速ADC (サンプリング) 軽量+高速 タスク PWM ADC (Analog- Digital) AI処理 WIFI,LTE, Bluetooth ・共有RAM ・メールボックス ・割り込み
Zephyrの良さが活きる。 RTOSとして、「軽量」かつ「多くのアーキテクチャ」に対応 複雑+重い タスク IPC ARMコア ・Edge AI ・ネットワーク RISC-Vコア
・高速モータ制御 ・高速ADC (サンプリング) 軽量+高速 タスク PWM ADC (Analog- Digital) AI処理 WIFI,LTE, Bluetooth ・共有RAM ・メールボックス ・割り込み 各コアに Zephyrを 実装
Zephyrの良さが活きる。 RTOSとして、「軽量」かつ「多くのアーキテクチャ」に対応 複雑+重い タスク IPC ARMコア ・Edge AI ・ネットワーク RISC-Vコア
・高速モータ制御 ・高速ADC (サンプリング) 軽量+高速 タスク PWM ADC (Analog- Digital) AI処理 WIFI,LTE, Bluetooth ・共有RAM ・メールボックス ・割り込み 各コアに Zephyrを 実装 今回はコレ 今回はコレ
テスト実装してみる シンプルな内容でテスト実装してみた。 複雑+重い タスク IPC ARMコア ・Edge AI ・ネットワーク RISC-Vコア
・高速モータ制御 ・高速ADC (サンプリング) 軽量+高速 タスク PWM ジェスチャー AI ・共有RAM ・メールボックス ・割り込み ①ARM側でジェスチャーAI処理 ②IPCでデータ共有 *項目とスコア値のみ ③RISC-V側のPWMを変更 ① ② ③ ▪Nordic Wireless SOC nRF54L15
実装+テストしてみた
nRF54L15 + IPC Zephyrのサンプルを調整 + 上手いことEdge AI処理を結合 ①remoteフォルダにRISC-V側の main.c、Makelist、prj.conf ②通常通りARM側の main.c、Makelist、prj.conf
*AIモデルは従来通り Edge ImpulseのC++出力 (今回は説明省略) ③NordicのRISC-V用の スニペット(nordic-flpr)を使用
GitHubのリンク先 Zephyr公式サンプルの方を見てね。 https://github.com/zephyrproject-rtos/zephyr/tree/ main/samples/subsys/ipc/ipc_service/icmsg Zephyr公式のIPCのサンプル (雑な)自分のテストプログラム https://github.com/iotengineer22/zephyr-ipc
IPCデモ動画(nRF54L15-DK) https://youtu.be/ACCoVr_i27I
IPCでテスト成功 ログ見ても、IPCでコア間のデータ転送→OK 複雑+重い タスク IPC ARMコア ・Edge AI ・ネットワーク RISC-Vコア
・高速モータ制御 ・高速ADC (サンプリング) 軽量+高速 タスク PWM ジェスチャー AI ・共有RAM ・メールボックス ・割り込み ① ② ③ ①ARM側でジェスチャーAI処理 ②IPCでデータ共有 ③RISC-V側のPWMを変更 ① ② ③ ① ② ③
他のIPC応用例
実は知らずにIPC使っていたケース Bluetooth LE Audio対応のトランスミッター・スピーカー 去年BluetoothのAudio開発コンテスト プロジェクトURL: https://www.hackster.io/iotengineer22/adaptive-directional-ble-audio-speaker-2d892d SOC (nRF5340) *BLE…Bluetooth
Low energy
nRF5340(ARM_M33 のデュアル + IPC) 「ネットワーク処理コア」と「音声処理のコア」を分けていた 複雑+重い タスク IPC ARMコア ・Edge
AI ・ネットワーク ARMコア ・高速モータ制御 ・高速ADC (サンプリング) 軽量+高速 タスク 同期性 持った 音声処理 ・共有RAM ・メールボックス ・割り込み ①ARM側でBluetooth LE処理 ②IPCで音声データ共有 ③ARM側で同期性持った音声出力 ① ② ③ ▪Nordic Wireless SOC nRF5340 *ARM_M33が2個内蔵 Bluetooth Low Energy
Bluetooth LE Audio ▪今までのBluetoothには無い機能…Unicast/Broadcastができる →(同期合わせた)特定オーディオの一斉送信 高い同期精度が必要 →デュアルコアでの分散処理 + IPC
まとめ
・Zephyrがコア間通信を強くサポートされていたのを学べた (複数/異種のコアを持つSoCに対応) ・Zephyrが様々なアーキテクチャに対応 (ARM+RISC-Vのようなコア間でも通信できた) ・分散処理したり、厳密なRTOS制御したい場合に使えそう (EdgeAIや厳密なネットワーク同期制御など) まとめ Zephyr(RTOS)で コア間通信(IPC)を実装+遊べた!
IPC(Inter-Processor Communication) ▪Nordic Wireless SOC nRF54L15 Coordination between multiple CPU
cores or processors https://www.nordicsemi.com/Products/nRF54L15 IPC ARM_M33 RISC-V
IPC(Inter-Processor Communication) Coordination between multiple CPU cores or processors Complex
Task IPC ARM_M33 ・Edge AI ・Network RISC-V(FLPR) ・Motor-Control ・High-Speed ADC High-Speed Task PWM (Servo motor) ADC (Analog- Digital) AI Inference WIFI,LTE, Bluetooth
IPC(Inter-Processor Communication) Coordination between multiple CPU cores or processors ARM_M33
IPC Complex Task ・Edge AI ・Network High-Speed Task ・Motor-Control ・High-Speed ADC RISC-V(FLPR) PWM Gesture Sensing