# Static Call Graph for image .\obj\bootloader_gg.axf

#<CALLGRAPH># ARM Linker, 5060061: Last Updated: Thu Nov 17 18:06:03 2016

### Maximum Stack Usage = 160 bytes + Unknown(Cycles, Untraceable Function Pointers)

### Call chain for Maximum Stack Depth:

main ⇒ enterBootloaderMode ⇒ BLUART_init ⇒ USART_InitAsync ⇒ USART_BaudrateAsyncSet ⇒ CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- MemManage_Handler ⇒ MemManage_Handler
- BusFault_Handler ⇒ BusFault_Handler
- UsageFault_Handler ⇒ UsageFault_Handler
- SVC_Handler ⇒ SVC_Handler
- DebugMon_Handler ⇒ DebugMon_Handler
- PendSV_Handler ⇒ PendSV_Handler
- SysTick_Handler ⇒ SysTick_Handler
- ACMP0_IRQHandler ⇒ ACMP0_IRQHandler

  ### Function Pointers

  - ACMP0_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - ADC0_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - AES_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - BURTC_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - BusFault_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - CMU_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - DAC0_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - DMA_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - DebugMon_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - EBI_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - EMU_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - GPIO_EVEN_IRQHandler from bootloader.o(.text) referenced from startup_efm32gg.o(RESET)
  - GPIO_ODD_IRQHandler from bootloader.o(.text) referenced from startup_efm32gg.o(RESET)
  - HardFault_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - I2C0_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - I2C1_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - LCD_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - LESENSE_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - LETIMER0_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - LEUART0_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - LEUART1_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - MSC_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - MemManage_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - NMI_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - PCNT0_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - PCNT1_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - PCNT2_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - PendSV_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - RTC_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - Reset_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - SVC_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - SysTick_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - SystemInit from system_efm32gg.o(.text) referenced from startup_efm32gg.o(.text)
  - TIMER0_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - TIMER1_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - TIMER2_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - TIMER3_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - UART0_RX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - UART0_TX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - UART1_RX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - UART1_TX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - USART0_RX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - USART0_TX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - USART1_RX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - USART1_TX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - USART2_RX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - USART2_TX_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - USB_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - UsageFault_Handler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - VCMP_IRQHandler from startup_efm32gg.o(.text) referenced from startup_efm32gg.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_efm32gg.o(.text)
  - main from bootloader.o(.text) referenced from entry9a.o(.ARM.Collect$$$$0000000B)

  ### Global Symbols

  __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
  [Address Reference Count : 1]

  - startup_efm32gg.o(.text)

  _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))

  _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
  [Calls]

  - >> __scatterload

  __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
  [Called By]

  - >> __scatterload

  _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))

  _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))

  _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))

  __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))

  __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))

  BOOT_jump (Thumb, 10 bytes, Stack size 0 bytes, boot.o(.emb_text))
  [Called By]

  - >> BOOT_boot

  Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  SysTick_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  ACMP0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Calls]

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

  ADC0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  AES_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  BURTC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  CMU_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  DAC0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  DMA_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  EBI_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  EMU_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  I2C0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  I2C1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  LCD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  LESENSE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  LETIMER0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  LEUART0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  LEUART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  MSC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  PCNT0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  PCNT1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  PCNT2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  RTC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  TIMER0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  TIMER1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  TIMER2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  TIMER3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  UART0_RX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  UART0_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  UART1_RX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  UART1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  USART0_RX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  USART0_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  USART1_RX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  USART1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  USART2_RX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  USART2_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  USB_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  VCMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  SystemHFClockGet (Thumb, 170 bytes, Stack size 0 bytes, system_efm32gg.o(.text))
  [Called By]

  - >> CMU_ClockFreqGet
  - >> CMU_ClockDivSet
  - >> usbCClkGet
  - >> dbgClkGet
  - >> SystemCoreClockGet

  SystemCoreClockGet (Thumb, 26 bytes, Stack size 4 bytes, system_efm32gg.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = SystemCoreClockGet
  [Calls]
  - >> SystemHFClockGet
  [Called By]
  - >> EMU_EnterEM3
  - >> EMU_EnterEM2
  - >> CMU_HFRCOBandSet
  - >> CMU_ClockSelectSet
  - >> CMU_ClockFreqGet
  - >> CMU_ClockDivSet
  - >> lfClkGet
  - >> SystemLFXOClockSet
  - >> SystemHFXOClockSet

  SystemMaxCoreClockGet (Thumb, 4 bytes, Stack size 0 bytes, system_efm32gg.o(.text), UNUSED)
  [Called By]

  - >> flashWaitStateMax

  SystemHFXOClockGet (Thumb, 6 bytes, Stack size 0 bytes, system_efm32gg.o(.text), UNUSED)
  [Called By]

  - >> CMU_ClockSelectSet

  SystemHFXOClockSet (Thumb, 24 bytes, Stack size 4 bytes, system_efm32gg.o(.text), UNUSED)
  [Calls]

  - >> SystemCoreClockGet

  SystemInit (Thumb, 2 bytes, Stack size 0 bytes, system_efm32gg.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(.text)

  SystemLFRCOClockGet (Thumb, 6 bytes, Stack size 0 bytes, system_efm32gg.o(.text))
  [Called By]

  - >> usbCClkGet
  - >> lfClkGet

  SystemULFRCOClockGet (Thumb, 6 bytes, Stack size 0 bytes, system_efm32gg.o(.text))
  [Called By]

  - >> lfClkGet

  SystemLFXOClockGet (Thumb, 6 bytes, Stack size 0 bytes, system_efm32gg.o(.text))
  [Called By]

  - >> usbCClkGet
  - >> lfClkGet

  SystemLFXOClockSet (Thumb, 24 bytes, Stack size 4 bytes, system_efm32gg.o(.text), UNUSED)
  [Calls]

  - >> SystemCoreClockGet

  SYSTEM_ChipRevisionGet (Thumb, 62 bytes, Stack size 0 bytes, em_system.o(.text))
  [Called By]

  - >> main

  SYSTEM_GetCalibrationValue (Thumb, 38 bytes, Stack size 0 bytes, em_system.o(.text), UNUSED)

  GPIO_DbgLocationSet (Thumb, 20 bytes, Stack size 0 bytes, em_gpio.o(.text), UNUSED)

  GPIO_DriveModeSet (Thumb, 30 bytes, Stack size 8 bytes, em_gpio.o(.text), UNUSED)

  GPIO_ExtIntConfig (Thumb, 120 bytes, Stack size 32 bytes, em_gpio.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = GPIO_ExtIntConfig ⇒ BUS_RegBitWrite
  [Calls]
  - >> BUS_RegMaskedWrite
  - >> BUS_RegBitWrite
  [Called By]
  - >> GPIO_IntConfig

  GPIO_PinModeSet (Thumb, 154 bytes, Stack size 24 bytes, em_gpio.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = GPIO_PinModeSet ⇒ GPIO_PinOutSet
  [Calls]
  - >> GPIO_PinOutSet
  - >> GPIO_PinOutClear
  [Called By]
  - >> BLUART_init
  - >> main
  - >> resetPeripherals

  GPIO_PinModeGet (Thumb, 54 bytes, Stack size 0 bytes, em_gpio.o(.text), UNUSED)

  GPIO_EM4EnablePinWakeup (Thumb, 96 bytes, Stack size 8 bytes, em_gpio.o(.text), UNUSED)

  CMU_ClockSelectGet (Thumb, 266 bytes, Stack size 0 bytes, em_cmu.o(.text))
  [Called By]

  - >> CMU_LFXOInit
  - >> CMU_HFXOInit
  - >> CMU_HFRCOBandSet
  - >> usbCClkGet
  - >> lfClkGet
  - >> dbgClkGet

  CMU_AUXHFRCOBandGet (Thumb, 10 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_AUXHFRCOBandSet (Thumb, 178 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_Calibrate (Thumb, 98 bytes, Stack size 16 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> BUS_RegBitRead

  CMU_CalibrateConfig (Thumb, 116 bytes, Stack size 8 bytes, em_cmu.o(.text), UNUSED)

  CMU_CalibrateCountGet (Thumb, 36 bytes, Stack size 8 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> BUS_RegBitRead

  CMU_ClockDivGet (Thumb, 256 bytes, Stack size 16 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> CMU_Log2ToDiv
  - >> CMU_DivToLog2

  CMU_ClockDivSet (Thumb, 434 bytes, Stack size 32 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> syncReg
  - >> CMU_DivToLog2
  - >> flashWaitStateMax
  - >> flashWaitStateControl
  - >> setHfLeConfig
  - >> maxFreqHfle
  - >> SystemCoreClockGet
  - >> SystemHFClockGet

  CMU_ClockFreqGet (Thumb, 300 bytes, Stack size 16 bytes, em_cmu.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> CMU_DivToLog2
  - >> usbCClkGet
  - >> lfClkGet
  - >> dbgClkGet
  - >> auxClkGet
  - >> SystemCoreClockGet
  - >> SystemHFClockGet
  [Called By]
  - >> USART_BaudrateSyncSet
  - >> USART_BaudrateGet
  - >> USART_BaudrateAsyncSet
  - >> CMU_HFRCOBandSet
  - >> CMU_ClockSelectSet
  - >> CMU_ClockEnable

  CMU_ClockEnable (Thumb, 136 bytes, Stack size 32 bytes, em_cmu.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = CMU_ClockEnable ⇒ CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> CMU_ClockFreqGet
  - >> syncReg
  - >> setHfLeConfig
  - >> maxFreqHfle
  - >> BUS_RegBitWrite
  [Called By]
  - >> BLUART_init
  - >> main
  - >> resetPeripherals

  CMU_OscillatorEnable (Thumb, 118 bytes, Stack size 32 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> EMU_UpdateOscConfig
  - >> BUS_RegBitRead
  [Called By]
  - >> CMU_LFXOInit
  - >> CMU_HFXOInit
  - >> CMU_ClockSelectSet

  CMU_ClockSelectSet (Thumb, 586 bytes, Stack size 48 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> EMU_UpdateOscConfig
  - >> CMU_OscillatorEnable
  - >> CMU_ClockFreqGet
  - >> flashWaitStateMax
  - >> flashWaitStateControl
  - >> getHfLeConfig
  - >> setHfLeConfig
  - >> maxFreqHfle
  - >> BUS_RegBitWrite
  - >> SystemHFXOClockGet
  - >> SystemCoreClockGet

  CMU_FreezeEnable (Thumb, 28 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_HFRCOBandGet (Thumb, 10 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_HFRCOBandSet (Thumb, 158 bytes, Stack size 32 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> CMU_ClockFreqGet
  - >> CMU_ClockSelectGet
  - >> flashWaitStateMax
  - >> flashWaitStateControl
  - >> setHfLeConfig
  - >> maxFreqHfle
  - >> SystemCoreClockGet

  CMU_HFRCOStartupDelayGet (Thumb, 10 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_HFRCOStartupDelaySet (Thumb, 22 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_HFXOInit (Thumb, 60 bytes, Stack size 8 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> CMU_OscillatorEnable
  - >> CMU_ClockSelectGet
  - >> BUS_RegMaskedWrite

  CMU_LCDClkFDIVGet (Thumb, 10 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_LCDClkFDIVSet (Thumb, 36 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_LFXOInit (Thumb, 66 bytes, Stack size 16 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> CMU_OscillatorEnable
  - >> CMU_ClockSelectGet
  - >> BUS_RegMaskedWrite
  - >> BUS_RegBitWrite

  CMU_OscillatorTuningGet (Thumb, 50 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_OscillatorTuningSet (Thumb, 76 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_PCNTClockExternalGet (Thumb, 60 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)

  CMU_PCNTClockExternalSet (Thumb, 30 bytes, Stack size 16 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> BUS_RegBitWrite

  EMU_EnterEM2 (Thumb, 124 bytes, Stack size 24 bytes, em_emu.o(.text), UNUSED)
  [Calls]

  - >> getErrataFixEmuE107En
  - >> emuRestore
  - >> SystemCoreClockGet

  EMU_EnterEM3 (Thumb, 168 bytes, Stack size 24 bytes, em_emu.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = EMU_EnterEM3 ⇒ SystemCoreClockGet
  [Calls]
  - >> getErrataFixEmuE107En
  - >> emuRestore
  - >> SystemCoreClockGet
  [Called By]
  - >> enterLowPowerWait

  EMU_EnterEM4 (Thumb, 56 bytes, Stack size 8 bytes, em_emu.o(.text), UNUSED)

  EMU_MemPwrDown (Thumb, 6 bytes, Stack size 0 bytes, em_emu.o(.text), UNUSED)

  EMU_UpdateOscConfig (Thumb, 12 bytes, Stack size 0 bytes, em_emu.o(.text), UNUSED)
  [Called By]

  - >> CMU_ClockSelectSet
  - >> CMU_OscillatorEnable

  EMU_EM23Init (Thumb, 28 bytes, Stack size 0 bytes, em_emu.o(.text), UNUSED)

  EMU_EM4Init (Thumb, 34 bytes, Stack size 0 bytes, em_emu.o(.text), UNUSED)

  EMU_BUPDInit (Thumb, 132 bytes, Stack size 16 bytes, em_emu.o(.text), UNUSED)
  [Calls]

  - >> BUS_RegBitWrite

  EMU_BUThresholdSet (Thumb, 44 bytes, Stack size 0 bytes, em_emu.o(.text), UNUSED)

  EMU_BUThresRangeSet (Thumb, 48 bytes, Stack size 0 bytes, em_emu.o(.text), UNUSED)

  USART_BaudrateAsyncSet (Thumb, 118 bytes, Stack size 32 bytes, em_usart.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = USART_BaudrateAsyncSet ⇒ CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> CMU_ClockFreqGet
  [Called By]
  - >> USART_InitAsync

  USART_BaudrateCalc (Thumb, 176 bytes, Stack size 80 bytes, em_usart.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  [Called By]
  - >> USART_BaudrateGet

  USART_BaudrateGet (Thumb, 50 bytes, Stack size 24 bytes, em_usart.o(.text), UNUSED)
  [Calls]

  - >> USART_BaudrateCalc
  - >> CMU_ClockFreqGet

  USART_BaudrateSyncSet (Thumb, 60 bytes, Stack size 24 bytes, em_usart.o(.text), UNUSED)
  [Calls]

  - >> CMU_ClockFreqGet
  [Called By]
  - >> USART_InitSync

  USART_Enable (Thumb, 14 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)
  [Called By]

  - >> USART_InitI2s

  USART_Reset (Thumb, 66 bytes, Stack size 0 bytes, em_usart.o(.text))
  [Called By]

  - >> USART_InitSync
  - >> USART_InitAsync

  USART_InitAsync (Thumb, 66 bytes, Stack size 16 bytes, em_usart.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = USART_InitAsync ⇒ USART_BaudrateAsyncSet ⇒ CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> USART_Reset
  - >> USART_BaudrateAsyncSet
  [Called By]
  - >> BLUART_init
  - >> USARTn_InitIrDA

  USART_InitSync (Thumb, 100 bytes, Stack size 16 bytes, em_usart.o(.text), UNUSED)
  [Calls]

  - >> USART_Reset
  - >> USART_BaudrateSyncSet
  [Called By]
  - >> USART_InitI2s

  USARTn_InitIrDA (Thumb, 68 bytes, Stack size 16 bytes, em_usart.o(.text), UNUSED)
  [Calls]

  - >> USART_InitAsync

  USART_InitI2s (Thumb, 80 bytes, Stack size 16 bytes, em_usart.o(.text), UNUSED)
  [Calls]

  - >> USART_InitSync
  - >> USART_Enable

  USART_InitPrsTrigger (Thumb, 40 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  USART_Rx (Thumb, 20 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  USART_RxDouble (Thumb, 20 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  USART_RxDoubleExt (Thumb, 18 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  USART_RxExt (Thumb, 20 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  USART_SpiTransfer (Thumb, 34 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  USART_Tx (Thumb, 16 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  USART_TxDouble (Thumb, 16 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  USART_TxDoubleExt (Thumb, 16 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  USART_TxExt (Thumb, 38 bytes, Stack size 0 bytes, em_usart.o(.text), UNUSED)

  sendWelcomeMessage (Thumb, 68 bytes, Stack size 8 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = sendWelcomeMessage ⇒ BLUART_sendString
  [Calls]
  - >> isFirmwareValid
  - >> BLUART_sendString (via Veneer)
  [Called By]
  - >> commandLoop

  enterDownloadMode (Thumb, 136 bytes, Stack size 8 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 124
  - Call Chain = enterDownloadMode ⇒ verifyTempStorage ⇒ verifyFirmware ⇒ calculateHash ⇒ encryptCBC128
  [Calls]
  - >> verifyTempStorage
  - >> markTempAsVerified
  - >> markFirmwareAsVerified
  - >> markFirmwareAsDeleted
  - >> copyFirmwareFromTempStorage (via Veneer)
  - >> XMODEM_download (via Veneer)
  - >> BLUART_sendString (via Veneer)
  [Called By]
  - >> commandLoop

  enableDebugLock (Thumb, 24 bytes, Stack size 8 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = enableDebugLock ⇒ DEBUGLOCK_lock
  [Calls]
  - >> DEBUGLOCK_lock (via Veneer)
  - >> BLUART_sendString (via Veneer)
  [Called By]
  - >> commandLoop

  commandLoop (Thumb, 106 bytes, Stack size 0 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 124
  - Call Chain = commandLoop ⇒ enterDownloadMode ⇒ verifyTempStorage ⇒ verifyFirmware ⇒ calculateHash ⇒ encryptCBC128
  [Calls]
  - >> verifyActiveFirmware
  - >> BLUART_sendString (via Veneer)
  - >> BLUART_receive (via Veneer)
  - >> enableDebugLock
  - >> enterDownloadMode
  - >> sendWelcomeMessage
  - >> NVIC_SystemReset
  [Called By]
  - >> enterBootloaderMode

  GPIO_EVEN_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, bootloader.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  GPIO_ODD_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, bootloader.o(.text))
  [Address Reference Count : 1]

  - startup_efm32gg.o(RESET)

  enterLowPowerWait (Thumb, 92 bytes, Stack size 8 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 84
  - Call Chain = enterLowPowerWait ⇒ GPIO_IntConfig ⇒ GPIO_ExtIntConfig ⇒ BUS_RegBitWrite
  [Calls]
  - >> GPIO_IntConfig
  - >> GPIO_PinInGet
  - >> EMU_EnterEM3
  [Called By]
  - >> enterBootloaderMode

  enterBootloaderMode (Thumb, 46 bytes, Stack size 0 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = enterBootloaderMode ⇒ BLUART_init ⇒ USART_InitAsync ⇒ USART_BaudrateAsyncSet ⇒ CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> markFirmwareAsVerified
  - >> isTempStorageValid
  - >> isFirmwareValid
  - >> copyFirmwareFromTempStorage (via Veneer)
  - >> FLASH_init
  - >> BLUART_init
  - >> enterLowPowerWait
  - >> commandLoop
  - >> GPIO_PinInGet
  [Called By]
  - >> main

  main (Thumb, 128 bytes, Stack size 16 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = main ⇒ enterBootloaderMode ⇒ BLUART_init ⇒ USART_InitAsync ⇒ USART_BaudrateAsyncSet ⇒ CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> markFirmwareAsVerified
  - >> isTempStorageValid
  - >> isFirmwareValid
  - >> copyFirmwareFromTempStorage (via Veneer)
  - >> FLASH_init
  - >> BOOT_boot
  - >> enterBootloaderMode
  - >> GPIO_PinInGet
  - >> NVIC_SystemReset
  - >> CMU_ClockEnable
  - >> GPIO_PinModeSet
  - >> SYSTEM_ChipRevisionGet
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  BLUART_init (Thumb, 82 bytes, Stack size 32 bytes, uart.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = BLUART_init ⇒ USART_InitAsync ⇒ USART_BaudrateAsyncSet ⇒ CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> USART_InitAsync
  - >> CMU_ClockEnable
  - >> GPIO_PinModeSet
  - >> __aeabi_memcpy4
  [Called By]
  - >> enterBootloaderMode

  FLASH_init (Thumb, 42 bytes, Stack size 0 bytes, flash.o(.text))
  [Called By]

  - >> main
  - >> enterBootloaderMode

  verifyFirmware (Thumb, 52 bytes, Stack size 32 bytes, verify.o(.text))
  [Stack]

  - Max Depth = 108
  - Call Chain = verifyFirmware ⇒ calculateHash ⇒ encryptCBC128
  [Calls]
  - >> calculateHash
  [Called By]
  - >> verifyTempStorage
  - >> verifyActiveFirmware

  verifyActiveFirmware (Thumb, 12 bytes, Stack size 8 bytes, verify.o(.text))
  [Stack]

  - Max Depth = 116
  - Call Chain = verifyActiveFirmware ⇒ verifyFirmware ⇒ calculateHash ⇒ encryptCBC128
  [Calls]
  - >> verifyFirmware
  [Called By]
  - >> commandLoop

  verifyTempStorage (Thumb, 12 bytes, Stack size 8 bytes, verify.o(.text))
  [Stack]

  - Max Depth = 116
  - Call Chain = verifyTempStorage ⇒ verifyFirmware ⇒ calculateHash ⇒ encryptCBC128
  [Calls]
  - >> verifyFirmware
  [Called By]
  - >> enterDownloadMode

  isFirmwareValid (Thumb, 20 bytes, Stack size 0 bytes, verify.o(.text))
  [Called By]

  - >> main
  - >> enterBootloaderMode
  - >> sendWelcomeMessage

  isTempStorageValid (Thumb, 20 bytes, Stack size 0 bytes, verify.o(.text))
  [Called By]

  - >> main
  - >> enterBootloaderMode

  markFirmwareAsVerified (Thumb, 20 bytes, Stack size 8 bytes, verify.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = markFirmwareAsVerified
  [Calls]
  - >> FLASH_writeWord (via Veneer)
  [Called By]
  - >> main
  - >> enterBootloaderMode
  - >> enterDownloadMode

  markTempAsVerified (Thumb, 20 bytes, Stack size 8 bytes, verify.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = markTempAsVerified
  [Calls]
  - >> FLASH_writeWord (via Veneer)
  [Called By]
  - >> enterDownloadMode

  markFirmwareAsDeleted (Thumb, 18 bytes, Stack size 8 bytes, verify.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = markFirmwareAsDeleted
  [Calls]
  - >> FLASH_writeWord (via Veneer)
  [Called By]
  - >> enterDownloadMode

  BOOT_boot (Thumb, 28 bytes, Stack size 16 bytes, boot.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = BOOT_boot ⇒ resetPeripherals ⇒ CMU_ClockEnable ⇒ CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> BOOT_jump
  - >> resetPeripherals
  [Called By]
  - >> main

  __aeabi_uldivmod (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_llsr
  - >> __aeabi_llsl
  [Called By]
  - >> USART_BaudrateCalc

  __aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)

  __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text))
  [Called By]

  - >> BLUART_init

  __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)

  __aeabi_llsl (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
  [Called By]

  - >> __aeabi_uldivmod

  _ll_shift_l (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)

  __aeabi_llsr (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
  [Called By]

  - >> __aeabi_uldivmod

  _ll_ushift_r (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)

  __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
  [Calls]

  - >> __main_after_scatterload
  [Called By]
  - >> _main_scatterload

  __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)

  __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)

  __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)

  __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)

  XMODEM_verifyPacketChecksum (Thumb, 78 bytes, Stack size 24 bytes, xmodem.o(ram_code))
  [Stack]

  - Max Depth = 32
  - Call Chain = XMODEM_verifyPacketChecksum ⇒ CRC_calc
  [Calls]
  - >> CRC_calc
  [Called By]
  - >> XMODEM_download

  XMODEM_download (Thumb, 310 bytes, Stack size 40 bytes, xmodem.o(ram_code))
  [Stack]

  - Max Depth = 84
  - Call Chain = XMODEM_download ⇒ decryptBlockCBC ⇒ decryptCBC
  [Calls]
  - >> startDecryptCBC
  - >> endDecryptCBC
  - >> decryptBlockCBC
  - >> FLASH_write
  - >> FLASH_erasePage
  - >> BLUART_send
  - >> XMODEM_verifyPacketChecksum
  - >> BLUART_receive
  [Called By]
  - >> enterDownloadMode (via Veneer)

  BLUART_receive (Thumb, 24 bytes, Stack size 0 bytes, uart.o(ram_code))
  [Called By]

  - >> XMODEM_download
  - >> commandLoop (via Veneer)

  BLUART_send (Thumb, 22 bytes, Stack size 0 bytes, uart.o(ram_code))
  [Called By]

  - >> XMODEM_download
  - >> BLUART_sendString

  BLUART_sendString (Thumb, 40 bytes, Stack size 4 bytes, uart.o(ram_code))
  [Stack]

  - Max Depth = 4
  - Call Chain = BLUART_sendString
  [Calls]
  - >> BLUART_send
  [Called By]
  - >> commandLoop (via Veneer)
  - >> enableDebugLock (via Veneer)
  - >> enterDownloadMode (via Veneer)
  - >> sendWelcomeMessage (via Veneer)

  CRC_calc (Thumb, 50 bytes, Stack size 8 bytes, crc.o(ram_code))
  [Stack]

  - Max Depth = 8
  - Call Chain = CRC_calc
  [Called By]
  - >> XMODEM_verifyPacketChecksum

  FLASH_write (Thumb, 82 bytes, Stack size 8 bytes, flash.o(ram_code))
  [Stack]

  - Max Depth = 8
  - Call Chain = FLASH_write
  [Called By]
  - >> copyFirmwareFromTempStorage
  - >> XMODEM_download

  FLASH_erasePage (Thumb, 62 bytes, Stack size 8 bytes, flash.o(ram_code))
  [Stack]

  - Max Depth = 8
  - Call Chain = FLASH_erasePage
  [Called By]
  - >> copyFirmwareFromTempStorage
  - >> XMODEM_download

  FLASH_writeWord (Thumb, 48 bytes, Stack size 0 bytes, flash.o(ram_code))
  [Called By]

  - >> markTempAsVerified (via Veneer)
  - >> markFirmwareAsVerified (via Veneer)
  - >> markFirmwareAsDeleted (via Veneer)
  - >> DEBUGLOCK_lock

  copyFirmwareFromTempStorage (Thumb, 136 bytes, Stack size 32 bytes, flash.o(ram_code))
  [Stack]

  - Max Depth = 40
  - Call Chain = copyFirmwareFromTempStorage ⇒ FLASH_write
  [Calls]
  - >> FLASH_write
  - >> FLASH_erasePage
  [Called By]
  - >> main (via Veneer)
  - >> enterBootloaderMode (via Veneer)
  - >> enterDownloadMode (via Veneer)

  decryptCBC (Thumb, 150 bytes, Stack size 28 bytes, aes.o(ram_code))
  [Stack]

  - Max Depth = 28
  - Call Chain = decryptCBC
  [Called By]
  - >> decryptBlockCBC

  encryptCBC128 (Thumb, 138 bytes, Stack size 28 bytes, aes.o(ram_code))
  [Stack]

  - Max Depth = 28
  - Call Chain = encryptCBC128
  [Called By]
  - >> calculateHash (via Veneer)

  startDecryptCBC (Thumb, 42 bytes, Stack size 8 bytes, aes.o(ram_code))
  [Stack]

  - Max Depth = 24
  - Call Chain = startDecryptCBC ⇒ calcDecryptionKey
  [Calls]
  - >> calcDecryptionKey
  [Called By]
  - >> XMODEM_download

  decryptBlockCBC (Thumb, 36 bytes, Stack size 16 bytes, aes.o(ram_code))
  [Stack]

  - Max Depth = 44
  - Call Chain = decryptBlockCBC ⇒ decryptCBC
  [Calls]
  - >> decryptCBC
  [Called By]
  - >> XMODEM_download

  endDecryptCBC (Thumb, 14 bytes, Stack size 0 bytes, aes.o(ram_code))
  [Called By]

  - >> XMODEM_download

  _DEBUGLOCK_driveBit (Thumb, 92 bytes, Stack size 0 bytes, debuglock.o(ram_code), UNUSED)
  [Called By]

  - >> DEBUGLOCK_startDebugInterface

  DEBUGLOCK_startDebugInterface (Thumb, 52 bytes, Stack size 12 bytes, debuglock.o(ram_code), UNUSED)
  [Calls]

  - >> _DEBUGLOCK_driveBit

  DEBUGLOCK_lock (Thumb, 24 bytes, Stack size 8 bytes, debuglock.o(ram_code))
  [Stack]

  - Max Depth = 8
  - Call Chain = DEBUGLOCK_lock
  [Calls]
  - >> FLASH_writeWord
  [Called By]
  - >> enableDebugLock (via Veneer)

  ### Local Symbols

  BUS_RegBitWrite (Thumb, 18 bytes, Stack size 12 bytes, em_gpio.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = BUS_RegBitWrite
  [Called By]
  - >> GPIO_ExtIntConfig

  BUS_RegMaskedWrite (Thumb, 10 bytes, Stack size 0 bytes, em_gpio.o(.text))
  [Called By]

  - >> GPIO_ExtIntConfig

  GPIO_PinOutClear (Thumb, 20 bytes, Stack size 8 bytes, em_gpio.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIO_PinOutClear
  [Called By]
  - >> GPIO_PinModeSet

  GPIO_PinOutSet (Thumb, 20 bytes, Stack size 8 bytes, em_gpio.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIO_PinOutSet
  [Called By]
  - >> GPIO_PinModeSet

  BUS_RegBitWrite (Thumb, 18 bytes, Stack size 12 bytes, em_cmu.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = BUS_RegBitWrite
  [Called By]
  - >> CMU_PCNTClockExternalSet
  - >> CMU_LFXOInit
  - >> CMU_ClockSelectSet
  - >> CMU_ClockEnable
  - >> setHfLeConfig

  maxFreqHfle (Thumb, 82 bytes, Stack size 0 bytes, em_cmu.o(.text))
  [Called By]

  - >> CMU_HFRCOBandSet
  - >> CMU_ClockSelectSet
  - >> CMU_ClockEnable
  - >> CMU_ClockDivSet

  setHfLeConfig (Thumb, 42 bytes, Stack size 16 bytes, em_cmu.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = setHfLeConfig ⇒ BUS_RegBitWrite
  [Calls]
  - >> BUS_RegBitWrite
  [Called By]
  - >> CMU_HFRCOBandSet
  - >> CMU_ClockSelectSet
  - >> CMU_ClockEnable
  - >> CMU_ClockDivSet

  getHfLeConfig (Thumb, 28 bytes, Stack size 16 bytes, em_cmu.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> BUS_RegBitRead
  [Called By]
  - >> CMU_ClockSelectSet
  - >> lfClkGet

  auxClkGet (Thumb, 110 bytes, Stack size 0 bytes, em_cmu.o(.text))
  [Called By]

  - >> CMU_ClockFreqGet
  - >> dbgClkGet

  dbgClkGet (Thumb, 44 bytes, Stack size 16 bytes, em_cmu.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = dbgClkGet
  [Calls]
  - >> CMU_ClockSelectGet
  - >> auxClkGet
  - >> SystemHFClockGet
  [Called By]
  - >> CMU_ClockFreqGet

  flashWaitStateControl (Thumb, 134 bytes, Stack size 12 bytes, em_cmu.o(.text), UNUSED)
  [Called By]

  - >> CMU_HFRCOBandSet
  - >> CMU_ClockSelectSet
  - >> CMU_ClockDivSet
  - >> flashWaitStateMax

  flashWaitStateMax (Thumb, 14 bytes, Stack size 8 bytes, em_cmu.o(.text), UNUSED)
  [Calls]

  - >> flashWaitStateControl
  - >> SystemMaxCoreClockGet
  [Called By]
  - >> CMU_HFRCOBandSet
  - >> CMU_ClockSelectSet
  - >> CMU_ClockDivSet

  lfClkGet (Thumb, 192 bytes, Stack size 24 bytes, em_cmu.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> CMU_ClockSelectGet
  - >> getHfLeConfig
  - >> SystemLFXOClockGet
  - >> SystemULFRCOClockGet
  - >> SystemLFRCOClockGet
  - >> SystemCoreClockGet
  [Called By]
  - >> CMU_ClockFreqGet

  usbCClkGet (Thumb, 58 bytes, Stack size 16 bytes, em_cmu.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = usbCClkGet
  [Calls]
  - >> CMU_ClockSelectGet
  - >> SystemLFXOClockGet
  - >> SystemLFRCOClockGet
  - >> SystemHFClockGet
  [Called By]
  - >> CMU_ClockFreqGet

  BUS_RegBitRead (Thumb, 20 bytes, Stack size 8 bytes, em_cmu.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = BUS_RegBitRead
  [Called By]
  - >> CMU_OscillatorEnable
  - >> CMU_CalibrateCountGet
  - >> CMU_Calibrate
  - >> getHfLeConfig

  BUS_RegMaskedWrite (Thumb, 10 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)
  [Called By]

  - >> CMU_LFXOInit
  - >> CMU_HFXOInit

  CMU_DivToLog2 (Thumb, 12 bytes, Stack size 0 bytes, em_cmu.o(.text))
  [Called By]

  - >> CMU_ClockFreqGet
  - >> CMU_ClockDivSet
  - >> CMU_ClockDivGet

  CMU_Log2ToDiv (Thumb, 8 bytes, Stack size 0 bytes, em_cmu.o(.text), UNUSED)
  [Called By]

  - >> CMU_ClockDivGet

  syncReg (Thumb, 28 bytes, Stack size 0 bytes, em_cmu.o(.text))
  [Called By]

  - >> CMU_ClockEnable
  - >> CMU_ClockDivSet

  BUS_RegBitWrite (Thumb, 18 bytes, Stack size 12 bytes, em_emu.o(.text), UNUSED)
  [Called By]

  - >> EMU_BUPDInit

  emuRestore (Thumb, 260 bytes, Stack size 0 bytes, em_emu.o(.text))
  [Called By]

  - >> EMU_EnterEM3
  - >> EMU_EnterEM2

  getErrataFixEmuE107En (Thumb, 54 bytes, Stack size 0 bytes, em_emu.o(.text))
  [Called By]

  - >> EMU_EnterEM3
  - >> EMU_EnterEM2

  NVIC_SystemReset (Thumb, 56 bytes, Stack size 0 bytes, bootloader.o(.text))
  [Called By]

  - >> main
  - >> commandLoop

  GPIO_PinInGet (Thumb, 36 bytes, Stack size 12 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = GPIO_PinInGet
  [Called By]
  - >> main
  - >> enterBootloaderMode
  - >> enterLowPowerWait

  GPIO_IntConfig (Thumb, 36 bytes, Stack size 32 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 76
  - Call Chain = GPIO_IntConfig ⇒ GPIO_ExtIntConfig ⇒ BUS_RegBitWrite
  [Calls]
  - >> GPIO_ExtIntConfig
  [Called By]
  - >> enterLowPowerWait

  calculateHash (Thumb, 124 bytes, Stack size 48 bytes, verify.o(.text))
  [Stack]

  - Max Depth = 76
  - Call Chain = calculateHash ⇒ encryptCBC128
  [Calls]
  - >> encryptCBC128 (via Veneer)
  [Called By]
  - >> verifyFirmware

  resetPeripherals (Thumb, 24 bytes, Stack size 8 bytes, boot.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = resetPeripherals ⇒ CMU_ClockEnable ⇒ CMU_ClockFreqGet ⇒ lfClkGet ⇒ getHfLeConfig ⇒ BUS_RegBitRead
  [Calls]
  - >> CMU_ClockEnable
  - >> GPIO_PinModeSet
  [Called By]
  - >> BOOT_boot

  calcDecryptionKey (Thumb, 98 bytes, Stack size 16 bytes, aes.o(ram_code))
  [Stack]

  - Max Depth = 16
  - Call Chain = calcDecryptionKey
  [Called By]
  - >> startDecryptCBC

  ### Undefined Global Symbols