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

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

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

### Call chain for Maximum Stack Depth:

main ⇒ hs6220_init ⇒ hs6220_mode_switch ⇒ hs6220_read ⇒ hs6220_read_buffer ⇒ spi_inout

### Mutually Recursive functions

- SVCall_Handler ⇒ SVCall_Handler
- ADC_COMP_IRQHandler ⇒ ADC_COMP_IRQHandler

  ### Function Pointers

  - ADC_COMP_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - CSM_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - DMA_Channel1_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - DMA_Channel2_3_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - EXTI0_1_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - EXTI2_3_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - EXTI4_15_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - FLASH_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - HWDIV_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - HardFault_Handler from bl32f0120_it.o(i.HardFault_Handler) referenced from startup_bl32f0120_keil.o(RESET)
  - I2C1_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - IWDG_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - NMI_Handler from bl32f0120_it.o(i.NMI_Handler) referenced from startup_bl32f0120_keil.o(RESET)
  - PVD_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - PendSV_Handler from bl32f0120_it.o(i.PendSV_Handler) referenced from startup_bl32f0120_keil.o(RESET)
  - RCC_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - RTC_BKP_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - Reset_Handler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - SPI1_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - SVCall_Handler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - SysTick_Handler from board.o(i.SysTick_Handler) referenced from startup_bl32f0120_keil.o(RESET)
  - SystemInit from system_bl32f0120.o(i.SystemInit) referenced from startup_bl32f0120_keil.o(.text)
  - TIM14_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - TIM16_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - TIM17_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - TIM1_BRK_UP_TRG_COM_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - TIM1_CC_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - TIM3_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - USART1_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - USART2_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - USART3_IRQHandler from startup_bl32f0120_keil.o(.text) referenced from startup_bl32f0120_keil.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_bl32f0120_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_bl32f0120_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_bl32f0120_keil.o(.text))
  [Address Reference Count : 1]

  - startup_bl32f0120_keil.o(RESET)

  SVCall_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_bl32f0120_keil.o(.text))
  [Calls]

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

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

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

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_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]
  - >> SetSysClockToDefine
  - >> delay_init

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

  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

  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

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - startup_bl32f0120_keil.o(RESET)

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

  - >> spi_init

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

  - >> spi_init

  RCC_GetClocksFreq (Thumb, 152 bytes, Stack size 8 bytes, hal_rcc.o(i.RCC_GetClocksFreq))
  [Stack]

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

  SPI_BiDirectionalLineConfig (Thumb, 44 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, 172 bytes, Stack size 8 bytes, hal_spi.o(i.SPI_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_Init
  [Called By]
  - >> spi_init

  SPI_ReceiveData (Thumb, 46 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

  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_bl32f0120_keil.o(RESET)

  SystemInit (Thumb, 214 bytes, Stack size 8 bytes, system_bl32f0120.o(i.SystemInit))
  [Stack]

  - Max Depth = 36
  - Call Chain = SystemInit ⇒ SetSysClockToDefine ⇒ __aeabi_uidivmod
  [Calls]
  - >> SetSysClockToDefine
  [Address Reference Count : 1]
  - startup_bl32f0120_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, 12 bytes, Stack size 8 bytes, board.o(i.board_init))
  [Stack]

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

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

  - >> hs6220_delay_ms
  - >> hs6220_init
  - >> main

  hs6220_bank_switch (Thumb, 52 bytes, Stack size 16 bytes, rf.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, rf.o(i.hs6220_ce_high))
  [Stack]

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

  hs6220_ce_high_pulse (Thumb, 24 bytes, Stack size 8 bytes, rf.o(i.hs6220_ce_high_pulse))
  [Stack]

  - Max Depth = 32
  - Call Chain = hs6220_ce_high_pulse ⇒ hs6220_operation ⇒ spi_inout
  [Calls]
  - >> hs6220_operation
  - >> hs6220_delay_us
  [Called By]
  - >> hs6220_send

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

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

  hs6220_clear_all_irq (Thumb, 12 bytes, Stack size 8 bytes, rf.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_send
  - >> hs6220_init

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

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

  hs6220_init (Thumb, 464 bytes, Stack size 24 bytes, rf.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_buffer
  - >> hs6220_write
  - >> hs6220_read
  - >> hs6220_mode_switch
  - >> hs6220_flush_tx
  - >> hs6220_clear_all_irq
  - >> hs6220_ce_low
  - >> hs6220_ce_high
  - >> hs6220_bank_switch
  - >> hs6220_delay_us
  - >> hs6220_delay_ms
  - >> delay_ms
  [Called By]
  - >> main

  hs6220_mode_switch (Thumb, 62 bytes, Stack size 16 bytes, rf.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_send
  - >> hs6220_init

  hs6220_operation (Thumb, 24 bytes, Stack size 8 bytes, rf.o(i.hs6220_operation))
  [Stack]

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

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

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

  hs6220_read_buffer (Thumb, 48 bytes, Stack size 24 bytes, rf.o(i.hs6220_read_buffer))
  [Stack]

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

  hs6220_send (Thumb, 40 bytes, Stack size 16 bytes, rf.o(i.hs6220_send))
  [Stack]

  - Max Depth = 88
  - Call Chain = hs6220_send ⇒ hs6220_mode_switch ⇒ hs6220_read ⇒ hs6220_read_buffer ⇒ spi_inout
  [Calls]
  - >> hs6220_write_buffer
  - >> hs6220_mode_switch
  - >> hs6220_flush_tx
  - >> hs6220_clear_all_irq
  - >> hs6220_ce_low
  - >> hs6220_ce_high_pulse
  [Called By]
  - >> main

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

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

  hs6220_write_buffer (Thumb, 52 bytes, Stack size 16 bytes, rf.o(i.hs6220_write_buffer))
  [Stack]

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

  hs6220_write_cmd (Thumb, 32 bytes, Stack size 16 bytes, rf.o(i.hs6220_write_cmd))
  [Stack]

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

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

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

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

  - >> SysTick_Handler

  spi_init (Thumb, 214 bytes, Stack size 40 bytes, spi.o(i.spi_init))
  [Stack]

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

  spi_inout (Thumb, 80 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

  SetSysClockToDefine (Thumb, 208 bytes, Stack size 16 bytes, system_bl32f0120.o(i.SetSysClockToDefine))
  [Stack]

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

  __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, 76 bytes, Stack size 24 bytes, board.o(i.delay_init))
  [Stack]

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

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

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

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

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

  ### Undefined Global Symbols

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

  - >> __rt_lib_shutdown_fini