Files
lab-rv32i-freertos-c-delay-…/doc/assets/a2-structure.svg
T

117 lines
11 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="453.5936px" preserveAspectRatio="none" style="width:894px;height:453px;" version="1.1" viewBox="0 0 894 453" width="894.4099px" zoomAndPan="magnify"><defs/><g><!--MD5=[86b35a35deff3f53bdfe096e65e1dcc4]
class Periodic--><rect fill="#F5F8FA" height="166.0486" id="Periodic" style="stroke: #607985; stroke-width: 1.1978704525288377;" width="166.1047" x="413.6646" y="6.1012"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="8.7844" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="55.9006" x="468.7666" y="23.0394">«C struct»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="11.9787" lengthAdjust="spacingAndGlyphs" textLength="136.5572" x="428.4383" y="45.813">01 PeriodicContext</text><line style="stroke: #607985; stroke-width: 1.1978704525288377;" x1="414.4632" x2="578.9707" y1="57.4224" y2="57.4224"/><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="146.9388" x="423.2476" y="75.0446">handle · created_handle</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="31.9432" x="423.2476" y="96.7123">phase</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="76.6637" x="423.2476" y="118.3801">initial_tick</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="95.8296" x="423.2476" y="140.0478">release_tick[3]</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="140.5501" x="423.2476" y="161.7155">entry_sp · stack range</text><!--MD5=[fe4f93b87d8dddf11c9ebf60b1f7018c]
class Suspend--><rect fill="#F5F8FA" height="144.3808" id="Suspend" style="stroke: #607985; stroke-width: 1.1978704525288377;" width="166.1047" x="413.6646" y="200.6034"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="8.7844" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="55.9006" x="468.7666" y="217.5416">«C struct»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="11.9787" lengthAdjust="spacingAndGlyphs" textLength="129.37" x="432.0319" y="240.3152">02 SuspendContext</text><line style="stroke: #607985; stroke-width: 1.1978704525288377;" x1="414.4632" x2="578.9707" y1="251.9246" y2="251.9246"/><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="146.9388" x="423.2476" y="269.5468">handle · created_handle</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="31.9432" x="423.2476" y="291.2146">phase</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="44.7205" x="423.2476" y="312.8823">resumed</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="51.1091" x="423.2476" y="334.55">entry_sp</text><!--MD5=[d40932010816485ec57b44b6eea2392a]
class Observer--><rect fill="#F5F8FA" height="144.3808" id="Observer" style="stroke: #607985; stroke-width: 1.1978704525288377;" width="191.6593" x="4.7915" y="200.6034"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="8.7844" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="55.9006" x="72.6708" y="217.5416">«C struct»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="11.9787" lengthAdjust="spacingAndGlyphs" textLength="136.5572" x="32.3425" y="240.3152">03 ObserverContext</text><line style="stroke: #607985; stroke-width: 1.1978704525288377;" x1="5.5901" x2="195.6522" y1="251.9246" y2="251.9246"/><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="38.3319" x="14.3744" y="269.5468">handle</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="172.4933" x="14.3744" y="291.2146">periodic_state : eTaskState</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="166.1047" x="14.3744" y="312.8823">suspend_state : eTaskState</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="25.5546" x="14.3744" y="334.55">pass</text><!--MD5=[bc85b0cffdc1196fa135ce200aaffd70]
class Timeline--><rect fill="#F5F8FA" height="144.3808" id="Timeline" style="stroke: #607985; stroke-width: 1.1978704525288377;" width="165.3061" x="720.3194" y="301.2245"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="8.7844" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="89.441" x="758.252" y="318.1627">«bounded record»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="11.9787" lengthAdjust="spacingAndGlyphs" textLength="150.9317" x="727.5067" y="340.9363">04 periodic timeline</text><line style="stroke: #607985; stroke-width: 1.1978704525288377;" x1="721.118" x2="884.827" y1="352.5458" y2="352.5458"/><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="12.7773" x="729.9024" y="370.1679">t0</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="38.3319" x="729.9024" y="391.8357">t0 + 2</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="38.3319" x="729.9024" y="413.5034">t0 + 4</text><text fill="#2E424D" font-family="DejaVu Sans Mono" font-size="10.3815" lengthAdjust="spacingAndGlyphs" textLength="38.3319" x="729.9024" y="435.1711">t0 + 6</text><!--MD5=[b5317db61bfa9ffb7f1583a47e1bca56]
link Periodic to Timeline--><path d="M580.1606,166.2405 C623.8669,207.0319 677.3239,256.9193 720.8385,297.5191 " fill="none" id="Periodic-&gt;Timeline" style="stroke: #607985; stroke-width: 1.0381543921916594;"/><polygon fill="#607985" points="723.6016,300.0905,720.5128,292.8573,720.6773,297.3718,716.1628,297.5363,723.6016,300.0905" style="stroke: #607985; stroke-width: 1.0381543921916594;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="11.1801" lengthAdjust="spacingAndGlyphs" textLength="95.8296" x="602.1295" y="181.202">vTaskDelayUntil</text><!--MD5=[9a13c79469e182d9ac760982ce00a3f7]
link Observer to Periodic--><path d="M196.6664,228.4499 C261.3514,198.3354 346.2245,158.8137 409.0648,129.5617 " fill="none" id="Observer-&gt;Periodic" style="stroke: #607985; stroke-width: 1.0381543921916594;"/><polygon fill="#607985" points="412.4508,127.9805,404.587,128.1266,408.8327,129.6696,407.2897,133.9154,412.4508,127.9805" style="stroke: #607985; stroke-width: 1.0381543921916594;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="11.1801" lengthAdjust="spacingAndGlyphs" textLength="83.0524" x="263.5315" y="130.3963">eTaskGetState</text><!--MD5=[6337c7a371cd26c61b81731d2523cb3f]
link Observer to Suspend--><path d="M196.6664,272.795 C261.2236,272.795 345.8891,272.795 408.6815,272.795 " fill="none" id="Observer-&gt;Suspend" style="stroke: #607985; stroke-width: 1.0381543921916594;"/><polygon fill="#607985" points="412.339,272.795,405.1517,269.6007,408.3461,272.795,405.1517,275.9894,412.339,272.795" style="stroke: #607985; stroke-width: 1.0381543921916594;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="11.1801" lengthAdjust="spacingAndGlyphs" textLength="172.4933" x="218.811" y="264.8053">eTaskGetState · vTaskResume</text><!--MD5=[8f4095da67caa2e1eabf447bb271ea1c]
link Observer to Timeline--><path d="M196.5546,315.8705 C257.2786,340.9618 338.4463,370.118 413.6646,382.9991 C486.4312,395.465 505.9645,384.5883 579.7693,382.9991 C624.4179,382.0408 674.0736,379.9965 715.1207,378.0399 " fill="none" id="Observer-&gt;Timeline" style="stroke: #607985; stroke-width: 1.0381543921916594;"/><polygon fill="#607985" points="718.874,377.8563,711.5403,375.0144,714.8858,378.05,711.8502,381.3955,718.874,377.8563" style="stroke: #607985; stroke-width: 1.0381543921916594;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="11.1801" lengthAdjust="spacingAndGlyphs" textLength="134.1615" x="429.6362" y="375.0094">verifies exact deltas</text><!--MD5=[b8379206f304b13281e1570a39728778]
@startuml
skinparam backgroundColor white
skinparam shadowing false
skinparam monochrome false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 14
skinparam defaultFontColor #24343D
skinparam titleFontName "DejaVu Sans Mono"
skinparam titleFontSize 13
skinparam titleFontColor #536B78
skinparam titleFontStyle plain
skinparam ArrowColor #607985
skinparam ArrowFontColor #425B67
skinparam ArrowThickness 1.3
skinparam LineThickness 1.3
skinparam nodesep 36
skinparam ranksep 42
skinparam Padding 6
skinparam classBackgroundColor #F5F8FA
skinparam classBorderColor #607985
skinparam classBorderThickness 1.5
skinparam classFontColor #1F3039
skinparam classFontSize 15
skinparam classAttributeFontColor #2E424D
skinparam classAttributeFontSize 13
skinparam classStereotypeFontColor #526B77
skinparam classStereotypeFontSize 11
skinparam minClassWidth 190
skinparam ClassAttributeIconSize 0
skinparam stateBackgroundColor #F5F8FA
skinparam stateBorderColor #607985
skinparam stateBorderThickness 1.5
skinparam stateFontColor #1F3039
skinparam stateFontSize 14
skinparam stateAttributeFontSize 13
skinparam noteBackgroundColor #F7F5ED
skinparam noteBorderColor #8A887C
skinparam noteFontColor #3E4B50
skinparam noteFontSize 12
skinparam ParticipantBackgroundColor #F5F8FA
skinparam ParticipantBorderColor #607985
skinparam ParticipantBorderThickness 1.5
skinparam ParticipantFontColor #1F3039
skinparam ParticipantFontSize 13
skinparam ActorBorderColor #607985
skinparam ActorFontColor #1F3039
skinparam LifeLineBorderColor #8297A1
skinparam LifeLineBackgroundColor #F9FBFC
skinparam SequenceArrowColor #607985
skinparam SequenceMessageAlign center
skinparam ParticipantPadding 18
skinparam BoxPadding 8
hide circle
hide empty members
scale 900 width
left to right direction
class "01 PeriodicContext" as Periodic <<C struct>> {
handle · created_handle
phase
initial_tick
release_tick[3]
entry_sp · stack range
}
class "02 SuspendContext" as Suspend <<C struct>> {
handle · created_handle
phase
resumed
entry_sp
}
class "03 ObserverContext" as Observer <<C struct>> {
handle
periodic_state : eTaskState
suspend_state : eTaskState
pass
}
class "04 periodic timeline" as Timeline <<bounded record>> {
t0
t0 + 2
t0 + 4
t0 + 6
}
Periodic - -> Timeline : vTaskDelayUntil
Observer - -> Periodic : eTaskGetState
Observer - -> Suspend : eTaskGetState · vTaskResume
Observer - -> Timeline : verifies exact deltas
@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>