Files
lab-rv32i-freertos-c-isr-se…/doc/assets/a5-flow.puml
T

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