SlideShare a Scribd company logo
M5StackをRustで動かすまで
インターフェース オフ会 @ CQ出版
2019/06/17
Kenta IDA (@ciniml)
自己紹介
•井田 健太 (@ciniml)
•仕事:FPGAの論理設計
• 最近はなぜかGoのコードを書いている…
•Rustレベルは入門
• 実践Rust入門読んでます。
2019/6/17M5StackをRustで動かすまで
M5Stackとは
•ESP32を使ったプロトタイピング・モジュール
• Wi-Fi, Bluetooth 4.2
• グラフィック液晶
• ボタン
• バッテリー
• そこそこしっかりした筐体 (重要)
2019/6/17M5StackをRustで動かすまで
ESP32とは
•Espressifが製造・販売しているマイコン
• Wi-Fi, Bluetooth 4.2
• Xtensa LX6 dual core @240[MHz] max
• →ARMではない
2019/6/17M5StackをRustで動かすまで
RustのXtensa対応
•Rust(rustc)の対応にはLLVMの対応が必要
• rustcはLLVMを使ってコード生成している
•LLVMのXtensa対応
• 2019年2月13日に対応
• https://esp32.com/viewtopic.php?t=9226
• GitHubに対応版がある (llvm-xtensa)
• https://github.com/espressif/llvm-xtensa
• LLVMのmainstreamに入ったわけではない
2019/6/17M5StackをRustで動かすまで
rustcのXtensa対応
•LLVMのmainstreamが対応してないので当然未対応
•対応版を作るしかない
•つくれるのか?
• llvm-xtensa はLLVM6.0ベース
• 最新のrustcはLLVM9.0
• LLVMのプロジェクト構成、9.0から完全に別物…
• llvmとclangとかに分かれてたのが、llvm-projectにまとまった感じ?
• →最新は諦めて、LLVM6.0のころのrustcを使う
2019/6/17M5StackをRustで動かすまで
Xtensa対応に必要なこと
• rustcのターゲットを追加する
• Xtensaバックエンドのリンクと初期化処理を追加
• XtensaのABI情報を追加
• ターゲット定義の追加
• 細かい変更箇所はGitHubに書いておきました
• https://github.com/ciniml/rust
• ということをやっていたら、既に他の人がやっていた
• https://github.com/MabezDev/xtensa-rust-quickstart
• 私の方のrustcは1.28.0、向こうは1.34.0 負けた…
• 新しい物が動くのはありがたいので1.34.0の方を使うことにする
2019/6/17M5StackをRustで動かすまで
ESP32でRustを使うときの方針
•ベアメタル
• ESP-IDF(ESP32公式フレームワーク)を使用しない
• スタートアップコードから直接Rustのコードを実行
• →ESP-IDFは一部バイナリのみ提供部分あり
• e.g. Wi-Fi, Bluetoothなど無線部分、ペリフェラルのドライバなど
• アプリケーションを作るのにはあまり現実的では無い
•→ESP-IDFからRustのメインルーチンを呼び出す方針にす
る 2019/6/17M5StackをRustで動かすまで
ESP-IDFとRustのコードの結合
•extern “C”なrust_main関数を定義
• ESP-IDFのmain関数から呼び出す
•Rust側の全コードをESP-IDFの1コンポーネントとする
•staticlibとしてビルドしてIDFからライブラリとして参照
•あとはIDF単体のアプリと同じ
2019/6/17M5StackをRustで動かすまで
ESP32上でのRustの環境
•とりあえずno_std
• std動くようになるといいですね
•現状はlibcoreでがんばる
• ESP-IDF側のlibcのmallocが使えるのでヒープは使える
• malloc/freeを呼び出すGlobalAlloc実装を作るだけ
2019/6/17M5StackをRustで動かすまで
ESP-IDFの関数呼び出し
•bindgenを使ってCFFIの定義を生成
• ヘッダー入力するとRustの定義を生成してくれるツール
•CFFI定義だけなので、UnsafeとSafeの橋渡しが必要
•SPI Masterのラッパーを書いたがそこそこ大変
• ESP-IDFのSPI Masterドライバの呼び出しをラップ
• ベアメタルで書くよりはマシなはず
2019/6/17M5StackをRustで動かすまで
RustでFreeRTOSの機能を使う
•freertos-rs クレート
• https://github.com/hashmismatch/freertos.rs
•FreeRTOSのAPI呼び出しはCで書いたshim経由
• プラットフォームごとにshimを書けば良い
•但しESP32のFreeRTOS固有の機能(デュアルコア)未対応
• xTaskCreatePinnedToCore (コア指定してタスク作成)が呼べ
ない
• →freertos-rsを修正してコア指定できるように対応 2019/6/17M5StackをRustで動かすまで
Rustで周辺回路を扱う
•embedded-hal クレート
• 組み込み向けでよく使われる周辺回路の抽象化
• ADC, I2C, SPI, GPIOなどのトレイトが定義されている
•embedded-hal経由で外部ICを扱うドライバ
• awesome embedded rustにまとめられている
• https://github.com/rust-embedded/awesome-
embedded-rust
2019/6/17M5StackをRustで動かすまで
RustでM5Stackの液晶を扱う
•M5Stackの液晶はILI9341
• Arduino向け実装が一番よく出来ている
•Rust用にも ili9341 クレートがある
• ただし、作りかけであまり機能は多くない
•Ili9341クレートは初期化処理と指定座標への点描画のみ
• 実際の描画処理は embedded-graphics クレートが担当
2019/6/17M5StackをRustで動かすまで
embedded-graphicsクレート
•図形描画や画像データの読み込みと描画制御を担当
• 線分や楕円の描画アルゴリズムなど
• ビットマップ・フォントの描画
•実際の描画は Drawable トレイトを実装した型が担当
•PC上のシミュレータもあってよく出来ている
•https://docs.rs/embedded-
graphics/0.5.0/embedded_graphics/
2019/6/17M5StackをRustで動かすまで
現在の進捗
• M5Stackの液晶表示に成功
• ただしすごく遅いので要改良
• SPIの送信処理が非効率
• FreeRTOSのタスク間通信
• 乱数生成タスクで描画座標生成
• 描画タスクで描画処理
• Wi-Fiとかはまだ
• AP接続までは確認できている
2019/6/17M5StackをRustで動かすまで
Rust入門した感想
• unsafeばかり触ってるのでまだ分からない
• まだあまりborrow checkerに怒られてない
• SPIドライバ作るときにちょっと怒られたけど…
• ライフタイムが怪しいコードを書くとコンパイル時に死ぬのが良い
• C++だとそのまま通ってSEGVとかになりがち
• Result<T,E>の楽な扱い方がよく分かってない
• 今朝ようやくtry!マクロの存在に気付いた
• 早くsafeな世界に行きたい
2019/6/17M5StackをRustで動かすまで
おしまい
2019/6/17M5StackをRustで動かすまで

