32 lines
1021 B
Plaintext
32 lines
1021 B
Plaintext
@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 "<<application>>\n01 A / B / C experiment\nrequests payload bytes" as APP
|
|
rectangle "<<public API>>\n02 pvPortMalloc / vPortFree\nheap statistics" as API
|
|
rectangle "<<allocator>>\n03 heap_4\nfirst-fit · split · coalesce" as H4
|
|
rectangle "<<arena>>\n04 ucHeap[4096]\nheaders + payload" as ARENA
|
|
rectangle "<<target>>\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
|