Rust

技術書典7でRustが関連する本/サークル一覧メモ

はじめに 随時、更新します。抜けや、間違いがあればご連絡下さい。 techbookfest.org 既刊ですが、私も「組込み/ベアメタルRustクックブック」を頒布しますので、よろしくお願いします(宣伝)。 新刊 い35C: esproject(エスプロジェクト) techbookfest.o…

7/27(土) 技書博で組込み/ベアメタルRustクックブックを販売します!

はじめに 宣伝です! 来週開催される技術書同人誌博覧会にて、組込み/ベアメタルRustクックブックを販売します。 A-9 AQUAXISさんのブースにご一緒させて頂きます。 ブース主の石原ひでみさんはFPGAの薄い本とMarkdown組版の本を、みつきんさんはNuttxの本を…

Rust × 組込みで前代未聞のInterfaceオフ会レポート

はじめに 昨日、2019年6月17日、巣鴨のCQ出版社様セミナールームにおいて記念すべき組込みRustのオフ会が開催されました! 今回のオフ会は、雑誌掲載前にオフ会を開催する、という前代未聞のオフ会、とのことでした。 inteface-meet-up.connpass.com 非常に…

WebAssembly Micro RuntimeでRustアプリをマイコンで動かす!

はじめに 前回、もう一歩のところだったのですが、RAMが2MB搭載されていないと動かない状態でした。 tomo-wait-for-it-yuki.hatenablog.com 私はそんなマイコン持っていないため、今回は、256KB RAMが搭載されているマイコン (これも高性能品ですが) 上でRus…

WebAssembly Micro RuntimeでRustのアプリを動かす!

はじめに WebAssembly Micro Runtimeでは、64KB程度のRAMが搭載されたマイコンであれば、wasmアプリケーションを動かすことができます。 github.com Rustはwasmをターゲットにビルドできます。 後は、わかるね? アプリケーションの作り方 WebAssembly Micro…

Rust製組込みOSのTockを触ってみる②

はじめに 諸事情によりまとまった時間を取るのが難しいので、入門系やります。 今回は、Rust製のRTOSであるTockを触ってみます。 githubのTock organizationはこちらです。 前回はC言語で書かれたサンプルアプリケーションを動かしたので、今回はRustで書か…

Rust製組込みOSのTockを触ってみる①

はじめに 諸事情によりまとまった時間を取るのが難しいので、入門系やります。 今回は、Rust製のRTOSであるTockを触ってみます。 githubのTock organizationはこちらです。 Getting started Getting startedを参考に、何か動かしてみます。 Requirements nig…

Rustコンパイラ組込みのlintについて調べる

はじめに Rustコンパイラであるrustcには組込みのlintがあります。 Rustのlintツールでは、clippyが有名ですが、rustc組込みの方もソースコードの改善に役立ちます。 7月の技術書同人誌博覧会のネタ探しの一環だったのですが、思ったより世の中の役に立ちそ…

RustのRTFM (Real Time For the Masses)を試してみる⑤

はじめに 組込みRust界の伝説japaric氏が実装しているReal Time For the Masses (RTFM) framework for ARM Cortex-M microcontrollersを試してみます。 github.com サンプルコードをマクロ展開して心が折れそうです。 とりあえず、当面サンプルコードの表面…

RustのRTFM (Real Time For the Masses)を試してみる④

はじめに 組込みRust界の伝説japaric氏が実装しているReal Time For the Masses (RTFM) framework for ARM Cortex-M microcontrollersを試してみます。 github.com 面白いので、引き続き触っていきます。 リソース管理続き RTFMのstatic変数は、通常のstatic…

RustのRTFM (Real Time For the Masses)を試してみる③

はじめに 組込みRust界の伝説japaric氏が実装しているReal Time For the Masses (RTFM) framework for ARM Cortex-M microcontrollersを試してみます。 github.com 軽い気持ちで触り始めたのですが、読み進めるうちに、手続きマクロでゴリゴリ静的解析してい…

RustのRTFM (Real Time For the Masses)を試してみる②

はじめに 組込みRust界の伝説japaric氏が実装しているReal Time For the Masses (RTFM) framework for ARM Cortex-M microcontrollersを試してみます。 github.com 前回変なところで切ってしまったため、今回は軽めです。 idleタスク idleタスクは、initタス…

RustのRTFM (Real Time For the Masses)を試してみる①

はじめに 組込みRust界の伝説japaric氏が実装しているReal Time For the Masses (RTFM) framework for ARM Cortex-M microcontrollersを試してみます。 github.com RTFM自体は、Real-time for the masses, step 1: Programming API and static priority SRP …

mdbook-epubお試し

はじめに 同人誌を書く環境を模索しています。 Rustが好きなので、Rust製のドキュメントビルダーmdbookも試してみます。 mdbook自体には、PDF出力機能がないため、3rd party pluginであるdbook-epubを試してみます。 インストール Rust環境はあらかじめ構築…

組込みRustドキュメントを和訳したお話

はじめに 組込みRustの(勝手に主要と思っている)ドキュメント3つの和訳が、一通り完了しました。 今後は、upstream変更に対するメンテンナンスをやっていきます。 節目なので、整理しておこうと思います。 和訳も、大本になる文章があるからできるわけで、…

YoctoでRust②〜cargo-bitbake〜

