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

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Fri Nov 28 11:13:43 2025

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

### Call chain for Maximum Stack Depth:

main ⇒ hs6220_receive_pack ⇒ hs6220_init ⇒ hs6220_mode_switch ⇒ hs6220_read ⇒ hs6220_read_buffer ⇒ spi_inout

### Mutually Recursive functions

- ADC_COMP_IRQHandler ⇒ ADC_COMP_IRQHandler

  ### Function Pointers

  - ADC_COMP_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - DMA1_Channel1_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - DMA1_Channel2_3_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - DMA1_Channel4_5_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - EXTI0_1_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - EXTI2_3_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - EXTI4_15_IRQHandler from bl32f0140_it.o(i.EXTI4_15_IRQHandler) referenced from startup_bl32f0140_keil.o(RESET)
  - FLASH_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - FLEX_CAN_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - HWDIV_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - HardFault_Handler from bl32f0140_it.o(i.HardFault_Handler) referenced from startup_bl32f0140_keil.o(RESET)
  - I2C1_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - NMI_Handler from bl32f0140_it.o(i.NMI_Handler) referenced from startup_bl32f0140_keil.o(RESET)
  - PVD_VDT_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - PendSV_Handler from bl32f0140_it.o(i.PendSV_Handler) referenced from startup_bl32f0140_keil.o(RESET)
  - RCC_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - Reset_Handler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - SPI1_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - SPI2_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - SVC_Handler from bl32f0140_it.o(i.SVC_Handler) referenced from startup_bl32f0140_keil.o(RESET)
  - SysTick_Handler from board.o(i.SysTick_Handler) referenced from startup_bl32f0140_keil.o(RESET)
  - SystemInit from system_bl32f0140.o(i.SystemInit) referenced from startup_bl32f0140_keil.o(.text)
  - TIM14_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - TIM16_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - TIM17_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - TIM1_BRK_UP_TRG_COM_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - TIM1_CC_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - TIM2_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - TIM3_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - UART1_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - UART2_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - UART3_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - WWDG_IWDG_IRQHandler from startup_bl32f0140_keil.o(.text) referenced from startup_bl32f0140_keil.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_bl32f0140_keil.o(.text)
  - 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_bl32f0140_keil.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, 14 bytes, Stack size 0 bytes, startup_bl32f0140_keil.o(.text))
  [Address Reference Count : 1]

  - startup_bl32f0140_keil.o(RESET)

  ADC_COMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_bl32f0140_keil.o(.text))
  [Calls]

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

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.o(RESET)

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

  - startup_bl32f0140_keil.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]
  - >> AutoCalPllFactor
  - >> SetSysClockToXX_HSI

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

  AutoCalPllFactor (Thumb, 106 bytes, Stack size 48 bytes, system_bl32f0140.o(i.AutoCalPllFactor))
  [Stack]

  - Max Depth = 60
  - Call Chain = AutoCalPllFactor ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> SetSysClockToXX_HSI

  EXTI4_15_IRQHandler (Thumb, 28 bytes, Stack size 8 bytes, bl32f0140_it.o(i.EXTI4_15_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = EXTI4_15_IRQHandler ⇒ EXTI8_IRQHandler
  [Calls]
  - >> EXTI_GetITStatus
  - >> EXTI_ClearITPendingBit
  - >> EXTI8_IRQHandler
  [Address Reference Count : 1]
  - startup_bl32f0140_keil.o(RESET)

  EXTI8_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, hs6220.o(i.EXTI8_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI8_IRQHandler
  [Called By]
  - >> EXTI4_15_IRQHandler

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

  - >> EXTI4_15_IRQHandler

  EXTI_GetITStatus (Thumb, 30 bytes, Stack size 0 bytes, hal_exti.o(i.EXTI_GetITStatus))
  [Called By]

  - >> EXTI4_15_IRQHandler

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

  - >> hs6220_io_init

  EXTI_LineConfig (Thumb, 54 bytes, Stack size 8 bytes, hal_exti.o(i.EXTI_LineConfig))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI_LineConfig
  [Called By]
  - >> hs6220_io_init

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

  - >> hs6220_io_init

  GPIO_Init (Thumb, 154 bytes, Stack size 24 bytes, hal_gpio.o(i.GPIO_Init))
  [Stack]

  - Max Depth = 24
  - Call Chain = GPIO_Init
  [Called By]
  - >> spi_init
  - >> hs6220_io_init

  GPIO_PinAFConfig (Thumb, 40 bytes, Stack size 16 bytes, hal_gpio.o(i.GPIO_PinAFConfig))
  [Stack]

  - Max Depth = 16
  - Call Chain = GPIO_PinAFConfig
  [Called By]
  - >> spi_init

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

  - >> spi_init
  - >> hs6220_io_init

  HardFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, bl32f0140_it.o(i.HardFault_Handler))
  [Address Reference Count : 1]

  - startup_bl32f0140_keil.o(RESET)

  NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, bl32f0140_it.o(i.NMI_Handler))
  [Address Reference Count : 1]

  - startup_bl32f0140_keil.o(RESET)

  NVIC_Init (Thumb, 100 bytes, Stack size 0 bytes, hal_misc.o(i.NVIC_Init))
  [Called By]

  - >> hs6220_io_init

  PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, bl32f0140_it.o(i.PendSV_Handler))
  [Address Reference Count : 1]

  - startup_bl32f0140_keil.o(RESET)

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

  - >> spi_init
  - >> hs6220_io_init

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

  - >> spi_init

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

  - >> hs6220_io_init

  SPI_BiDirectionalLineConfig (Thumb, 64 bytes, Stack size 0 bytes, hal_spi.o(i.SPI_BiDirectionalLineConfig))
  [Called By]

  - >> spi_init

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

  - >> spi_init

  SPI_GetFlagStatus (Thumb, 18 bytes, Stack size 0 bytes, hal_spi.o(i.SPI_GetFlagStatus))
  [Called By]

  - >> spi_inout

  SPI_Init (Thumb, 140 bytes, Stack size 0 bytes, hal_spi.o(i.SPI_Init))
  [Called By]

  - >> spi_init

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

  - >> spi_inout

  SPI_SendData (Thumb, 4 bytes, Stack size 0 bytes, hal_spi.o(i.SPI_SendData))
  [Called By]

  - >> spi_inout

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

  - >> spi_init

  SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, bl32f0140_it.o(i.SVC_Handler))
  [Address Reference Count : 1]

  - startup_bl32f0140_keil.o(RESET)

  SysTick_Handler (Thumb, 18 bytes, Stack size 8 bytes, board.o(i.SysTick_Handler))
  [Stack]

  - Max Depth = 8
  - Call Chain = SysTick_Handler
  [Calls]
  - >> rf_int
  [Address Reference Count : 1]
  - startup_bl32f0140_keil.o(RESET)

  SystemInit (Thumb, 90 bytes, Stack size 8 bytes, system_bl32f0140.o(i.SystemInit))
  [Stack]

  - Max Depth = 108
  - Call Chain = SystemInit ⇒ SetSysClock ⇒ SetSysClockToXX_HSI ⇒ AutoCalPllFactor ⇒ __aeabi_uidivmod
  [Calls]
  - >> SetSysClock
  [Address Reference Count : 1]
  - startup_bl32f0140_keil.o(.text)

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

  board_init (Thumb, 16 bytes, Stack size 8 bytes, board.o(i.board_init))
  [Stack]

  - Max Depth = 56
  - Call Chain = board_init ⇒ spi_init ⇒ GPIO_Init
  [Calls]
  - >> spi_init
  - >> hs6220_io_init
  - >> delay_init
  [Called By]
  - >> main

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

  - >> hs6220_init
  - >> hs6220_delay_ms

  hs6220_bank_switch (Thumb, 52 bytes, Stack size 16 bytes, radio.o(i.hs6220_bank_switch))
  [Stack]

  - Max Depth = 72
  - Call Chain = hs6220_bank_switch ⇒ hs6220_read ⇒ hs6220_read_buffer ⇒ spi_inout
  [Calls]
  - >> hs6220_write_cmd
  - >> hs6220_read
  [Called By]
  - >> hs6220_init

  hs6220_ce_high (Thumb, 10 bytes, Stack size 8 bytes, radio.o(i.hs6220_ce_high))
  [Stack]

  - Max Depth = 32
  - Call Chain = hs6220_ce_high ⇒ hs6220_operation ⇒ spi_inout
  [Calls]
  - >> hs6220_operation
  [Called By]
  - >> hs6220_receive_pack
  - >> hs6220_init

  hs6220_ce_low (Thumb, 10 bytes, Stack size 8 bytes, radio.o(i.hs6220_ce_low))
  [Stack]

  - Max Depth = 32
  - Call Chain = hs6220_ce_low ⇒ hs6220_operation ⇒ spi_inout
  [Calls]
  - >> hs6220_operation
  [Called By]
  - >> hs6220_receive_pack
  - >> hs6220_init

  hs6220_clear_all_irq (Thumb, 12 bytes, Stack size 8 bytes, radio.o(i.hs6220_clear_all_irq))
  [Stack]

  - Max Depth = 56
  - Call Chain = hs6220_clear_all_irq ⇒ hs6220_write ⇒ hs6220_write_buffer ⇒ spi_inout
  [Calls]
  - >> hs6220_write
  [Called By]
  - >> hs6220_receive_pack
  - >> hs6220_init

  hs6220_flush_rx (Thumb, 10 bytes, Stack size 8 bytes, radio.o(i.hs6220_flush_rx))
  [Stack]

  - Max Depth = 32
  - Call Chain = hs6220_flush_rx ⇒ hs6220_operation ⇒ spi_inout
  [Calls]
  - >> hs6220_operation
  [Called By]
  - >> hs6220_receive_pack

  hs6220_flush_tx (Thumb, 10 bytes, Stack size 8 bytes, radio.o(i.hs6220_flush_tx))
  [Stack]

  - Max Depth = 32
  - Call Chain = hs6220_flush_tx ⇒ hs6220_operation ⇒ spi_inout
  [Calls]
  - >> hs6220_operation
  [Called By]
  - >> hs6220_receive_pack
  - >> hs6220_init

  hs6220_init (Thumb, 464 bytes, Stack size 24 bytes, radio.o(i.hs6220_init))
  [Stack]

  - Max Depth = 96
  - Call Chain = hs6220_init ⇒ hs6220_mode_switch ⇒ hs6220_read ⇒ hs6220_read_buffer ⇒ spi_inout
  [Calls]
  - >> hs6220_write
  - >> hs6220_mode_switch
  - >> hs6220_flush_tx
  - >> hs6220_clear_all_irq
  - >> hs6220_ce_low
  - >> hs6220_ce_high
  - >> hs6220_bank_switch
  - >> hs6220_write_buffer
  - >> hs6220_read
  - >> hs6220_delay_us
  - >> hs6220_delay_ms
  - >> delay_ms
  [Called By]
  - >> hs6220_receive_pack
  - >> main

  hs6220_io_init (Thumb, 132 bytes, Stack size 24 bytes, hs6220.o(i.hs6220_io_init))
  [Stack]

  - Max Depth = 48
  - Call Chain = hs6220_io_init ⇒ GPIO_Init
  [Calls]
  - >> RCC_AHBPeriphClockCmd
  - >> GPIO_StructInit
  - >> GPIO_Init
  - >> EXTI_StructInit
  - >> EXTI_LineConfig
  - >> EXTI_Init
  - >> RCC_APB2PeriphClockCmd
  - >> NVIC_Init
  [Called By]
  - >> board_init

  hs6220_mode_switch (Thumb, 62 bytes, Stack size 16 bytes, radio.o(i.hs6220_mode_switch))
  [Stack]

  - Max Depth = 72
  - Call Chain = hs6220_mode_switch ⇒ hs6220_read ⇒ hs6220_read_buffer ⇒ spi_inout
  [Calls]
  - >> hs6220_write
  - >> hs6220_read
  [Called By]
  - >> hs6220_init

  hs6220_receive_pack (Thumb, 174 bytes, Stack size 16 bytes, radio.o(i.hs6220_receive_pack))
  [Stack]

  - Max Depth = 112
  - Call Chain = hs6220_receive_pack ⇒ hs6220_init ⇒ hs6220_mode_switch ⇒ hs6220_read ⇒ hs6220_read_buffer ⇒ spi_inout
  [Calls]
  - >> hs6220_init
  - >> hs6220_write
  - >> hs6220_flush_tx
  - >> hs6220_flush_rx
  - >> hs6220_clear_all_irq
  - >> hs6220_ce_low
  - >> hs6220_ce_high
  - >> hs6220_read_buffer
  - >> hs6220_read
  - >> hs6220_delay_ms
  [Called By]
  - >> main

  hs6220_write (Thumb, 16 bytes, Stack size 16 bytes, radio.o(i.hs6220_write))
  [Stack]

  - Max Depth = 48
  - Call Chain = hs6220_write ⇒ hs6220_write_buffer ⇒ spi_inout
  [Calls]
  - >> hs6220_write_buffer
  [Called By]
  - >> hs6220_receive_pack
  - >> hs6220_init
  - >> hs6220_mode_switch
  - >> hs6220_clear_all_irq

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

  - Max Depth = 112
  - Call Chain = main ⇒ hs6220_receive_pack ⇒ hs6220_init ⇒ hs6220_mode_switch ⇒ hs6220_read ⇒ hs6220_read_buffer ⇒ spi_inout
  [Calls]
  - >> hs6220_receive_pack
  - >> hs6220_init
  - >> board_init
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  rf_int (Thumb, 38 bytes, Stack size 0 bytes, radio.o(i.rf_int))
  [Called By]

  - >> SysTick_Handler

  spi_init (Thumb, 186 bytes, Stack size 24 bytes, spi.o(i.spi_init))
  [Stack]

  - Max Depth = 48
  - Call Chain = spi_init ⇒ GPIO_Init
  [Calls]
  - >> RCC_AHBPeriphClockCmd
  - >> GPIO_StructInit
  - >> GPIO_PinAFConfig
  - >> GPIO_Init
  - >> RCC_APB1PeriphClockCmd
  - >> SPI_StructInit
  - >> SPI_Init
  - >> SPI_Cmd
  - >> SPI_BiDirectionalLineConfig
  [Called By]
  - >> board_init

  spi_inout (Thumb, 82 bytes, Stack size 16 bytes, spi.o(i.spi_inout))
  [Stack]

  - Max Depth = 16
  - Call Chain = spi_inout
  [Calls]
  - >> SPI_SendData
  - >> SPI_ReceiveData
  - >> SPI_GetFlagStatus
  [Called By]
  - >> hs6220_write_cmd
  - >> hs6220_write_buffer
  - >> hs6220_read_buffer
  - >> hs6220_operation

  ### Local Symbols

  SetSysClock (Thumb, 8 bytes, Stack size 8 bytes, system_bl32f0140.o(i.SetSysClock))
  [Stack]

  - Max Depth = 100
  - Call Chain = SetSysClock ⇒ SetSysClockToXX_HSI ⇒ AutoCalPllFactor ⇒ __aeabi_uidivmod
  [Calls]
  - >> SetSysClockToXX_HSI
  [Called By]
  - >> SystemInit

  SetSysClockToXX_HSI (Thumb, 360 bytes, Stack size 32 bytes, system_bl32f0140.o(i.SetSysClockToXX_HSI))
  [Stack]

  - Max Depth = 92
  - Call Chain = SetSysClockToXX_HSI ⇒ AutoCalPllFactor ⇒ __aeabi_uidivmod
  [Calls]
  - >> AutoCalPllFactor
  - >> __aeabi_uidivmod
  [Called By]
  - >> SetSysClock

  __NVIC_SetPriority (Thumb, 110 bytes, Stack size 8 bytes, board.o(i.__NVIC_SetPriority))
  [Stack]

  - Max Depth = 8
  - Call Chain = __NVIC_SetPriority
  [Called By]
  - >> delay_init

  delay_init (Thumb, 60 bytes, Stack size 8 bytes, board.o(i.delay_init))
  [Stack]

  - Max Depth = 16
  - Call Chain = delay_init ⇒ __NVIC_SetPriority
  [Calls]
  - >> __NVIC_SetPriority
  [Called By]
  - >> board_init

  hs6220_delay_ms (Thumb, 10 bytes, Stack size 8 bytes, radio.o(i.hs6220_delay_ms))
  [Stack]

  - Max Depth = 8
  - Call Chain = hs6220_delay_ms
  [Calls]
  - >> delay_ms
  [Called By]
  - >> hs6220_receive_pack
  - >> hs6220_init

  hs6220_delay_us (Thumb, 32 bytes, Stack size 8 bytes, radio.o(i.hs6220_delay_us))
  [Stack]

  - Max Depth = 8
  - Call Chain = hs6220_delay_us
  [Called By]
  - >> hs6220_init

  hs6220_operation (Thumb, 28 bytes, Stack size 8 bytes, radio.o(i.hs6220_operation))
  [Stack]

  - Max Depth = 24
  - Call Chain = hs6220_operation ⇒ spi_inout
  [Calls]
  - >> spi_inout
  [Called By]
  - >> hs6220_flush_tx
  - >> hs6220_flush_rx
  - >> hs6220_ce_low
  - >> hs6220_ce_high

  hs6220_read (Thumb, 20 bytes, Stack size 16 bytes, radio.o(i.hs6220_read))
  [Stack]

  - Max Depth = 56
  - Call Chain = hs6220_read ⇒ hs6220_read_buffer ⇒ spi_inout
  [Calls]
  - >> hs6220_read_buffer
  [Called By]
  - >> hs6220_receive_pack
  - >> hs6220_init
  - >> hs6220_mode_switch
  - >> hs6220_bank_switch

  hs6220_read_buffer (Thumb, 52 bytes, Stack size 24 bytes, radio.o(i.hs6220_read_buffer))
  [Stack]

  - Max Depth = 40
  - Call Chain = hs6220_read_buffer ⇒ spi_inout
  [Calls]
  - >> spi_inout
  [Called By]
  - >> hs6220_receive_pack
  - >> hs6220_read

  hs6220_write_buffer (Thumb, 56 bytes, Stack size 16 bytes, radio.o(i.hs6220_write_buffer))
  [Stack]

  - Max Depth = 32
  - Call Chain = hs6220_write_buffer ⇒ spi_inout
  [Calls]
  - >> spi_inout
  [Called By]
  - >> hs6220_init
  - >> hs6220_write

  hs6220_write_cmd (Thumb, 36 bytes, Stack size 16 bytes, radio.o(i.hs6220_write_cmd))
  [Stack]

  - Max Depth = 32
  - Call Chain = hs6220_write_cmd ⇒ spi_inout
  [Calls]
  - >> spi_inout
  [Called By]
  - >> hs6220_bank_switch

  ### Undefined Global Symbols

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

  - >> __rt_lib_shutdown_fini