More Related Content

What's hot (20)

ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
 
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
 
型安全性入門
型安全性入門型安全性入門
型安全性入門
Akinori Abe
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
モノビット エンジン
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
Takateru Yamagishi
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
Yusuke Fujimoto
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
 
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
Insight Technology, Inc.
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
 
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
ryuz88
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
Yuki Tamura
 
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
 
使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット
Fumito Mizuno
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
 
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
 
型安全性入門
型安全性入門型安全性入門
型安全性入門
Akinori Abe
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
モノビット エンジン
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
Takateru Yamagishi
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
Yusuke Fujimoto
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
 
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
Insight Technology, Inc.
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
 
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
ryuz88
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
Yuki Tamura
 
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
 
使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット
Fumito Mizuno
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
 

Similar to M5StackをRustで動かす (20)

M5StackにFPGAをつないでみた
M5StackにFPGAをつないでみたM5StackにFPGAをつないでみた
M5StackにFPGAをつないでみた
Kenta IDA
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
たけおか しょうぞう
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
Kengo Nakajima
 
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
Microsemi FPGA はいいぞ,FPGAの紹介とおさそいMicrosemi FPGA はいいぞ,FPGAの紹介とおさそい
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
Takayasu Shibata
 
NW-DIY で開拓したい社会
NW-DIY で開拓したい社会NW-DIY で開拓したい社会
NW-DIY で開拓したい社会
啓章 加嶋
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
Hitoshi Sato
 
