| @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 |