Static Call Graph - [.\Objects\ys_blc.axf]

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

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Thu May 21 18:22:35 2026

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

### Call chain for Maximum Stack Depth:

main ⇒ mc_speed_calc ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ __aeabi_llsr

### Mutually Recursive functions

- DMA_CHANNEL1_IRQHandler ⇒ DMA_CHANNEL1_IRQHandler

  ### Function Pointers

  - ADC_COMP_IRQHandler from ys32md211_it.o(i.ADC_COMP_IRQHandler) referenced from startup_ys32md211.o(RESET)
  - DMA_CHANNEL1_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - DMA_CHANNEL2_3_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - EXTI0_1_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - EXTI2_3_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - EXTI4_15_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - FLASH_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - HardFault_Handler from ys32md211_it.o(i.HardFault_Handler) referenced from startup_ys32md211.o(RESET)
  - I2C1_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - LED_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - LPTIM_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - NMI_Handler from ys32md211_it.o(i.NMI_Handler) referenced from startup_ys32md211.o(RESET)
  - PVD_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - PendSV_Handler from ys32md211_it.o(i.PendSV_Handler) referenced from startup_ys32md211.o(RESET)
  - RCC_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - RTC_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - Reset_Handler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - SPI1_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - SVC_Handler from ys32md211_it.o(i.SVC_Handler) referenced from startup_ys32md211.o(RESET)
  - SysTick_Handler from ys32md211_it.o(i.SysTick_Handler) referenced from startup_ys32md211.o(RESET)
  - SystemInit from system_ys32md211.o(i.SystemInit) referenced from startup_ys32md211.o(.text)
  - TIM14_IRQHandler from ys32md211_it.o(i.TIM14_IRQHandler) referenced from startup_ys32md211.o(RESET)
  - TIM16_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - TIM17_IRQHandler from ys32md211_it.o(i.TIM17_IRQHandler) referenced from startup_ys32md211.o(RESET)
  - TIM1_BRK_UP_TRG_COM_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - TIM1_CC_IRQHandler from ys32md211_it.o(i.TIM1_CC_IRQHandler) referenced from startup_ys32md211.o(RESET)
  - TIM3_IRQHandler from ys32md211_it.o(i.TIM3_IRQHandler) referenced from startup_ys32md211.o(RESET)
  - UART1_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - UART2_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - WWDG_IRQHandler from startup_ys32md211.o(.text) referenced from startup_ys32md211.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_ys32md211.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_ys32md211.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, 8 bytes, Stack size 0 bytes, startup_ys32md211.o(.text))
  [Address Reference Count : 1]

  - startup_ys32md211.o(RESET)

  DMA_CHANNEL1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_ys32md211.o(.text))
  [Calls]

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

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.o(RESET)

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

  - startup_ys32md211.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]
  - >> mc_speed_calc
  - >> TIM1_PWM_Config
  - >> MX_TIM17_Init
  - >> MX_TIM16_Init
  - >> MX_TIM14_Init
  - >> __aeabi_idivmod

  __aeabi_idiv (Thumb, 0 bytes, Stack size 16 bytes, idiv.o(.text), UNUSED)

  __aeabi_idivmod (Thumb, 40 bytes, Stack size 16 bytes, idiv.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = __aeabi_idivmod ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> Electrical_Angle_Phase_Calculation

  __aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)

  __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text))
  [Called By]

  - >> RCC_GetClocksFreq

  __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)

  __aeabi_fadd (Thumb, 162 bytes, Stack size 24 bytes, fadd.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = __aeabi_fadd ⇒ _float_epilogue
  [Calls]
  - >> _float_round
  - >> _float_epilogue
  [Called By]
  - >> pi_control
  - >> __aeabi_frsub
  - >> __aeabi_fsub

  __aeabi_fsub (Thumb, 8 bytes, Stack size 0 bytes, fadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_fadd

  __aeabi_frsub (Thumb, 8 bytes, Stack size 0 bytes, fadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_fadd

  __aeabi_fmul (Thumb, 122 bytes, Stack size 16 bytes, fmul.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_fmul
  [Called By]
  - >> pi_control

  __aeabi_dadd (Thumb, 330 bytes, Stack size 48 bytes, dadd.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = __aeabi_dadd ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> __aeabi_lasr
  - >> __aeabi_llsl
  - >> _double_round
  - >> _double_epilogue
  [Called By]
  - >> __aeabi_dsub
  - >> __aeabi_drsub

  __aeabi_dsub (Thumb, 12 bytes, Stack size 8 bytes, dadd.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = __aeabi_dsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> __aeabi_dadd
  [Called By]
  - >> calculate_start_pwm

  __aeabi_drsub (Thumb, 12 bytes, Stack size 8 bytes, dadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_dadd

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

  __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]
  - >> calculate_start_pwm
  - >> mc_speed_calc

  __aeabi_i2f (Thumb, 22 bytes, Stack size 8 bytes, fflti.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = __aeabi_i2f ⇒ _float_epilogue
  [Calls]
  - >> _float_epilogue
  [Called By]
  - >> pi_control

  __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]
  - >> calculate_start_pwm
  - >> mc_speed_calc

  __aeabi_f2uiz (Thumb, 40 bytes, Stack size 0 bytes, ffixui.o(.text))
  [Called By]

  - >> pi_control

  __aeabi_d2uiz (Thumb, 50 bytes, Stack size 8 bytes, dfixui.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_d2uiz ⇒ __aeabi_llsr
  [Calls]
  - >> __aeabi_llsr
  [Called By]
  - >> calculate_start_pwm
  - >> mc_speed_calc

  __aeabi_cfcmpeq (Thumb, 0 bytes, Stack size 0 bytes, cfcmple.o(.text), UNUSED)

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

  - >> pi_control

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

  - >> pi_control

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

  - Max Depth = 8
  - Call Chain = __aeabi_llsl
  [Called By]
  - >> _double_epilogue
  - >> __aeabi_dadd

  _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_d2uiz
  - >> _double_epilogue

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

  __aeabi_lasr (Thumb, 38 bytes, Stack size 8 bytes, llsshr.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_lasr
  [Called By]
  - >> __aeabi_dadd

  _ll_sshift_r (Thumb, 0 bytes, Stack size 8 bytes, llsshr.o(.text), UNUSED)

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

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

  - >> __aeabi_fadd

  _float_epilogue (Thumb, 114 bytes, Stack size 12 bytes, fepilogue.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = _float_epilogue
  [Called By]
  - >> __aeabi_i2f
  - >> __aeabi_fadd

  _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
  - >> __aeabi_dadd

  _double_epilogue (Thumb, 164 bytes, Stack size 48 bytes, depilogue.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> __ARM_clz
  - >> __aeabi_llsr
  - >> __aeabi_llsl
  - >> _double_round
  [Called By]
  - >> __aeabi_dmul
  - >> __aeabi_ui2d
  - >> __aeabi_dadd

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

  ADC_COMP_IRQHandler (Thumb, 90 bytes, Stack size 8 bytes, ys32md211_it.o(i.ADC_COMP_IRQHandler))
  [Stack]

  - Max Depth = 20
  - Call Chain = ADC_COMP_IRQHandler ⇒ ADC_GetInjectedConversionValue
  [Calls]
  - >> ADC_GetInjectedConversionValue
  - >> ADC_GetFlagStatus
  - >> ADC_ClearFlag
  [Address Reference Count : 1]
  - startup_ys32md211.o(RESET)

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

  - >> ADC_COMP_IRQHandler
  - >> adc_data_process
  - >> adc_config

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

  - >> adc_config

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

  - >> adc_config

  ADC_DeInit (Thumb, 30 bytes, Stack size 8 bytes, ys32md211_adc.o(i.ADC_DeInit))
  [Stack]

  - Max Depth = 8
  - Call Chain = ADC_DeInit
  [Calls]
  - >> RCC_APB2PeriphResetCmd
  [Called By]
  - >> adc_config

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

  - >> adc_data_process

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

  - >> ADC_COMP_IRQHandler
  - >> adc_data_process

  ADC_GetInjectedConversionValue (Thumb, 34 bytes, Stack size 12 bytes, ys32md211_adc.o(i.ADC_GetInjectedConversionValue))
  [Stack]

  - Max Depth = 12
  - Call Chain = ADC_GetInjectedConversionValue
  [Called By]
  - >> ADC_COMP_IRQHandler

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

  - >> adc_config

  ADC_Init (Thumb, 60 bytes, Stack size 12 bytes, ys32md211_adc.o(i.ADC_Init))
  [Stack]

  - Max Depth = 12
  - Call Chain = ADC_Init
  [Called By]
  - >> adc_config

  ADC_RegularChannelConfig (Thumb, 68 bytes, Stack size 20 bytes, ys32md211_adc.o(i.ADC_RegularChannelConfig))
  [Stack]

  - Max Depth = 20
  - Call Chain = ADC_RegularChannelConfig
  [Called By]
  - >> adc_config

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

  - >> adc_config

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

  - >> adc_data_process
  - >> adc_config

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

  - >> adc_config

  COMP12_InputHysteresisCmd (Thumb, 36 bytes, Stack size 0 bytes, ys32md211_comp.o(i.COMP12_InputHysteresisCmd))
  [Called By]

  - >> motor_stop
  - >> bldc_process
  - >> COMP_Config
  - >> Locked_motor_process

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

  - >> COMP_Config

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

  - >> COMP_Config

  COMP_Config (Thumb, 114 bytes, Stack size 32 bytes, comp.o(i.COMP_Config))
  [Stack]

  - Max Depth = 52
  - Call Chain = COMP_Config ⇒ GPIO_Init
  [Calls]
  - >> COMP_StructInit
  - >> COMP_LockCmd
  - >> COMP_DigitalFilterCountConfig
  - >> COMP_DigitalFilterCmd
  - >> COMP_DeInit
  - >> COMP_AnologFilterSelect
  - >> COMP2_WindowModeConfig
  - >> COMP12_InputHysteresisCmd
  - >> RCC_APB2PeriphClockCmd
  - >> RCC_AHB2PeriphClockCmd
  - >> GPIO_Init
  [Called By]
  - >> main

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

  - >> COMP_Config

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

  - >> COMP_Config

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

  - >> COMP_Config

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

  - >> sf_check
  - >> motor_commutate_process

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

  - >> COMP_Config

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

  - >> COMP_Config

  Electrical_Angle_Phase_Calculation (Thumb, 106 bytes, Stack size 8 bytes, bldc_lib.o(i.Electrical_Angle_Phase_Calculation))
  [Stack]

  - Max Depth = 36
  - Call Chain = Electrical_Angle_Phase_Calculation ⇒ __aeabi_idivmod ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_idivmod
  [Called By]
  - >> main

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

  - >> HSI_Sysclk_Init

  Fan_SoftStart_end (Thumb, 82 bytes, Stack size 0 bytes, motor.o(i.Fan_SoftStart_end))
  [Called By]

  - >> bldc_process

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

  - >> motor_stop
  - >> bldc_process

  GPIO_Init (Thumb, 144 bytes, Stack size 20 bytes, ys32md211_gpio.o(i.GPIO_Init))
  [Stack]

  - Max Depth = 20
  - Call Chain = GPIO_Init
  [Called By]
  - >> adc_config
  - >> TIM1_PWM_Config
  - >> IO_Configuration
  - >> COMP_Config

  GPIO_PinAFConfig (Thumb, 68 bytes, Stack size 20 bytes, ys32md211_gpio.o(i.GPIO_PinAFConfig))
  [Stack]

  - Max Depth = 20
  - Call Chain = GPIO_PinAFConfig
  [Called By]
  - >> TIM1_PWM_Config

  HSI_Sysclk_Init (Thumb, 74 bytes, Stack size 8 bytes, main.o(i.HSI_Sysclk_Init))
  [Stack]

  - Max Depth = 112
  - Call Chain = HSI_Sysclk_Init ⇒ SystemCoreClockUpdate ⇒ RCC_GetClocksFreq
  [Calls]
  - >> RCC_SYSCLKConfig
  - >> RCC_PCLKConfig
  - >> RCC_HSI_CLK
  - >> RCC_HSICmd
  - >> RCC_HCLKConfig
  - >> RCC_GetSYSCLKSource
  - >> RCC_GetFlagStatus
  - >> FLASH_SetLatency
  - >> SystemCoreClockUpdate
  [Called By]
  - >> main

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

  - startup_ys32md211.o(RESET)

  IO_Configuration (Thumb, 84 bytes, Stack size 16 bytes, io_process.o(i.IO_Configuration))
  [Stack]

  - Max Depth = 36
  - Call Chain = IO_Configuration ⇒ GPIO_Init
  [Calls]
  - >> RCC_AHB2PeriphClockCmd
  - >> GPIO_Init
  [Called By]
  - >> main

  Locked_motor_process (Thumb, 204 bytes, Stack size 8 bytes, m_protect_process.o(i.Locked_motor_process))
  [Stack]

  - Max Depth = 8
  - Call Chain = Locked_motor_process
  [Calls]
  - >> clr_key_state
  - >> COMP12_InputHysteresisCmd
  [Called By]
  - >> protect_process

  MX_TIM14_Init (Thumb, 94 bytes, Stack size 16 bytes, main.o(i.MX_TIM14_Init))
  [Stack]

  - Max Depth = 28
  - Call Chain = MX_TIM14_Init ⇒ __aeabi_uidivmod
  [Calls]
  - >> TIM_TimeBaseInit
  - >> TIM_ITConfig
  - >> TIM_DeInit
  - >> TIM_Cmd
  - >> TIM_ClearFlag
  - >> TIM_ARRPreloadConfig
  - >> RCC_APB2PeriphClockCmd
  - >> TIM14_NVIC_Config
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  MX_TIM16_Init (Thumb, 64 bytes, Stack size 16 bytes, main.o(i.MX_TIM16_Init))
  [Stack]

  - Max Depth = 28
  - Call Chain = MX_TIM16_Init ⇒ __aeabi_uidivmod
  [Calls]
  - >> TIM_TimeBaseInit
  - >> TIM_DeInit
  - >> TIM_ARRPreloadConfig
  - >> RCC_APB2PeriphClockCmd
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  MX_TIM17_Init (Thumb, 86 bytes, Stack size 16 bytes, main.o(i.MX_TIM17_Init))
  [Stack]

  - Max Depth = 28
  - Call Chain = MX_TIM17_Init ⇒ __aeabi_uidivmod
  [Calls]
  - >> TIM_TimeBaseInit
  - >> TIM_ITConfig
  - >> TIM_DeInit
  - >> TIM_ClearFlag
  - >> TIM_ARRPreloadConfig
  - >> RCC_APB2PeriphClockCmd
  - >> TIM_NVIC_Config
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  M_stall_process (Thumb, 88 bytes, Stack size 8 bytes, m_protect_process.o(i.M_stall_process))
  [Stack]

  - Max Depth = 8
  - Call Chain = M_stall_process
  [Calls]
  - >> clr_key_state
  [Called By]
  - >> protect_process

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

  - startup_ys32md211.o(RESET)

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

  - >> TIM1_NVIC_Configuration
  - >> TIM_NVIC_Config
  - >> TIM14_NVIC_Config

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

  - startup_ys32md211.o(RESET)

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

  - >> TIM3_IRQHandler
  - >> main

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

  - >> adc_config
  - >> TIM1_PWM_Config
  - >> IO_Configuration
  - >> COMP_Config

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

  - >> adc_config

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

  - >> TIM_DeInit

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

  - >> adc_config
  - >> TIM1_PWM_Config
  - >> COMP_Config
  - >> MX_TIM17_Init
  - >> MX_TIM16_Init
  - >> MX_TIM14_Init

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

  - >> TIM_DeInit
  - >> ADC_DeInit

  RCC_GetClocksFreq (Thumb, 188 bytes, Stack size 88 bytes, ys32md211_rcc.o(i.RCC_GetClocksFreq))
  [Stack]

  - Max Depth = 88
  - Call Chain = RCC_GetClocksFreq
  [Calls]
  - >> __aeabi_memcpy4
  [Called By]
  - >> SystemCoreClockUpdate

  RCC_GetFlagStatus (Thumb, 72 bytes, Stack size 12 bytes, ys32md211_rcc.o(i.RCC_GetFlagStatus))
  [Stack]

  - Max Depth = 12
  - Call Chain = RCC_GetFlagStatus
  [Called By]
  - >> HSI_Sysclk_Init

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

  - >> HSI_Sysclk_Init

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

  - >> HSI_Sysclk_Init

  RCC_HSICmd (Thumb, 36 bytes, Stack size 0 bytes, ys32md211_rcc.o(i.RCC_HSICmd))
  [Called By]

  - >> HSI_Sysclk_Init

  RCC_HSI_CLK (Thumb, 46 bytes, Stack size 8 bytes, ys32md211_rcc.o(i.RCC_HSI_CLK))
  [Stack]

  - Max Depth = 8
  - Call Chain = RCC_HSI_CLK
  [Called By]
  - >> HSI_Sysclk_Init

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

  - >> HSI_Sysclk_Init

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

  - >> HSI_Sysclk_Init

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

  - startup_ys32md211.o(RESET)

  Speed_loop_control (Thumb, 72 bytes, Stack size 8 bytes, m_speed.o(i.Speed_loop_control))
  [Stack]

  - Max Depth = 68
  - Call Chain = Speed_loop_control ⇒ pi_control ⇒ __aeabi_fadd ⇒ _float_epilogue
  [Calls]
  - >> speed_add_process
  - >> pi_control
  [Called By]
  - >> Speed_process

  Speed_process (Thumb, 12 bytes, Stack size 8 bytes, m_speed.o(i.Speed_process))
  [Stack]

  - Max Depth = 76
  - Call Chain = Speed_process ⇒ Speed_loop_control ⇒ pi_control ⇒ __aeabi_fadd ⇒ _float_epilogue
  [Calls]
  - >> Speed_rms_confir
  - >> Speed_loop_control
  [Called By]
  - >> main

  Speed_rms_confir (Thumb, 102 bytes, Stack size 0 bytes, m_speed.o(i.Speed_rms_confir))
  [Called By]

  - >> Speed_process

  Start_Sensorless_BLDC (Thumb, 166 bytes, Stack size 8 bytes, motor.o(i.Start_Sensorless_BLDC))
  [Stack]

  - Max Depth = 144
  - Call Chain = Start_Sensorless_BLDC ⇒ calculate_start_pwm ⇒ __aeabi_dsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> calculate_start_pwm
  [Called By]
  - >> bldc_process

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

  - startup_ys32md211.o(RESET)

  SystemCoreClockUpdate (Thumb, 16 bytes, Stack size 16 bytes, system_ys32md211.o(i.SystemCoreClockUpdate))
  [Stack]

  - Max Depth = 104
  - Call Chain = SystemCoreClockUpdate ⇒ RCC_GetClocksFreq
  [Calls]
  - >> RCC_GetClocksFreq
  [Called By]
  - >> HSI_Sysclk_Init

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

  - startup_ys32md211.o(.text)

  TIM14_IRQHandler (Thumb, 30 bytes, Stack size 8 bytes, ys32md211_it.o(i.TIM14_IRQHandler))
  [Stack]

  - Max Depth = 20
  - Call Chain = TIM14_IRQHandler ⇒ TIM_GetITStatus
  [Calls]
  - >> TIM_GetITStatus
  - >> TIM_ClearITPendingBit
  [Address Reference Count : 1]
  - startup_ys32md211.o(RESET)

  TIM14_NVIC_Config (Thumb, 22 bytes, Stack size 8 bytes, main.o(i.TIM14_NVIC_Config))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM14_NVIC_Config
  [Calls]
  - >> NVIC_Init
  [Called By]
  - >> MX_TIM14_Init

  TIM17_IRQHandler (Thumb, 28 bytes, Stack size 8 bytes, ys32md211_it.o(i.TIM17_IRQHandler))
  [Stack]

  - Max Depth = 28
  - Call Chain = TIM17_IRQHandler ⇒ sf_check ⇒ com_set_process ⇒ __ARM_common_switch8
  [Calls]
  - >> sf_check
  - >> TIM_GetITStatus
  - >> TIM_ClearITPendingBit
  [Address Reference Count : 1]
  - startup_ys32md211.o(RESET)

  TIM1_CC_IRQHandler (Thumb, 28 bytes, Stack size 8 bytes, ys32md211_it.o(i.TIM1_CC_IRQHandler))
  [Stack]

  - Max Depth = 36
  - Call Chain = TIM1_CC_IRQHandler ⇒ motor_commutate_process ⇒ com_set_process ⇒ __ARM_common_switch8
  [Calls]
  - >> motor_commutate_process
  - >> TIM_GetITStatus
  - >> TIM_ClearITPendingBit
  [Address Reference Count : 1]
  - startup_ys32md211.o(RESET)

  TIM1_NVIC_Configuration (Thumb, 22 bytes, Stack size 8 bytes, pwm.o(i.TIM1_NVIC_Configuration))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM1_NVIC_Configuration
  [Calls]
  - >> NVIC_Init
  [Called By]
  - >> TIM1_PWM_Config

  TIM1_PWM_Config (Thumb, 436 bytes, Stack size 64 bytes, pwm.o(i.TIM1_PWM_Config))
  [Stack]

  - Max Depth = 84
  - Call Chain = TIM1_PWM_Config ⇒ GPIO_PinAFConfig
  [Calls]
  - >> TIM_TimeBaseStructInit
  - >> TIM_OC4Init
  - >> TIM_OC4FastConfig
  - >> TIM_OC3PolarityConfig
  - >> TIM_OC3NPolarityConfig
  - >> TIM_OC3Init
  - >> TIM_OC3FastConfig
  - >> TIM_OC2PolarityConfig
  - >> TIM_OC2NPolarityConfig
  - >> TIM_OC2Init
  - >> TIM_OC2FastConfig
  - >> TIM_OC1PolarityConfig
  - >> TIM_OC1NPolarityConfig
  - >> TIM_OC1Init
  - >> TIM_OC1FastConfig
  - >> TIM_BDTRConfig
  - >> GPIO_PinAFConfig
  - >> TIM1_NVIC_Configuration
  - >> TIM_TimeBaseInit
  - >> TIM_ITConfig
  - >> TIM_Cmd
  - >> RCC_APB2PeriphClockCmd
  - >> RCC_AHB2PeriphClockCmd
  - >> GPIO_Init
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  TIM3_IRQHandler (Thumb, 14 bytes, Stack size 8 bytes, ys32md211_it.o(i.TIM3_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM3_IRQHandler
  [Calls]
  - >> PwmCap_IRQ
  [Address Reference Count : 1]
  - startup_ys32md211.o(RESET)

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

  - >> MX_TIM17_Init
  - >> MX_TIM16_Init
  - >> MX_TIM14_Init

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

  - >> TIM1_PWM_Config

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

  - >> MX_TIM17_Init
  - >> MX_TIM14_Init

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

  - >> TIM1_CC_IRQHandler
  - >> TIM17_IRQHandler
  - >> TIM14_IRQHandler

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

  - >> motor_stop
  - >> bldc_process
  - >> TIM1_PWM_Config
  - >> MX_TIM14_Init

  TIM_DeInit (Thumb, 122 bytes, Stack size 8 bytes, ys32md211_tim.o(i.TIM_DeInit))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM_DeInit
  [Calls]
  - >> RCC_APB2PeriphResetCmd
  - >> RCC_APB1PeriphResetCmd
  [Called By]
  - >> MX_TIM17_Init
  - >> MX_TIM16_Init
  - >> MX_TIM14_Init

  TIM_GetITStatus (Thumb, 38 bytes, Stack size 12 bytes, ys32md211_tim.o(i.TIM_GetITStatus))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIM_GetITStatus
  [Called By]
  - >> TIM1_CC_IRQHandler
  - >> TIM17_IRQHandler
  - >> TIM14_IRQHandler

  TIM_ITConfig (Thumb, 26 bytes, Stack size 8 bytes, ys32md211_tim.o(i.TIM_ITConfig))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM_ITConfig
  [Called By]
  - >> TIM1_PWM_Config
  - >> MX_TIM17_Init
  - >> MX_TIM14_Init

  TIM_NVIC_Config (Thumb, 22 bytes, Stack size 8 bytes, main.o(i.TIM_NVIC_Config))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM_NVIC_Config
  [Calls]
  - >> NVIC_Init
  [Called By]
  - >> MX_TIM17_Init

  TIM_OC1FastConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC1FastConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC1Init (Thumb, 122 bytes, Stack size 16 bytes, ys32md211_tim.o(i.TIM_OC1Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = TIM_OC1Init
  [Called By]
  - >> TIM1_PWM_Config

  TIM_OC1NPolarityConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC1NPolarityConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC1PolarityConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC1PolarityConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC2FastConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC2FastConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC2Init (Thumb, 148 bytes, Stack size 16 bytes, ys32md211_tim.o(i.TIM_OC2Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = TIM_OC2Init
  [Called By]
  - >> TIM1_PWM_Config

  TIM_OC2NPolarityConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC2NPolarityConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC2PolarityConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC2PolarityConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC3FastConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC3FastConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC3Init (Thumb, 130 bytes, Stack size 16 bytes, ys32md211_tim.o(i.TIM_OC3Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = TIM_OC3Init
  [Called By]
  - >> TIM1_PWM_Config

  TIM_OC3NPolarityConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC3NPolarityConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC3PolarityConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC3PolarityConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC4FastConfig (Thumb, 22 bytes, Stack size 0 bytes, ys32md211_tim.o(i.TIM_OC4FastConfig))
  [Called By]

  - >> TIM1_PWM_Config

  TIM_OC4Init (Thumb, 94 bytes, Stack size 16 bytes, ys32md211_tim.o(i.TIM_OC4Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = TIM_OC4Init
  [Called By]
  - >> TIM1_PWM_Config

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

  - >> TIM1_PWM_Config
  - >> MX_TIM17_Init
  - >> MX_TIM16_Init
  - >> MX_TIM14_Init

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

  - >> TIM1_PWM_Config

  __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, motor.o(i.__ARM_common_switch8))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_common_switch8
  [Called By]
  - >> com_set_PWM
  - >> bldc_process
  - >> com_set_process

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

  adc_config (Thumb, 218 bytes, Stack size 48 bytes, adc.o(i.adc_config))
  [Stack]

  - Max Depth = 68
  - Call Chain = adc_config ⇒ ADC_RegularChannelConfig
  [Calls]
  - >> ADC_SoftwareStartConvCmd
  - >> ADC_RegularSequencerLengthConfig
  - >> ADC_RegularChannelConfig
  - >> RCC_APB2PeriphClockCmd
  - >> RCC_AHB2PeriphClockCmd
  - >> GPIO_Init
  - >> ADC_StructInit
  - >> ADC_Init
  - >> ADC_ITConfig
  - >> ADC_DeInit
  - >> ADC_Cmd
  - >> ADC_ClockModeConfig
  - >> ADC_ClearFlag
  - >> RCC_AHBPeriphClockCmd
  [Called By]
  - >> main

  adc_data_process (Thumb, 102 bytes, Stack size 8 bytes, adc.o(i.adc_data_process))
  [Stack]

  - Max Depth = 8
  - Call Chain = adc_data_process
  [Calls]
  - >> ADC_SoftwareStartConvCmd
  - >> ADC_GetConversionValue
  - >> ADC_GetFlagStatus
  - >> ADC_ClearFlag
  [Called By]
  - >> main

  adc_int (Thumb, 36 bytes, Stack size 0 bytes, adc.o(i.adc_int))
  [Called By]

  - >> main

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

  - >> main

  bldc_process (Thumb, 382 bytes, Stack size 8 bytes, motor.o(i.bldc_process))
  [Stack]

  - Max Depth = 152
  - Call Chain = bldc_process ⇒ Start_Sensorless_BLDC ⇒ calculate_start_pwm ⇒ __aeabi_dsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> speed_int
  - >> read_key_state
  - >> pre_start
  - >> com_set_PWM
  - >> COMP12_InputHysteresisCmd
  - >> stop_mos
  - >> motor_stop
  - >> __ARM_common_switch8
  - >> Start_Sensorless_BLDC
  - >> Fan_Stop_Func
  - >> Fan_SoftStart_end
  - >> TIM_Cmd
  [Called By]
  - >> main

  calculate_start_pwm (Thumb, 60 bytes, Stack size 24 bytes, motor.o(i.calculate_start_pwm))
  [Stack]

  - Max Depth = 136
  - Call Chain = calculate_start_pwm ⇒ __aeabi_dsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> __aeabi_ui2d
  - >> __aeabi_dsub
  - >> __aeabi_ddiv
  - >> __aeabi_d2uiz
  [Called By]
  - >> Start_Sensorless_BLDC

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

  - >> M_stall_process
  - >> Locked_motor_process

  com_set_PWM (Thumb, 1316 bytes, Stack size 4 bytes, bldc_lib.o(i.com_set_PWM))
  [Stack]

  - Max Depth = 12
  - Call Chain = com_set_PWM ⇒ __ARM_common_switch8
  [Calls]
  - >> __ARM_common_switch8
  [Called By]
  - >> bldc_process

  com_set_process (Thumb, 1640 bytes, Stack size 4 bytes, bldc_lib.o(i.com_set_process))
  [Stack]

  - Max Depth = 12
  - Call Chain = com_set_process ⇒ __ARM_common_switch8
  [Calls]
  - >> __ARM_common_switch8
  [Called By]
  - >> sf_check
  - >> motor_commutate_process

  int_motor_commutate (Thumb, 106 bytes, Stack size 0 bytes, motor.o(i.int_motor_commutate))
  [Called By]

  - >> motor_stop
  - >> main

  key_process (Thumb, 230 bytes, Stack size 0 bytes, io_process.o(i.key_process))
  [Called By]

  - >> main

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

  - Max Depth = 176
  - Call Chain = main ⇒ mc_speed_calc ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> protect_process
  - >> mc_speed_calc
  - >> key_process
  - >> int_motor_commutate
  - >> bldc_process
  - >> adc_pwm_process
  - >> adc_int
  - >> adc_data_process
  - >> adc_config
  - >> TIM1_PWM_Config
  - >> Speed_process
  - >> PwmCap_IRQ
  - >> IO_Configuration
  - >> Electrical_Angle_Phase_Calculation
  - >> COMP_Config
  - >> MX_TIM17_Init
  - >> MX_TIM16_Init
  - >> MX_TIM14_Init
  - >> HSI_Sysclk_Init
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  mc_speed_calc (Thumb, 300 bytes, Stack size 48 bytes, m_speed.o(i.mc_speed_calc))
  [Stack]

  - Max Depth = 176
  - Call Chain = mc_speed_calc ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ __aeabi_llsr
  [Calls]
  - >> __aeabi_dmul
  - >> __aeabi_ui2d
  - >> __aeabi_ddiv
  - >> __aeabi_d2uiz
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  motor_commutate_process (Thumb, 500 bytes, Stack size 16 bytes, bldc_lib.o(i.motor_commutate_process))
  [Stack]

  - Max Depth = 28
  - Call Chain = motor_commutate_process ⇒ com_set_process ⇒ __ARM_common_switch8
  [Calls]
  - >> COMP_GetOutStatus
  - >> com_set_process
  [Called By]
  - >> TIM1_CC_IRQHandler

  motor_stop (Thumb, 30 bytes, Stack size 8 bytes, motor.o(i.motor_stop))
  [Stack]

  - Max Depth = 8
  - Call Chain = motor_stop
  [Calls]
  - >> COMP12_InputHysteresisCmd
  - >> stop_mos
  - >> Fan_Stop_Func
  - >> int_motor_commutate
  - >> TIM_Cmd
  [Called By]
  - >> bldc_process

  pi_control (Thumb, 160 bytes, Stack size 24 bytes, m_speed.o(i.pi_control))
  [Stack]

  - Max Depth = 60
  - Call Chain = pi_control ⇒ __aeabi_fadd ⇒ _float_epilogue
  [Calls]
  - >> __aeabi_i2f
  - >> __aeabi_fmul
  - >> __aeabi_fadd
  - >> __aeabi_f2uiz
  - >> __aeabi_cfrcmple
  - >> __aeabi_cfcmple
  [Called By]
  - >> Speed_loop_control

  pi_init (Thumb, 22 bytes, Stack size 0 bytes, m_speed.o(i.pi_init))
  [Called By]

  - >> speed_int

  pre_start (Thumb, 488 bytes, Stack size 0 bytes, bldc_lib.o(i.pre_start))
  [Called By]

  - >> bldc_process

  protect_process (Thumb, 12 bytes, Stack size 8 bytes, m_protect_process.o(i.protect_process))
  [Stack]

  - Max Depth = 16
  - Call Chain = protect_process ⇒ M_stall_process
  [Calls]
  - >> M_stall_process
  - >> Locked_motor_process
  [Called By]
  - >> main

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

  - >> bldc_process

  sf_check (Thumb, 306 bytes, Stack size 8 bytes, bldc_lib.o(i.sf_check))
  [Stack]

  - Max Depth = 20
  - Call Chain = sf_check ⇒ com_set_process ⇒ __ARM_common_switch8
  [Calls]
  - >> COMP_GetOutStatus
  - >> com_set_process
  [Called By]
  - >> TIM17_IRQHandler

  speed_add_process (Thumb, 134 bytes, Stack size 0 bytes, m_speed.o(i.speed_add_process))
  [Called By]

  - >> Speed_loop_control

  speed_int (Thumb, 14 bytes, Stack size 4 bytes, m_speed.o(i.speed_int))
  [Stack]

  - Max Depth = 4
  - Call Chain = speed_int
  [Calls]
  - >> pi_init
  [Called By]
  - >> bldc_process

  stop_mos (Thumb, 218 bytes, Stack size 0 bytes, motor.o(i.stop_mos))
  [Called By]

  - >> motor_stop
  - >> bldc_process

  ### Local Symbols

  ### Undefined Global Symbols

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

  - >> __rt_lib_shutdown_fini