mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-21 22:32:29 +00:00
Merge pull request #2455 from AdinAck/faq-update-2
Add Errors to Stable Arena Usage in FAQ
This commit is contained in:
commit
01ac4ee431
@ -158,8 +158,25 @@ Note that the git revision should match any other embassy patches or git depende
|
||||
|
||||
When you aren't using the `nightly` feature of `embassy-executor`, the executor uses a bump allocator, which may require configuration.
|
||||
|
||||
Something like this error will occur at **compile time** if the task arena is *too large* for the target's RAM:
|
||||
|
||||
[source,plain]
|
||||
----
|
||||
rust-lld: error: section '.bss' will not fit in region 'RAM': overflowed by _ bytes
|
||||
rust-lld: error: section '.uninit' will not fit in region 'RAM': overflowed by _ bytes
|
||||
----
|
||||
|
||||
And this message will appear at **runtime** if the task arena is *too small* for the tasks running:
|
||||
|
||||
[source,plain]
|
||||
----
|
||||
ERROR panicked at 'embassy-executor: task arena is full. You must increase the arena size, see the documentation for details: https://docs.embassy.dev/embassy-executor/'
|
||||
----
|
||||
|
||||
NOTE: If all tasks are spawned at startup, this panic will occur immediately.
|
||||
|
||||
Check out link:https://docs.embassy.dev/embassy-executor/git/cortex-m/index.html#task-arena[Task Arena Documentation] for more details.
|
||||
|
||||
== Can I use manual ISRs alongside Embassy?
|
||||
|
||||
Yes! This can be useful if you need to respond to an event as fast as possible, and the latency caused by the usual “ISR, wake, return from ISR, context switch to woken task” flow is too much for your application. Simply define a `#[interrupt] fn INTERRUPT_NAME() {}` handler as you would link:https://docs.rust-embedded.org/book/start/interrupts.html[in any other embedded rust project].
|
||||
Yes! This can be useful if you need to respond to an event as fast as possible, and the latency caused by the usual “ISR, wake, return from ISR, context switch to woken task” flow is too much for your application. Simply define a `#[interrupt] fn INTERRUPT_NAME() {}` handler as you would link:https://docs.rust-embedded.org/book/start/interrupts.html[in any other embedded rust project].
|
||||
|
Loading…
Reference in New Issue
Block a user