aboutsummaryrefslogtreecommitdiff
path: root/docs/startup.svg
blob: a2c9f521bb3a7d7435b39c32636a984b4b3d3b50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?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="703px" preserveAspectRatio="none" style="width:1160px;height:703px;background:#EEEBDC;" version="1.1" viewBox="0 0 1160 703" width="1160px" zoomAndPan="magnify"><defs><filter height="300%" id="f1tn0zpyov876x" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFC700" height="688.7188" style="stroke: #A80036; stroke-width: 1.0;" width="171" x="4" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="72" x="53.5" y="16.0669">Hardware</text><rect fill="#0091BD" height="688.7188" style="stroke: #A80036; stroke-width: 1.0;" width="288" x="177" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="271.5" y="16.0669">CMSIS Device</text><rect fill="#FF6B00" height="688.7188" style="stroke: #A80036; stroke-width: 1.0;" width="84" x="467" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="66" x="476" y="16.0669">Compiler</text><rect fill="#95D600" height="688.7188" style="stroke: #A80036; stroke-width: 1.0;" width="219.5" x="610.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="48" x="696.25" y="16.0669">Target</text><rect fill="#00C1DE" height="688.7188" style="stroke: #A80036; stroke-width: 1.0;" width="180" x="851.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="915.5" y="16.0669">Drivers</text><rect fill="#7D868C" height="688.7188" style="stroke: #A80036; stroke-width: 1.0;" width="89" x="1033.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="83" x="1036.5" y="16.0669">Application</text><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="570.9922" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="246.5" y="74.4297"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="541.9922" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="391.5" y="103.4297"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="28" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="396.5" y="140.5625"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="440.7266" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="504" y="204.6953"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="240.9297" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="649" y="327.2266"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="143.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="765" y="410.625"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="14.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="874" y="482.8906"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="14.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="935.5" y="439.7578"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="14.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="998" y="526.0234"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="48.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="1073" y="597.1563"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="48" x2="48" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="134" x2="134" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="251" x2="251" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="396" x2="396" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="509" x2="509" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="653.5" x2="653.5" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="770" x2="770" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="878.5" x2="878.5" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="940.5" x2="940.5" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1002.5" x2="1002.5" y1="58.4297" y2="654.4219"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1077.5" x2="1077.5" y1="58.4297" y2="654.4219"/><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="8" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="62" x="15" y="43.1279">Cortex-M</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="8" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="62" x="15" y="673.417">Cortex-M</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="69" x="98" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="55" x="105" y="43.1279">Ethos-U</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="69" x="98" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="55" x="105" y="673.417">Ethos-U</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="181" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="123" x="188" y="43.1279">__VECTOR_TABLE</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="181" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="123" x="188" y="673.417">__VECTOR_TABLE</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="332" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="111" x="339" y="43.1279">Reset_Handler()</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="332" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="111" x="339" y="673.417">Reset_Handler()</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="72" x="471" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="478" y="43.1279">Runtime</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="72" x="471" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="478" y="673.417">Runtime</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="614.5" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="61" x="621.5" y="43.1279">common</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="614.5" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="61" x="621.5" y="673.417">common</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="714" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="721" y="43.1279">corstone-300</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="714" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="721" y="673.417">corstone-300</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="43" x="855.5" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="29" x="862.5" y="43.1279">NPU</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="43" x="855.5" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="29" x="862.5" y="673.417">NPU</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="52" x="912.5" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="38" x="919.5" y="43.1279">UART</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="52" x="912.5" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="38" x="919.5" y="673.417">UART</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="45" x="978.5" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="31" x="985.5" y="43.1279">MPU</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="45" x="978.5" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="31" x="985.5" y="673.417">MPU</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="1047.5" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="1054.5" y="43.1279">main()</text><rect fill="#FEFECE" filter="url(#f1tn0zpyov876x)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="1047.5" y="653.4219"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="1054.5" y="673.417">main()</text><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="570.9922" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="246.5" y="74.4297"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="541.9922" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="391.5" y="103.4297"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="28" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="396.5" y="140.5625"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="440.7266" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="504" y="204.6953"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="240.9297" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="649" y="327.2266"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="143.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="765" y="410.625"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="14.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="874" y="482.8906"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="14.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="935.5" y="439.7578"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="14.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="998" y="526.0234"/><rect fill="#FFFFFF" filter="url(#f1tn0zpyov876x)" height="48.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="1073" y="597.1563"/><polygon fill="#A80036" points="234.5,70.4297,244.5,74.4297,234.5,78.4297,238.5,74.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="48" x2="240.5" y1="74.4297" y2="74.4297"/><polygon fill="#A80036" points="379.5,99.4297,389.5,103.4297,379.5,107.4297,383.5,103.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="256.5" x2="385.5" y1="103.4297" y2="103.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="103" x="263.5" y="98.4966">Reset_Handler()</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="406.5" x2="448.5" y1="132.6953" y2="132.6953"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="448.5" x2="448.5" y1="132.6953" y2="145.6953"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="407.5" x2="448.5" y1="145.6953" y2="145.6953"/><polygon fill="#A80036" points="417.5,141.6953,407.5,145.6953,417.5,149.6953,413.5,145.6953" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="78" x="413.5" y="127.6294">SystemInit()</text><polygon fill="#A80036" points="492,200.6953,502,204.6953,492,208.6953,496,204.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="401.5" x2="498" y1="204.6953" y2="204.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="408.5" y="199.7622">__main()</text><polygon fill="#FBFB77" filter="url(#f1tn0zpyov876x)" points="414,217.8281,414,257.8281,599,257.8281,599,227.8281,589,217.8281,414,217.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="589" x2="589" y1="217.8281" y2="227.8281"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="599" x2="589" y1="227.8281" y2="227.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="420" y="234.895">Scatter loading</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="420" y="250.0278">Initializing stack and heap</text><polygon fill="#FBFB77" filter="url(#f1tn0zpyov876x)" points="433,272.0938,433,297.0938,580,297.0938,580,282.0938,570,272.0938,433,272.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="570" x2="570" y1="272.0938" y2="282.0938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="580" x2="570" y1="282.0938" y2="282.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="126" x="439" y="289.1606">Calling constructors</text><polygon fill="#A80036" points="637,323.2266,647,327.2266,637,331.2266,641,327.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="514" x2="643" y1="327.2266" y2="327.2266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="116" x="521" y="322.2935">init() [constructor]</text><polygon fill="#FBFB77" filter="url(#f1tn0zpyov876x)" points="427,340.3594,427,380.3594,877,380.3594,877,350.3594,867,340.3594,427,340.3594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="867" x2="867" y1="340.3594" y2="350.3594"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="877" x2="867" y1="350.3594" y2="350.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="429" x="433" y="357.4263">The constructor is called after stack and heap have been initialized,</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="247" x="433" y="372.5591">but before the main() function is called</text><polygon fill="#A80036" points="753,406.625,763,410.625,753,414.625,757,410.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="659" x2="759" y1="410.625" y2="410.625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="87" x="666" y="405.6919">targetSetup()</text><polygon fill="#A80036" points="923.5,435.7578,933.5,439.7578,923.5,443.7578,927.5,439.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="775" x2="929.5" y1="439.7578" y2="439.7578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="62" x="782" y="434.8247">uart_init()</text><polygon fill="#A80036" points="786,449.8906,776,453.8906,786,457.8906,782,453.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="780" x2="939.5" y1="453.8906" y2="453.8906"/><polygon fill="#A80036" points="862,478.8906,872,482.8906,862,486.8906,866,482.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="775" x2="868" y1="482.8906" y2="482.8906"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="80" x="782" y="477.9575">ethosu_init()</text><polygon fill="#A80036" points="786,493.0234,776,497.0234,786,501.0234,782,497.0234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="780" x2="878" y1="497.0234" y2="497.0234"/><polygon fill="#A80036" points="986,522.0234,996,526.0234,986,530.0234,990,526.0234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="775" x2="992" y1="526.0234" y2="526.0234"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="145" x="782" y="521.0903">loadAndEnableConfig()</text><polygon fill="#A80036" points="786,536.1563,776,540.1563,786,544.1563,782,540.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="780" x2="1002" y1="540.1563" y2="540.1563"/><polygon fill="#A80036" points="670,550.1563,660,554.1563,670,558.1563,666,554.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="664" x2="769" y1="554.1563" y2="554.1563"/><polygon fill="#A80036" points="525,564.1563,515,568.1563,525,572.1563,521,568.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="519" x2="653" y1="568.1563" y2="568.1563"/><polygon fill="#A80036" points="1061,593.1563,1071,597.1563,1061,601.1563,1065,597.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="514" x2="1067" y1="597.1563" y2="597.1563"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="42" x="521" y="592.2231">main()</text><polygon fill="#FBFB77" filter="url(#f1tn0zpyov876x)" points="1003,610.2891,1003,635.2891,1148,635.2891,1148,620.2891,1138,610.2891,1003,610.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1138" x2="1138" y1="610.2891" y2="620.2891"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1148" x2="1138" y1="620.2891" y2="620.2891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="124" x="1009" y="627.356">Running application</text><!--
@startuml

