feat: publish FreeRTOS C FC02 card
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
<?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="144.7478px" preserveAspectRatio="none" style="width:896px;height:144px;" version="1.1" viewBox="0 0 896 144" width="896.2611px" zoomAndPan="magnify"><defs/><g><!--MD5=[687e0e93109a4e3b835e34cee365dc7c]
|
||||
class Callback--><rect fill="#F5F8FA" height="43.6522" id="Callback" style="stroke: #607985; stroke-width: 0.8011869436201781;" width="101.4837" x="227.5371" y="4.3211"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="5.8754" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="26.1721" x="265.1929" y="15.6501">«C ABI»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="86.5282" x="235.0148" y="30.882">01 TaskFunction_t</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="72.1068" x="242.2255" y="40.2083">void (*)(void*)</text><!--MD5=[af7d543b6251b12f84b8a2da20750b1a]
|
||||
class Create--><rect fill="#F5F8FA" height="43.6522" id="Create" style="stroke: #607985; stroke-width: 0.8011869436201781;" width="101.4837" x="432.6409" y="4.3211"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="5.8754" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="37.3887" x="464.6884" y="15.6501">«boundary»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="72.1068" x="447.3294" y="30.882">02 xTaskCreate</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="76.9139" x="444.9258" y="40.2083">entry + &workerA</text><!--MD5=[96293e8b231702a792e4ba32419ac2da]
|
||||
class Entry--><rect fill="#F5F8FA" height="43.6522" id="Entry" style="stroke: #607985; stroke-width: 0.8011869436201781;" width="101.4837" x="637.7448" y="4.3211"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="5.8754" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="33.6499" x="671.6617" y="15.6501">«runtime»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="86.5282" x="645.2226" y="30.882">03 callback entry</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="81.7211" x="647.6261" y="40.2083">a0 = pvParameters</text><!--MD5=[b8828fe7ac3f9c4eb842b546e8e5efdc]
|
||||
class Cast--><rect fill="#F5F8FA" height="52.9785" id="Cast" style="stroke: #607985; stroke-width: 0.8011869436201781;" width="149.0208" x="464.9555" y="86.4267"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="5.8754" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="11.2166" x="533.8576" y="97.7557">«C»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="81.7211" x="498.6053" y="112.9877">04 typed pointer</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="110.5638" x="484.184" y="122.314">WorkerContext *worker =</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="139.4065" x="469.7626" y="131.6403">(WorkerContext *)pvParameters</text><!--MD5=[482411d91ae66d861cdea1bfa312d1e2]
|
||||
class Work--><rect fill="#F5F8FA" height="43.6522" id="Work" style="stroke: #607985; stroke-width: 0.8011869436201781;" width="110.5638" x="276.4095" y="91.0896"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="5.8754" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="48.6053" x="307.3887" y="102.4186">«application»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="100.9496" x="281.2166" y="117.6506">05 typed calculation</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="96.1424" x="283.6202" y="126.9769">worker->result = sum</text><!--MD5=[955ec29e801e64f81c420d0efefda74f]
|
||||
class Hazard--><rect fill="#F5F8FA" height="43.6522" id="Hazard" style="stroke: #607985; stroke-width: 0.8011869436201781;" width="144.2136" x="3.2047" y="91.0896"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="5.8754" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="74.7774" x="37.9228" y="102.4186">«compile-time check»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="105.7567" x="22.4332" y="117.6506">06 wrong-cast exhibit</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="8.0119" lengthAdjust="spacingAndGlyphs" textLength="134.5994" x="8.0119" y="126.9769">C cannot verify context type</text><path d="M633.2047,99.5822 L633.2047,126.255 A0,0 0 0 0 633.2047,126.255 L890.1187,126.255 A0,0 0 0 0 890.1187,126.255 L890.1187,104.9234 L884.7774,99.5822 L752.7899,99.5822 L706.7644,48.0872 L748.5169,99.5822 L633.2047,99.5822 A0,0 0 0 0 633.2047,99.5822 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.5341246290801187;"/><path d="M884.7774,99.5822 L884.7774,104.9234 L890.1187,104.9234 L884.7774,99.5822 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.5341246290801187;"/><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="6.4095" lengthAdjust="spacingAndGlyphs" textLength="213.1157" x="639.6142" y="111.407">RV32 ILP32 ABI carries the first callback argument in a0.</text><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="6.4095" lengthAdjust="spacingAndGlyphs" textLength="239.2878" x="639.6142" y="118.8681">The explicit C cast documents intent; it performs no type check.</text><!--MD5=[1ff83926f444d43e448833f6dd9e777f]
|
||||
link Callback to Create--><path d="M329.2398,26.1454 C359.6315,26.1454 398.2006,26.1454 429.1531,26.1454 " fill="none" id="Callback->Create" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><polygon fill="#607985" points="431.6955,26.1454,426.8884,24.0089,429.0249,26.1454,426.8884,28.2819,431.6955,26.1454" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.4777" lengthAdjust="spacingAndGlyphs" textLength="76.9139" x="342.3739" y="19.1992">accepted signature</text><!--MD5=[5e35778d1735aeaf64c16000162b8682]
|
||||
link Create to Entry--><path d="M534.3436,26.1454 C564.7353,26.1454 603.3045,26.1454 634.257,26.1454 " fill="none" id="Create->Entry" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><polygon fill="#607985" points="636.7994,26.1454,631.9923,24.0089,634.1288,26.1454,631.9923,28.2819,636.7994,26.1454" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.4777" lengthAdjust="spacingAndGlyphs" textLength="76.9139" x="547.4777" y="19.1992">scheduler dispatch</text><!--MD5=[2cdb4dcf98f84b2f0f14899bf23cd292]
|
||||
link Entry to Cast--><path d="M651.0766,48.1941 C631.9709,59.181 608.4961,72.6837 588.0125,84.4665 " fill="none" id="Entry->Cast" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><polygon fill="#607985" points="585.7104,85.7858,590.943,85.2446,588.0263,84.4558,588.8151,81.5391,585.7104,85.7858" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.4777" lengthAdjust="spacingAndGlyphs" textLength="51.276" x="635.4427" y="69.8662">same address</text><!--MD5=[f4bbda2f015eec5ec20e2f975cf0eb90]
|
||||
reverse link Work to Cast--><path d="M390.6107,112.9193 C413.6688,112.9193 440.3964,112.9193 464.7792,112.9193 " fill="none" id="Work<-Cast" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><polygon fill="#607985" points="388.0415,112.9193,392.8487,115.0558,390.7122,112.9193,392.8487,110.7828,388.0415,112.9193" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.4777" lengthAdjust="spacingAndGlyphs" textLength="51.276" x="400.3264" y="105.9731">typed fields</text><!--MD5=[31435e59aed6adc8ad2d95d53c329eb2]
|
||||
reverse link Hazard to Work--><path d="M150.949,112.9193 C191.1151,112.9193 239.6083,112.9193 276.2493,112.9193 " fill="none" id="Hazard<-Work" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><polygon fill="#607985" points="148.3905,112.9193,153.1976,115.0558,151.0611,112.9193,153.1976,110.7828,148.3905,112.9193" style="stroke: #607985; stroke-width: 0.6943620178041543;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.4777" lengthAdjust="spacingAndGlyphs" textLength="102.5519" x="160.638" y="105.9731">contrast: unchecked cast</text><!--MD5=[aa23e53a9e1b193daf13397cfcbb102c]
|
||||
@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
|
||||
top to bottom direction
|
||||
|
||||
class "01 TaskFunction_t\nvoid (*)(void*)" as Callback <<C ABI>>
|
||||
class "02 xTaskCreate\nentry + &workerA" as Create <<boundary>>
|
||||
class "03 callback entry\na0 = pvParameters" as Entry <<runtime>>
|
||||
class "04 typed pointer\nWorkerContext *worker =\n(WorkerContext *)pvParameters" as Cast <<C>>
|
||||
class "05 typed calculation\nworker->result = sum" as Work <<application>>
|
||||
class "06 wrong-cast exhibit\nC cannot verify context type" as Hazard <<compile-time check>>
|
||||
|
||||
Callback -right-> Create : accepted signature
|
||||
Create -right-> Entry : scheduler dispatch
|
||||
Entry -down-> Cast : same address
|
||||
Cast -left-> Work : typed fields
|
||||
Work -left-> Hazard : contrast: unchecked cast
|
||||
|
||||
note bottom of Entry
|
||||
RV32 ILP32 ABI carries the first callback argument in a0.
|
||||
The explicit C cast documents intent; it performs no type check.
|
||||
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>
|
||||
|
After Width: | Height: | Size: 12 KiB |
Reference in New Issue
Block a user