Files
lab-rv32i-freertos-c-notifi…/doc/assets/a6-state.svg
T

48 lines
15 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="700.2719px" preserveAspectRatio="none" style="width:121px;height:700px;" version="1.1" viewBox="0 0 121 700" width="121.8946px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="116.0901" x="0.8292" y="5.3186">A6 STATE — value and pending are separate state</text><ellipse cx="37.522" cy="14.2393" fill="#000000" rx="4.1461" ry="4.1461" style="stroke: none; stroke-width: 0.4146074215970701;"/><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="34.4124" x="20.3158" y="50.7248"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="20.3158" x2="54.7282" y1="61.6472" y2="61.6472"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="26.1203" x="24.4618" y="58.1164">ClearCount</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="39.3877" x="17.8281" y="103.7945"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="17.8281" x2="57.2158" y1="114.717" y2="114.717"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="31.0956" x="21.9742" y="111.1862">WaitingCount</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="24.8764" x="25.0837" y="156.8643"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="25.0837" x2="49.9602" y1="167.7867" y2="167.7867"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="16.5843" x="29.2298" y="164.2559">Count3</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="43.5338" x="15.7551" y="209.934"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="15.7551" x2="59.2889" y1="220.8565" y2="220.8565"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="35.2416" x="19.9012" y="217.3257">ClearOverwrite</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="48.5091" x="13.2674" y="263.0038"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="13.2674" x2="61.7765" y1="273.9262" y2="273.9262"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="40.2169" x="17.4135" y="270.3954">WaitingOverwrite</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="26.9495" x="24.0472" y="316.0735"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="24.0472" x2="50.9967" y1="326.996" y2="326.996"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="18.6573" x="28.1933" y="323.4652">Value11</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="26.9495" x="24.0472" y="369.1433"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="24.0472" x2="50.9967" y1="380.0657" y2="380.0657"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="18.6573" x="28.1933" y="376.5349">Value22</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="29.4371" x="22.8034" y="422.213"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="22.8034" x2="52.2405" y1="433.1355" y2="433.1355"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="21.145" x="26.9495" y="429.6047">ClearBits</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="34.4124" x="20.3158" y="475.2828"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="20.3158" x2="54.7282" y1="486.2052" y2="486.2052"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="26.1203" x="24.4618" y="482.6744">WaitingBits</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="22.8034" x="26.1203" y="528.3525"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="26.1203" x2="48.9237" y1="539.275" y2="539.275"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="14.5113" x="30.2663" y="535.7442">Bits04</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="22.8034" x="26.1203" y="581.4223"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="26.1203" x2="48.9237" y1="592.3447" y2="592.3447"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="14.5113" x="30.2663" y="588.8139">Bits24</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="33.1686" x="20.9377" y="634.492"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="20.9377" x2="54.1063" y1="645.4145" y2="645.4145"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="24.8764" x="25.0837" y="641.8837">ClearDone</text><ellipse cx="37.522" cy="691.7079" fill="none" rx="4.1461" ry="4.1461" style="stroke: #000000; stroke-width: 0.4146074215970701;"/><ellipse cx="37.7293" cy="691.9152" fill="#000000" rx="2.4876" ry="2.4876" style="stroke: none; stroke-width: 0.4146074215970701;"/><!--MD5=[aa79c0dfa7f5fc89022f46b76edeca62]
link *start to ClearCount--><path d="M37.522,18.5761 C37.522,25.015 37.522,38.0917 37.522,47.9718 " fill="none" id="*start-&gt;ClearCount" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,50.0365,39.1804,46.3051,37.522,47.9635,35.8635,46.3051,37.522,50.0365" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="56.8012" x="37.9366" y="36.5569">01 value=0 / not pending</text><!--MD5=[b52e7986f564b39b084ae4518af87ccf]
link ClearCount to WaitingCount--><path d="M37.522,71.5754 C37.522,79.9961 37.522,92.0487 37.522,101.112 " fill="none" id="ClearCount-&gt;WaitingCount" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,103.0773,39.1804,99.3458,37.522,101.0042,35.8635,99.3458,37.522,103.0773" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="16.5843" x="37.9366" y="89.6266">03 wait</text><!--MD5=[4145ed3142cf9d3319e10df67184b58f]
link WaitingCount to Count3--><path d="M37.522,124.6451 C37.522,133.0658 37.522,145.1184 37.522,154.1818 " fill="none" id="WaitingCount-&gt;Count3" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,156.147,39.1804,152.4155,37.522,154.074,35.8635,152.4155,37.522,156.147" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="32.754" x="37.9366" y="142.6964">04 three gives</text><!--MD5=[e16867f4c55c58ba9da07ab4b1e7d7eb]
link Count3 to ClearOverwrite--><path d="M37.522,177.7149 C37.522,186.1356 37.522,198.1882 37.522,207.2515 " fill="none" id="Count3-&gt;ClearOverwrite" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,209.2168,39.1804,205.4853,37.522,207.1437,35.8635,205.4853,37.522,209.2168" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="60.9473" x="37.9366" y="195.7661">05 take(pdTRUE) returns 3</text><!--MD5=[d6050c75e9622cfe67786c79099a4008]
link ClearOverwrite to WaitingOverwrite--><path d="M37.522,230.7846 C37.522,239.2053 37.522,251.2579 37.522,260.3213 " fill="none" id="ClearOverwrite-&gt;WaitingOverwrite" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,262.2865,39.1804,258.555,37.522,260.2135,35.8635,258.555,37.522,262.2865" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="16.5843" x="37.9366" y="248.8359">06 wait</text><!--MD5=[2901087193876a3d6403d63aa8fe6a7f]
link WaitingOverwrite to Value11--><path d="M37.522,283.8544 C37.522,292.2751 37.522,304.3277 37.522,313.391 " fill="none" id="WaitingOverwrite-&gt;Value11" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,315.3563,39.1804,311.6248,37.522,313.2832,35.8635,311.6248,37.522,315.3563" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="34.4124" x="37.9366" y="301.9056">overwrite 0x11</text><!--MD5=[3037f5bf8c5e6df15638f7820ae6f023]
link Value11 to Value22--><path d="M37.522,336.9241 C37.522,345.3448 37.522,357.3974 37.522,366.4608 " fill="none" id="Value11-&gt;Value22" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,368.426,39.1804,364.6945,37.522,366.353,35.8635,364.6945,37.522,368.426" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="34.4124" x="37.9366" y="354.9753">overwrite 0x22</text><!--MD5=[c1dc7af154e6bb9e545f1a1805bad967]
link Value22 to ClearBits--><path d="M37.522,389.9939 C37.522,398.4146 37.522,410.4672 37.522,419.5305 " fill="none" id="Value22-&gt;ClearBits" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,421.4958,39.1804,417.7643,37.522,419.4227,35.8635,417.7643,37.522,421.4958" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="47.2652" x="37.9366" y="408.0451">08 wait returns 0x22</text><!--MD5=[65ddf8f0c153482801c350cf97d660ef]
link ClearBits to WaitingBits--><path d="M37.522,443.0636 C37.522,451.4843 37.522,463.5369 37.522,472.6003 " fill="none" id="ClearBits-&gt;WaitingBits" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,474.5655,39.1804,470.834,37.522,472.4925,35.8635,470.834,37.522,474.5655" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="16.5843" x="37.9366" y="461.1148">09 wait</text><!--MD5=[24839fcc82c40bd30bbf99a6a6884882]
link WaitingBits to Bits04--><path d="M37.522,496.1334 C37.522,504.5541 37.522,516.6067 37.522,525.67 " fill="none" id="WaitingBits-&gt;Bits04" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,527.6353,39.1804,523.9038,37.522,525.5622,35.8635,523.9038,37.522,527.6353" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="19.4865" x="37.9366" y="514.1846">set 0x04</text><!--MD5=[7f356506a04720f9dbc97330ceca7dea]
link Bits04 to Bits24--><path d="M37.522,549.2031 C37.522,557.6238 37.522,569.6764 37.522,578.7398 " fill="none" id="Bits04-&gt;Bits24" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,580.705,39.1804,576.9735,37.522,578.632,35.8635,576.9735,37.522,580.705" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="19.0719" x="37.9366" y="567.2543">OR 0x20</text><!--MD5=[d8f8d90a6ce6015c029527d831e1e56e]
link Bits24 to ClearDone--><path d="M37.522,602.2729 C37.522,610.6936 37.522,622.7462 37.522,631.8095 " fill="none" id="Bits24-&gt;ClearDone" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,633.7748,39.1804,630.0433,37.522,631.7017,35.8635,630.0433,37.522,633.7748" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="47.2652" x="37.9366" y="620.3241">11 wait returns 0x24</text><!--MD5=[7fa83533cf7de79a685fa05b81ee1065]
link ClearDone to *end--><path d="M37.522,655.3717 C37.522,664.3272 37.522,677.1385 37.522,684.7963 " fill="none" id="ClearDone-&gt;*end" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,686.7409,39.1804,683.0094,37.522,684.6678,35.8635,683.0094,37.522,686.7409" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="19.0719" x="37.9366" y="673.3938">12 PASS</text><!--MD5=[846cdcac35d037402c206a6561bdab6e]
@startuml
scale 700 height
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 12
skinparam stateBorderColor #2c7794
skinparam stateBackgroundColor #edf6fa
title A6 STATE — value and pending are separate state
[*] - -> ClearCount : 01 value=0 / not pending
ClearCount - -> WaitingCount : 03 wait
WaitingCount - -> Count3 : 04 three gives
Count3 - -> ClearOverwrite : 05 take(pdTRUE) returns 3
ClearOverwrite - -> WaitingOverwrite : 06 wait
WaitingOverwrite - -> Value11 : overwrite 0x11
Value11 - -> Value22 : overwrite 0x22
Value22 - -> ClearBits : 08 wait returns 0x22
ClearBits - -> WaitingBits : 09 wait
WaitingBits - -> Bits04 : set 0x04
Bits04 - -> Bits24 : OR 0x20
Bits24 - -> ClearDone : 11 wait returns 0x24
ClearDone - -> [*] : 12 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>