@startuml skinparam backgroundColor transparent skinparam shadowing false skinparam defaultFontName Monospace skinparam defaultFontSize 11 skinparam rectangleBorderColor #2c7794 skinparam rectangleBackgroundColor #edf6fa title A2 STRUCTURE — equal kernel objects, different storage policy rectangle "01 Dynamic task\nTCB + stack in ucHeap" as dt rectangle "02 Static task\nStaticTask_t + StackType_t[]" as st rectangle "03 Dynamic queue\nobject + item buffer in ucHeap" as dq rectangle "04 Static queue\nStaticQueue_t + uint8_t[]" as sq rectangle "05 Dynamic timer\ntimer object in ucHeap" as dm rectangle "06 Static timer\nStaticTimer_t" as sm rectangle "07 Static kernel services\nIdle TCB/stack\nTimer daemon TCB/stack" as svc dt -[hidden]right- st dq -[hidden]right- sq dm -[hidden]right- sm dt -down-> dq : same message 0xCAFE st -down-> sq : same message 0xCAFE dq -down-> dm : one-shot callback sq -down-> sm : one-shot callback svc ..> dm svc ..> sm @enduml