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

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Thu Jun 23 10:10:47 2022

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

### Call chain for Maximum Stack Depth:

main ⇒ uart_init ⇒ UART_Init ⇒ __aeabi_dmul ⇒ _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
- IIC0_Handler ⇒ IIC0_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
- GPIOA4_Handler ⇒ GPIOA4_Handler
- GPIOA5_Handler ⇒ GPIOA5_Handler
- GPIOA6_Handler ⇒ GPIOA6_Handler
- GPIOA7_Handler ⇒ GPIOA7_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 bl210x_test.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 startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA5_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA6_Handler from startup_bl2102.o(.text) referenced from startup_bl2102.o(RESET)
  - GPIOA7_Handler from startup_bl2102.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 bl210x_test.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 printf5.o(i.__0printf$5)
  - 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_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))

  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)

  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)

  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)

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

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

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

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

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

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

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

  - >> GPIOA7_Handler
  [Called By]
  - >> GPIOA7_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, 208 bytes, Stack size 16 bytes, system_bl2102.o(.text))
  [Stack]

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

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

  - >> SystemClkSel

  Switch_CLK_48MHZ_DIV2 (Thumb, 60 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, 60 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, 98 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, 110 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, 110 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, 74 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, 90 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, 24 bytes, Stack size 8 bytes, system_bl2102.o(.text))
  [Stack]

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

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

  - >> ADC_Init

  ADC_Init (Thumb, 738 bytes, Stack size 16 bytes, bl210x_adc.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = ADC_Init
  [Calls]
  - >> ADC_Close
  - >> FLASH_Read_Word_2 (via Veneer)
  [Called By]
  - >> MultiChn_Continue_Ovf_Interrupt_Init
  - >> MultiChn_Continue_HalfFull_Interrupt_Init
  - >> MultiChn_Continue_Full_Interrupt_Init
  - >> MultiChn_Continue_Interrupt_Init
  - >> MultiChn_Single_Interrupt_Init
  - >> MultiChn_Continue_Check_Init
  - >> MultiChn_Single_Check_Init
  - >> SingleChn_Continue_Interrupt_Init
  - >> SingleChn_Single_Interrupt_Init
  - >> SingleChn_Continue_Check_Init
  - >> SingleChn_Single_Check_Init
  - >> Pwmplus_Trig_Adc_Init
  - >> Timerplus_High_Trig_Adc_Init
  - >> Timerplus_Low_Trig_Adc_Init
  - >> ADC_VDD_Check_Init

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

  - >> MultiChn_Continue_Ovf_Interrupt_Init
  - >> MultiChn_Continue_HalfFull_Interrupt_Init
  - >> MultiChn_Continue_Full_Interrupt_Init
  - >> MultiChn_Continue_Interrupt_Init
  - >> MultiChn_Single_Interrupt_Init
  - >> MultiChn_Continue_Check_Init
  - >> MultiChn_Single_Check_Init
  - >> SingleChn_Continue_Interrupt_Init
  - >> SingleChn_Single_Interrupt_Init
  - >> SingleChn_Continue_Check_Init
  - >> SingleChn_Single_Check_Init
  - >> Pwmplus_Trig_Adc_Init
  - >> Timerplus_High_Trig_Adc_Init
  - >> Timerplus_Low_Trig_Adc_Init
  - >> ADC_VDD_Check_Init

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

  - >> ADC_Handler
  - >> MultiChn_Continue_FIFO_Interrupt_Devote
  - >> MultiChn_Continue_Ovf_Interrupt_Init
  - >> MultiChn_Continue_HalfFull_Interrupt_Init
  - >> MultiChn_Continue_Full_Interrupt_Init
  - >> MultiChn_Continue_Interrupt_Devote
  - >> MultiChn_Continue_Interrupt_Init
  - >> MultiChn_Single_Interrupt_Devote
  - >> MultiChn_Single_Interrupt_Init
  - >> MultiChn_Continue_Check_Init
  - >> MultiChn_Single_Check_Devote
  - >> MultiChn_Single_Check_Init
  - >> SingleChn_Continue_Interrupt_Devote
  - >> SingleChn_Continue_Interrupt_Init
  - >> SingleChn_Single_Interrupt_Devote
  - >> SingleChn_Single_Interrupt_Init
  - >> SingleChn_Continue_Check_Init
  - >> SingleChn_Single_Check_Devote
  - >> SingleChn_Single_Check_Init
  - >> ADC_VDD_Check_Devote
  - >> ADC_VDD_Check_Init

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

  - >> ADC_Handler

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

  - >> MultiChn_Continue_Ovf_Interrupt_Init
  - >> MultiChn_Continue_HalfFull_Interrupt_Init
  - >> MultiChn_Continue_Full_Interrupt_Init
  - >> MultiChn_Continue_Interrupt_Init
  - >> MultiChn_Single_Interrupt_Init
  - >> MultiChn_Continue_Check_Init
  - >> MultiChn_Single_Check_Init
  - >> SingleChn_Continue_Interrupt_Init
  - >> SingleChn_Single_Interrupt_Init
  - >> SingleChn_Continue_Check_Init
  - >> SingleChn_Single_Check_Init
  - >> Pwmplus_Trig_Adc_Init
  - >> Timerplus_High_Trig_Adc_Init
  - >> Timerplus_Low_Trig_Adc_Init
  - >> ADC_VDD_Check_Init

  ADC_Read (Thumb, 40 bytes, Stack size 16 bytes, bl210x_adc.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = ADC_Read
  [Calls]
  - >> chn2idx
  [Called By]
  - >> ADC_Handler
  - >> MultiChn_Continue_Check_Devote
  - >> MultiChn_Single_Check_Devote
  - >> SingleChn_Continue_Check_Devote
  - >> SingleChn_Single_Check_Devote
  - >> Trig_Adc_Devote
  - >> ADC_VDD_Check_Devote

  ADC_Read_FIFO (Thumb, 30 bytes, Stack size 8 bytes, bl210x_adc.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = ADC_Read_FIFO
  [Called By]
  - >> ADC_Handler

  ADC_IsEOC (Thumb, 46 bytes, Stack size 16 bytes, bl210x_adc.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = ADC_IsEOC
  [Calls]
  - >> chn2idx
  [Called By]
  - >> MultiChn_Continue_Check_Devote
  - >> MultiChn_Single_Check_Devote
  - >> SingleChn_Continue_Check_Devote
  - >> SingleChn_Single_Check_Devote
  - >> Trig_Adc_Devote
  - >> ADC_VDD_Check_Devote

  ADC_IntEOCEn (Thumb, 28 bytes, Stack size 16 bytes, bl210x_adc.o(.text), UNUSED)
  [Calls]

  - >> chn2idx

  ADC_IntEOCDis (Thumb, 28 bytes, Stack size 16 bytes, bl210x_adc.o(.text), UNUSED)
  [Calls]

  - >> chn2idx

  ADC_IntEOCStat (Thumb, 34 bytes, Stack size 16 bytes, bl210x_adc.o(.text), UNUSED)
  [Calls]

  - >> chn2idx

  ADC_IntEOCClr (Thumb, 22 bytes, Stack size 16 bytes, bl210x_adc.o(.text), UNUSED)
  [Calls]

  - >> chn2idx

  ADC_FIFO_Level (Thumb, 16 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

  ADC_FULLStat (Thumb, 12 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

  ADC_HALFFULLStat (Thumb, 14 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

  ADC_EMPTYStat (Thumb, 14 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

  ADC_OVFStat (Thumb, 14 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

  ADC_IntFULLEn (Thumb, 16 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

  ADC_IntFULLDis (Thumb, 16 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

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

  - >> ADC_Handler

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

  - >> ADC_Handler

  ADC_IntHALFFULLEn (Thumb, 16 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

  ADC_IntHALFFULLDis (Thumb, 16 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

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

  - >> ADC_Handler

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

  - >> ADC_Handler

  ADC_IntOVFEn (Thumb, 16 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

  ADC_IntOVFDis (Thumb, 16 bytes, Stack size 0 bytes, bl210x_adc.o(.text), UNUSED)

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

  - >> ADC_Handler

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

  - >> ADC_Handler

  GPIO_Init (Thumb, 520 bytes, Stack size 8 bytes, bl210x_gpio.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIO_Init
  [Called By]
  - >> PWMPLUS_IO_Indicate
  - >> 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))
  [Called By]

  - >> PWMPLUS_IO_Indicate
  - >> led_init

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

  - >> PWMPLUS0_Handler
  - >> TIMPLUS0_Handler

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

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

  - Max Depth = 8
  - Call Chain = PORT_Init
  [Called By]
  - >> PWMPLUS_Init
  - >> MultiChn_Continue_Ovf_Interrupt_Init
  - >> MultiChn_Continue_HalfFull_Interrupt_Init
  - >> MultiChn_Continue_Full_Interrupt_Init
  - >> MultiChn_Continue_Interrupt_Init
  - >> MultiChn_Single_Interrupt_Init
  - >> MultiChn_Continue_Check_Init
  - >> MultiChn_Single_Check_Init
  - >> SingleChn_Continue_Interrupt_Init
  - >> SingleChn_Single_Interrupt_Init
  - >> SingleChn_Continue_Check_Init
  - >> SingleChn_Single_Check_Init
  - >> Pwmplus_Trig_Adc_Init
  - >> Timerplus_High_Trig_Adc_Init
  - >> Timerplus_Low_Trig_Adc_Init
  - >> uart_init

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

  UART_Init (Thumb, 246 bytes, Stack size 56 bytes, bl210x_uart.o(.text))
  [Stack]

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

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

  - >> fputc
  - >> UART0_Handler

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

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

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

  UART_TX_INTEn (Thumb, 40 bytes, Stack size 8 bytes, bl210x_uart.o(.text), UNUSED)
  [Calls]

  - >> NVIC_EnableIRQ

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

  UART_RX_INTEn (Thumb, 40 bytes, Stack size 8 bytes, bl210x_uart.o(.text), UNUSED)
  [Calls]

  - >> NVIC_EnableIRQ

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

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

  - >> FLASH_Write_Word (via Veneer)
  - >> FLASH_Erase_Command (via Veneer)
  - >> TIMPLUS_Hall_Init
  - >> TIMPLUS_Common_Init

  TIMPLUS_Common_Init (Thumb, 334 bytes, Stack size 24 bytes, bl2102_timerplus.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = TIMPLUS_Common_Init
  [Calls]
  - >> TIMPLUS_Stop
  - >> NVIC_EnableIRQ
  [Called By]
  - >> TimerPlus_Tim_Init
  - >> Timerplus_High_Trig_Adc_Init
  - >> Timerplus_Low_Trig_Adc_Init
  - >> timer_1ms_init

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

  - >> TIMPLUS_Stop
  - >> NVIC_EnableIRQ

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

  - >> TimerPlus_Tim_Init
  - >> Timerplus_High_Trig_Adc_Init
  - >> Timerplus_Low_Trig_Adc_Init
  - >> timer_1ms_init
  - >> FLASH_Write_Word (via Veneer)
  - >> FLASH_Erase_Command (via Veneer)

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

  TIMPLUS_SetMode (Thumb, 56 bytes, Stack size 12 bytes, bl2102_timerplus.o(.text), UNUSED)

  TIMPLUS_SetClkSel (Thumb, 58 bytes, Stack size 12 bytes, bl2102_timerplus.o(.text), UNUSED)

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

  TIMPLUS_SetExtLevel (Thumb, 58 bytes, Stack size 12 bytes, bl2102_timerplus.o(.text), UNUSED)

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

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

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

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

  TIMPLUS_GetCaptureValue (Thumb, 26 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, 36 bytes, Stack size 0 bytes, bl2102_timerplus.o(.text), UNUSED)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  - >> PWMPLUS_TimSrc
  - >> PWMPLUS_ChannelInit
  - >> PWMPLUS_CommonInit

  PWMPLUS_CommonInit (Thumb, 362 bytes, Stack size 16 bytes, bl2102_pwmplus.o(.text), UNUSED)
  [Calls]

  - >> PWMPLUS_Stop
  - >> NVIC_EnableIRQ
  [Called By]
  - >> PWMPLUS_Init
  - >> Pwmplus_Trig_Adc_Init

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

  - >> PWMPLUS_SetTrig_Comp
  - >> PWMPLUS_SetComp
  - >> PWMPLUS_ChannelInit

  PWMPLUS_ChannelInit (Thumb, 1152 bytes, Stack size 16 bytes, bl2102_pwmplus.o(.text), UNUSED)
  [Calls]

  - >> PWMPLUS_GetPeriod
  - >> PWMPLUS_Stop
  - >> NVIC_EnableIRQ
  [Called By]
  - >> PWMPLUS_Init
  - >> Pwmplus_Trig_Adc_Init

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

  - >> PWMPLUS_TimSrc
  - >> PWMPLUS_Init
  - >> Pwmplus_Trig_Adc_Init

  PWMPLUS_SetClk_Src (Thumb, 22 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetClkDiv (Thumb, 18 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetMode (Thumb, 24 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetDir (Thumb, 24 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetReload_Cnt (Thumb, 26 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetBrake_Filter (Thumb, 26 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetBrake_InputLevel (Thumb, 26 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetBrake_Enable (Thumb, 78 bytes, Stack size 12 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetBrake_OutLevel (Thumb, 220 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetMask_Enable (Thumb, 256 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetMask_Level (Thumb, 208 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetStartLevel (Thumb, 112 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetIdleLevel (Thumb, 184 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetOutEn (Thumb, 196 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetOutInv (Thumb, 196 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetPeriod (Thumb, 20 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetComp (Thumb, 50 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)
  [Calls]

  - >> PWMPLUS_GetPeriod
  [Called By]
  - >> PWMPLUS0_user_handle

  PWMPLUS_GetComp (Thumb, 34 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)
  [Called By]

  - >> PWMPLUS_SetDeadZone

  PWMPLUS_SetDeadZone (Thumb, 70 bytes, Stack size 12 bytes, bl2102_pwmplus.o(.text), UNUSED)
  [Calls]

  - >> PWMPLUS_GetComp

  PWMPLUS_GetDeadZone (Thumb, 40 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

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

  - >> PWMPLUS_GetPeriod

  PWMPLUS_GetTrig_Comp (Thumb, 6 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetTrig_Sel0 (Thumb, 20 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetTrig_Sel1 (Thumb, 24 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetTrig_Sel2 (Thumb, 26 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_SetTrig_Sel3 (Thumb, 26 bytes, Stack size 8 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntReloadEn (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntReloadDis (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntReloadState (Thumb, 22 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntReloadClr (Thumb, 8 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntBrake0En (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntBrake0Dis (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntBrake0State (Thumb, 22 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntBrake0Clr (Thumb, 8 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntBrake1En (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntBrake1Dis (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntBrake1State (Thumb, 22 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntBrake1Clr (Thumb, 8 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_OvfEn (Thumb, 10 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_OvfDis (Thumb, 10 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_OvfState (Thumb, 20 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_OvfClr (Thumb, 6 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_TrigCompEn (Thumb, 10 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_TrigCompDis (Thumb, 10 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_TrigCompState (Thumb, 20 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_TrigCompClr (Thumb, 6 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_OvfEn (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_OvfDis (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_OvfState (Thumb, 22 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_OvfClr (Thumb, 8 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_TrigCompEn (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_TrigCompDis (Thumb, 12 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_TrigCompState (Thumb, 22 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_TrigCompClr (Thumb, 8 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_CompEn (Thumb, 50 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_CompDis (Thumb, 50 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_CompState (Thumb, 84 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntUp_CompClr (Thumb, 34 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_CompEn (Thumb, 56 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_CompDis (Thumb, 66 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_CompState (Thumb, 90 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_IntDown_CompClr (Thumb, 40 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

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

  - >> PWMPLUS0_user_handle

  PWMPLUS_GetCntState (Thumb, 24 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_GetCntDir (Thumb, 24 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_GetCurrentCnt (Thumb, 10 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_GetBrake0State (Thumb, 22 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

  PWMPLUS_GetBrake1State (Thumb, 22 bytes, Stack size 0 bytes, bl2102_pwmplus.o(.text), UNUSED)

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

  - Max Depth = 200
  - Call Chain = main ⇒ uart_init ⇒ UART_Init ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> uart_init
  - >> timer_1ms_init
  - >> led_init
  - >> delay_ms
  - >> delay_init
  - >> adc_test
  - >> Delay1ms
  - >> SystemInit
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  uart_init (Thumb, 76 bytes, Stack size 16 bytes, bl210x_test.o(.text))
  [Stack]

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

  UART0_Handler (Thumb, 108 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, 44 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Called By]

  - >> uart_test_tx_rx

  uart_test_tx_rx (Thumb, 50 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> UART_SendChars
  [Called By]
  - >> uart_test

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

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

  timer_1ms_init (Thumb, 66 bytes, Stack size 16 bytes, bl210x_test.o(.text))
  [Stack]

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

  TIMPLUS0_Handler (Thumb, 58 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

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

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

  - >> timer_1ms_init

  ADC_VDD_Check_Init (Thumb, 82 bytes, Stack size 24 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  ADC_VDD_Check_Devote (Thumb, 56 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_IsEOC
  - >> ADC_Read
  - >> ADC_Start
  - >> __2printf

  Timerplus_Low_Trig_Adc_Init (Thumb, 168 bytes, Stack size 40 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  - >> TIMPLUS_Start
  - >> TIMPLUS_Common_Init
  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Open
  - >> ADC_Init

  Timerplus_High_Trig_Adc_Init (Thumb, 168 bytes, Stack size 40 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  - >> TIMPLUS_Start
  - >> TIMPLUS_Common_Init
  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Open
  - >> ADC_Init

  Pwmplus_Trig_Adc_Init (Thumb, 340 bytes, Stack size 88 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PWMPLUS_Start
  - >> PWMPLUS_ChannelInit
  - >> PWMPLUS_CommonInit
  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Open
  - >> ADC_Init

  Trig_Adc_Devote (Thumb, 34 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_IsEOC
  - >> ADC_Read
  - >> __2printf

  SingleChn_Single_Check_Init (Thumb, 106 bytes, Stack size 32 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = SingleChn_Single_Check_Init ⇒ ADC_Init
  [Calls]
  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init
  [Called By]
  - >> adc_test

  SingleChn_Single_Check_Devote (Thumb, 38 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = SingleChn_Single_Check_Devote ⇒ __2printf
  [Calls]
  - >> ADC_IsEOC
  - >> ADC_Read
  - >> ADC_Start
  - >> __2printf
  [Called By]
  - >> adc_test

  SingleChn_Continue_Check_Init (Thumb, 100 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  SingleChn_Continue_Check_Devote (Thumb, 34 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_IsEOC
  - >> ADC_Read
  - >> __2printf

  SingleChn_Single_Interrupt_Init (Thumb, 110 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  SingleChn_Single_Interrupt_Devote (Thumb, 48 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_Start
  - >> __2printf

  SingleChn_Continue_Interrupt_Init (Thumb, 108 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  SingleChn_Continue_Interrupt_Devote (Thumb, 48 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_Start
  - >> __2printf

  MultiChn_Single_Check_Init (Thumb, 126 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

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

  - >> ADC_IsEOC
  - >> ADC_Read
  - >> ADC_Start
  - >> __2printf

  MultiChn_Continue_Check_Init (Thumb, 176 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  MultiChn_Continue_Check_Devote (Thumb, 52 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_IsEOC
  - >> ADC_Read
  - >> __2printf

  MultiChn_Single_Interrupt_Init (Thumb, 134 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  MultiChn_Single_Interrupt_Devote (Thumb, 100 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_Start
  - >> __2printf

  MultiChn_Continue_Interrupt_Init (Thumb, 132 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  MultiChn_Continue_Interrupt_Devote (Thumb, 100 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_Start
  - >> __2printf

  MultiChn_Continue_Full_Interrupt_Init (Thumb, 134 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  MultiChn_Continue_HalfFull_Interrupt_Init (Thumb, 134 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  MultiChn_Continue_Ovf_Interrupt_Init (Thumb, 132 bytes, Stack size 32 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PORT_Init
  - >> ADC_SoftReset
  - >> ADC_Start
  - >> ADC_Open
  - >> ADC_Init

  MultiChn_Continue_FIFO_Interrupt_Devote (Thumb, 158 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> ADC_Start
  - >> __2printf

  ADC_Handler (Thumb, 738 bytes, Stack size 32 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = ADC_Handler ⇒ ADC_Read
  [Calls]
  - >> __aeabi_memclr4
  - >> ADC_IntOVFClr
  - >> ADC_IntOVFStat
  - >> ADC_IntHALFFULLClr
  - >> ADC_IntHALFFULLStat
  - >> ADC_IntFULLClr
  - >> ADC_IntFULLStat
  - >> ADC_Read_FIFO
  - >> ADC_Read
  - >> ADC_Stop
  - >> ADC_Start
  [Address Reference Count : 1]
  - startup_bl2102.o(RESET)

  adc_test (Thumb, 12 bytes, Stack size 0 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = adc_test ⇒ SingleChn_Single_Check_Init ⇒ ADC_Init
  [Calls]
  - >> SingleChn_Single_Check_Devote
  - >> SingleChn_Single_Check_Init
  [Called By]
  - >> main

  led_init (Thumb, 108 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = led_init ⇒ GPIO_Init
  [Calls]
  - >> GPIO_ClrBit
  - >> GPIO_Init
  [Called By]
  - >> main

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

  - >> FLASH_Read_Word_1 (via Veneer)
  - >> FLASH_Read_Word_2 (via Veneer)
  - >> __2printf
  [Called By]
  - >> FLASH_SingleReadWrite

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

  - >> FLASH_Read_Word_1 (via Veneer)
  - >> FLASH_Read_Word_2 (via Veneer)
  - >> __2printf
  [Called By]
  - >> FLASH_DualReadWrite

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

  - >> FLASH_Read_Word_1 (via Veneer)
  - >> FLASH_Read_Word_2 (via Veneer)
  - >> __2printf
  [Called By]
  - >> FLASH_QuadReadWrite

  FLASH_SingleReadWrite (Thumb, 182 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> FLASH_SingleRead
  - >> FLASH_Write_Words (via Veneer)
  - >> FLASH_Write_Word (via Veneer)
  - >> FLASH_Erase_Command (via Veneer)
  - >> FLASH_Init (via Veneer)
  - >> __2printf
  [Called By]
  - >> eflash_test

  FLASH_DualReadWrite (Thumb, 110 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> FLASH_DualRead
  - >> FLASH_Write_Words (via Veneer)
  - >> FLASH_Write_Word (via Veneer)
  - >> FLASH_Erase_Command (via Veneer)
  - >> FLASH_Init (via Veneer)

  FLASH_QuadReadWrite (Thumb, 110 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> FLASH_QuadRead
  - >> FLASH_Write_Words (via Veneer)
  - >> FLASH_Write_Word (via Veneer)
  - >> FLASH_Erase_Command (via Veneer)
  - >> FLASH_Init (via Veneer)

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

  - >> FLASH_SingleReadWrite
  - >> __2printf

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

  - >> uart_test_tx_rx
  - >> uart_init

  PWMPLUS_Init (Thumb, 424 bytes, Stack size 72 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PWMPLUS_Start
  - >> PWMPLUS_ChannelInit
  - >> PWMPLUS_CommonInit
  - >> PORT_Init
  [Called By]
  - >> pwm_plus_test
  - >> PWMPLUS_TimSrc

  PWMPLUS_IO_Indicate (Thumb, 172 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> GPIO_ClrBit
  - >> GPIO_Init
  [Called By]
  - >> pwm_plus_test

  PWMPLUS0_Handler (Thumb, 108 bytes, Stack size 8 bytes, bl210x_test.o(.text))
  [Stack]

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

  PWMPLUS0_user_handle (Thumb, 100 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PWMPLUS_SoftLoad
  - >> PWMPLUS_SetComp

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

  - >> TIMPLUS_Start
  - >> TIMPLUS_Common_Init
  [Called By]
  - >> PWMPLUS_TimSrc

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

  - >> TimerPlus_Tim_Init
  - >> PWMPLUS_Init
  - >> delay_ms
  - >> PWMPLUS_Start
  - >> PWMPLUS_Stop
  [Called By]
  - >> pwm_plus_test

  pwm_plus_test (Thumb, 42 bytes, Stack size 8 bytes, bl210x_test.o(.text), UNUSED)
  [Calls]

  - >> PWMPLUS_TimSrc
  - >> PWMPLUS_IO_Indicate
  - >> PWMPLUS_Init

  delay_init (Thumb, 32 bytes, Stack size 8 bytes, uti.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = delay_init ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  delay_us (Thumb, 70 bytes, Stack size 0 bytes, uti.o(.text), UNUSED)

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

  - >> PWMPLUS_TimSrc
  - >> main

  delay_mms (Thumb, 16 bytes, Stack size 0 bytes, uti.o(.text), UNUSED)

  Delay1ms (Thumb, 40 bytes, Stack size 8 bytes, uti.o(.text))
  [Stack]

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

  Delay10ms (Thumb, 42 bytes, Stack size 8 bytes, uti.o(.text), UNUSED)

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

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

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

  rwmemset (Thumb, 22 bytes, Stack size 12 bytes, uti.o(.text), UNUSED)

  rwmemcpy (Thumb, 28 bytes, Stack size 16 bytes, uti.o(.text), UNUSED)

  rwmemcmp (Thumb, 40 bytes, Stack size 20 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]
  - >> Timerplus_High_Trig_Adc_Init
  - >> Timerplus_Low_Trig_Adc_Init
  - >> timer_1ms_init
  - >> delay_init
  - >> UART_Init
  - >> SystemCoreClockUpdate

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

  - >> _memset$wrapper
  - >> __aeabi_memclr

  __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

  __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

  __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memset

  __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
  [Called By]

  - >> ADC_Handler

  __aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

  _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memset

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

  __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

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

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

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

  __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]
  - >> __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_uldivmod
  - >> _double_epilogue

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

  __0printf$5 (Thumb, 24 bytes, Stack size 24 bytes, printf5.o(i.__0printf$5), UNUSED)
  [Calls]

  - >> _printf_core

  __1printf$5 (Thumb, 0 bytes, Stack size 24 bytes, printf5.o(i.__0printf$5), UNUSED)

  __2printf (Thumb, 0 bytes, Stack size 24 bytes, printf5.o(i.__0printf$5))
  [Stack]

  - Max Depth = 24
  - Call Chain = __2printf
  [Called By]
  - >> eflash_test
  - >> FLASH_SingleReadWrite
  - >> FLASH_QuadRead
  - >> FLASH_DualRead
  - >> FLASH_SingleRead
  - >> MultiChn_Continue_FIFO_Interrupt_Devote
  - >> MultiChn_Continue_Interrupt_Devote
  - >> MultiChn_Single_Interrupt_Devote
  - >> MultiChn_Continue_Check_Devote
  - >> MultiChn_Single_Check_Devote
  - >> SingleChn_Continue_Interrupt_Devote
  - >> SingleChn_Single_Interrupt_Devote
  - >> SingleChn_Continue_Check_Devote
  - >> SingleChn_Single_Check_Devote
  - >> Trig_Adc_Devote
  - >> ADC_VDD_Check_Devote

  __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, 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, 20 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, 26 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, 26 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, 40 bytes, Stack size 4 bytes, bl210x_flash.o(.text))
  [Stack]

  - Max Depth = 8
  - 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, 22 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, 40 bytes, Stack size 4 bytes, bl210x_flash.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = FLASH_Quad_Enable ⇒ FLASH_Write_Enable ⇒ 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, 54 bytes, Stack size 12 bytes, bl210x_flash.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = FLASH_Init ⇒ FLASH_Quad_Enable ⇒ FLASH_Write_Enable ⇒ FLASH_Command_Start
  [Calls]
  - >> FLASH_Quad_Enable
  [Called By]
  - >> FLASH_QuadReadWrite (via Veneer)
  - >> FLASH_DualReadWrite (via Veneer)
  - >> FLASH_SingleReadWrite (via Veneer)
  - >> SystemInit (via Veneer)

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

  - >> FLASH_Write_Words
  - >> FLASH_Write_Word

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

  - >> FLASH_Write_Words
  - >> FLASH_Write_Word

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

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

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

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

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

  - >> FLASH_Write_Enable
  - >> FLASH_Wait_WIP
  - >> FLASH_Write_Command
  - >> FLASH_Command_Start
  - >> TIMPLUS_Start (via Veneer)
  - >> TIMPLUS_Stop (via Veneer)
  [Called By]
  - >> FLASH_QuadReadWrite (via Veneer)
  - >> FLASH_DualReadWrite (via Veneer)
  - >> FLASH_SingleReadWrite (via Veneer)

  FLASH_Write_Word (Thumb, 96 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
  - >> TIMPLUS_Start (via Veneer)
  - >> TIMPLUS_Stop (via Veneer)
  [Called By]
  - >> FLASH_QuadReadWrite (via Veneer)
  - >> FLASH_DualReadWrite (via Veneer)
  - >> FLASH_SingleReadWrite (via Veneer)

  FLASH_Write_Words (Thumb, 118 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
  [Called By]
  - >> FLASH_QuadReadWrite (via Veneer)
  - >> FLASH_DualReadWrite (via Veneer)
  - >> FLASH_SingleReadWrite (via Veneer)

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

  - >> FLASH_Write_Command
  - >> FLASH_Command_Start
  [Called By]
  - >> FLASH_QuadRead (via Veneer)
  - >> FLASH_DualRead (via Veneer)
  - >> FLASH_SingleRead (via Veneer)

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

  - >> FLASH_QuadRead (via Veneer)
  - >> FLASH_DualRead (via Veneer)
  - >> FLASH_SingleRead (via Veneer)
  - >> ADC_Init (via Veneer)
  - >> SystemClkSel (via Veneer)

  ### Local Symbols

  chn2idx (Thumb, 92 bytes, Stack size 0 bytes, bl210x_adc.o(.text))
  [Called By]

  - >> ADC_IntEOCClr
  - >> ADC_IntEOCStat
  - >> ADC_IntEOCDis
  - >> ADC_IntEOCEn
  - >> ADC_IsEOC
  - >> ADC_Read

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

  - >> UART_RX_INTEn
  - >> UART_TX_INTEn
  - >> UART_Init

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

  - >> TIMPLUS_Hall_Init
  - >> TIMPLUS_Common_Init

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

  - >> PWMPLUS_ChannelInit
  - >> PWMPLUS_CommonInit

  _printf_core (Thumb, 688 bytes, Stack size 96 bytes, printf5.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  [Called By]
  - >> __0printf$5

  ### Undefined Global Symbols