53 lines
8.4 KiB
XML
53 lines
8.4 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="350px" preserveAspectRatio="none" style="width:594px;height:350px;" version="1.1" viewBox="0 0 594 350" width="594px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="328" x="136.5" y="11.7589">A2 STRUCTURE — equal kernel objects, different storage policy</text><!--MD5=[3f813737a27eb5cca819d156ac1ac98b]
|
||
entity dt--><rect fill="#EDF6FA" height="49.9638" style="stroke: #2C7794; stroke-width: 1.5;" width="133" x="178.5" y="23.1119"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="188.5" y="44.8708">01 Dynamic task</text><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="188.5" y="59.8527">TCB + stack in ucHeap</text><!--MD5=[5d4b2633e4791513268a2604d42d888f]
|
||
entity st--><rect fill="#EDF6FA" height="49.9638" style="stroke: #2C7794; stroke-width: 1.5;" width="161" x="371.5" y="23.1119"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="381.5" y="44.8708">02 Static task</text><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="381.5" y="59.8527">StaticTask_t + StackType_t[]</text><!--MD5=[008c4d17aac760e260395f8e0c37c22a]
|
||
entity dq--><rect fill="#EDF6FA" height="49.9638" style="stroke: #2C7794; stroke-width: 1.5;" width="178" x="6" y="156.5619"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="96" x="16" y="178.3208">03 Dynamic queue</text><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="158" x="16" y="193.3027">object + item buffer in ucHeap</text><!--MD5=[559b856ebbf6540c39b50745da7961f2]
|
||
entity sq--><rect fill="#EDF6FA" height="49.9638" style="stroke: #2C7794; stroke-width: 1.5;" width="148" x="403" y="156.5619"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="413" y="178.3208">04 Static queue</text><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="128" x="413" y="193.3027">StaticQueue_t + uint8_t[]</text><!--MD5=[158b8a3ce0eb6bdeb9584db5e4540d4f]
|
||
entity dm--><rect fill="#EDF6FA" height="49.9638" style="stroke: #2C7794; stroke-width: 1.5;" width="138" x="148" y="290.0219"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="158" y="311.7808">05 Dynamic timer</text><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="118" x="158" y="326.7627">timer object in ucHeap</text><!--MD5=[31b50539c062e48f418cd0b43b66a14f]
|
||
entity sm--><rect fill="#EDF6FA" height="49.9638" style="stroke: #2C7794; stroke-width: 1.5;" width="94" x="321" y="290.0219"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="331" y="311.7808">06 Static timer</text><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="331" y="326.7627">StaticTimer_t</text><!--MD5=[253793ac12dc71b5b3661728e8dc2147]
|
||
entity svc--><rect fill="#EDF6FA" height="64.9457" style="stroke: #2C7794; stroke-width: 1.5;" width="149" x="218.5" y="149.0719"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="123" x="228.5" y="170.8308">07 Static kernel services</text><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="228.5" y="185.8127">Idle TCB/stack</text><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="129" x="228.5" y="200.7946">Timer daemon TCB/stack</text><!--MD5=[c443e4b075ff3fce78d00ed6a2632c8e]
|
||
link dt to st--><!--MD5=[6be6bd5e6654fbf03a74c7794a8b1ee8]
|
||
link dq to sq--><!--MD5=[4acaab06e73e6cd463470f1aa16c5f6c]
|
||
link dm to sm--><!--MD5=[f3553b6e97ea8e5802b4e5e32830efc1]
|
||
link dt to dq--><path d="M217.14,73.5119 C191.77,95.7319 154.31,128.5619 127.58,152.0019 " fill="none" id="dt->dq" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="123.85,155.2619,133.2517,152.328,127.6067,151.9623,127.9724,146.3173,123.85,155.2619" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="179.98" y="115.8308">same message 0xCAFE</text><!--MD5=[394fd7d603290abaaea335171f5bd6de]
|
||
link st to sq--><path d="M456.64,73.5119 C460.75,95.0919 466.75,126.6619 471.18,149.9319 " fill="none" id="st->sq" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="472.1,154.7719,474.3594,145.1857,471.1717,149.8588,466.4985,146.671,472.1,154.7719" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="466.25" y="115.8308">same message 0xCAFE</text><!--MD5=[e2ee8be0d8a5fab4f61e8b60cd7d4f8a]
|
||
link dq to dm--><path d="M109.41,206.9419 C119.45,222.9219 133.73,243.7719 149,260.0219 C157.53,269.0919 167.63,277.9319 177.4,285.7419 " fill="none" id="dq->dm" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="181.29,288.7919,176.6872,280.0847,177.3594,285.7015,171.7426,286.3737,181.29,288.7919" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="150" y="256.7808">one-shot callback</text><!--MD5=[7af305701224b1d55b1776e9d524f9d0]
|
||
link sq to sm--><path d="M456.75,206.9619 C438.48,229.0019 411.55,261.4719 392.16,284.8619 " fill="none" id="sq->sm" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="389.1,288.5519,397.9233,284.176,392.2911,284.7026,391.7645,279.0703,389.1,288.5519" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="426.77" y="256.7808">one-shot callback</text><!--MD5=[d31579fe64ed4afdfe5e7cb18479b6e7]
|
||
link svc to dm--><path d="M274.6,214.3619 C262.26,235.7119 246.12,263.6219 234.07,284.4719 " fill="none" id="svc->dm" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="231.7,288.5719,239.665,282.7789,234.2007,284.2421,232.7374,278.7778,231.7,288.5719" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a02bf47346101d362cc0b349394bde43]
|
||
link svc to sm--><path d="M311.16,214.3619 C323.33,235.7119 339.26,263.6219 351.15,284.4719 " fill="none" id="svc->sm" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="353.49,288.5719,352.5151,278.7714,351.017,284.2263,345.5621,282.7282,353.49,288.5719" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[79c4140bd63de98bcd572d35f61abe00]
|
||
@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
|
||
|
||
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
|
||
(GPL source distribution)
|
||
Java Runtime: OpenJDK Runtime Environment
|
||
JVM: OpenJDK 64-Bit Server VM
|
||
Java Version: 25.0.4-ea+4-1-Debian
|
||
Operating System: Linux
|
||
Default Encoding: UTF-8
|
||
Language: en
|
||
Country: null
|
||
--></g></svg> |