# Static Call Graph for image .\rvmdk\boot_serial.axf

#<CALLGRAPH># ARM Linker, 5.03 [Build 76]: Last Updated: Wed Feb 25 09:54:39 2026

### Maximum Stack Usage = 52 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

### Call chain for Maximum Stack Depth:

Reset_Handler_In_SRAM ⇒ Updater ⇒ InitCRC32Table ⇒ Reflect

### Functions with no stack information

- ProcessorInit
- Reset_Handler
- StartApplication
- Delay
- Reset_Handler_In_SRAM
- UpdateHandler_In_SRAM
- IntDefaultHandler
- NmiSR
- FaultISR
- UpdateHandler

### Mutually Recursive functions

- Delay ⇒ Delay
- IntDefaultHandler ⇒ IntDefaultHandler
- NmiSR ⇒ NmiSR
- FaultISR ⇒ FaultISR

  ### Function Pointers

  - FaultISR from bl_startup_rvmdk.o(RESET) referenced from bl_startup_rvmdk.o(RESET)
  - IntDefaultHandler from bl_startup_rvmdk.o(.text) referenced 7 times from bl_startup_rvmdk.o(RESET)
  - NmiSR from bl_startup_rvmdk.o(RESET) referenced from bl_startup_rvmdk.o(RESET)
  - Reset_Handler from bl_startup_rvmdk.o(RESET) referenced from bl_startup_rvmdk.o(RESET)
  - Reset_Handler_In_SRAM from bl_startup_rvmdk.o(.text) referenced from bl_startup_rvmdk.o(RESET)
  - UpdateHandler from bl_startup_rvmdk.o(RESET) referenced from bl_startup_rvmdk.o(RESET)
  - UpdateHandler_In_SRAM from bl_startup_rvmdk.o(.text) referenced from bl_startup_rvmdk.o(RESET)

  ### Global Symbols

  ProcessorInit (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(RESET))
  [Called By]

  - >> Reset_Handler
  - >> UpdateHandler

  Reset_Handler (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(RESET))
  [Calls]

  - >> ProcessorInit

  StartApplication (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(.text), UNUSED)

  Delay (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(.text))
  [Calls]

  - >> Delay
  [Called By]
  - >> Delay
  - >> ConfigureDevice

  AckPacket (Thumb, 8 bytes, Stack size 0 bytes, bl_packet.o(i.AckPacket))
  [Calls]

  - >> UARTSend
  [Called By]
  - >> Updater

  BLInternalFlashStartAddrCheck (Thumb, 32 bytes, Stack size 0 bytes, bl_flash.o(i.BLInternalFlashStartAddrCheck))
  [Called By]

  - >> Updater

  CalculateCRC32 (Thumb, 30 bytes, Stack size 12 bytes, bl_crc32.o(i.CalculateCRC32))
  [Stack]

  - Max Depth = 12
  - Call Chain = CalculateCRC32
  [Called By]
  - >> CheckImageCRC32

  CheckForceUpdate (Thumb, 56 bytes, Stack size 8 bytes, bl_check.o(i.CheckForceUpdate))
  [Stack]

  - Max Depth = 44
  - Call Chain = CheckForceUpdate ⇒ InitCRC32Table ⇒ Reflect
  [Calls]
  - >> InitCRC32Table
  - >> CheckImageCRC32
  [Called By]
  - >> Reset_Handler_In_SRAM

  CheckImageCRC32 (Thumb, 144 bytes, Stack size 16 bytes, bl_crc32.o(i.CheckImageCRC32))
  [Stack]

  - Max Depth = 28
  - Call Chain = CheckImageCRC32 ⇒ CalculateCRC32
  [Calls]
  - >> CalculateCRC32
  [Called By]
  - >> Updater
  - >> CheckForceUpdate

  CheckSum (Thumb, 18 bytes, Stack size 0 bytes, bl_packet.o(i.CheckSum))
  [Called By]

  - >> SendPacket
  - >> ReceivePacket

  ConfigureDevice (Thumb, 158 bytes, Stack size 8 bytes, bl_main.o(i.ConfigureDevice))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = ConfigureDevice
  [Calls]
  - >> Delay
  [Called By]
  - >> Reset_Handler_In_SRAM

  InitCRC32Table (Thumb, 72 bytes, Stack size 16 bytes, bl_crc32.o(i.InitCRC32Table))
  [Stack]

  - Max Depth = 36
  - Call Chain = InitCRC32Table ⇒ Reflect
  [Calls]
  - >> Reflect
  [Called By]
  - >> Updater
  - >> CheckForceUpdate

  NakPacket (Thumb, 8 bytes, Stack size 0 bytes, bl_packet.o(i.NakPacket))
  [Calls]

  - >> UARTSend
  [Called By]
  - >> ReceivePacket

  ReceivePacket (Thumb, 106 bytes, Stack size 24 bytes, bl_packet.o(i.ReceivePacket))
  [Stack]

  - Max Depth = 24
  - Call Chain = ReceivePacket
  [Calls]
  - >> UARTReceive
  - >> NakPacket
  - >> CheckSum
  [Called By]
  - >> Updater

  SendPacket (Thumb, 80 bytes, Stack size 24 bytes, bl_packet.o(i.SendPacket))
  [Stack]

  - Max Depth = 24
  - Call Chain = SendPacket
  [Calls]
  - >> UARTSend
  - >> UARTReceive
  - >> CheckSum
  [Called By]
  - >> Updater

  UARTFlush (Thumb, 16 bytes, Stack size 0 bytes, bl_uart.o(i.UARTFlush))
  [Called By]

  - >> UARTSend
  - >> Updater

  UARTReceive (Thumb, 22 bytes, Stack size 0 bytes, bl_uart.o(i.UARTReceive))
  [Called By]

  - >> SendPacket
  - >> ReceivePacket

  UARTSend (Thumb, 24 bytes, Stack size 0 bytes, bl_uart.o(i.UARTSend))
  [Calls]

  - >> UARTFlush
  [Called By]
  - >> NakPacket
  - >> SendPacket
  - >> AckPacket

  Updater (Thumb, 468 bytes, Stack size 16 bytes, bl_main.o(i.Updater))
  [Stack]

  - Max Depth = 52
  - Call Chain = Updater ⇒ InitCRC32Table ⇒ Reflect
  [Calls]
  - >> UARTFlush
  - >> SendPacket
  - >> ReceivePacket
  - >> AckPacket
  - >> BLInternalFlashStartAddrCheck
  - >> InitCRC32Table
  - >> CheckImageCRC32
  [Called By]
  - >> UpdateHandler_In_SRAM
  - >> Reset_Handler_In_SRAM

  ### Local Symbols

  Reflect (Thumb, 36 bytes, Stack size 20 bytes, bl_crc32.o(i.Reflect))
  [Stack]

  - Max Depth = 20
  - Call Chain = Reflect
  [Called By]
  - >> InitCRC32Table

  Reset_Handler_In_SRAM (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(.text))
  [Stack]

  - Max Depth = 52 + Unknown Stack Size
  - Call Chain = Reset_Handler_In_SRAM ⇒ Updater ⇒ InitCRC32Table ⇒ Reflect
  [Calls]
  - >> Updater
  - >> ConfigureDevice
  - >> CheckForceUpdate
  [Address Reference Count : 1]
  - bl_startup_rvmdk.o(RESET)

  UpdateHandler_In_SRAM (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(.text))
  [Stack]

  - Max Depth = 52 + Unknown Stack Size
  - Call Chain = UpdateHandler_In_SRAM ⇒ Updater ⇒ InitCRC32Table ⇒ Reflect
  [Calls]
  - >> Updater
  [Address Reference Count : 1]
  - bl_startup_rvmdk.o(RESET)

  IntDefaultHandler (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(.text))
  [Calls]

  - >> IntDefaultHandler
  [Called By]
  - >> IntDefaultHandler
  [Address Reference Count : 1]
  - bl_startup_rvmdk.o(RESET)

  NmiSR (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(RESET))
  [Calls]

  - >> NmiSR
  [Called By]
  - >> NmiSR
  [Address Reference Count : 1]
  - bl_startup_rvmdk.o(RESET)

  FaultISR (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(RESET))
  [Calls]

  - >> FaultISR
  [Called By]
  - >> FaultISR
  [Address Reference Count : 1]
  - bl_startup_rvmdk.o(RESET)

  UpdateHandler (Thumb, 0 bytes, Stack size unknown bytes, bl_startup_rvmdk.o(RESET))
  [Calls]

  - >> ProcessorInit
  [Address Reference Count : 1]
  - bl_startup_rvmdk.o(RESET)

  ### Undefined Global Symbols