Перейти к содержимому

A quick deep dive into asynchronous programming in an embedded context with Rust and Embassy

nihalpasham

0:00 / 0:00

A quick deep dive into asynchronous programming in an embedded context with Rust and Embassy

1 214 просмотров · 2 года назад
nihalpasham
2,75 тыс. подписчиков
1 214 просмотров · 2 года назад
Diving into asynchronous programming or async/await in an embedded context with the Embassy framework We take a look at the implementation details of a simple 'blinky' example. More precisely we look at the following 00:00:00 Intro to Async in embedded systems 00:06:19 A brief note on what an Executor is? 00:07:15 What's the Embassy Async Framework? 00:14:09 simplicity of async using blinky example 00:15:59 embassy's main macro expansion 00:18:33 Thread-mode executor implementation 00:23:52 Executor's run-queue impl (linked list) 00:24:50 the Spawner type - spawning tasks to an executor 00:27:20 the TaskStorage abstraction 00:31:30 running our main task, initializing peripherals and setup (quick demo) 00:34:50 Polling futures with the Embassy Executor 00:40:00 No busy-loop polling: sleep when no work using interrupts or WFE/SEV. 00:45:40 Wakers in Embassy 00:50:04 the actual time-driver implementation in the HW abstraction layer 00:53:37 Summary 00:54:00 trading complexity for performance in Async 00:54:40 Conclusion #rust #async #programming #embedded_systems ‪@RustVideos‬ ‪@rustembedded‬‪@rustnederlandrustnl‬ ‪@embeddedsystemswitharmcort9051‬