Files

55 lines
9.0 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="520.7272px" preserveAspectRatio="none" style="width:427px;height:520px;" version="1.1" viewBox="0 0 427 520" width="427.6503px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="355.5367" x="39.4109" y="10.1185">A7 RUNTIME — three stacks and context-selected return</text><rect fill="#EDF6FA" height="60.8196" style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" width="171.0601" x="163.136" y="364.2011"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="87.2071" x="205.0625" y="375.9966">01 waiter TCB</text><line style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" x1="163.9746" x2="333.3576" y1="380.2446" y2="380.2446"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="80.4989" x="168.1672" y="393.7171">priority = 3</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="60.3742" x="168.1672" y="406.4064">waiter_sp</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="160.9978" x="168.1672" y="419.0958">state: Blocked → Running</text><rect fill="#EDF6FA" height="60.8196" style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" width="177.7684" x="227.7028" y="19.4059"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="100.6236" x="266.2752" y="31.2015">02 stimulus TCB</text><line style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" x1="228.5414" x2="404.6327" y1="35.4494" y2="35.4494"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="80.4989" x="232.734" y="48.922">priority = 2</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="73.7906" x="232.734" y="61.6113">stimulus_sp</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="167.706" x="232.734" y="74.3006">interrupted after SET_IRQ</text><rect fill="#EDF6FA" height="60.8196" style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" width="157.6436" x="176.5525" y="144.7913"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="80.4989" x="215.1249" y="156.5869">03 xISRStack</text><line style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" x1="177.391" x2="333.3576" y1="160.8348" y2="160.8348"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="40.2494" x="181.5837" y="174.3074">isr_sp</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="127.4566" x="181.5837" y="186.9967">mcause = 0x8000000b</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="147.5813" x="181.5837" y="199.686">source_after_clear = 0</text><rect fill="#EDF6FA" height="29.4599" style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" width="139.196" x="192.4846" y="270.1767"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="127.4566" x="198.3543" y="281.9723">04 binary semaphore</text><line style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" x1="193.3231" x2="330.842" y1="286.2202" y2="286.2202"/><rect fill="#EDF6FA" height="35.441" style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" width="211.3096" x="207.5781" y="476.17"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="93.9154" x="266.2752" y="487.9655">05 evidence[9]</text><line style="stroke: #2B6F8E; stroke-width: 1.2577950791791073;" x1="208.4166" x2="418.0492" y1="492.2135" y2="492.2135"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="201.2472" x="212.6093" y="505.686">E07 waiter before E08 stimulus</text><!--MD5=[b7e71f7141b02c58c904389e905337d6]
link Stimulus to ISR--><path d="M301.7702,80.6019 C292.9656,98.3871 281.7713,121.0274 272.5726,139.6008 " fill="none" id="Stimulus-&gt;ISR" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><polygon fill="#8295A0" points="270.7278,143.3407,277.0826,138.0662,272.5884,139.5835,271.0711,135.0893,270.7278,143.3407" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="60.3742" x="288.6556" y="116.3374">interrupt</text><!--MD5=[543c5bbe781d98d8f2f3d49b22d318ca]
link ISR to Sem--><path d="M257.2275,205.8447 C258.393,224.5859 259.8605,248.2324 260.8751,264.5921 " fill="none" id="ISR-&gt;Sem" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><polygon fill="#8295A0" points="261.1183,268.5751,263.9909,260.8323,260.8545,264.3908,257.296,261.2543,261.1183,268.5751" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="73.7906" x="260.3636" y="241.7228">GiveFromISR</text><!--MD5=[73d18557beaa1ebac0bafb58cabd0786]
link Sem to Waiter--><path d="M260.33,299.8691 C258.4853,314.7278 255.5085,338.6846 253.0264,358.6752 " fill="none" id="Sem-&gt;Waiter" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><polygon fill="#8295A0" points="252.5317,362.675,256.8085,355.6101,253.0591,358.5156,250.1536,354.7662,252.5317,362.675" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="46.9577" x="257.8145" y="335.7472">unblock</text><!--MD5=[4d2bc5b9e47152e661298c7abd7751c2]
link ISR to Waiter--><path d="M176.368,184.0597 C120.9999,194.273 50.6975,217.4667 14.7162,270.1767 C-26.8246,331.0289 75.5264,364.1508 157.7694,380.3931 " fill="none" id="ISR-&gt;Waiter" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><polygon fill="#8295A0" points="161.6602,381.1562,154.8806,376.4402,157.5427,380.3662,153.6166,383.0282,161.6602,381.1562" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="10.9009" lengthAdjust="spacingAndGlyphs" textLength="160.9978" x="15.5547" y="288.7392">restore selected context</text><!--MD5=[5e057b0a8dad3f09c9d5a69954f37c37]
link Waiter to Evidence--><path d="M268.3883,425.2629 C278.2494,440.1719 289.9721,457.8817 298.9527,471.4659 " fill="none" id="Waiter-&gt;Evidence" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><polygon fill="#8295A0" points="301.1832,474.8452,299.8072,466.702,298.8659,471.3511,294.2168,470.4098,301.1832,474.8452" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><!--MD5=[e04e511a3d6ba16d5e8f40dc15b06440]
link Stimulus to Evidence--><path d="M341.4662,80.6103 C358.7315,104.458 378.6382,139.5254 378.6382,174.3579 C378.6382,174.3579 378.6382,174.3579 378.6382,395.4531 C378.6382,425.9253 356.3753,454.0664 337.8186,472.2206 " fill="none" id="Stimulus-&gt;Evidence" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><polygon fill="#8295A0" points="334.8502,475.0632,342.6223,472.2705,337.88,472.1651,337.9854,467.4228,334.8502,475.0632" style="stroke: #8295A0; stroke-width: 0.8385300527860715;"/><!--MD5=[7cbb59bf83159d30751aec88f810183a]
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam objectBorderColor #2b6f8e
skinparam objectBackgroundColor #edf6fa
skinparam ArrowColor #8295a0
top to bottom direction
title A7 RUNTIME — three stacks and context-selected return
object "01 waiter TCB" as Waiter {
priority = 3
waiter_sp
state: Blocked → Running
}
object "02 stimulus TCB" as Stimulus {
priority = 2
stimulus_sp
interrupted after SET_IRQ
}
object "03 xISRStack" as ISR {
isr_sp
mcause = 0x8000000b
source_after_clear = 0
}
object "04 binary semaphore" as Sem
object "05 evidence[9]" as Evidence {
E07 waiter before E08 stimulus
}
Stimulus - -> ISR : interrupt
ISR - -> Sem : GiveFromISR
Sem - -> Waiter : unblock
ISR - -> Waiter : restore selected context
Waiter - -> Evidence
Stimulus - -> Evidence
@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>