@startuml scale 600 height top to bottom direction skinparam backgroundColor transparent skinparam shadowing false skinparam defaultFontName Monospace skinparam defaultFontSize 10 skinparam rectangleBorderColor #2c7794 skinparam rectangleBackgroundColor #edf6fa skinparam ArrowColor #8095a1 title A1 CONTEXT — from linear cursor to reusable heap rectangle "<>\n01 A / B / C experiment\nrequests payload bytes" as APP rectangle "<>\n02 pvPortMalloc / vPortFree\nheap statistics" as API rectangle "<>\n03 heap_4\nfirst-fit · split · coalesce" as H4 rectangle "<>\n04 ucHeap[4096]\nheaders + payload" as ARENA rectangle "<>\n05 Hazard3 / RV32I\nGDB · registers · memory" as TARGET APP -down-> API : request / release API -down-> H4 : direct C call H4 -down-> ARENA : manages ARENA -down-> TARGET : stored in RAM note right of H4 heap_1: allocate only heap_2: free, no coalesce heap_3: libc wrapper heap_4: free + coalesce heap_5: multiple regions end note @enduml