38 lines
918 B
Plaintext
38 lines
918 B
Plaintext
@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
|