2023-01-01から1年間の記事一覧

Rust の組込み用非同期フレームワーク Embassy (7)

自分のためだけに Embassy コードリーディングシリーズです。 nRF52840 向けの Waker を wake している実装を見ていきます。 GPIO 割り込みから wake() するのが、おそらく最も単純な実装でしょう、ということで GPIO の example を探します。 examples/nrf5…

Rust の組込み用非同期フレームワーク Embassy (6)

誰得 Embassy コードリーディングシリーズです。 Spawner 周りを見終わったので、次は Waker いってみましょう。 Waker はおそらく wake 呼び出す側から見た方がわかりやすいでしょう。 std で動く example の中だと serial.rs でしょうか。 use async_io::A…

Rust の組込み用非同期フレームワーク Embassy (5)

ゆるふわ Embassy コードリーディングシリーズです。 前回 spawn 周りはあとタスクの構造だけ、というところまで来たのでタスクの構造を見てみましょう。 タスク関連の構造体としては TaskHeader TaskStorage TaskRef があります。このへん で定義されていま…

Rust の組込み用非同期フレームワーク Embassy (4)

ゆるふわ Embassy コードリーディングシリーズです。 前回 Executor がわかってきた気持ちになったので、もう少し潜ってみましょう。 今回は Spawner いってみます。 コメントや構造体定義を見るに、Spawner は特定の Executor に紐付いていることがわかりま…

Rust の組込み用非同期フレームワーク Embassy (3)

組込み向けの async/await フレームワーク embassy をゆるーく眺めていくシリーズです。 前回は main についているマクロがなにやってるか見てみました。 github.com そして個人的には、 Spawner とか Executor がどうなってるねん!が気になるので、そこ突…

Rust の組込み用非同期フレームワーク Embassy (2)

Embassy をゆるーく眺めるシリーズです。 前回 README を見てみて Timer どうなっているのか気になりました。 なので実装をおいかけてみましょう。 アプリコードは大体こんな感じでした。 さてどこから行きましょうかね? use embassy_executor::Spawner; us…

Rust の組込み用非同期フレームワーク Embassy (1)

個人ブログをあまりに放置するのも良くないですね! 最近組込み Rust の情報発信もご無沙汰*1なので、自分のモチベーションのためにもちょいちょいメモ書きながら Embassy やっていこうと思います。 リポジトリはこちら。 github.com Web ページもありますね…

cargo make で contains multiple actions のエラーに遭遇

ブログさぼりがちなので、リハビリがてら軽いやつから書いていきます。 いまさらながら cargo make はじめました。 github.com (一応) 自分でメンテしている echonet-lite-rs のテストを cargo make で作ってみるかー、と考えたのが始まりです。 github.com …