# Static Call Graph for image .\Objects\HT32F67741 Development Kit.axf

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Tue Sep 06 15:55:24 2022

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

### Call chain for Maximum Stack Depth:

main ⇒ BLE_Process ⇒ BCI_InterfaceConfigure ⇒ BCI_UARTConfigure ⇒ USART_Init ⇒ CKCU_GetPeripFrequency ⇒ CKCU_GetClocksFrequency ⇒ CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- SVC_Handler ⇒ SVC_Handler
- PendSV_Handler ⇒ PendSV_Handler
- ADC_IRQHandler ⇒ ADC_IRQHandler

  ### Function Pointers

  - ADC_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - BFTM0_IRQHandler from timer.o(i.BFTM0_IRQHandler) referenced from startup_ht32f5xxxx_01.o(RESET)
  - BFTM1_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - EVWUP_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - EXTI0_1_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - EXTI2_3_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - EXTI4_15_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - FLASH_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - GPTM0_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - HardFault_Handler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - I2C0_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - I2C1_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - LVD_BOD_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - MCTM0_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - NMI_Handler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - PendSV_Handler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - RTC_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - Reset_Handler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - SCTM0_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - SCTM1_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - SCTM2_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - SCTM3_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - SPI0_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - SPI1_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - SVC_Handler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - SysTick_Handler from timer.o(i.SysTick_Handler) referenced from startup_ht32f5xxxx_01.o(RESET)
  - SystemInit from system_ht32f5xxxx_02.o(i.SystemInit) referenced from startup_ht32f5xxxx_01.o(RESET)
  - UART0_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - UART1_IRQHandler from ble.o(i.UART1_IRQHandler) referenced from startup_ht32f5xxxx_01.o(RESET)
  - USART0_IRQHandler from startup_ht32f5xxxx_01.o(RESET) referenced from startup_ht32f5xxxx_01.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_ht32f5xxxx_01.o(RESET)
  - _sputc from printfa.o(i._sputc) referenced from printfa.o(i.__0vsprintf)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)

  ### Global Symbols

  Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))

  NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Calls]

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

  HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Calls]

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

  SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Calls]

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

  PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Calls]

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

  ADC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Calls]

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

  AES_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  BFTM1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  COMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  EVWUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  EXTI0_1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  EXTI2_3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  EXTI4_15_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  GPTM0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  GPTM1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

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

  - startup_ht32f5xxxx_01.o(RESET)

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

  - startup_ht32f5xxxx_01.o(RESET)

  I2S_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  LVD_BOD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  MCTM0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  PDMA_CH0_1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  PDMA_CH2_5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  PWM0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  PWM1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

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

  - startup_ht32f5xxxx_01.o(RESET)

  SCI_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  SCTM0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  SCTM1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  SCTM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  SCTM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  SPI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  UART0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  UART2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  UART3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  USART0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

  USB_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ht32f5xxxx_01.o(RESET), UNUSED, KEPT)

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

  - startup_ht32f5xxxx_01.o(RESET)

  _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_lib_shutdown_fini (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
  [Calls]

  - >> __arm_fini_ (Weak Reference)

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

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

  __aeabi_uidiv (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)

  __aeabi_uidivmod (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = __aeabi_uidivmod
  [Called By]
  - >> lcm_bus_configure
  - >> SystickConfigure
  - >> CKCU_GetPLLFrequency
  - >> CKCU_GetClocksFrequency
  - >> USART_Init
  - >> _printf_core

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

  - >> BCI_SetupFeatureFlag
  - >> BCI_SetScanResponseData
  - >> BCI_SetDeviceName
  - >> BCI_SetBaudRate
  - >> BCI_SetAdvertisingData
  - >> BLE_ErrorEventRsp
  - >> BLE_Process
  - >> BCI_SendBCIPackage
  - >> BCI_DummyWakeup
  - >> main

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

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

  __aeabi_dadd (Thumb, 330 bytes, Stack size 48 bytes, dadd.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = __aeabi_dadd ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> __aeabi_lasr
  - >> __aeabi_llsl
  - >> _double_round
  - >> _double_epilogue
  [Called By]
  - >> main
  - >> _fp_digits
  - >> __aeabi_drsub
  - >> __aeabi_dsub

  __aeabi_dsub (Thumb, 12 bytes, Stack size 8 bytes, dadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_dadd

  __aeabi_drsub (Thumb, 12 bytes, Stack size 8 bytes, dadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_dadd

  __aeabi_dmul (Thumb, 202 bytes, Stack size 72 bytes, dmul.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = __aeabi_dmul ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> _double_epilogue
  [Called By]
  - >> main
  - >> _fp_digits

  __aeabi_ui2f (Thumb, 14 bytes, Stack size 8 bytes, ffltui.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = __aeabi_ui2f ⇒ _float_epilogue
  [Calls]
  - >> _float_epilogue
  [Called By]
  - >> main

  __aeabi_d2uiz (Thumb, 50 bytes, Stack size 8 bytes, dfixui.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_d2uiz ⇒ __aeabi_llsr
  [Calls]
  - >> __aeabi_llsr
  [Called By]
  - >> main

  __aeabi_f2d (Thumb, 40 bytes, Stack size 0 bytes, f2d.o(.text))
  [Called By]

  - >> main

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

  - >> __aeabi_llsr
  - >> __aeabi_llsl
  [Called By]
  - >> _printf_core
  - >> _fp_digits

  __aeabi_llsl (Thumb, 32 bytes, Stack size 8 bytes, llshl.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_llsl
  [Called By]
  - >> __aeabi_dadd
  - >> __aeabi_d2ulz
  - >> __aeabi_uldivmod
  - >> _double_epilogue

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

  __aeabi_llsr (Thumb, 34 bytes, Stack size 8 bytes, llushr.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_llsr
  [Called By]
  - >> __aeabi_d2uiz
  - >> __aeabi_d2ulz
  - >> __aeabi_uldivmod
  - >> _double_epilogue

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

  __aeabi_lasr (Thumb, 38 bytes, Stack size 8 bytes, llsshr.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_lasr
  [Called By]
  - >> __aeabi_dadd

  _ll_sshift_r (Thumb, 0 bytes, Stack size 8 bytes, llsshr.o(.text), UNUSED)

  __I$use$fp (Thumb, 0 bytes, Stack size 0 bytes, iusefp.o(.text), UNUSED)

  _float_round (Thumb, 16 bytes, Stack size 0 bytes, fepilogue.o(.text), UNUSED)

  _float_epilogue (Thumb, 114 bytes, Stack size 12 bytes, fepilogue.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = _float_epilogue
  [Called By]
  - >> __aeabi_ui2f

  _double_round (Thumb, 26 bytes, Stack size 8 bytes, depilogue.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = _double_round
  [Called By]
  - >> __aeabi_dadd
  - >> __aeabi_ddiv
  - >> _double_epilogue

  _double_epilogue (Thumb, 164 bytes, Stack size 48 bytes, depilogue.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> __ARM_clz
  - >> __aeabi_llsr
  - >> __aeabi_llsl
  - >> _double_round
  [Called By]
  - >> __aeabi_dmul
  - >> __aeabi_dadd

  __aeabi_ddiv (Thumb, 234 bytes, Stack size 40 bytes, ddiv.o(.text), UNUSED)
  [Calls]

  - >> _double_round
  [Called By]
  - >> _fp_digits

  __aeabi_d2ulz (Thumb, 54 bytes, Stack size 8 bytes, dfixul.o(.text), UNUSED)
  [Calls]

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

  __aeabi_cdrcmple (Thumb, 38 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
  [Called By]

  - >> _fp_digits

  __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)

  AFIO_EXTISourceConfig (Thumb, 58 bytes, Stack size 12 bytes, ht32f5xxxx_gpio.o(i.AFIO_EXTISourceConfig))
  [Stack]

  - Max Depth = 12
  - Call Chain = AFIO_EXTISourceConfig
  [Called By]
  - >> BTN_IOConfigure
  - >> MCU_SleepModeProcess

  AFIO_GPxConfig (Thumb, 94 bytes, Stack size 32 bytes, ht32f5xxxx_gpio.o(i.AFIO_GPxConfig))
  [Stack]

  - Max Depth = 32
  - Call Chain = AFIO_GPxConfig
  [Called By]
  - >> BCI_InterfaceConfigure
  - >> BCI_HardwareBaudRateRelease
  - >> BCI_HardwareBaudRateDefault
  - >> lcm_bus_configure
  - >> LED_IO_configure
  - >> BTN_IOConfigure
  - >> MCU_SleepModeProcess

  BCI_AdvertisingControl (Thumb, 52 bytes, Stack size 16 bytes, ble.o(i.BCI_AdvertisingControl))
  [Stack]

  - Max Depth = 36
  - Call Chain = BCI_AdvertisingControl ⇒ malloc
  [Calls]
  - >> malloc
  [Called By]
  - >> BLE_Process

  BCI_AdvertisingInterval (Thumb, 62 bytes, Stack size 24 bytes, ble.o(i.BCI_AdvertisingInterval))
  [Stack]

  - Max Depth = 44
  - Call Chain = BCI_AdvertisingInterval ⇒ malloc
  [Calls]
  - >> malloc
  [Called By]
  - >> BLE_ParameterConfigure

  BCI_ConnectIntervalModify (Thumb, 96 bytes, Stack size 24 bytes, ble.o(i.BCI_ConnectIntervalModify))
  [Stack]

  - Max Depth = 44
  - Call Chain = BCI_ConnectIntervalModify ⇒ malloc
  [Calls]
  - >> malloc
  [Called By]
  - >> main

  BCI_DummyWakeup (Thumb, 58 bytes, Stack size 8 bytes, ble.o(i.BCI_DummyWakeup))
  [Stack]

  - Max Depth = 28
  - Call Chain = BCI_DummyWakeup ⇒ malloc
  [Calls]
  - >> BCI_TransmitPackage
  - >> malloc
  - >> free
  - >> __aeabi_memcpy
  [Called By]
  - >> main

  BCI_HardwareBaudRateDefault (Thumb, 84 bytes, Stack size 8 bytes, ble.o(i.BCI_HardwareBaudRateDefault))
  [Stack]

  - Max Depth = 40
  - Call Chain = BCI_HardwareBaudRateDefault ⇒ AFIO_GPxConfig
  [Calls]
  - >> GPIO_PullResistorConfig
  - >> GPIO_DirectionConfig
  - >> AFIO_GPxConfig
  [Called By]
  - >> BLE_Process

  BCI_HardwareBaudRateRelease (Thumb, 44 bytes, Stack size 8 bytes, ble.o(i.BCI_HardwareBaudRateRelease))
  [Stack]

  - Max Depth = 40
  - Call Chain = BCI_HardwareBaudRateRelease ⇒ AFIO_GPxConfig
  [Calls]
  - >> GPIO_PullResistorConfig
  - >> AFIO_GPxConfig
  [Called By]
  - >> BLE_Process

  BCI_InterfaceConfigure (Thumb, 118 bytes, Stack size 24 bytes, ble.o(i.BCI_InterfaceConfigure))
  [Stack]

  - Max Depth = 156
  - Call Chain = BCI_InterfaceConfigure ⇒ BCI_UARTConfigure ⇒ USART_Init ⇒ CKCU_GetPeripFrequency ⇒ CKCU_GetClocksFrequency ⇒ CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod
  [Calls]
  - >> BCI_UARTConfigure
  - >> BCI_RESET_CLR
  - >> GPIO_DirectionConfig
  - >> CKCU_PeripClockConfig
  - >> AFIO_GPxConfig
  [Called By]
  - >> BLE_Process

  BCI_RESET_CLR (Thumb, 10 bytes, Stack size 0 bytes, ble.o(i.BCI_RESET_CLR))
  [Called By]

  - >> BCI_InterfaceConfigure
  - >> BLE_Process

  BCI_RESET_SET (Thumb, 10 bytes, Stack size 0 bytes, ble.o(i.BCI_RESET_SET))
  [Called By]

  - >> BLE_Process

  BCI_ReadReceiveEmpty (Thumb, 28 bytes, Stack size 0 bytes, ble.o(i.BCI_ReadReceiveEmpty))
  [Called By]

  - >> main

  BCI_ReadReceivePackage (Thumb, 46 bytes, Stack size 0 bytes, ble.o(i.BCI_ReadReceivePackage))
  [Called By]

  - >> BLE_Process

  BCI_ReadTransmitEmpty (Thumb, 28 bytes, Stack size 0 bytes, ble.o(i.BCI_ReadTransmitEmpty))
  [Called By]

  - >> main

  BCI_ReceiveParserPackage (Thumb, 514 bytes, Stack size 8 bytes, ble.o(i.BCI_ReceiveParserPackage))
  [Stack]

  - Max Depth = 28
  - Call Chain = BCI_ReceiveParserPackage ⇒ malloc
  [Calls]
  - >> BCI_WriteReceivePackage
  - >> malloc
  - >> free
  [Called By]
  - >> BLE_Process

  BCI_SendBCIPackage (Thumb, 64 bytes, Stack size 40 bytes, ble.o(i.BCI_SendBCIPackage))
  [Stack]

  - Max Depth = 60
  - Call Chain = BCI_SendBCIPackage ⇒ malloc
  [Calls]
  - >> malloc
  - >> __aeabi_memcpy
  [Called By]
  - >> BLE_ParameterConfigure
  - >> UWS_SendNotifyFFF1Data
  - >> BLE_Process
  - >> main

  BCI_SetAdvertisingData (Thumb, 60 bytes, Stack size 24 bytes, ble.o(i.BCI_SetAdvertisingData))
  [Stack]

  - Max Depth = 44
  - Call Chain = BCI_SetAdvertisingData ⇒ malloc
  [Calls]
  - >> malloc
  - >> __aeabi_memcpy
  [Called By]
  - >> BLE_ParameterConfigure

  BCI_SetBaudRate (Thumb, 62 bytes, Stack size 16 bytes, ble.o(i.BCI_SetBaudRate))
  [Stack]

  - Max Depth = 36
  - Call Chain = BCI_SetBaudRate ⇒ malloc
  [Calls]
  - >> malloc
  - >> __aeabi_memcpy
  [Called By]
  - >> BLE_Process

  BCI_SetCrystalCload (Thumb, 46 bytes, Stack size 16 bytes, ble.o(i.BCI_SetCrystalCload))
  [Stack]

  - Max Depth = 36
  - Call Chain = BCI_SetCrystalCload ⇒ malloc
  [Calls]
  - >> malloc
  [Called By]
  - >> BLE_ParameterConfigure

  BCI_SetDeviceName (Thumb, 60 bytes, Stack size 16 bytes, ble.o(i.BCI_SetDeviceName))
  [Stack]

  - Max Depth = 36
  - Call Chain = BCI_SetDeviceName ⇒ malloc
  [Calls]
  - >> malloc
  - >> __aeabi_memcpy
  [Called By]
  - >> BLE_ParameterConfigure

  BCI_SetOperateMode (Thumb, 130 bytes, Stack size 40 bytes, ble.o(i.BCI_SetOperateMode))
  [Stack]

  - Max Depth = 60
  - Call Chain = BCI_SetOperateMode ⇒ malloc
  [Calls]
  - >> malloc
  [Called By]
  - >> main

  BCI_SetScanResponseData (Thumb, 70 bytes, Stack size 16 bytes, ble.o(i.BCI_SetScanResponseData))
  [Stack]

  - Max Depth = 36
  - Call Chain = BCI_SetScanResponseData ⇒ malloc
  [Calls]
  - >> malloc
  - >> __aeabi_memcpy
  [Called By]
  - >> BLE_ParameterConfigure

  BCI_SetTxPower (Thumb, 46 bytes, Stack size 16 bytes, ble.o(i.BCI_SetTxPower))
  [Stack]

  - Max Depth = 36
  - Call Chain = BCI_SetTxPower ⇒ malloc
  [Calls]
  - >> malloc
  [Called By]
  - >> BLE_ParameterConfigure

  BCI_SetupFeatureFlag (Thumb, 86 bytes, Stack size 24 bytes, ble.o(i.BCI_SetupFeatureFlag))
  [Stack]

  - Max Depth = 44
  - Call Chain = BCI_SetupFeatureFlag ⇒ malloc
  [Calls]
  - >> malloc
  - >> __aeabi_memcpy
  [Called By]
  - >> BLE_Process

  BCI_TransmitPackage (Thumb, 108 bytes, Stack size 0 bytes, ble.o(i.BCI_TransmitPackage))
  [Called By]

  - >> BLE_Transceive
  - >> BCI_DummyWakeup

  BCI_UARTConfigure (Thumb, 86 bytes, Stack size 24 bytes, ble.o(i.BCI_UARTConfigure))
  [Stack]

  - Max Depth = 132
  - Call Chain = BCI_UARTConfigure ⇒ USART_Init ⇒ CKCU_GetPeripFrequency ⇒ CKCU_GetClocksFrequency ⇒ CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod
  [Calls]
  - >> USART_TxRxCmd
  - >> USART_IntConfig
  - >> USART_Init
  [Called By]
  - >> BCI_InterfaceConfigure
  - >> BLE_Process

  BCI_WriteReceivePackage (Thumb, 110 bytes, Stack size 8 bytes, ble.o(i.BCI_WriteReceivePackage))
  [Stack]

  - Max Depth = 16
  - Call Chain = BCI_WriteReceivePackage ⇒ free
  [Calls]
  - >> free
  [Called By]
  - >> BCI_ReceiveParserPackage

  BFTM0_IRQHandler (Thumb, 50 bytes, Stack size 0 bytes, timer.o(i.BFTM0_IRQHandler))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  BLE_ErrorEventRsp (Thumb, 108 bytes, Stack size 16 bytes, bleprocess.o(i.BLE_ErrorEventRsp))
  [Stack]

  - Max Depth = 36
  - Call Chain = BLE_ErrorEventRsp ⇒ malloc
  [Calls]
  - >> malloc
  - >> __aeabi_memcpy
  [Called By]
  - >> BLE_Process

  BLE_EventResponseCheck (Thumb, 174 bytes, Stack size 20 bytes, bleprocess.o(i.BLE_EventResponseCheck))
  [Stack]

  - Max Depth = 20
  - Call Chain = BLE_EventResponseCheck
  [Calls]
  - >> BLE_EventRspQueueRemove
  [Called By]
  - >> BLE_Process

  BLE_EventResponseEmpty (Thumb, 20 bytes, Stack size 0 bytes, bleprocess.o(i.BLE_EventResponseEmpty))
  [Called By]

  - >> main

  BLE_EventRspQueueRemove (Thumb, 110 bytes, Stack size 0 bytes, bleprocess.o(i.BLE_EventRspQueueRemove))
  [Called By]

  - >> BLE_EventResponseCheck
  - >> BLE_Process

  BLE_ParameterConfigure (Thumb, 388 bytes, Stack size 16 bytes, bleprocess.o(i.BLE_ParameterConfigure))
  [Stack]

  - Max Depth = 76
  - Call Chain = BLE_ParameterConfigure ⇒ BCI_SendBCIPackage ⇒ malloc
  [Calls]
  - >> BCI_SetTxPower
  - >> BCI_SetScanResponseData
  - >> BCI_SetDeviceName
  - >> BCI_SetCrystalCload
  - >> BCI_SetAdvertisingData
  - >> BCI_AdvertisingInterval
  - >> __ARM_common_switch8
  - >> BCI_SendBCIPackage
  [Called By]
  - >> BLE_Process

  BLE_ParameterInitial (Thumb, 60 bytes, Stack size 8 bytes, bleprocess.o(i.BLE_ParameterInitial))
  [Stack]

  - Max Depth = 16
  - Call Chain = BLE_ParameterInitial ⇒ free
  [Calls]
  - >> free
  [Called By]
  - >> main

  BLE_Process (Thumb, 946 bytes, Stack size 16 bytes, bleprocess.o(i.BLE_Process))
  [Stack]

  - Max Depth = 172
  - Call Chain = BLE_Process ⇒ BCI_InterfaceConfigure ⇒ BCI_UARTConfigure ⇒ USART_Init ⇒ CKCU_GetPeripFrequency ⇒ CKCU_GetClocksFrequency ⇒ CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod
  [Calls]
  - >> BCI_UARTConfigure
  - >> BCI_SetupFeatureFlag
  - >> BCI_SetBaudRate
  - >> BCI_ReceiveParserPackage
  - >> BCI_ReadReceivePackage
  - >> BCI_RESET_SET
  - >> BCI_RESET_CLR
  - >> BCI_InterfaceConfigure
  - >> BCI_HardwareBaudRateRelease
  - >> BCI_HardwareBaudRateDefault
  - >> BCI_AdvertisingControl
  - >> BLE_TransceiveToEventRsp
  - >> BLE_StatusEventParser
  - >> BLE_ParameterConfigure
  - >> BLE_EventRspQueueRemove
  - >> BLE_EventResponseCheck
  - >> BLE_ErrorEventRsp
  - >> BCI_SendBCIPackage
  - >> free
  - >> __aeabi_memcpy
  [Called By]
  - >> main

  BLE_StatusEventParser (Thumb, 44 bytes, Stack size 0 bytes, bleprocess.o(i.BLE_StatusEventParser))
  [Called By]

  - >> BLE_Process

  BLE_TimerProcess (Thumb, 118 bytes, Stack size 0 bytes, bleprocess.o(i.BLE_TimerProcess))
  [Called By]

  - >> main

  BLE_Transceive (Thumb, 228 bytes, Stack size 16 bytes, bleprocess.o(i.BLE_Transceive))
  [Stack]

  - Max Depth = 36
  - Call Chain = BLE_Transceive ⇒ malloc
  [Calls]
  - >> BCI_TransmitPackage
  - >> malloc
  - >> free
  [Called By]
  - >> BLE_TransceiveToEventRsp
  - >> main

  BLE_TransceiveToEventRsp (Thumb, 28 bytes, Stack size 16 bytes, bleprocess.o(i.BLE_TransceiveToEventRsp))
  [Stack]

  - Max Depth = 52
  - Call Chain = BLE_TransceiveToEventRsp ⇒ BLE_Transceive ⇒ malloc
  [Calls]
  - >> BLE_Transceive
  [Called By]
  - >> BLE_Process

  BTN_ClearWakeupFlag (Thumb, 8 bytes, Stack size 0 bytes, button.o(i.BTN_ClearWakeupFlag))
  [Called By]

  - >> MCU_SleepModeProcess

  BTN_GetButtonStatus (Thumb, 6 bytes, Stack size 0 bytes, button.o(i.BTN_GetButtonStatus))
  [Called By]

  - >> main

  BTN_IOConfigure (Thumb, 150 bytes, Stack size 16 bytes, button.o(i.BTN_IOConfigure))
  [Stack]

  - Max Depth = 48
  - Call Chain = BTN_IOConfigure ⇒ AFIO_GPxConfig
  [Calls]
  - >> GPIO_PullResistorConfig
  - >> GPIO_InputConfig
  - >> GPIO_DirectionConfig
  - >> EXTI_Init
  - >> AFIO_GPxConfig
  - >> AFIO_EXTISourceConfig
  [Called By]
  - >> main

  BTN_ScanButtonStatus (Thumb, 128 bytes, Stack size 8 bytes, button.o(i.BTN_ScanButtonStatus))
  [Stack]

  - Max Depth = 8
  - Call Chain = BTN_ScanButtonStatus
  [Calls]
  - >> load_button_IO
  [Called By]
  - >> main

  BTN_WakeupConfig (Thumb, 46 bytes, Stack size 8 bytes, button.o(i.BTN_WakeupConfig))
  [Stack]

  - Max Depth = 16
  - Call Chain = BTN_WakeupConfig ⇒ EXTI_WakeupEventConfig
  [Calls]
  - >> EXTI_WakeupEventConfig
  [Called By]
  - >> MCU_SleepModeProcess

  CKCU_Configuration (Thumb, 38 bytes, Stack size 16 bytes, main.o(i.CKCU_Configuration))
  [Stack]

  - Max Depth = 44
  - Call Chain = CKCU_Configuration ⇒ CKCU_PeripClockConfig
  [Calls]
  - >> CKCU_SetADCPrescaler
  - >> CKCU_PeripClockConfig
  [Called By]
  - >> main

  CKCU_GetClocksFrequency (Thumb, 130 bytes, Stack size 16 bytes, ht32f5xxxx_ckcu.o(i.CKCU_GetClocksFrequency))
  [Stack]

  - Max Depth = 60
  - Call Chain = CKCU_GetClocksFrequency ⇒ CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod
  [Calls]
  - >> __ARM_common_switch8
  - >> CKCU_GetPLLFrequency
  - >> __aeabi_uidivmod
  [Called By]
  - >> CKCU_GetPeripFrequency

  CKCU_GetPLLFrequency (Thumb, 108 bytes, Stack size 32 bytes, ht32f5xxxx_ckcu.o(i.CKCU_GetPLLFrequency))
  [Stack]

  - Max Depth = 44
  - Call Chain = CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> CKCU_GetClocksFrequency

  CKCU_GetPeripFrequency (Thumb, 50 bytes, Stack size 32 bytes, ht32f5xxxx_ckcu.o(i.CKCU_GetPeripFrequency))
  [Stack]

  - Max Depth = 92
  - Call Chain = CKCU_GetPeripFrequency ⇒ CKCU_GetClocksFrequency ⇒ CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod
  [Calls]
  - >> CKCU_GetClocksFrequency
  [Called By]
  - >> lcm_bus_configure
  - >> USART_Init

  CKCU_PeripClockConfig (Thumb, 60 bytes, Stack size 28 bytes, ht32f5xxxx_ckcu.o(i.CKCU_PeripClockConfig))
  [Stack]

  - Max Depth = 28
  - Call Chain = CKCU_PeripClockConfig
  [Called By]
  - >> BCI_InterfaceConfigure
  - >> CKCU_Configuration

  CKCU_SetADCPrescaler (Thumb, 20 bytes, Stack size 0 bytes, ht32f5xxxx_ckcu.o(i.CKCU_SetADCPrescaler))
  [Called By]

  - >> CKCU_Configuration

  EXTI_ClearWakeupFlag (Thumb, 14 bytes, Stack size 0 bytes, ht32f5xxxx_exti.o(i.EXTI_ClearWakeupFlag))
  [Called By]

  - >> MCU_SleepModeProcess

  EXTI_Init (Thumb, 28 bytes, Stack size 0 bytes, ht32f5xxxx_exti.o(i.EXTI_Init))
  [Called By]

  - >> BTN_IOConfigure
  - >> MCU_SleepModeProcess

  EXTI_WakeupEventConfig (Thumb, 72 bytes, Stack size 8 bytes, ht32f5xxxx_exti.o(i.EXTI_WakeupEventConfig))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI_WakeupEventConfig
  [Called By]
  - >> BTN_WakeupConfig
  - >> MCU_SleepModeProcess

  GPIO_DirectionConfig (Thumb, 20 bytes, Stack size 0 bytes, ht32f5xxxx_gpio.o(i.GPIO_DirectionConfig))
  [Called By]

  - >> BCI_InterfaceConfigure
  - >> BCI_HardwareBaudRateDefault
  - >> lcm_bus_configure
  - >> LED_IO_configure
  - >> BTN_IOConfigure
  - >> MCU_SleepModeProcess

  GPIO_DriveConfig (Thumb, 56 bytes, Stack size 20 bytes, ht32f5xxxx_gpio.o(i.GPIO_DriveConfig))
  [Stack]

  - Max Depth = 20
  - Call Chain = GPIO_DriveConfig
  [Called By]
  - >> lcm_bus_configure
  - >> LED_IO_configure

  GPIO_InputConfig (Thumb, 20 bytes, Stack size 0 bytes, ht32f5xxxx_gpio.o(i.GPIO_InputConfig))
  [Called By]

  - >> BTN_IOConfigure
  - >> MCU_SleepModeProcess

  GPIO_PullResistorConfig (Thumb, 50 bytes, Stack size 0 bytes, ht32f5xxxx_gpio.o(i.GPIO_PullResistorConfig))
  [Called By]

  - >> BCI_HardwareBaudRateRelease
  - >> BCI_HardwareBaudRateDefault
  - >> BTN_IOConfigure

  LED_IO_configure (Thumb, 56 bytes, Stack size 8 bytes, led.o(i.LED_IO_configure))
  [Stack]

  - Max Depth = 40
  - Call Chain = LED_IO_configure ⇒ AFIO_GPxConfig
  [Calls]
  - >> GPIO_DriveConfig
  - >> GPIO_DirectionConfig
  - >> AFIO_GPxConfig
  [Called By]
  - >> main

  LED_always_off (Thumb, 50 bytes, Stack size 12 bytes, led.o(i.LED_always_off))
  [Stack]

  - Max Depth = 12
  - Call Chain = LED_always_off
  [Called By]
  - >> main

  LED_always_on (Thumb, 50 bytes, Stack size 12 bytes, led.o(i.LED_always_on))
  [Stack]

  - Max Depth = 12
  - Call Chain = LED_always_on
  [Called By]
  - >> main

  LED_flash_process (Thumb, 92 bytes, Stack size 0 bytes, led.o(i.LED_flash_process))
  [Called By]

  - >> main

  MCU_SleepModeProcess (Thumb, 122 bytes, Stack size 16 bytes, main.o(i.MCU_SleepModeProcess))
  [Stack]

  - Max Depth = 48
  - Call Chain = MCU_SleepModeProcess ⇒ AFIO_GPxConfig
  [Calls]
  - >> PWRCU_DeepSleep1
  - >> GPIO_InputConfig
  - >> GPIO_DirectionConfig
  - >> EXTI_WakeupEventConfig
  - >> EXTI_Init
  - >> EXTI_ClearWakeupFlag
  - >> BTN_WakeupConfig
  - >> BTN_ClearWakeupFlag
  - >> AFIO_GPxConfig
  - >> AFIO_EXTISourceConfig
  [Called By]
  - >> main

  MCU_gpio_Configuration (Thumb, 2 bytes, Stack size 0 bytes, main.o(i.MCU_gpio_Configuration))
  [Called By]

  - >> main

  PWRCU_DeepSleep1 (Thumb, 102 bytes, Stack size 0 bytes, ht32f5xxxx_pwrcu.o(i.PWRCU_DeepSleep1))
  [Called By]

  - >> MCU_SleepModeProcess

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

  - >> SystickConfigure

  SYSTICK_CounterCmd (Thumb, 44 bytes, Stack size 0 bytes, ht32_cm0plus_misc.o(i.SYSTICK_CounterCmd))
  [Called By]

  - >> SystickConfigure

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

  - >> SystickConfigure

  SYSTICK_SetReloadValue (Thumb, 6 bytes, Stack size 0 bytes, ht32_cm0plus_misc.o(i.SYSTICK_SetReloadValue))
  [Called By]

  - >> SystickConfigure

  ServicePropertiesProcess (Thumb, 388 bytes, Stack size 20 bytes, service.o(i.ServicePropertiesProcess))
  [Stack]

  - Max Depth = 20
  - Call Chain = ServicePropertiesProcess
  [Called By]
  - >> main

  SysTick_Handler (Thumb, 20 bytes, Stack size 0 bytes, timer.o(i.SysTick_Handler))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  SystemInit (Thumb, 394 bytes, Stack size 0 bytes, system_ht32f5xxxx_02.o(i.SystemInit))
  [Address Reference Count : 1]

  - startup_ht32f5xxxx_01.o(RESET)

  SystickConfigure (Thumb, 64 bytes, Stack size 8 bytes, timer.o(i.SystickConfigure))
  [Stack]

  - Max Depth = 20
  - Call Chain = SystickConfigure ⇒ __aeabi_uidivmod
  [Calls]
  - >> SYSTICK_SetReloadValue
  - >> SYSTICK_IntConfig
  - >> SYSTICK_CounterCmd
  - >> SYSTICK_ClockSourceConfig
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  TxMessageQueueJoin (Thumb, 104 bytes, Stack size 8 bytes, main.o(i.TxMessageQueueJoin))
  [Stack]

  - Max Depth = 16
  - Call Chain = TxMessageQueueJoin ⇒ free
  [Calls]
  - >> free
  [Called By]
  - >> main

  UART1_IRQHandler (Thumb, 280 bytes, Stack size 8 bytes, ble.o(i.UART1_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = UART1_IRQHandler ⇒ free
  [Calls]
  - >> free
  [Address Reference Count : 1]
  - startup_ht32f5xxxx_01.o(RESET)

  USART_Init (Thumb, 104 bytes, Stack size 16 bytes, ht32f5xxxx_usart.o(i.USART_Init))
  [Stack]

  - Max Depth = 108
  - Call Chain = USART_Init ⇒ CKCU_GetPeripFrequency ⇒ CKCU_GetClocksFrequency ⇒ CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod
  [Calls]
  - >> CKCU_GetPeripFrequency
  - >> __aeabi_uidivmod
  [Called By]
  - >> BCI_UARTConfigure

  USART_IntConfig (Thumb, 20 bytes, Stack size 0 bytes, ht32f5xxxx_usart.o(i.USART_IntConfig))
  [Called By]

  - >> BCI_UARTConfigure

  USART_TxRxCmd (Thumb, 30 bytes, Stack size 8 bytes, ht32f5xxxx_usart.o(i.USART_TxRxCmd))
  [Stack]

  - Max Depth = 8
  - Call Chain = USART_TxRxCmd
  [Called By]
  - >> BCI_UARTConfigure

  UWS_SendNotifyFFF1Data (Thumb, 20 bytes, Stack size 16 bytes, service.o(i.UWS_SendNotifyFFF1Data))
  [Stack]

  - Max Depth = 76
  - Call Chain = UWS_SendNotifyFFF1Data ⇒ BCI_SendBCIPackage ⇒ malloc
  [Calls]
  - >> BCI_SendBCIPackage
  [Called By]
  - >> main

  __0vsprintf (Thumb, 30 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
  [Calls]

  - >> _sputc
  - >> _printf_core

  __1vsprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)

  __2vsprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)

  __c89vsprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)

  vsprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf))
  [Stack]

  - Max Depth = 24
  - Call Chain = vsprintf
  [Called By]
  - >> lcm_printf

  __ARM_clz (Thumb, 46 bytes, Stack size 0 bytes, depilogue.o(i.__ARM_clz))
  [Called By]

  - >> _double_epilogue

  __ARM_common_switch8 (Thumb, 28 bytes, Stack size 8 bytes, bleprocess.o(i.__ARM_common_switch8))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_common_switch8
  [Called By]
  - >> BLE_ParameterConfigure
  - >> CKCU_GetClocksFrequency

  __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)

  delay_xxus (Thumb, 66 bytes, Stack size 0 bytes, timer.o(i.delay_xxus))
  [Called By]

  - >> lcm_configure
  - >> main

  free (Thumb, 80 bytes, Stack size 8 bytes, malloc.o(i.free))
  [Stack]

  - Max Depth = 8
  - Call Chain = free
  [Called By]
  - >> BCI_ReceiveParserPackage
  - >> BLE_Transceive
  - >> BLE_Process
  - >> BLE_ParameterInitial
  - >> BCI_DummyWakeup
  - >> main
  - >> TxMessageQueueJoin
  - >> UART1_IRQHandler
  - >> BCI_WriteReceivePackage

  lcm_bus_configure (Thumb, 138 bytes, Stack size 8 bytes, lcm.o(i.lcm_bus_configure))
  [Stack]

  - Max Depth = 100
  - Call Chain = lcm_bus_configure ⇒ CKCU_GetPeripFrequency ⇒ CKCU_GetClocksFrequency ⇒ CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod
  [Calls]
  - >> GPIO_DriveConfig
  - >> GPIO_DirectionConfig
  - >> AFIO_GPxConfig
  - >> CKCU_GetPeripFrequency
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  lcm_clear (Thumb, 34 bytes, Stack size 8 bytes, lcm.o(i.lcm_clear))
  [Stack]

  - Max Depth = 16
  - Call Chain = lcm_clear ⇒ lcm_write_blcok_data
  [Calls]
  - >> lcm_write_blcok_data
  - >> lcm_set_position
  [Called By]
  - >> main

  lcm_configure (Thumb, 140 bytes, Stack size 8 bytes, lcm.o(i.lcm_configure))
  [Stack]

  - Max Depth = 12
  - Call Chain = lcm_configure ⇒ lcm_write_cmd
  [Calls]
  - >> delay_xxus
  - >> lcm_write_cmd
  [Called By]
  - >> main

  lcm_printf (Thumb, 92 bytes, Stack size 56 bytes, lcm.o(i.lcm_printf))
  [Stack]

  - Max Depth = 84
  - Call Chain = lcm_printf ⇒ lcm_put8x8_string ⇒ lcm_write_blcok_data
  [Calls]
  - >> lcm_put8x8_string
  - >> lcm_put8x16_string
  - >> lcm_put6x8_string
  - >> vsprintf
  [Called By]
  - >> main

  lcm_put6x8_string (Thumb, 60 bytes, Stack size 20 bytes, lcm.o(i.lcm_put6x8_string))
  [Stack]

  - Max Depth = 28
  - Call Chain = lcm_put6x8_string ⇒ lcm_write_blcok_data
  [Calls]
  - >> lcm_write_blcok_data
  - >> lcm_set_position
  [Called By]
  - >> lcm_printf
  - >> main

  lcm_put8x16_string (Thumb, 102 bytes, Stack size 20 bytes, lcm.o(i.lcm_put8x16_string))
  [Stack]

  - Max Depth = 28
  - Call Chain = lcm_put8x16_string ⇒ lcm_write_blcok_data
  [Calls]
  - >> lcm_write_blcok_data
  - >> lcm_set_position
  [Called By]
  - >> lcm_printf
  - >> main

  lcm_put8x8_clearing (Thumb, 40 bytes, Stack size 12 bytes, lcm.o(i.lcm_put8x8_clearing))
  [Stack]

  - Max Depth = 20
  - Call Chain = lcm_put8x8_clearing ⇒ lcm_write_blcok_data
  [Calls]
  - >> lcm_write_blcok_data
  - >> lcm_set_position
  [Called By]
  - >> main

  lcm_put8x8_string (Thumb, 58 bytes, Stack size 20 bytes, lcm.o(i.lcm_put8x8_string))
  [Stack]

  - Max Depth = 28
  - Call Chain = lcm_put8x8_string ⇒ lcm_write_blcok_data
  [Calls]
  - >> lcm_write_blcok_data
  - >> lcm_set_position
  [Called By]
  - >> lcm_printf
  - >> main

  lcm_put_map (Thumb, 38 bytes, Stack size 12 bytes, lcm.o(i.lcm_put_map))
  [Stack]

  - Max Depth = 20
  - Call Chain = lcm_put_map ⇒ lcm_write_blcok_data
  [Calls]
  - >> lcm_write_blcok_data
  - >> lcm_set_position
  [Called By]
  - >> main

  lcm_serial_output (Thumb, 66 bytes, Stack size 0 bytes, lcm.o(i.lcm_serial_output))
  [Called By]

  - >> lcm_write_cmd

  lcm_set_position (Thumb, 138 bytes, Stack size 0 bytes, lcm.o(i.lcm_set_position))
  [Called By]

  - >> lcm_put_map
  - >> lcm_put8x8_string
  - >> lcm_put8x8_clearing
  - >> lcm_put8x16_string
  - >> lcm_put6x8_string
  - >> lcm_clear

  lcm_write_blcok_data (Thumb, 164 bytes, Stack size 8 bytes, lcm.o(i.lcm_write_blcok_data))
  [Stack]

  - Max Depth = 8
  - Call Chain = lcm_write_blcok_data
  [Called By]
  - >> lcm_put_map
  - >> lcm_put8x8_string
  - >> lcm_put8x8_clearing
  - >> lcm_put8x16_string
  - >> lcm_put6x8_string
  - >> lcm_clear

  lcm_write_cmd (Thumb, 40 bytes, Stack size 4 bytes, lcm.o(i.lcm_write_cmd))
  [Stack]

  - Max Depth = 4
  - Call Chain = lcm_write_cmd
  [Calls]
  - >> lcm_serial_output
  [Called By]
  - >> lcm_configure

  main (Thumb, 2504 bytes, Stack size 32 bytes, main.o(i.main))
  [Stack]

  - Max Depth = 204
  - Call Chain = main ⇒ BLE_Process ⇒ BCI_InterfaceConfigure ⇒ BCI_UARTConfigure ⇒ USART_Init ⇒ CKCU_GetPeripFrequency ⇒ CKCU_GetClocksFrequency ⇒ CKCU_GetPLLFrequency ⇒ __aeabi_uidivmod
  [Calls]
  - >> lcm_put_map
  - >> lcm_put8x8_string
  - >> lcm_put8x8_clearing
  - >> lcm_put8x16_string
  - >> lcm_put6x8_string
  - >> lcm_printf
  - >> lcm_configure
  - >> lcm_clear
  - >> lcm_bus_configure
  - >> delay_xxus
  - >> __aeabi_ui2f
  - >> __aeabi_f2d
  - >> __aeabi_dmul
  - >> __aeabi_dadd
  - >> __aeabi_d2uiz
  - >> UWS_SendNotifyFFF1Data
  - >> SystickConfigure
  - >> ServicePropertiesProcess
  - >> LED_flash_process
  - >> LED_always_on
  - >> LED_always_off
  - >> LED_IO_configure
  - >> BTN_ScanButtonStatus
  - >> BTN_IOConfigure
  - >> BTN_GetButtonStatus
  - >> BLE_Transceive
  - >> BLE_TimerProcess
  - >> BLE_Process
  - >> BLE_ParameterInitial
  - >> BLE_EventResponseEmpty
  - >> BCI_SetOperateMode
  - >> BCI_SendBCIPackage
  - >> BCI_ReadTransmitEmpty
  - >> BCI_ReadReceiveEmpty
  - >> BCI_DummyWakeup
  - >> BCI_ConnectIntervalModify
  - >> TxMessageQueueJoin
  - >> MCU_gpio_Configuration
  - >> MCU_SleepModeProcess
  - >> CKCU_Configuration
  - >> free
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  malloc (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
  [Stack]

  - Max Depth = 20
  - Call Chain = malloc
  [Called By]
  - >> BCI_SetupFeatureFlag
  - >> BCI_SetTxPower
  - >> BCI_SetScanResponseData
  - >> BCI_SetDeviceName
  - >> BCI_SetCrystalCload
  - >> BCI_SetBaudRate
  - >> BCI_SetAdvertisingData
  - >> BCI_ReceiveParserPackage
  - >> BCI_AdvertisingInterval
  - >> BCI_AdvertisingControl
  - >> BLE_ErrorEventRsp
  - >> BLE_Transceive
  - >> BCI_SetOperateMode
  - >> BCI_SendBCIPackage
  - >> BCI_DummyWakeup
  - >> BCI_ConnectIntervalModify

  ### Local Symbols

  load_button_IO (Thumb, 78 bytes, Stack size 0 bytes, button.o(i.load_button_IO))
  [Called By]

  - >> BTN_ScanButtonStatus

  _fp_digits (Thumb, 344 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
  [Calls]

  - >> __aeabi_dmul
  - >> __aeabi_dadd
  - >> __aeabi_ddiv
  - >> __aeabi_d2ulz
  - >> __aeabi_cdrcmple
  - >> __aeabi_uldivmod
  [Called By]
  - >> _printf_core

  _printf_core (Thumb, 1760 bytes, Stack size 128 bytes, printfa.o(i._printf_core), UNUSED)
  [Calls]

  - >> _printf_pre_padding
  - >> _printf_post_padding
  - >> _fp_digits
  - >> __aeabi_uidivmod
  - >> __aeabi_uldivmod
  [Called By]
  - >> __0vsprintf

  _printf_post_padding (Thumb, 32 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
  [Called By]

  - >> _printf_core

  _printf_pre_padding (Thumb, 44 bytes, Stack size 40 bytes, printfa.o(i._printf_pre_padding), UNUSED)
  [Called By]

  - >> _printf_core

  _sputc (Thumb, 10 bytes, Stack size 0 bytes, printfa.o(i._sputc))
  [Called By]

  - >> __0vsprintf
  [Address Reference Count : 1]
  - printfa.o(i.__0vsprintf)

  ### Undefined Global Symbols

  __arm_fini_ (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_shutdown_fini