96 lines
14 KiB
XML
96 lines
14 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="548.4824px" preserveAspectRatio="none" style="width:893px;height:548px;" version="1.1" viewBox="0 0 893 548" width="893.5304px" zoomAndPan="magnify"><defs/><g><line style="stroke: #A80036; stroke-width: 0.7188498402555911; stroke-dasharray: 5.0,5.0;" x1="92.0128" x2="92.0128" y1="32.4437" y2="512.2423"/><line style="stroke: #A80036; stroke-width: 0.7188498402555911; stroke-dasharray: 5.0,5.0;" x1="271.7252" x2="271.7252" y1="32.4437" y2="512.2423"/><line style="stroke: #A80036; stroke-width: 0.7188498402555911; stroke-dasharray: 5.0,5.0;" x1="451.4377" x2="451.4377" y1="32.4437" y2="512.2423"/><line style="stroke: #A80036; stroke-width: 0.7188498402555911; stroke-dasharray: 5.0,5.0;" x1="631.1502" x2="631.1502" y1="32.4437" y2="512.2423"/><line style="stroke: #A80036; stroke-width: 0.7188498402555911; stroke-dasharray: 5.0,5.0;" x1="812.3003" x2="812.3003" y1="32.4437" y2="512.2423"/><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="18.6901" y="2.1565"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="23.0032" x="80.5112" y="20.1759">main</text><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="18.6901" y="511.5234"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="23.0032" x="80.5112" y="529.5428">main</text><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="198.4026" y="2.1565"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="46.0064" x="248.722" y="20.1759">periodic</text><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="198.4026" y="511.5234"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="46.0064" x="248.722" y="529.5428">periodic</text><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="378.115" y="2.1565"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="80.5112" x="411.1821" y="20.1759">suspend_target</text><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="378.115" y="511.5234"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="80.5112" x="411.1821" y="529.5428">suspend_target</text><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="557.8275" y="2.1565"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="46.0064" x="608.147" y="20.1759">observer</text><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="557.8275" y="511.5234"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="46.0064" x="608.147" y="529.5428">observer</text><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="738.9776" y="2.1565"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="103.5144" x="760.5431" y="20.1759">FreeRTOS scheduler</text><rect fill="#F5F8FA" height="29.5683" style="stroke: #607985; stroke-width: 1.0782747603833867;" width="146.6454" x="738.9776" y="511.5234"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="9.345" lengthAdjust="spacingAndGlyphs" textLength="103.5144" x="760.5431" y="529.5428">FreeRTOS scheduler</text><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="92.0128" x2="122.2045" y1="64.2865" y2="64.2865"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="122.2045" x2="122.2045" y1="64.2865" y2="73.6316"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="92.7316" x2="122.2045" y1="73.6316" y2="73.6316"/><polygon fill="#607985" points="99.9201,70.7562,92.7316,73.6316,99.9201,76.507,97.0447,73.6316" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="149.5208" x="101.3578" y="56.1622">01 configuration committed</text><polygon fill="#607985" points="803.6741,101.1613,810.8626,104.0367,803.6741,106.9121,806.5495,104.0367" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="92.0128" x2="807.9872" y1="104.0367" y2="104.0367"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="178.2748" x="363.0192" y="95.9124">02 create three tasks and start</text><polygon fill="#607985" points="279.6326,131.5664,272.4441,134.4418,279.6326,137.3172,276.7572,134.4418" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="275.3195" x2="811.5815" y1="134.4418" y2="134.4418"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="149.5208" x="467.2524" y="126.3175">03 highest Ready task runs</text><polygon fill="#607985" points="803.6741,161.9715,810.8626,164.8469,803.6741,167.7223,806.5495,164.8469" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="271.7252" x2="807.9872" y1="164.8469" y2="164.8469"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="132.2684" x="475.8786" y="156.7226">vTaskDelayUntil(t0 + 2)</text><polygon fill="#607985" points="459.345,192.3766,452.1565,195.252,459.345,198.1274,456.4696,195.252" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="455.0319" x2="811.5815" y1="195.252" y2="195.252"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="69.0096" x="597.3642" y="187.1277">self-suspend</text><polygon fill="#607985" points="639.0575,222.7817,631.869,225.6571,639.0575,228.5325,636.1821,225.6571" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="634.7444" x2="811.5815" y1="225.6571" y2="225.6571"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="155.2716" x="644.0895" y="217.5328">04 sees Blocked + Suspended</text><polygon fill="#607985" points="803.6741,253.1868,810.8626,256.0622,803.6741,258.9376,806.5495,256.0622" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="631.1502" x2="807.9872" y1="256.0622" y2="256.0622"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="155.2716" x="644.0895" y="247.9379">vTaskResume(suspend_target)</text><polygon fill="#607985" points="459.345,283.5919,452.1565,286.4673,459.345,289.3427,456.4696,286.4673" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="455.0319" x2="811.5815" y1="286.4673" y2="286.4673"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="132.2684" x="565.7348" y="278.343">05 resumed; self-delete</text><polygon fill="#607985" points="279.6326,313.997,272.4441,316.8724,279.6326,319.7478,276.7572,316.8724" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="275.3195" x2="811.5815" y1="316.8724" y2="316.8724"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="115.016" x="484.5048" y="308.7481">06 release at t0 + 2</text><polygon fill="#607985" points="803.6741,344.4021,810.8626,347.2775,803.6741,350.1529,806.5495,347.2775" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="271.7252" x2="807.9872" y1="347.2775" y2="347.2775"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="132.2684" x="475.8786" y="339.1532">vTaskDelayUntil(t0 + 4)</text><polygon fill="#607985" points="279.6326,374.8072,272.4441,377.6826,279.6326,380.558,276.7572,377.6826" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="275.3195" x2="811.5815" y1="377.6826" y2="377.6826"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="115.016" x="484.5048" y="369.5583">07 release at t0 + 4</text><polygon fill="#607985" points="803.6741,405.2123,810.8626,408.0877,803.6741,410.9631,806.5495,408.0877" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="271.7252" x2="807.9872" y1="408.0877" y2="408.0877"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="132.2684" x="475.8786" y="399.9634">vTaskDelayUntil(t0 + 6)</text><polygon fill="#607985" points="279.6326,435.6174,272.4441,438.4928,279.6326,441.3682,276.7572,438.4928" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="275.3195" x2="811.5815" y1="438.4928" y2="438.4928"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="115.016" x="484.5048" y="430.3685">08 release at t0 + 6</text><polygon fill="#607985" points="803.6741,466.0225,810.8626,468.8979,803.6741,471.7733,806.5495,468.8979" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="271.7252" x2="807.9872" y1="468.8979" y2="468.8979"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="161.0224" x="461.5016" y="460.7736">09 clear handle; self-delete</text><polygon fill="#607985" points="639.0575,496.4276,631.869,499.303,639.0575,502.1784,636.1821,499.303" style="stroke: #607985; stroke-width: 0.7188498402555911;"/><line style="stroke: #607985; stroke-width: 0.9345047923322685;" x1="634.7444" x2="811.5815" y1="499.303" y2="499.303"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="10.0639" lengthAdjust="spacingAndGlyphs" textLength="155.2716" x="644.0895" y="491.1787">10 verify timeline and PASS</text><!--MD5=[c776b8747b931783d988403e82e4a605]
|
|
@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
|
|
|
|
participant main
|
|
participant periodic
|
|
participant suspend_target
|
|
participant observer
|
|
participant "FreeRTOS scheduler" as Scheduler
|
|
|
|
main -> main : 01 configuration committed
|
|
main -> Scheduler : 02 create three tasks and start
|
|
Scheduler -> periodic : 03 highest Ready task runs
|
|
periodic -> Scheduler : vTaskDelayUntil(t0 + 2)
|
|
Scheduler -> suspend_target : self-suspend
|
|
Scheduler -> observer : 04 sees Blocked + Suspended
|
|
observer -> Scheduler : vTaskResume(suspend_target)
|
|
Scheduler -> suspend_target : 05 resumed; self-delete
|
|
Scheduler -> periodic : 06 release at t0 + 2
|
|
periodic -> Scheduler : vTaskDelayUntil(t0 + 4)
|
|
Scheduler -> periodic : 07 release at t0 + 4
|
|
periodic -> Scheduler : vTaskDelayUntil(t0 + 6)
|
|
Scheduler -> periodic : 08 release at t0 + 6
|
|
periodic -> Scheduler : 09 clear handle; self-delete
|
|
Scheduler -> observer : 10 verify timeline and PASS
|
|
@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> |