skinparam backgroundColor #EEEBDC

box "Hardware" #FFC700
participant "Cortex-M" as cortexm
participant "Ethos-U" as ethosu
end box

box "CMSIS Device" #0091BD
participant "__VECTOR_TABLE" as ivec
participant "Reset_Handler()" as reset
end box

box "Compiler" #FF6B00
participant "Runtime" as runtime
end box

box "Target" #95D600
participant "common" as common
participant "corstone-300" as target
end box

box "Drivers" #00C1DE
participant "NPU" as driver
participant "UART" as uart
participant "MPU" as mpu
end box

box "Application" #7D868C
participant "main()" as main
end box

cortexm -> ivec++:
    ivec -> reset++: Reset_Handler()
        reset -> reset++: SystemInit()
        deactivate reset

        reset -> runtime++: __main()
        note over runtime
            Scatter loading
            Initializing stack and heap
        end note

        note over runtime
            Calling constructors
        end note

        runtime -> common++: init() [constructor]
            note over common
                The constructor is called after stack and heap have been initialized,
                but before the main() function is called
            end note

            common -> target++: targetSetup()
                target -> uart++: uart_init()
                return

                target -> driver++: ethosu_init()
                return

                target -> mpu++: loadAndEnableConfig()
                return
            return
        return

        runtime -> main++: main()
            note over main
                Running application
            end note
@enduml

PlantUML version 1.2017.15(Mon Jul 03 18:45:34 CEST 2017)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.10+9-Ubuntu-0ubuntu1.18.04
Operating System: Linux
OS Version: 5.4.0-70-generic
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>