ZytleBot: 自律移動ロボットへのFPGA活用のすゝめとROS 2移行への道
ZytleBot: 自律移動ロボットへのFPGA活用のすゝめとROS 2移行への道ZytleBot: 自律移動ロボットへのFPGA活用のすゝめとROS 2移行への道
ZytleBot: 自律移動ロボットへのFPGA活用のすゝめとROS 2移行への道
Tamtlebot
 
Introduction of FPGA
Introduction of FPGAIntroduction of FPGA
Introduction of FPGA
Imaoka Micihihiro
 
ESP32開発環境まとめ2
ESP32開発環境まとめ2ESP32開発環境まとめ2
ESP32開発環境まとめ2
Kenta IDA
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
Kiwamu Okabe
 
FPGA Community
FPGA CommunityFPGA Community
FPGA Community
Mr. Vengineer
 
20170329_BigData基盤研究会#7
20170329_BigData基盤研究会#720170329_BigData基盤研究会#7
20170329_BigData基盤研究会#7
Kohei KaiGai
 
ESP32開発環境まとめ
ESP32開発環境まとめESP32開発環境まとめ
ESP32開発環境まとめ
Kenta IDA
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
 
BIG Raspberry JAM | Raspberry Pi × SORACOM で始めてみよう!簡単 IoT
BIG Raspberry JAM | Raspberry Pi × SORACOM で始めてみよう!簡単 IoTBIG Raspberry JAM | Raspberry Pi × SORACOM で始めてみよう!簡単 IoT
BIG Raspberry JAM | Raspberry Pi × SORACOM で始めてみよう!簡単 IoT
SORACOM,INC
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考える
ryuz88
 
itnerface 2018年9月号オフ会発表資料
itnerface 2018年9月号オフ会発表資料itnerface 2018年9月号オフ会発表資料
itnerface 2018年9月号オフ会発表資料
Kenichi Miyata
 
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
 
M5StackにFPGAをつないでみた
M5StackにFPGAをつないでみたM5StackにFPGAをつないでみた
M5StackにFPGAをつないでみた
Kenta IDA
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
Kengo Nakajima
 
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
Microsemi FPGA はいいぞ,FPGAの紹介とおさそいMicrosemi FPGA はいいぞ,FPGAの紹介とおさそい
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
Takayasu Shibata
 
NW-DIY で開拓したい社会
NW-DIY で開拓したい社会NW-DIY で開拓したい社会
NW-DIY で開拓したい社会
啓章 加嶋
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
Hitoshi Sato
 
ZytleBot: 自律移動ロボットへのFPGA活用のすゝめとROS 2移行への道
ZytleBot: 自律移動ロボットへのFPGA活用のすゝめとROS 2移行への道ZytleBot: 自律移動ロボットへのFPGA活用のすゝめとROS 2移行への道
ZytleBot: 自律移動ロボットへのFPGA活用のすゝめとROS 2移行への道
Tamtlebot
 
ESP32開発環境まとめ2
ESP32開発環境まとめ2ESP32開発環境まとめ2
ESP32開発環境まとめ2
Kenta IDA
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
Kiwamu Okabe
 
20170329_BigData基盤研究会#7
20170329_BigData基盤研究会#720170329_BigData基盤研究会#7
20170329_BigData基盤研究会#7
Kohei KaiGai
 
ESP32開発環境まとめ
ESP32開発環境まとめESP32開発環境まとめ
ESP32開発環境まとめ
Kenta IDA
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
 
