# Static Call Graph for image .\out\BL210x_Demo.axf

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Wed Sep 22 16:03:24 2021

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

### Call chain for Maximum Stack Depth:

main ⇒ uart_test ⇒ uart_init ⇒ UART_Init ⇒ __aeabi_ui2d ⇒ _double_epilogue ⇒ __aeabi_llsr

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- SVC_Handler ⇒ SVC_Handler
- PendSV_Handler ⇒ PendSV_Handler
- SysTick_Handler ⇒ SysTick_Handler
- PWMBASE0_Handler ⇒ PWMBASE0_Handler
- PWMPLUS0_Handler ⇒ PWMPLUS0_Handler
- IIC0_Handler ⇒ IIC0_Handler
- ADC_Handler ⇒ ADC_Handler
- SPI0_Handler ⇒ SPI0_Handler
- IWDT_Handler ⇒ IWDT_Handler
- GPIOA0_Handler ⇒ GPIOA0_Handler
- GPIOA1_Handler ⇒ GPIOA1_Handler
- GPIOA2_Handler ⇒ GPIOA2_Handler
- GPIOA3_Handler ⇒ GPIOA3_Handler
- GPIOA8_Handler ⇒ GPIOA8_Handler
- GPIOA9_Handler ⇒ GPIOA9_Handler
- GPIOA10_Handler ⇒ GPIOA10_Handler
- GPIOA11_Handler ⇒ GPIOA11_Handler
- GPIOA12_Handler ⇒ GPIOA12_Handler
- GPIOA13_Handler ⇒ GPIOA13_Handler
- GPIOA14_Handler ⇒ GPIOA14_Handler
- GPIOA15_Handler ⇒ GPIOA15_Handler
- IRQ24_Handler ⇒ IRQ24_Handler
- IRQ25_Handler ⇒ IRQ25_Handler
- IRQ26_Handler ⇒ IRQ26_Handler
- IRQ27_Handler ⇒ IRQ27_Handler
- IRQ28_Handler ⇒ IRQ28_Handler
- IRQ29_Handler ⇒ IRQ29_Handler
- IRQ30_Handler ⇒ IRQ30_Handler
- IRQ31_Handler ⇒ IRQ31_Handler

  ### Function Pointers

  - ADC_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA0_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA10_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA11_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA12_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA13_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA14_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA15_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA1_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA2_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA3_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA4_Handler from bl210x_test.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA5_Handler from bl210x_test.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA6_Handler from bl210x_test.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA7_Handler from bl210x_test.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA8_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA9_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - HardFault_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IIC0_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IRQ24_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IRQ25_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IRQ26_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IRQ27_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IRQ28_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IRQ29_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IRQ30_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IRQ31_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - IWDT_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - NMI_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - PWMBASE0_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - PWMPLUS0_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - PendSV_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - Reset_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - SPI0_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - SVC_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - SysTick_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - TIMPLUS0_Handler from bl210x_test.o(.text) referenced from startup_bl2102.o(RESET)
  - UART0_Handler from bl210x_test.o(.text) referenced from startup_bl2102.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_bl2102.o(.text)
  - fputc from bl210x_test.o(.text) referenced from printfb.o(i.__0printf$bare)
  - main from main.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_bl2102.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_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))

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

  - startup_bl2102.o(RESET)

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

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

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

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

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

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

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

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

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

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

  PWMBASE0_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  PWMPLUS0_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IIC0_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  ADC_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  SPI0_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IWDT_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA0_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA1_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA2_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA3_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA8_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA9_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA10_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA11_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA12_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA13_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA14_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  GPIOA15_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IRQ24_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IRQ25_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IRQ26_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IRQ27_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IRQ28_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IRQ29_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IRQ30_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  IRQ31_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2102.o(.text))
  [Calls]

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

  SystemCoreClockUpdate (Thumb, 136 bytes, Stack size 24 bytes, system_bl2102.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> SystemInit

  Switch_CLK_48MHZ (Thumb, 46 bytes, Stack size 0 bytes, system_bl2102.o(.text))
  [Called By]

  - >> SystemClkSel

  Switch_CLK_48MHZ_DIV2 (Thumb, 46 bytes, Stack size 0 bytes, system_bl2102.o(.text))
  [Called By]

  - >> SystemClkSel
  - >> Switch_CLK_32KHZ
  - >> Switch_CLK_XTAL_DIV4
  - >> Switch_CLK_XTAL_DIV2
  - >> Switch_CLK_XTAL
  - >> Switch_CLK_48MHZ_DIV4

  Switch_CLK_48MHZ_DIV4 (Thumb, 42 bytes, Stack size 4 bytes, system_bl2102.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = Switch_CLK_48MHZ_DIV4
  [Calls]
  - >> Switch_CLK_48MHZ_DIV2
  [Called By]
  - >> SystemClkSel

  Switch_CLK_XTAL (Thumb, 68 bytes, Stack size 4 bytes, system_bl2102.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = Switch_CLK_XTAL
  [Calls]
  - >> Switch_CLK_48MHZ_DIV2
  [Called By]
  - >> SystemClkSel

  Switch_CLK_XTAL_DIV2 (Thumb, 76 bytes, Stack size 4 bytes, system_bl2102.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = Switch_CLK_XTAL_DIV2
  [Calls]
  - >> Switch_CLK_48MHZ_DIV2
  [Called By]
  - >> SystemClkSel

  Switch_CLK_XTAL_DIV4 (Thumb, 76 bytes, Stack size 4 bytes, system_bl2102.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = Switch_CLK_XTAL_DIV4
  [Calls]
  - >> Switch_CLK_48MHZ_DIV2
  [Called By]
  - >> SystemClkSel

  Switch_CLK_32KHZ (Thumb, 50 bytes, Stack size 4 bytes, system_bl2102.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = Switch_CLK_32KHZ
  [Calls]
  - >> Switch_CLK_48MHZ_DIV2
  [Called By]
  - >> SystemClkSel

  SystemClkSel (Thumb, 82 bytes, Stack size 16 bytes, system_bl2102.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = SystemClkSel ⇒ __ARM_common_switch8
  [Calls]
  - >> FLASH_Read_Word_2 (via Veneer)
  - >> __ARM_common_switch8
  - >> Switch_CLK_32KHZ
  - >> Switch_CLK_XTAL_DIV4
  - >> Switch_CLK_XTAL_DIV2
  - >> Switch_CLK_XTAL
  - >> Switch_CLK_48MHZ_DIV4
  - >> Switch_CLK_48MHZ_DIV2
  - >> Switch_CLK_48MHZ
  [Called By]
  - >> SystemInit

  SystemInit (Thumb, 22 bytes, Stack size 8 bytes, system_bl2102.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = SystemInit ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> FLASH_Init (via Veneer)
  - >> SystemClkSel
  - >> SystemCoreClockUpdate
  [Called By]
  - >> main

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

  - >> EXTI_Init

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

  - >> EXTI_Close
  [Called By]
  - >> Exti_Init

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

  - >> Exti_Init

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

  - >> GPIOA7_Handler
  - >> GPIOA6_Handler
  - >> GPIOA5_Handler
  - >> GPIOA4_Handler

  EXTI_RawState (Thumb, 10 bytes, Stack size 0 bytes, bl210x_exti.o(.text), UNUSED)

  EXTI_Clear (Thumb, 8 bytes, Stack size 0 bytes, bl210x_exti.o(.text))
  [Called By]

  - >> GPIOA7_Handler
  - >> GPIOA6_Handler
  - >> GPIOA5_Handler
  - >> GPIOA4_Handler

  GPIO_Init (Thumb, 408 bytes, Stack size 20 bytes, bl210x_gpio.o(.text), UNUSED)
  [Called By]

  - >> Exti_Init
  - >> led_init

  GPIO_SetBit (Thumb, 12 bytes, Stack size 0 bytes, bl210x_gpio.o(.text), UNUSED)

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

  - >> led_init

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

  - >> exti_test

  GPIO_GetBit (Thumb, 10 bytes, Stack size 0 bytes, bl210x_gpio.o(.text), UNUSED)

  PORT_Init (Thumb, 110 bytes, Stack size 8 bytes, bl210x_port.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = PORT_Init
  [Called By]
  - >> uart_init

  PORT_CFG_Init (Thumb, 78 bytes, Stack size 0 bytes, bl210x_port.o(.text), UNUSED)

  UART_Init (Thumb, 198 bytes, Stack size 32 bytes, bl210x_uart.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = UART_Init ⇒ __aeabi_ui2d ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> __aeabi_uidivmod
  - >> __aeabi_ui2d
  - >> __aeabi_ddiv
  - >> __aeabi_cdrcmple
  [Called By]
  - >> uart_init

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

  - >> fputc
  - >> UART0_Handler

  UART_ReceiveData (Thumb, 52 bytes, Stack size 0 bytes, bl210x_uart.o(.text), UNUSED)

  UART_IsTXEmpty (Thumb, 14 bytes, Stack size 0 bytes, bl210x_uart.o(.text), UNUSED)

  UART_IsRXValid (Thumb, 14 bytes, Stack size 0 bytes, bl210x_uart.o(.text), UNUSED)

  UART_TX_INTEn (Thumb, 22 bytes, Stack size 0 bytes, bl210x_uart.o(.text), UNUSED)

  UART_TX_INTDis (Thumb, 16 bytes, Stack size 0 bytes, bl210x_uart.o(.text), UNUSED)

  UART_RX_INTEn (Thumb, 22 bytes, Stack size 0 bytes, bl210x_uart.o(.text), UNUSED)

  UART_RX_INTDis (Thumb, 16 bytes, Stack size 0 bytes, bl210x_uart.o(.text), UNUSED)

  TIMPLUS_Stop (Thumb, 26 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text))
  [Called By]

  - >> TIMPLUS_Hall_Init
  - >> TIMPLUS_Common_Init

  TIMPLUS_Common_Init (Thumb, 388 bytes, Stack size 12 bytes, bl2102_timerplus.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIMPLUS_Common_Init
  [Calls]
  - >> TIMPLUS_Stop
  [Called By]
  - >> timer_1ms_init

  TIMPLUS_Hall_Init (Thumb, 178 bytes, Stack size 8 bytes, bl2102_timerplus.o(.text), UNUSED)
  [Calls]

  - >> TIMPLUS_Stop

  TIMPLUS_Start (Thumb, 26 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text))
  [Called By]

  - >> timer_1ms_init

  TIMPLUS_SetClkDiv (Thumb, 4 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_SetMode (Thumb, 42 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_SetClkSel (Thumb, 46 bytes, Stack size 8 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_SetExtSel (Thumb, 46 bytes, Stack size 8 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_SetExtLevel (Thumb, 46 bytes, Stack size 8 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_SetOutEn (Thumb, 46 bytes, Stack size 8 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_SetPeriod (Thumb, 14 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_GetPeriod (Thumb, 24 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_GetCurrentValue (Thumb, 24 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_GetCaptureValue (Thumb, 24 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_GetHallLevel (Thumb, 40 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntOvfEn (Thumb, 28 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntOvfDis (Thumb, 38 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntOvfClr (Thumb, 20 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntOvfState (Thumb, 32 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntRiseEn (Thumb, 28 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntRiseDis (Thumb, 28 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntRiseClr (Thumb, 20 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntRiseState (Thumb, 32 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntFallEn (Thumb, 28 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntFallDis (Thumb, 28 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntFallClr (Thumb, 20 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntFallState (Thumb, 32 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntHallRiseEn (Thumb, 44 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntHallRiseDis (Thumb, 44 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntHallRiseClr (Thumb, 32 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntHallRiseState (Thumb, 34 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntHallFallEn (Thumb, 44 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntHallFallDis (Thumb, 44 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntHallFallClr (Thumb, 32 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_IntHallFallState (Thumb, 34 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

  main (Thumb, 40 bytes, Stack size 0 bytes, main.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = main ⇒ uart_test ⇒ uart_init ⇒ UART_Init ⇒ __aeabi_ui2d ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> __2printf
  - >> uart_test
  - >> uart_init
  - >> timer_1ms_init
  - >> Delay1ms
  - >> SystemInit
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  uart_init (Thumb, 64 bytes, Stack size 32 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = uart_init ⇒ UART_Init ⇒ __aeabi_ui2d ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> UART_Init
  - >> PORT_Init
  [Called By]
  - >> uart_test
  - >> main

  UART0_Handler (Thumb, 70 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART0_Handler
  [Calls]
  - >> UART_SendData
  [Address Reference Count : 1]
  - startup_bl2102.o(RESET)

  UART_SendChars (Thumb, 30 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_SendChars
  [Calls]
  - >> NVIC_EnableIRQ
  [Called By]
  - >> uart_test_tx_rx

  uart_test_tx_rx (Thumb, 36 bytes, Stack size 16 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = uart_test_tx_rx ⇒ UART_SendChars
  [Calls]
  - >> UART_SendChars
  [Called By]
  - >> uart_test

  fputc (Thumb, 16 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = fputc
  [Calls]
  - >> UART_SendData
  [Address Reference Count : 1]
  - printfb.o(i.__0printf$bare)

  timer_1ms_init (Thumb, 64 bytes, Stack size 24 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = timer_1ms_init ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  - >> TIMPLUS_Start
  - >> TIMPLUS_Common_Init
  [Called By]
  - >> timer_test
  - >> main

  TIMPLUS0_Handler (Thumb, 36 bytes, Stack size 0 bytes, bl210x_test.o(.text))
  [Address Reference Count : 1]

  - startup_bl2102.o(RESET)

  timer_test (Thumb, 2 bytes, Stack size 0 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> timer_1ms_init

  led_init (Thumb, 96 bytes, Stack size 16 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> GPIO_ClrBit
  - >> GPIO_Init

  uart_test (Thumb, 30 bytes, Stack size 0 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = uart_test ⇒ uart_init ⇒ UART_Init ⇒ __aeabi_ui2d ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> uart_test_tx_rx
  - >> uart_init
  [Called By]
  - >> main

  Exti_Init (Thumb, 160 bytes, Stack size 16 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> NVIC_EnableIRQ
  - >> GPIO_Init
  - >> EXTI_Open
  - >> EXTI_Init
  [Called By]
  - >> exti_test

  GPIOA4_Handler (Thumb, 32 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIOA4_Handler
  [Calls]
  - >> EXTI_Clear
  - >> EXTI_State
  [Address Reference Count : 1]
  - startup_bl2102.o(RESET)

  GPIOA5_Handler (Thumb, 32 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIOA5_Handler
  [Calls]
  - >> EXTI_Clear
  - >> EXTI_State
  [Address Reference Count : 1]
  - startup_bl2102.o(RESET)

  GPIOA6_Handler (Thumb, 32 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIOA6_Handler
  [Calls]
  - >> EXTI_Clear
  - >> EXTI_State
  [Address Reference Count : 1]
  - startup_bl2102.o(RESET)

  GPIOA7_Handler (Thumb, 32 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIOA7_Handler
  [Calls]
  - >> EXTI_Clear
  - >> EXTI_State
  [Address Reference Count : 1]
  - startup_bl2102.o(RESET)

  exti_test (Thumb, 76 bytes, Stack size 0 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> Exti_Init
  - >> GPIO_InvBit

  delay_ms (Thumb, 10 bytes, Stack size 0 bytes, uti.o(.text), UNUSED)

  Delay1ms (Thumb, 30 bytes, Stack size 0 bytes, uti.o(.text))
  [Called By]

  - >> main

  Delay10ms (Thumb, 34 bytes, Stack size 0 bytes, uti.o(.text), UNUSED)

  Delay100us (Thumb, 24 bytes, Stack size 0 bytes, uti.o(.text), UNUSED)

  Delay10us (Thumb, 24 bytes, Stack size 0 bytes, uti.o(.text), UNUSED)

  LogBuf (Thumb, 2 bytes, Stack size 0 bytes, uti.o(.text), UNUSED)

  rwmemset (Thumb, 24 bytes, Stack size 8 bytes, uti.o(.text), UNUSED)

  rwmemcpy (Thumb, 26 bytes, Stack size 8 bytes, uti.o(.text), UNUSED)

  rwmemcmp (Thumb, 30 bytes, Stack size 8 bytes, uti.o(.text), UNUSED)

  __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]
  - >> timer_1ms_init
  - >> UART_Init
  - >> SystemCoreClockUpdate

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

  - Max Depth = 48
  - Call Chain = __aeabi_ddiv ⇒ _double_round
  [Calls]
  - >> _double_round
  [Called By]
  - >> UART_Init

  __aeabi_ui2d (Thumb, 24 bytes, Stack size 16 bytes, dfltui.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = __aeabi_ui2d ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> _double_epilogue
  [Called By]
  - >> UART_Init

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

  - >> UART_Init

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

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

  - Max Depth = 8
  - Call Chain = _double_round
  [Called By]
  - >> __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]
  - >> __aeabi_llsr
  - >> __aeabi_llsl
  - >> __ARM_clz
  - >> _double_round
  [Called By]
  - >> __aeabi_ui2d

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

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

  - Max Depth = 8
  - Call Chain = __aeabi_llsl
  [Called By]
  - >> _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]
  - >> _double_epilogue

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

  __0printf$bare (Thumb, 12 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)
  [Calls]

  - >> _printf_core

  __1printf$bare (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)

  __2printf (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare))
  [Stack]

  - Max Depth = 8
  - Call Chain = __2printf
  [Called By]
  - >> main

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

  - >> _double_epilogue

  __ARM_common_switch8 (Thumb, 26 bytes, Stack size 8 bytes, system_bl2102.o(i.__ARM_common_switch8))
  [Stack]

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

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

  FLASH_Check_Busy (Thumb, 16 bytes, Stack size 0 bytes, bl210x_flash.o(.text))
  [Called By]

  - >> FLASH_Write_Words
  - >> FLASH_Write_Word
  - >> FLASH_ReSet_DeepPowerDown
  - >> FLASH_Set_DeepPowerDown
  - >> FLASH_Quad_Enable
  - >> FLASH_Write_Enable
  - >> FLASH_Wait_WIP
  - >> FLASH_Command_Start

  FLASH_Command_Start (Thumb, 22 bytes, Stack size 4 bytes, bl210x_flash.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = FLASH_Command_Start
  [Calls]
  - >> FLASH_Check_Busy
  [Called By]
  - >> FLASH_Read_Word_1
  - >> FLASH_Erase_Command
  - >> FLASH_ReSet_DeepPowerDown
  - >> FLASH_Set_DeepPowerDown
  - >> FLASH_Quad_Enable
  - >> FLASH_Write_Enable
  - >> FLASH_Wait_WIP

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

  - >> FLASH_Read_Word_1
  - >> FLASH_Write_Words
  - >> FLASH_Write_Word
  - >> FLASH_Erase_Command
  - >> FLASH_ReSet_DeepPowerDown
  - >> FLASH_Set_DeepPowerDown
  - >> FLASH_Quad_Enable
  - >> FLASH_Write_Enable
  - >> FLASH_Wait_WIP

  FLASH_Wait_WIP (Thumb, 34 bytes, Stack size 8 bytes, bl210x_flash.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = FLASH_Wait_WIP ⇒ FLASH_Command_Start
  [Calls]
  - >> FLASH_Write_Command
  - >> FLASH_Command_Start
  - >> FLASH_Check_Busy
  [Called By]
  - >> FLASH_Write_Words
  - >> FLASH_Write_Word
  - >> FLASH_Erase_Command
  - >> FLASH_Quad_Enable

  FLASH_Write_Enable (Thumb, 20 bytes, Stack size 4 bytes, bl210x_flash.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = FLASH_Write_Enable ⇒ FLASH_Command_Start
  [Calls]
  - >> FLASH_Write_Command
  - >> FLASH_Command_Start
  - >> FLASH_Check_Busy
  [Called By]
  - >> FLASH_Write_Words
  - >> FLASH_Write_Word
  - >> FLASH_Erase_Command
  - >> FLASH_Quad_Enable

  FLASH_Quad_Enable (Thumb, 38 bytes, Stack size 4 bytes, bl210x_flash.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = FLASH_Quad_Enable ⇒ FLASH_Wait_WIP ⇒ FLASH_Command_Start
  [Calls]
  - >> FLASH_Write_Enable
  - >> FLASH_Wait_WIP
  - >> FLASH_Write_Command
  - >> FLASH_Command_Start
  - >> FLASH_Check_Busy
  [Called By]
  - >> FLASH_Init

  FLASH_Init (Thumb, 38 bytes, Stack size 4 bytes, bl210x_flash.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = FLASH_Init ⇒ FLASH_Quad_Enable ⇒ FLASH_Wait_WIP ⇒ FLASH_Command_Start
  [Calls]
  - >> FLASH_Quad_Enable
  [Called By]
  - >> SystemInit (via Veneer)

  FLASH_Check_ProgramDataValid (Thumb, 16 bytes, Stack size 0 bytes, bl210x_flash.o(.text), UNUSED)
  [Called By]

  - >> FLASH_Write_Words
  - >> FLASH_Write_Word

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

  - >> FLASH_Write_Words
  - >> FLASH_Write_Word

  FLASH_Set_DeepPowerDown (Thumb, 22 bytes, Stack size 4 bytes, bl210x_flash.o(.text), UNUSED)
  [Calls]

  - >> FLASH_Write_Command
  - >> FLASH_Command_Start
  - >> FLASH_Check_Busy

  FLASH_ReSet_DeepPowerDown (Thumb, 22 bytes, Stack size 4 bytes, bl210x_flash.o(.text), UNUSED)
  [Calls]

  - >> FLASH_Write_Command
  - >> FLASH_Command_Start
  - >> FLASH_Check_Busy

  FLASH_Erase_Command (Thumb, 32 bytes, Stack size 12 bytes, bl210x_flash.o(.text), UNUSED)
  [Calls]

  - >> FLASH_Write_Enable
  - >> FLASH_Wait_WIP
  - >> FLASH_Write_Command
  - >> FLASH_Command_Start

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

  - >> FLASH_Prog_Predata_End
  - >> FLASH_Check_ProgramDataValid
  - >> FLASH_Write_Enable
  - >> FLASH_Wait_WIP
  - >> FLASH_Write_Command
  - >> FLASH_Check_Busy

  FLASH_Write_Words (Thumb, 104 bytes, Stack size 36 bytes, bl210x_flash.o(.text), UNUSED)
  [Calls]

  - >> FLASH_Prog_Predata_End
  - >> FLASH_Check_ProgramDataValid
  - >> FLASH_Write_Enable
  - >> FLASH_Wait_WIP
  - >> FLASH_Write_Command
  - >> FLASH_Check_Busy

  FLASH_Read_Word_1 (Thumb, 38 bytes, Stack size 8 bytes, bl210x_flash.o(.text), UNUSED)
  [Calls]

  - >> FLASH_Write_Command
  - >> FLASH_Command_Start

  FLASH_Read_Word_2 (Thumb, 14 bytes, Stack size 0 bytes, bl210x_flash.o(.text))
  [Called By]

  - >> SystemClkSel (via Veneer)

  ### Local Symbols

  NVIC_EnableIRQ (Thumb, 14 bytes, Stack size 0 bytes, bl210x_test.o(.text))
  [Called By]

  - >> Exti_Init
  - >> UART_SendChars

  _printf_core (Thumb, 30 bytes, Stack size 24 bytes, printfb.o(i._printf_core), UNUSED)
  [Called By]

  - >> __0printf$bare

  ### Undefined Global Symbols

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

  - >> __rt_lib_shutdown_fini