Files
lab-rv32i-freertos-c-static…/web/figures/a5-flow.svg
T

38 lines
12 KiB
XML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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="551.9646px" preserveAspectRatio="none" style="width:801px;height:551px;" version="1.1" viewBox="0 0 801 551" width="801.4101px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="303.5805" x="248.1187" y="23.0964">A5 FLOW — four heap checkpoints and equal behavior</text><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="29.7212" x2="29.7212" y1="65.7727" y2="511.3595"/><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="204.8638" x2="204.8638" y1="65.7727" y2="511.3595"/><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="309.9493" x2="309.9493" y1="65.7727" y2="511.3595"/><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="499.4218" x2="499.4218" y1="65.7727" y2="511.3595"/><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="642.7203" x2="642.7203" y1="65.7727" y2="511.3595"/><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="42.4588" x="8.4918" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="27.5982" x="15.9221" y="53.8599">main</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="42.4588" x="8.4918" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="27.5982" x="15.9221" y="530.2101">main</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="104.0241" x="152.8517" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="89.1635" x="160.282" y="53.8599">dynamic objects</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="104.0241" x="152.8517" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="89.1635" x="160.282" y="530.2101">dynamic objects</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="85.9791" x="267.4905" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="71.1185" x="274.9208" y="53.8599">static objects</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="85.9791" x="267.4905" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="71.1185" x="274.9208" y="530.2101">static objects</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="125.2535" x="436.795" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="110.3929" x="444.2253" y="53.8599">scheduler / daemon</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="125.2535" x="436.795" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="110.3929" x="444.2253" y="530.2101">scheduler / daemon</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="55.1965" x="615.122" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="40.3359" x="622.5523" y="53.8599">verifier</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="55.1965" x="615.122" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="40.3359" x="622.5523" y="530.2101">verifier</text><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="29.7212" x2="74.3029" y1="98.6591" y2="98.6591"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="74.3029" x2="74.3029" y1="98.6591" y2="112.4582"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="30.7826" x2="74.3029" y1="112.4582" y2="112.4582"/><polygon fill="#8095A1" points="41.3973,108.2123,30.7826,112.4582,41.3973,116.7041,37.1515,112.4582" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="135.8682" x="37.1515" y="93.115">01 H0 after static verifier</text><polygon fill="#8095A1" points="192.1261,138.9757,202.7408,143.2216,192.1261,147.4675,196.372,143.2216" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="29.7212" x2="198.4949" y1="143.2216" y2="143.2216"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="149.6673" x="37.1515" y="137.6776">create task + queue + timer</text><polygon fill="#8095A1" points="41.3973,169.7391,30.7826,173.985,41.3973,178.2309,37.1515,173.985" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748; stroke-dasharray: 2.0,2.0;" x1="35.0285" x2="203.8023" y1="173.985" y2="173.985"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="58.3809" x="47.7662" y="168.441">02 H1 &lt; H0</text><polygon fill="#8095A1" points="297.7424,200.5025,308.3571,204.7484,297.7424,208.9943,301.9883,204.7484" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="29.7212" x2="304.1112" y1="204.7484" y2="204.7484"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="176.2041" x="37.1515" y="199.2044">createStatic with named buffers</text><polygon fill="#8095A1" points="41.3973,231.2659,30.7826,235.5118,41.3973,239.7577,37.1515,235.5118" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748; stroke-dasharray: 2.0,2.0;" x1="35.0285" x2="309.4186" y1="235.5118" y2="235.5118"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="58.3809" x="47.7662" y="229.9678">03 H2 = H1</text><polygon fill="#8095A1" points="486.6841,262.0294,497.2988,266.2752,486.6841,270.5211,490.93,266.2752" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="29.7212" x2="493.053" y1="266.2752" y2="266.2752"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="82.7947" x="37.1515" y="260.7312">start scheduler</text><polygon fill="#8095A1" points="216.5399,292.7928,205.9252,297.0387,216.5399,301.2845,212.2941,297.0387" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="210.1711" x2="498.3603" y1="297.0387" y2="297.0387"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="163.4664" x="222.9088" y="291.4946">04 receive 0xCAFE; start timer</text><polygon fill="#8095A1" points="322.1562,323.5562,311.5415,327.8021,322.1562,332.0479,317.9104,327.8021" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="315.7874" x2="498.3603" y1="327.8021" y2="327.8021"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="163.4664" x="328.5251" y="322.258">05 receive 0xCAFE; start timer</text><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="499.4218" x2="544.0035" y1="358.5655" y2="358.5655"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="544.0035" x2="544.0035" y1="358.5655" y2="372.3646"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="500.4832" x2="544.0035" y1="372.3646" y2="372.3646"/><polygon fill="#8095A1" points="511.0979,368.1187,500.4832,372.3646,511.0979,376.6105,506.8521,372.3646" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="128.4379" x="506.8521" y="353.0214">06 dynamic callback = 1</text><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="499.4218" x2="544.0035" y1="403.128" y2="403.128"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="544.0035" x2="544.0035" y1="403.128" y2="416.9271"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="500.4832" x2="544.0035" y1="416.9271" y2="416.9271"/><polygon fill="#8095A1" points="511.0979,412.6812,500.4832,416.9271,511.0979,421.173,506.8521,416.9271" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="110.3929" x="506.8521" y="397.584">07 static callback = 1</text><polygon fill="#8095A1" points="629.9826,443.4447,640.5973,447.6905,629.9826,451.9364,634.2285,447.6905" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="499.4218" x2="636.3514" y1="447.6905" y2="447.6905"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="63.6882" x="506.8521" y="442.1465">run verifier</text><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="642.7203" x2="687.302" y1="478.4539" y2="478.4539"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="687.302" x2="687.302" y1="478.4539" y2="492.2531"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="643.7817" x2="687.302" y1="492.2531" y2="492.2531"/><polygon fill="#8095A1" points="654.3964,488.0072,643.7817,492.2531,654.3964,496.4989,650.1506,492.2531" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="139.0526" x="650.1506" y="472.9099">08 H3 = H2; PASS + digest</text><!--MD5=[5a7001c2381e225337d47e91fae9d146]
@startuml
scale 540 height
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 11
skinparam sequenceArrowColor #8095a1
title A5 FLOW — four heap checkpoints and equal behavior
participant main as M
participant "dynamic objects" as D
participant "static objects" as S
participant "scheduler / daemon" as K
participant verifier as V
M -> M : 01 H0 after static verifier
M -> D : create task + queue + timer
D - -> M : 02 H1 < H0
M -> S : createStatic with named buffers
S - -> M : 03 H2 = H1
M -> K : start scheduler
K -> D : 04 receive 0xCAFE; start timer
K -> S : 05 receive 0xCAFE; start timer
K -> K : 06 dynamic callback = 1
K -> K : 07 static callback = 1
K -> V : run verifier
V -> V : 08 H3 = H2; PASS + digest
@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>