はじめに 組込みLinuxでRustする場合、普通にホストマシンで開発して、普通にホストマシンのRustコンパイラでクロスビルドしたものをターゲットに持って行っています。 これで事足りているのですが、前々から興味があったため、YoctoでRustアプリケーション…

YoctoでRust①〜meta-rustのhello-worldビルド〜

はじめに 組込みLinuxでRustする場合、普通にホストマシンで開発して、普通にホストマシンのRustコンパイラでクロスビルドしたものをターゲットに持って行っています。 これで事足りているのですが、前々から興味があったため、YoctoでRustアプリケーション…

実践Rust入門

はじめに 著者の皆様から本書をいただきました。本当にありがとうございます。 実践Rust入門[言語仕様から開発手法まで]作者: κeen,河野達也,小松礼人出版社/メーカー: 技術評論社発売日: 2019/05/08メディア: 単行本(ソフトカバー)この商品を含むブログを…

組込みRustのイベントやります 2019/6/17

はじめに inteface-meet-up.connpass.com CQ出版様の雑誌インタフェース主催で、組込みRustのイベントを開催することになりました。 CQ出版様、ありがとうございます。 参加枠埋まってますが、繰り上がりや、多くの方が参加登録して頂ければまた別の機会を設…

組込みでCからRustにステップアップする順序

はじめに 先日、twitterで以下のアンケートを行ったところ、予想以上に多くの方にご回答頂けたため、まとめと私の考えを書きます。 組込みでCからRustにステップアップするための順序。C → ?? → Rustさぁ??に入るのは?— 錆ありはぐれベアメタル (@LDScell) …

Zephyr×Rustのインテグレーションにチャレンジ!⑫~Driver APIリファクタリングの旅1~

はじめに ZephyrとRustのインテグレーションに挑戦しています。 Rustで最低限動作するZephyrのUART Driverを作りました。 力技で無理矢理実装したところも多いです。負債を返済するときが来ました。 デバイス登録 まずは、デバイスおよびデバイスドライバをZ…

Zephyr×Rustのインテグレーションにチャレンジ!⑪~UART Driver 受信編~

はじめに ZephyrとRustのインテグレーションに挑戦しています。 RustでデバイスDriverを作っていきます。 まずは、QEMUのUARTをターゲットにします。 QEMUのUARTデバイスはガバガバで、初期化を行わなくてもデータ送受信ができるので、敷居が低いです。 UART…

Zephyr×Rustのインテグレーションにチャレンジ!⑩~UART Driver 送信編~

はじめに ZephyrとRustのインテグレーションに挑戦しています。 RustでデバイスDriverを作っていきます。 まずは、QEMUのUARTをターゲットにします。 QEMUのUARTデバイスはガバガバで、初期化を行わなくてもデータ送受信ができるので、敷居が低いです。 やる…

Zephyr×Rustのインテグレーションにチャレンジ!⑨~UART Driver 準備編~

はじめに ZephyrとRustのインテグレーションに挑戦しています。 前回は、RustでDriverの初期化関数を書いて、動作させることに成功しました。 tomo-wait-for-it-yuki.hatenablog.com 今回から、もう少しちゃんとデバイスDriverを作っていきます。 まずは、QE…

Zephyr×Rustのインテグレーションにチャレンジ!⑧~続システムコール調査~

はじめに ZephyrとRustのインテグレーションに挑戦しています。 これまでで、アプリケーションをRustで書いてきました。 ここからは、Driverを書く方法を調査していきます。 前回までのあらすじ アプリケーションに公開するDriver APIを作るため、システムコ…

Zephyr×Rustのインテグレーションにチャレンジ!⑦~システムコール調査~

はじめに ZephyrとRustのインテグレーションに挑戦しています。 これまでで、アプリケーションをRustで書いてきました。 ここからは、Driverを書く方法を調査していきます。 前回までのあらすじ Rustで書いたDriverの初期化関数から、文字が出力できました。…

Zephyr×Rustのインテグレーションにチャレンジ!⑥~RustでDriverを書く!~

はじめに ZephyrとRustのインテグレーションに挑戦しています。 これまでで、アプリケーションをRustで書いてきました。 ここからは、Driverを書く方法を調査していきます。 前回までのあらすじ RustでZephyrのDriverを書くためには、INIT_DEVICEマクロ相当…

Zephyr×Rustのインテグレーションにチャレンジ!⑤~続RustでDriverを書くための調査~

はじめに ZephyrとRustのインテグレーションに挑戦しています。 これまでで、アプリケーションをRustで書いてきました。 ここからは、Driverを書く方法を調査していきます。 DEVICE_INITマクロ tomo-wait-for-it-yuki.hatenablog.com 前回記事で、DEVICE_INI…

Zephyr×Rustのインテグレーションにチャレンジ!④~RustでDriverを書くための調査~

はじめに ZephyrとRustのインテグレーションに挑戦しています。 tomo-wait-for-it-yuki.hatenablog.com これまでで、アプリケーションをRustで書いてきました。 ここからは、Driverを書く方法を調査していきます。 最低限必要なことは何か? まずは、ここか…

Discovery翻訳の宣伝

はじめに Discoveryを翻訳したので、マイコンでRustを動かす体験をお楽しみください。 tomoyuki-nakabayashi.github.io Discoveryでは、STM32F3DISCOVERY開発ボードを使って、次のようなアプリケーションを実装します。 LEDルーレット LEDコンパス シリアル…