Files

27 lines
927 B
Plaintext

@startuml
!include card-uml-style.iuml
scale 900 width
participant main
participant periodic
participant suspend_target
participant observer
participant "FreeRTOS scheduler" as Scheduler
main -> main : 01 configuration committed
main -> Scheduler : 02 create three tasks and start
Scheduler -> periodic : 03 highest Ready task runs
periodic -> Scheduler : vTaskDelayUntil(t0 + 2)
Scheduler -> suspend_target : self-suspend
Scheduler -> observer : 04 sees Blocked + Suspended
observer -> Scheduler : vTaskResume(suspend_target)
Scheduler -> suspend_target : 05 resumed; self-delete
Scheduler -> periodic : 06 release at t0 + 2
periodic -> Scheduler : vTaskDelayUntil(t0 + 4)
Scheduler -> periodic : 07 release at t0 + 4
periodic -> Scheduler : vTaskDelayUntil(t0 + 6)
Scheduler -> periodic : 08 release at t0 + 6
periodic -> Scheduler : 09 clear handle; self-delete
Scheduler -> observer : 10 verify timeline and PASS
@enduml