Files
lab-rv32i-freertos-c-first-…/doc/assets/a7-runtime.puml
T

30 lines
1.0 KiB
Plaintext

@startuml
!include card-uml-style.iuml
scale 900 width
top to bottom direction
class "01 workerA context\n.data / .bss" as Context <<application storage>>
class "02 &handle / handle\nfield address / opaque value" as Handle <<public API>>
class "03 TCB\nheap_4" as TCB <<kernel internal>>
class "task stack\nheap_4" as Stack <<runtime>>
class "04 callback ABI\na0 = &workerA" as ABI <<CPU>>
class "05 scheduling evidence\nPC · tick · A/B/A trace" as Schedule <<Hazard3>>
class "06 final evidence\nresult + source + E12" as Evidence <<verified>>
Context -right-> Handle : field value
Handle -right-> TCB : identifies
TCB -right-> Stack : points to separate block
ABI -right-> Schedule : PC / tick
Schedule -right-> Evidence : verified E12
Context -[hidden]down-> ABI
ABI --> Context : exact address
ABI --> Stack : SP inside range
Stack --> Schedule : restored execution
note bottom of TCB
Debugger may inspect the TCB address.
Application assertions use public APIs only.
Saved addresses are forensic after self-delete.
end note
@enduml