Slide 1

Slide 1 text

組込みRustの歩き方 Edition 2021 Shinjuku.rs #15 2021/04/27 中林智之 @tnakabayashi

Slide 2

Slide 2 text

自己紹介 中林智之 @tnakabayashi Nature株式会社のファームウェアエンジニア 組込みRustをやりたすぎて とうとう書籍を出版してしまった🎉 @ciniml と共著です ステマに来た 2

Slide 3

Slide 3 text

今日話すこと (9割) 本買って下さい! 3

Slide 4

Slide 4 text

今日話すこと (1割) ● 組込みRustはマイナー ○ 日本だと10人くらいしかやってない (要出展 ○ 「組込みRust、そんなのあるの?」状態 ● マイナージャンルの宿命: 入門者が迷子になる問題 ○ どこから入門すれば良い? ○ 入門終わった後は? 👉入門方法とその先をまとめる 4

Slide 5

Slide 5 text

なぜRustで組込みがしたいの? ● 組込み開発はC/C++のシェアが圧倒的 ○ 性能とエコシステムの壁… ● RustはC/C++に性能で匹敵、安全!モダン!最高! ● 組込みRustはプロダクションレディか? ○ 言語としては大体OK (inline assembly…) ○ エコシステム発展するとなお良し ○ 圧倒的人口不足…! 詳細は基礎から学ぶ 組込みRust参照! 5

Slide 6

Slide 6 text

2021年に組込みRustを始めるには? まず使える教材をまとめてみましょう 6

Slide 7

Slide 7 text

Rustを学ぶ TRPL (The Rust Programming Language) 実践 Rust 入門 実践 Rust プログラミング入門 プログラミングRust Rust を始めるための資料集 : https://blog-dry.com/entry/2021/01/23/141936 7

Slide 8

Slide 8 text

組込みRustを学ぶ The Embedded Rust Book The Discovery Book The Embedonomicon Knurling-book ● 技術同人誌 ○ Rustで始める自作組込みOS入門 ○ Rust on Bare-metal Raspberry Pi ○ など 組込みRust 3部作 8

Slide 9

Slide 9 text

教材のマッピング Rust 組込み Rust TRPL 実践Rust入門 組込みRust 3部作 Knurling-book 実践Rustプログラミング入門 プログラミングRust 9

Slide 10

Slide 10 text

教材のマッピング Rust TRPL 実践Rust入門 組込みRust 3部作 Knurling-book 組込み Rust 実践Rustプログラミング入門 プログラミングRust 10

Slide 11

Slide 11 text

教材のマッピング Rust TRPL 実践Rust入門 組込みRust 3部作 Knurling-book 組込み Rust 実践Rustプログラミング入門 プログラミングRust 11

Slide 12

Slide 12 text

教材のマッピング Rust TRPL 実践Rust入門 組込みRust 3部作 Knurling-book 重さ (物 理) 誰かーここも頼む! 組込み Rust 実践Rustプログラミング入門 プログラミングRust 競合が居ないだけで需要があるとは言っていない! 12

Slide 13

Slide 13 text

基礎から学ぶ 組込みRust の内容紹介 Wio Terminalを題材にRustや組込みや組込みRustを学ぶ! ● LEDとボタン / GPIO ● シリアル通信 / UART ● タイマ / 割り込み ● ブザー / PWM ● 光センサ / ADC ● 加速度センサ / I2C ● 液晶ディスプレイ / SPI 組込みRustのOSやフレームワークのうち以下を中心に解説 - embedded-hal (https://github.com/rust-embedded/embedded-hal) - atsamd-rs (https://github.com/atsamd-rs/atsamd) - embedded-graphics (https://github.com/embedded-graphics/embedded-graphics) 13

Slide 14

Slide 14 text

基礎から学ぶ 組込みRust の内容紹介 →Rustの文法解説もある →組込みシステムとは?から書いている →Linux / MacOS / Windows の環境構築手順もある! →誤植もある😫 申し訳ねぇ! →サポートサイトに正誤表もある! https://github.com/tomoyuki-nakabayashi/Embedded-Rust-f rom-Basics Rustを知らない組込み屋さんはもちろん、 組込み経験なしな人向けの本でもある 14

Slide 15

Slide 15 text

グラフィカルに楽しむ embedded-graphics けっこう使える (ド ライバの性能問題は若干ある) →日本語情報がない (まじでない) 私 私 私 井田さん graphicsって素敵やん? 15

Slide 16

Slide 16 text

最後はアプリ作成 Wio Terminal に搭載されているデバイスとグラフィクスを組 み合わせて遊ぶ! 詳しくは書籍で! 16

Slide 17

Slide 17 text

閑話休題: やり残したこと ネットワーク (せっかく WiFi と Bluetooth 使えるデバイスなのに! 低レイヤドライバの作り方 別ボードへの移植 便利な開発ツールの紹介 C FFI 17

Slide 18

Slide 18 text

基礎から学ぶ 組込みRustの次は… もっとRustしたい人向け The Rust Programming Language - ド安定 - webで見れる 実践Rust入門 - Rustらしいプログラムの書き方が学 べる 実践Rustプログラミング入門 - 幅広いジャンルが楽しめる プログラミングRust - ちょっと内容が古め (2nd edition 2021/06) - 標準ライブラリとか詳しい 18

Slide 19

Slide 19 text

基礎から学ぶ 組込みRustの次は… もっと組込みRustしたい人向け Knurling-book - 最新コンテンツ以外は無料公開 - ツールの体験が良い - 機材のお値段がネック… スクラッチから作りたい人 - Embedonomicon - rust-raspberrypi-OS-tutorials - Rustで始める自作組込みOS入門 The Embedded Rust Book - C FFI - 最適化 - などあるので一通り目を通 すと幸せになれる ¥12,000 19

Slide 20

Slide 20 text

さらにその先 - Rust Embedded organizationをチェックする - weekly meeting議事録とか - Ferrous Systemsのブログを読む - 機能安全サポートとかツールの開発状況など - Knurling-rsにスポンサーして最新の教材を見る - スポンサー料金でコンテンツ制作 - ツール教材の充実に貢献できるのでオススメ! - embedded-hal実装やBSP crateの開発に参加する - 人口が少ないのでやることいっぱい ここまでやると国内の第一人者! 20

Slide 21

Slide 21 text

まとめ〜組込みRustの歩き方〜 - 『基礎から学ぶ 組込みRust』は good entry point まず買おう! その後のことは後で考えよう! 21

Slide 22

Slide 22 text

参考 - 基礎から学ぶ 組込みRust のサポートサイトに参考情報のリンクを掲載 - https://github.com/tomoyuki-nakabayashi/Embedded-Rust-from-Basics/blob/main/r eferences.md 22