Files
lab-rv32i-freertos-c-first-…/web/figures/a6-state.puml
T

38 lines
1.1 KiB
Plaintext

@startuml
!include card-uml-style.iuml
scale 620 width
top to bottom direction
state "01 WorkerContext lifetime\nstatic initialization → program end" as ObjectLifetime
state "PREPARED" as Constructed
state "02 STARTING" as Starting
state "READY" as ReadyWrapper
state "03 RUNNING" as RunningWrapper
state "COMPLETED" as CompletedWrapper
state "Ready" as ReadyKernel
state "04 Running" as RunningKernel
state "05 time sliced\nA ↔ B" as TimeSlice
state "06 Deleted\ncontext remains static" as DeletedKernel
Constructed --> Starting : create_worker()
Starting --> ReadyWrapper : xTaskCreate = pdPASS
ReadyWrapper --> RunningWrapper : callback entry
RunningWrapper --> CompletedWrapper : result published
ReadyKernel --> RunningKernel : scheduler
RunningKernel --> ReadyKernel : preemption
RunningKernel --> TimeSlice : equal priority
TimeSlice --> RunningKernel : resume
RunningKernel --> DeletedKernel : vTaskDelete(NULL)
ObjectLifetime -[hidden]down-> Constructed
CompletedWrapper -[hidden]down-> DeletedKernel
note right of RunningWrapper
trace_state is diagnostic application data.
It is not eTaskState.
end note
@enduml