# Static Call Graph for image .\Objects\bl210x_demo.axf

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Tue Oct 26 10:28:13 2021

### 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 ⇒ _double_round

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- SVC_Handler ⇒ SVC_Handler
- PendSV_Handler ⇒ PendSV_Handler
- SysTick_Handler ⇒ SysTick_Handler
- UART1_Handler ⇒ UART1_Handler
- UART2_Handler ⇒ UART2_Handler
- IIC_Handler ⇒ IIC_Handler
- SPI_Handler ⇒ SPI_Handler
- AES_Handler ⇒ AES_Handler
- WDT_Handler ⇒ WDT_Handler
- GPIOA0_Handler ⇒ GPIOA0_Handler
- GPIOA1_Handler ⇒ GPIOA1_Handler
- GPIOA4_Handler ⇒ GPIOA4_Handler
- GPIOA5_Handler ⇒ GPIOA5_Handler
- GPIOB0_Handler ⇒ GPIOB0_Handler
- GPIOB1_Handler ⇒ GPIOB1_Handler
- GPIOA14_Handler ⇒ GPIOA14_Handler
- GPIOA15_Handler ⇒ GPIOA15_Handler
- GPIOA_Handler ⇒ GPIOA_Handler
- GPIOB_Handler ⇒ GPIOB_Handler
- IRQ21_Handler ⇒ IRQ21_Handler
- IRQ22_Handler ⇒ IRQ22_Handler
- IRQ23_Handler ⇒ IRQ23_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(i.ADC_Handler) referenced from startup_bl2101.o(RESET)
  - AES_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOA0_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOA14_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOA15_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOA1_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOA4_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOA5_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOA_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOB0_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOB1_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - GPIOB_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - HardFault_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IIC_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ21_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ22_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ23_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ24_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ25_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ26_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ27_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ28_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ29_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ30_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - IRQ31_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - NMI_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - PWM_Handler from bl210x_test.o(i.PWM_Handler) referenced from startup_bl2101.o(RESET)
  - PendSV_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - RTC_Handler from bl210x_test.o(i.RTC_Handler) referenced from startup_bl2101.o(RESET)
  - Reset_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - SPI_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - SVC_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - SysTick_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - TIMER_Handler from bl210x_test.o(i.TIMER_Handler) referenced from startup_bl2101.o(RESET)
  - UART0_Handler from bl210x_test.o(i.UART0_Handler) referenced from startup_bl2101.o(RESET)
  - UART1_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - UART2_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - WDT_Handler from startup_bl2101.o(.text) referenced from startup_bl2101.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_bl2101.o(.text)
  - fputc from bl210x_test.o(i.fputc) referenced from printf8.o(i.__0printf$8)
  - main from main.o(i.main) 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_bl2101.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_bl2101.o(.text))
  [Address Reference Count : 1]

  - startup_bl2101.o(RESET)

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

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

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

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

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

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

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

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

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

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

  UART1_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  UART2_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  IIC_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  SPI_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  AES_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  WDT_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

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

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

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

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

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

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

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

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

  GPIOB0_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  GPIOB1_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

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

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

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

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

  GPIOA_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  GPIOB_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  IRQ21_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  IRQ22_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

  IRQ23_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl2101.o(.text))
  [Calls]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  __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 ⇒ _double_round
  [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 ⇒ _double_round
  [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 ⇒ _double_round
  [Calls]
  - >> __ARM_clz
  - >> _double_round
  - >> __aeabi_llsr
  - >> __aeabi_llsl
  [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)

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

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

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

  - >> ADC_Handler

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

  - >> ADC_Handler

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

  - >> ADC_Handler

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

  - >> ADC_Handler

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

  - >> ADC_Handler

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

  - >> ADC_Handler

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

  - Max Depth = 16
  - Call Chain = ADC_Read
  [Calls]
  - >> chn2idx
  [Called By]
  - >> ADC_Handler

  ADC_Read_FIFO (Thumb, 28 bytes, Stack size 8 bytes, bl210x_adc.o(i.ADC_Read_FIFO))
  [Stack]

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

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

  - >> ADC_Handler

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

  - >> ADC_Handler

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

  - >> HS6220_Init

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

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

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

  - >> TIMER_Handler
  - >> SPI_3wire_sendByte
  - >> SPI_3wire_readByte
  - >> HS6220_write_byte
  - >> HS6220_wr_cmd
  - >> HS6220_wr_buffer
  - >> HS6220_read_byte
  - >> HS6220_read_buffer
  - >> HS6220_SPI_Init
  - >> HS6220_Operation

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

  - >> SPI_3wire_readByte

  GPIO_Init (Thumb, 946 bytes, Stack size 8 bytes, bl210x_gpio.o(i.GPIO_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIO_Init
  [Called By]
  - >> SPI_3wire_sendByte
  - >> SPI_3wire_readByte
  - >> HS6220_SPI_Init

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

  - >> TIMER_Handler
  - >> SPI_3wire_sendByte
  - >> SPI_3wire_readByte
  - >> HS6220_write_byte
  - >> HS6220_wr_cmd
  - >> HS6220_wr_buffer
  - >> HS6220_read_byte
  - >> HS6220_read_buffer
  - >> HS6220_SPI_Init
  - >> HS6220_Operation

  HS6220_Bank_Switch (Thumb, 52 bytes, Stack size 16 bytes, hs6220_rf.o(i.HS6220_Bank_Switch))
  [Stack]

  - Max Depth = 72
  - Call Chain = HS6220_Bank_Switch ⇒ HS6220_wr_cmd ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_wr_cmd
  - >> HS6220_read_byte
  [Called By]
  - >> HS6220_Init

  HS6220_CE_High (Thumb, 10 bytes, Stack size 8 bytes, hs6220_rf.o(i.HS6220_CE_High))
  [Stack]

  - Max Depth = 56
  - Call Chain = HS6220_CE_High ⇒ HS6220_Operation ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_Operation
  [Called By]
  - >> HS6220_Init
  - >> rf_test

  HS6220_CE_Low (Thumb, 10 bytes, Stack size 8 bytes, hs6220_rf.o(i.HS6220_CE_Low))
  [Stack]

  - Max Depth = 56
  - Call Chain = HS6220_CE_Low ⇒ HS6220_Operation ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_Operation
  [Called By]
  - >> HS6220_Init
  - >> rf_test

  HS6220_Clear_All_Irq (Thumb, 12 bytes, Stack size 8 bytes, hs6220_rf.o(i.HS6220_Clear_All_Irq))
  [Stack]

  - Max Depth = 64
  - Call Chain = HS6220_Clear_All_Irq ⇒ HS6220_write_byte ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_write_byte
  [Called By]
  - >> HS6220_ReceivePack
  - >> HS6220_Init
  - >> rf_test

  HS6220_Flush_Rx (Thumb, 10 bytes, Stack size 8 bytes, hs6220_rf.o(i.HS6220_Flush_Rx))
  [Stack]

  - Max Depth = 56
  - Call Chain = HS6220_Flush_Rx ⇒ HS6220_Operation ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_Operation
  [Called By]
  - >> HS6220_ReceivePack
  - >> rf_test

  HS6220_Flush_Tx (Thumb, 10 bytes, Stack size 8 bytes, hs6220_rf.o(i.HS6220_Flush_Tx))
  [Stack]

  - Max Depth = 56
  - Call Chain = HS6220_Flush_Tx ⇒ HS6220_Operation ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_Operation
  [Called By]
  - >> HS6220_ReceivePack
  - >> HS6220_Init
  - >> rf_test

  HS6220_Init (Thumb, 342 bytes, Stack size 16 bytes, hs6220_rf.o(i.HS6220_Init))
  [Stack]

  - Max Depth = 88
  - Call Chain = HS6220_Init ⇒ HS6220_Bank_Switch ⇒ HS6220_wr_cmd ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_Flush_Tx
  - >> HS6220_Clear_All_Irq
  - >> HS6220_CE_Low
  - >> HS6220_CE_High
  - >> Delay1ms
  - >> HS6220_write_byte
  - >> HS6220_wr_buffer
  - >> HS6220_read_byte
  - >> HS6220_SPI_Init
  - >> HS6220_Bank_Switch
  - >> Delay10us
  [Called By]
  - >> rf_test

  HS6220_ModeSwitch (Thumb, 50 bytes, Stack size 16 bytes, hs6220_rf.o(i.HS6220_ModeSwitch))
  [Stack]

  - Max Depth = 72
  - Call Chain = HS6220_ModeSwitch ⇒ HS6220_write_byte ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_write_byte
  - >> HS6220_read_byte
  [Called By]
  - >> rf_test

  HS6220_Operation (Thumb, 28 bytes, Stack size 8 bytes, hs6220_rf.o(i.HS6220_Operation))
  [Stack]

  - Max Depth = 48
  - Call Chain = HS6220_Operation ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> GPIO_SetBit
  - >> GPIO_ClrBit
  - >> SPI_SendByte
  [Called By]
  - >> HS6220_Flush_Tx
  - >> HS6220_Flush_Rx
  - >> HS6220_CE_Low
  - >> HS6220_CE_High

  HS6220_ReceivePack (Thumb, 110 bytes, Stack size 24 bytes, hs6220_rf.o(i.HS6220_ReceivePack))
  [Stack]

  - Max Depth = 88
  - Call Chain = HS6220_ReceivePack ⇒ HS6220_Clear_All_Irq ⇒ HS6220_write_byte ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_Flush_Tx
  - >> HS6220_Flush_Rx
  - >> HS6220_Clear_All_Irq
  - >> HS6220_write_byte
  - >> HS6220_read_byte
  - >> HS6220_read_buffer
  [Called By]
  - >> rf_test

  HS6220_SPI_Init (Thumb, 98 bytes, Stack size 8 bytes, hs6220_rf.o(i.HS6220_SPI_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = HS6220_SPI_Init ⇒ GPIO_Init
  [Calls]
  - >> GPIO_SetBit
  - >> GPIO_Init
  - >> GPIO_ClrBit
  [Called By]
  - >> HS6220_Init

  HS6220_SendPack (Thumb, 36 bytes, Stack size 24 bytes, hs6220_rf.o(i.HS6220_SendPack))
  [Stack]

  - Max Depth = 80
  - Call Chain = HS6220_SendPack ⇒ HS6220_wr_buffer ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_wr_buffer
  - >> HS6220_read_byte
  [Called By]
  - >> rf_test

  HS6220_read_buffer (Thumb, 52 bytes, Stack size 16 bytes, hs6220_rf.o(i.HS6220_read_buffer))
  [Stack]

  - Max Depth = 56
  - Call Chain = HS6220_read_buffer ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> GPIO_SetBit
  - >> GPIO_ClrBit
  - >> SPI_SendByte
  - >> SPI_ReadByte
  [Called By]
  - >> HS6220_ReceivePack

  HS6220_read_byte (Thumb, 36 bytes, Stack size 16 bytes, hs6220_rf.o(i.HS6220_read_byte))
  [Stack]

  - Max Depth = 56
  - Call Chain = HS6220_read_byte ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> GPIO_SetBit
  - >> GPIO_ClrBit
  - >> SPI_SendByte
  - >> SPI_ReadByte
  [Called By]
  - >> HS6220_SendPack
  - >> HS6220_ReceivePack
  - >> HS6220_ModeSwitch
  - >> HS6220_Init
  - >> HS6220_Bank_Switch

  HS6220_wr_buffer (Thumb, 56 bytes, Stack size 16 bytes, hs6220_rf.o(i.HS6220_wr_buffer))
  [Stack]

  - Max Depth = 56
  - Call Chain = HS6220_wr_buffer ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> GPIO_SetBit
  - >> GPIO_ClrBit
  - >> SPI_SendByte
  [Called By]
  - >> HS6220_SendPack
  - >> HS6220_Init

  HS6220_wr_cmd (Thumb, 36 bytes, Stack size 16 bytes, hs6220_rf.o(i.HS6220_wr_cmd))
  [Stack]

  - Max Depth = 56
  - Call Chain = HS6220_wr_cmd ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> GPIO_SetBit
  - >> GPIO_ClrBit
  - >> SPI_SendByte
  [Called By]
  - >> HS6220_Bank_Switch

  HS6220_write_byte (Thumb, 40 bytes, Stack size 16 bytes, hs6220_rf.o(i.HS6220_write_byte))
  [Stack]

  - Max Depth = 56
  - Call Chain = HS6220_write_byte ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> GPIO_SetBit
  - >> GPIO_ClrBit
  - >> SPI_SendByte
  [Called By]
  - >> HS6220_ReceivePack
  - >> HS6220_ModeSwitch
  - >> HS6220_Init
  - >> HS6220_Clear_All_Irq

  PORT_Init (Thumb, 174 bytes, Stack size 0 bytes, bl210x_port.o(i.PORT_Init))
  [Called By]

  - >> uart_init

  PWM_Handler (Thumb, 48 bytes, Stack size 0 bytes, bl210x_test.o(i.PWM_Handler))
  [Address Reference Count : 1]

  - startup_bl2101.o(RESET)

  RTC_Handler (Thumb, 58 bytes, Stack size 8 bytes, bl210x_test.o(i.RTC_Handler))
  [Stack]

  - Max Depth = 8
  - Call Chain = RTC_Handler
  [Calls]
  - >> RTC_IntSecondStat
  - >> RTC_IntSecondClr
  - >> RTC_IntOverFlowStat
  - >> RTC_IntOverFlowClr
  - >> RTC_IntAlarmStat
  - >> RTC_IntAlarmClr
  [Address Reference Count : 1]
  - startup_bl2101.o(RESET)

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

  - >> RTC_Handler

  RTC_IntAlarmStat (Thumb, 12 bytes, Stack size 0 bytes, bl2101_rtc.o(i.RTC_IntAlarmStat))
  [Called By]

  - >> RTC_Handler

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

  - >> RTC_Handler

  RTC_IntOverFlowStat (Thumb, 12 bytes, Stack size 0 bytes, bl2101_rtc.o(i.RTC_IntOverFlowStat))
  [Called By]

  - >> RTC_Handler

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

  - >> RTC_Handler

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

  - >> RTC_Handler

  SPI_3wire_readByte (Thumb, 76 bytes, Stack size 24 bytes, hs6220_rf.o(i.SPI_3wire_readByte))
  [Stack]

  - Max Depth = 32
  - Call Chain = SPI_3wire_readByte ⇒ GPIO_Init
  [Calls]
  - >> GPIO_SetBit
  - >> GPIO_Init
  - >> GPIO_GetBit
  - >> GPIO_ClrBit
  [Called By]
  - >> SPI_ReadByte

  SPI_3wire_sendByte (Thumb, 98 bytes, Stack size 24 bytes, hs6220_rf.o(i.SPI_3wire_sendByte))
  [Stack]

  - Max Depth = 32
  - Call Chain = SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> GPIO_SetBit
  - >> GPIO_Init
  - >> GPIO_ClrBit
  [Called By]
  - >> SPI_SendByte

  SPI_ReadByte (Thumb, 8 bytes, Stack size 8 bytes, hs6220_rf.o(i.SPI_ReadByte))
  [Stack]

  - Max Depth = 40
  - Call Chain = SPI_ReadByte ⇒ SPI_3wire_readByte ⇒ GPIO_Init
  [Calls]
  - >> SPI_3wire_readByte
  [Called By]
  - >> HS6220_read_byte
  - >> HS6220_read_buffer

  SPI_SendByte (Thumb, 12 bytes, Stack size 8 bytes, hs6220_rf.o(i.SPI_SendByte))
  [Stack]

  - Max Depth = 40
  - Call Chain = SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> SPI_3wire_sendByte
  [Called By]
  - >> HS6220_write_byte
  - >> HS6220_wr_cmd
  - >> HS6220_wr_buffer
  - >> HS6220_read_byte
  - >> HS6220_read_buffer
  - >> HS6220_Operation

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

  - >> main

  TIMER_Handler (Thumb, 98 bytes, Stack size 8 bytes, bl210x_test.o(i.TIMER_Handler))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIMER_Handler
  [Calls]
  - >> TIMER_INTStat
  - >> TIMER_INTClr
  - >> GPIO_SetBit
  - >> GPIO_ClrBit
  [Address Reference Count : 1]
  - startup_bl2101.o(RESET)

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

  - >> TIMER_Handler

  TIMER_INTStat (Thumb, 24 bytes, Stack size 0 bytes, bl2101_timer.o(i.TIMER_INTStat))
  [Called By]

  - >> TIMER_Handler

  UART0_Handler (Thumb, 118 bytes, Stack size 8 bytes, bl210x_test.o(i.UART0_Handler))
  [Stack]

  - Max Depth = 32
  - Call Chain = UART0_Handler ⇒ __2printf
  [Calls]
  - >> UART_SendData
  - >> __2printf
  [Address Reference Count : 1]
  - startup_bl2101.o(RESET)

  UART_Init (Thumb, 346 bytes, Stack size 56 bytes, bl210x_uart.o(i.UART_Init))
  [Stack]

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

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

  - >> fputc
  - >> UART0_Handler

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

  - >> _printf_core

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

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

  - Max Depth = 24
  - Call Chain = __2printf
  [Called By]
  - >> UART0_Handler
  - >> rf_test
  - >> main

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

  - >> _double_epilogue

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

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

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

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

  - Max Depth = 200
  - Call Chain = main ⇒ uart_init ⇒ UART_Init ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> SystemInit
  - >> uart_init
  - >> rf_test
  - >> Delay1ms
  - >> __2printf
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  rf_test (Thumb, 210 bytes, Stack size 48 bytes, bl210x_test.o(i.rf_test))
  [Stack]

  - Max Depth = 136
  - Call Chain = rf_test ⇒ HS6220_ReceivePack ⇒ HS6220_Clear_All_Irq ⇒ HS6220_write_byte ⇒ SPI_SendByte ⇒ SPI_3wire_sendByte ⇒ GPIO_Init
  [Calls]
  - >> HS6220_SendPack
  - >> HS6220_ReceivePack
  - >> HS6220_ModeSwitch
  - >> HS6220_Init
  - >> HS6220_Flush_Tx
  - >> HS6220_Flush_Rx
  - >> HS6220_Clear_All_Irq
  - >> HS6220_CE_Low
  - >> HS6220_CE_High
  - >> Delay1ms
  - >> __2printf
  [Called By]
  - >> main

  uart_init (Thumb, 70 bytes, Stack size 16 bytes, bl210x_test.o(i.uart_init))
  [Stack]

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

  ### Local Symbols

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

  - >> ADC_Read

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

  - >> UART_Init

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

  - >> UART_Init

  _printf_core (Thumb, 1020 bytes, Stack size 104 bytes, printf8.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  - >> _printf_pre_padding
  - >> _printf_post_padding
  [Called By]
  - >> __0printf$8

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

  - >> _printf_core

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

  - >> _printf_core

  ### Undefined Global Symbols

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

  - >> __rt_lib_shutdown_fini