93 lines
7.5 KiB
XML
93 lines
7.5 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="477.3551px" preserveAspectRatio="none" style="width:613px;height:477px;" version="1.1" viewBox="0 0 613 477" width="613.2609px" zoomAndPan="magnify"><defs/><g><!--MD5=[0b4e4b4980470ea387cc45de9bd14b5b]
|
|
class Application--><rect fill="#F5F8FA" height="91.7943" id="Application" style="stroke: #607985; stroke-width: 1.6847826086956523;" width="213.4058" x="51.6667" y="9.3899"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="12.3551" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="55.0362" x="130.8514" y="33.2132">«layer»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="16.8478" lengthAdjust="spacingAndGlyphs" textLength="171.8478" x="72.4457" y="65.2438">01 Application C</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="16.8478" lengthAdjust="spacingAndGlyphs" textLength="192.0652" x="62.337" y="84.8557">task01_first_task.c</text><!--MD5=[f9750b3f2f09b0a9be86a744d1742330]
|
|
class CAPI--><rect fill="#F5F8FA" height="91.7943" id="CAPI" style="stroke: #607985; stroke-width: 1.6847826086956523;" width="303.2609" x="6.7391" y="182.0576"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="12.3551" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="78.6232" x="119.058" y="205.8809">«boundary»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="16.8478" lengthAdjust="spacingAndGlyphs" textLength="181.9565" x="67.3913" y="237.9116">02 FreeRTOS C API</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="16.8478" lengthAdjust="spacingAndGlyphs" textLength="283.0435" x="16.8478" y="257.5235">TaskFunction_t · xTaskCreate</text><!--MD5=[a56a186a64fdd59048237ee22fac1723]
|
|
class Runtime--><rect fill="#F5F8FA" height="111.4063" id="Runtime" style="stroke: #607985; stroke-width: 1.6847826086956523;" width="272.9348" x="21.9022" y="354.7141"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="12.3551" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="70.7609" x="122.9891" y="378.5375">«runtime»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="16.8478" lengthAdjust="spacingAndGlyphs" textLength="232.5" x="42.1196" y="410.5681">03 Kernel + RV32I port</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="16.8478" lengthAdjust="spacingAndGlyphs" textLength="252.7174" x="32.0109" y="430.18">scheduler · tick · heap_4</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="16.8478" lengthAdjust="spacingAndGlyphs" textLength="111.1957" x="102.7717" y="449.7919">Hazard3 CPU</text><path d="M350.4348,192.0652 L350.4348,223.4583 L310.5504,227.9511 L350.4348,232.4438 L350.4348,263.844 A0,0 0 0 0 350.4348,263.844 L599.7826,263.844 A0,0 0 0 0 599.7826,263.844 L599.7826,203.2971 L588.5507,192.0652 L350.4348,192.0652 A0,0 0 0 0 350.4348,192.0652 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 1.1231884057971016;"/><path d="M588.5507,192.0652 L588.5507,203.2971 L599.7826,203.2971 L588.5507,192.0652 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 1.1231884057971016;"/><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="13.4783" lengthAdjust="spacingAndGlyphs" textLength="141.5217" x="363.913" y="216.9311">Public C contract.</text><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="13.4783" lengthAdjust="spacingAndGlyphs" textLength="212.2826" x="363.913" y="232.6207">Application does not depend</text><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="13.4783" lengthAdjust="spacingAndGlyphs" textLength="133.6594" x="363.913" y="248.3102">on TCB internals.</text><!--MD5=[e3b7ec1ac52dd22be1ed790126c7e198]
|
|
link Application to CAPI--><path d="M158.3696,101.6261 C158.3696,124.0562 158.3696,151.271 158.3696,174.5884 " fill="none" id="Application->CAPI" style="stroke: #607985; stroke-width: 1.4601449275362322;"/><polygon fill="#607985" points="158.3696,179.9909,162.8623,169.8822,158.3696,174.375,153.8768,169.8822,158.3696,179.9909" style="stroke: #607985; stroke-width: 1.4601449275362322;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="15.7246" lengthAdjust="spacingAndGlyphs" textLength="125.7971" x="166.2319" y="147.2333">requests tasks</text><!--MD5=[baa772a5f496014bf0b81eeab2506b5b]
|
|
link CAPI to Runtime--><path d="M158.3696,274.0917 C158.3696,296.196 158.3696,323.1862 158.3696,347.2225 " fill="none" id="CAPI->Runtime" style="stroke: #607985; stroke-width: 1.4601449275362322;"/><polygon fill="#607985" points="158.3696,352.5464,162.8623,342.4377,158.3696,346.9304,153.8768,342.4377,158.3696,352.5464" style="stroke: #607985; stroke-width: 1.4601449275362322;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="15.7246" lengthAdjust="spacingAndGlyphs" textLength="134.7826" x="166.2319" y="319.8898">owns scheduling</text><!--MD5=[8767280e6fafb101c08fb239bf4ae53d]
|
|
@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 620 width
|
|
top to bottom direction
|
|
|
|
class "01 Application C\ntask01_first_task.c" as Application <<layer>>
|
|
class "02 FreeRTOS C API\nTaskFunction_t · xTaskCreate" as CAPI <<boundary>>
|
|
class "03 Kernel + RV32I port\nscheduler · tick · heap_4\nHazard3 CPU" as Runtime <<runtime>>
|
|
|
|
Application - -> CAPI : requests tasks
|
|
CAPI - -> Runtime : owns scheduling
|
|
|
|
note right of CAPI
|
|
Public C contract.
|
|
Application does not depend
|
|
on TCB internals.
|
|
end note
|
|
@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> |