29 lines
965 B
Plaintext
29 lines
965 B
Plaintext
@startuml
|
|
scale max 900*520
|
|
skinparam backgroundColor transparent
|
|
skinparam shadowing false
|
|
skinparam defaultFontName "DejaVu Sans Mono"
|
|
skinparam defaultFontSize 12
|
|
skinparam sequenceParticipantBorderColor #2b6f8e
|
|
skinparam sequenceParticipantBackgroundColor #edf6fa
|
|
skinparam sequenceArrowColor #8295a0
|
|
title A5 FLOW — ISR wakes waiter before interrupted stimulus continues
|
|
participant waiter
|
|
participant semaphore
|
|
participant stimulus
|
|
participant Hazard3
|
|
participant ISR
|
|
participant verifier
|
|
waiter -> semaphore : 02 take / Blocked
|
|
stimulus -> stimulus : 03 before trigger
|
|
stimulus -> Hazard3 : IO_SET_IRQ bit 5
|
|
Hazard3 -> ISR : 04 MEI / xISRStack
|
|
ISR -> Hazard3 : 05 clear source
|
|
ISR -> semaphore : 06 give / xHPW=pdTRUE
|
|
ISR -> waiter : portYIELD_FROM_ISR
|
|
waiter -> waiter : 07 runs; stimulus_after=0
|
|
waiter -> waiter : self-delete
|
|
stimulus -> stimulus : 08 resumes after trigger; waiter_ran=1
|
|
verifier -> verifier : 09 order + stacks + mcause = PASS
|
|
@enduml
|