BIG Raspberry JAM | Raspberry Pi × SORACOM で始めてみよう!簡単 IoT
BIG Raspberry JAM | Raspberry Pi × SORACOM で始めてみよう!簡単 IoTBIG Raspberry JAM | Raspberry Pi × SORACOM で始めてみよう!簡単 IoT
BIG Raspberry JAM | Raspberry Pi × SORACOM で始めてみよう!簡単 IoT
SORACOM,INC
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考える
ryuz88
 
itnerface 2018年9月号オフ会発表資料
itnerface 2018年9月号オフ会発表資料itnerface 2018年9月号オフ会発表資料
itnerface 2018年9月号オフ会発表資料
Kenichi Miyata
 
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
 

More from Kenta IDA (9)

ESP32特集の内容紹介
ESP32特集の内容紹介ESP32特集の内容紹介
ESP32特集の内容紹介
Kenta IDA
 
カスタムブロックで自作モジュールをUIFlow対応にする
カスタムブロックで自作モジュールをUIFlow対応にするカスタムブロックで自作モジュールをUIFlow対応にする
カスタムブロックで自作モジュールをUIFlow対応にする
Kenta IDA
 
Using SORACOM 3G Module From MicroPython
Using SORACOM 3G Module From MicroPythonUsing SORACOM 3G Module From MicroPython
Using SORACOM 3G Module From MicroPython
Kenta IDA
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
Kenta IDA
 
EC2 F1 Virtual JTAG
EC2 F1 Virtual JTAGEC2 F1 Virtual JTAG
EC2 F1 Virtual JTAG
Kenta IDA
 
PYNQ単体でUIを表示してみる(PYNQまつり)
PYNQ単体でUIを表示してみる(PYNQまつり)PYNQ単体でUIを表示してみる(PYNQまつり)
PYNQ単体でUIを表示してみる(PYNQまつり)
Kenta IDA
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニット
Kenta IDA
 
Windows10 IoT CoreとBLE
Windows10 IoT CoreとBLEWindows10 IoT CoreとBLE
Windows10 IoT CoreとBLE
Kenta IDA
 
おそらく明日から役にたつC++11新機能
おそらく明日から役にたつC++11新機能おそらく明日から役にたつC++11新機能
おそらく明日から役にたつC++11新機能
Kenta IDA
 
ESP32特集の内容紹介
ESP32特集の内容紹介ESP32特集の内容紹介
ESP32特集の内容紹介
Kenta IDA
 
カスタムブロックで自作モジュールをUIFlow対応にする
カスタムブロックで自作モジュールをUIFlow対応にするカスタムブロックで自作モジュールをUIFlow対応にする
カスタムブロックで自作モジュールをUIFlow対応にする
Kenta IDA
 
Using SORACOM 3G Module From MicroPython
Using SORACOM 3G Module From MicroPythonUsing SORACOM 3G Module From MicroPython
Using SORACOM 3G Module From MicroPython
Kenta IDA
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
Kenta IDA
 
EC2 F1 Virtual JTAG
EC2 F1 Virtual JTAGEC2 F1 Virtual JTAG
EC2 F1 Virtual JTAG
Kenta IDA
 
PYNQ単体でUIを表示してみる(PYNQまつり)
PYNQ単体でUIを表示してみる(PYNQまつり)PYNQ単体でUIを表示してみる(PYNQまつり)
PYNQ単体でUIを表示してみる(PYNQまつり)
Kenta IDA
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニット
Kenta IDA
 
Windows10 IoT CoreとBLE
Windows10 IoT CoreとBLEWindows10 IoT CoreとBLE
Windows10 IoT CoreとBLE
Kenta IDA
 
おそらく明日から役にたつC++11新機能
おそらく明日から役にたつC++11新機能おそらく明日から役にたつC++11新機能
おそらく明日から役にたつC++11新機能
Kenta IDA
 

M5StackをRustで動かす