type
status
slug
date
summary
tags
category
password
icon
ONE Problem confuse usEmbassy executorFeaturesThe Rust’s macro grammar used in embassyAbout time interrupt of timerI am curious about the startup and interrupttry to figure out the executor in embassy with stm32f401 exampleThe Execution Flow of BlinkyThe critical implementation partTo Implement our TCB, We should now some grammar of lifetimeThings we need to know about rust grammarImportant things done in uC/OStrack the process of debug
ONE Problem confuse us
according to embassy book, we found:
Embassy executor
The Embassy executor is an async/await executor designed for embedded usage along with support functionality for interrupts and timers.
Features
- No
alloc
, no heap needed. Task are statically allocated.
- No "fixed capacity" data structures, executor works with 1 or 1000 tasks without needing config/tuning.
- Integrated timer queue: sleeping is easy, just do
Timer::after_secs(1).await;
.
- No busy-loop polling: CPU sleeps when there’s no work to do, using interrupts or
WFE/SEV
.
- Efficient polling: a wake will only poll the woken task, not all of them.
- Fair: a task can’t monopolize CPU time even if it’s constantly being woken. All other tasks get a chance to run before a given task gets polled for the second time.
- Creating multiple executor instances is supported, to run tasks at different priority levels. This allows higher-priority tasks to preempt lower-priority tasks.
we want to figure out how the highlight features are implemented
The Rust’s macro grammar used in embassy
Learn macroAbout time interrupt of timer
About the macro part of interrupt in TimerI am curious about the startup and interrupt
how does the interrupt defined? And where I can find them?
This repository contains various crates useful for writing Rust programs on Cortex-M microcontrollers:
cortex-m
: CPU peripheral access and intrinsics
cortex-m-rt
: Startup code and interrupt handling
cortex-m-semihosting
: Support for semihosting debugging
cortex-m-interrupt-number
: Shared trait for interacting with peripheral access crates
panic-itm
: Panic handler that sends messages over the ITM/SWO output
panic-semihosting
: Panic handler that sends messages over semihosting
try to figure out the executor in embassy with stm32f401 example
stm32F401 adapt to ex: multiprioThe Execution Flow of Blinky
Just debug the code and know how the async Rust run
Embassy_LearnThe critical implementation part
The Critical section implementationTo Implement our TCB, We should now some grammar of lifetime
The Rust Life TimeThings we need to know about rust grammar
Rust grammar supplementImportant things done in uC/OS
Important design in uC/OS rusttrack the process of debug
Trouble Tracking- 作者:liamY
- 链接:https://liamy.clovy.top/article/OScamp_prj6_task02
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。