blob: f9cb528181b891095c69766350494f926f4f9eb6 [file] [log] [blame]
Kristofer Jonssona08e9d42021-04-28 12:32:28 +02001@startuml
2
3skinparam backgroundColor #EEEBDC
4
5box "Hardware" #FFC700
6participant "Cortex-M" as cortexm
7participant "Ethos-U" as ethosu
8end box
9
10box "CMSIS Device" #0091BD
11participant "__VECTOR_TABLE" as ivec
12participant "Reset_Handler()" as reset
13end box
14
15box "Compiler" #FF6B00
16participant "Runtime" as runtime
17end box
18
19box "Target" #95D600
20participant "common" as common
21participant "corstone-300" as target
22end box
23
24box "Drivers" #00C1DE
25participant "NPU" as driver
26participant "UART" as uart
27participant "MPU" as mpu
28end box
29
30box "Application" #7D868C
31participant "main()" as main
32end box
33
34cortexm -> ivec++:
35 ivec -> reset++: Reset_Handler()
36 reset -> reset++: SystemInit()
37 deactivate reset
38
39 reset -> runtime++: __main()
40 note over runtime
41 Scatter loading
42 Initializing stack and heap
43 end note
44
45 note over runtime
46 Calling constructors
47 end note
48
49 runtime -> common++: init() [constructor]
50 note over common
51 The constructor is called after stack and heap have been initialized,
52 but before the main() function is called
53 end note
54
55 common -> target++: targetSetup()
56 target -> uart++: uart_init()
57 return
58
59 target -> driver++: ethosu_init()
60 return
61
62 target -> mpu++: loadAndEnableConfig()
63 return
64 return
65 return
66
67 runtime -> main++: main()
68 note over main
69 Running application
70 end note
71@enduml