@startuml scale max 900*520 skinparam backgroundColor transparent skinparam shadowing false skinparam defaultFontName "DejaVu Sans Mono" skinparam defaultFontSize 13 skinparam objectBorderColor #2b6f8e skinparam objectBackgroundColor #edf6fa skinparam ArrowColor #8295a0 top to bottom direction title A7 RUNTIME — three stacks and context-selected return object "01 waiter TCB" as Waiter { priority = 3 waiter_sp state: Blocked → Running } object "02 stimulus TCB" as Stimulus { priority = 2 stimulus_sp interrupted after SET_IRQ } object "03 xISRStack" as ISR { isr_sp mcause = 0x8000000b source_after_clear = 0 } object "04 binary semaphore" as Sem object "05 evidence[9]" as Evidence { E07 waiter before E08 stimulus } Stimulus --> ISR : interrupt ISR --> Sem : GiveFromISR Sem --> Waiter : unblock ISR --> Waiter : restore selected context Waiter --> Evidence Stimulus --> Evidence @enduml