Static Call Graph - [.\Output\Py32t020xx_Library.axf]

# Static Call Graph for image .\Output\Py32t020xx_Library.axf

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Thu Sep 26 14:30:53 2024

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

### Call chain for Maximum Stack Depth:

main ⇒ TK_MainFsm ⇒ TK_Init ⇒ TK_LibInit ⇒ TK_CsdIdacTrim ⇒ TK_CsdIdacTrimChs ⇒ TK_SetSenseStart

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- SVC_Handler ⇒ SVC_Handler
- PendSV_Handler ⇒ PendSV_Handler
- FLASH_IRQHandler ⇒ FLASH_IRQHandler

  ### Function Pointers

  - ADC_COMP_IRQHandler from adc_drivers.o(i.ADC_COMP_IRQHandler) referenced from startup_py32t020xx.o(RESET)
  - EXTI0_1_IRQHandler from gpio.o(i.EXTI0_1_IRQHandler) referenced from startup_py32t020xx.o(RESET)
  - EXTI2_3_IRQHandler from gpio.o(i.EXTI2_3_IRQHandler) referenced from startup_py32t020xx.o(RESET)
  - EXTI4_15_IRQHandler from gpio.o(i.EXTI4_15_IRQHandler) referenced from startup_py32t020xx.o(RESET)
  - FLASH_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - HardFault_Handler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - I2C1_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - NMI_Handler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - PendSV_Handler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - RCC_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - RTC_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - Reset_Handler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - SPI1_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - SVC_Handler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - SysTick_Handler from main.o(i.SysTick_Handler) referenced from startup_py32t020xx.o(RESET)
  - SystemInit from system_py32t020.o(i.SystemInit) referenced from startup_py32t020xx.o(.text)
  - TIM14_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - TIM1_BRK_UP_TRG_COM_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - TIM1_CC_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - TK_IRQHandler from tk_lib.o(i.TK_IRQHandler) referenced from startup_py32t020xx.o(RESET)
  - UART1_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - UART2_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - UART3_IRQHandler from startup_py32t020xx.o(.text) referenced from startup_py32t020xx.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_py32t020xx.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_py32t020xx.o(.text)

  _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))

  _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
  [Calls]

  - >> __scatterload

  __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
  [Called By]

  - >> __scatterload

  _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))

  _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))

  _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))

  __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))

  __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))

  Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_py32t020xx.o(.text))
  [Address Reference Count : 1]

  - startup_py32t020xx.o(RESET)

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

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

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

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

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

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

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

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

  FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_py32t020xx.o(.text))
  [Calls]

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

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

  - startup_py32t020xx.o(RESET)

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

  - startup_py32t020xx.o(RESET)

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

  - startup_py32t020xx.o(RESET)

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

  - startup_py32t020xx.o(RESET)

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

  - startup_py32t020xx.o(RESET)

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

  - startup_py32t020xx.o(RESET)

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

  - startup_py32t020xx.o(RESET)

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

  - startup_py32t020xx.o(RESET)

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

  - startup_py32t020xx.o(RESET)

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

  - startup_py32t020xx.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]
  - >> ADC_Loop
  - >> app_drivers_init
  - >> TK_MainFsm
  - >> SystemClockConfig
  - >> SystemCoreClockUpdate
  - >> __aeabi_idivmod
  - >> Key_Filtering
  - >> TK_GetArea
  - >> APP_TouchKeyDataProc
  - >> TK_CsdIdacTrim

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

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

  - >> app_drivers_init

  __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_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]
  - >> __aeabi_fsub
  - >> ADC_Loop
  - >> __aeabi_frsub

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

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

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

  __aeabi_fdiv (Thumb, 124 bytes, Stack size 16 bytes, fdiv.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_fdiv
  [Calls]
  - >> _float_round
  [Called By]
  - >> ADC_Loop

  __aeabi_ui2f (Thumb, 14 bytes, Stack size 8 bytes, ffltui.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = __aeabi_ui2f ⇒ _float_epilogue
  [Calls]
  - >> _float_epilogue
  [Called By]
  - >> ADC_Loop

  __aeabi_f2iz (Thumb, 50 bytes, Stack size 0 bytes, ffixi.o(.text))
  [Called By]

  - >> ADC_Loop

  __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_fdiv
  - >> __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_ui2f
  - >> __aeabi_fadd

  __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, 80 bytes, Stack size 16 bytes, adc_drivers.o(i.ADC_COMP_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = ADC_COMP_IRQHandler
  [Address Reference Count : 1]
  - startup_py32t020xx.o(RESET)

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

  - >> ADC_Loop

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

  - >> ADC_Init

  ADC_Init (Thumb, 296 bytes, Stack size 24 bytes, adc_drivers.o(i.ADC_Init))
  [Stack]

  - Max Depth = 72
  - Call Chain = ADC_Init ⇒ GPIO_Init ⇒ __ARM_common_switch8
  [Calls]
  - >> GPIO_Init
  - >> ADC_GPIO_Init
  - >> nop_delay_xus
  [Called By]
  - >> app_drivers_init

  ADC_Loop (Thumb, 188 bytes, Stack size 24 bytes, adc_task.o(i.ADC_Loop))
  [Stack]

  - Max Depth = 60
  - Call Chain = ADC_Loop ⇒ __aeabi_fsub ⇒ __aeabi_fadd ⇒ _float_epilogue
  [Calls]
  - >> __aeabi_ui2f
  - >> __aeabi_fsub
  - >> __aeabi_fmul
  - >> __aeabi_fdiv
  - >> __aeabi_fadd
  - >> __aeabi_f2iz
  - >> ADC_Callback
  - >> __aeabi_uidivmod
  [Called By]
  - >> app_drivers_loop

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

  - >> APP_TouchKeyFlagsGenerate

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

  - >> TK_MainFsm

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

  - >> TK_MainFsm

  DebugDataUpdate (Thumb, 90 bytes, Stack size 16 bytes, tk_lib.o(i.DebugDataUpdate))
  [Stack]

  - Max Depth = 16
  - Call Chain = DebugDataUpdate
  [Called By]
  - >> TK_MainFsm

  EXTI0_15_IRQHandlerCallback (Thumb, 32 bytes, Stack size 12 bytes, drivers.o(i.EXTI0_15_IRQHandlerCallback))
  [Stack]

  - Max Depth = 12
  - Call Chain = EXTI0_15_IRQHandlerCallback
  [Called By]
  - >> EXTI4_15_IRQHandler
  - >> EXTI2_3_IRQHandler
  - >> EXTI0_1_IRQHandler

  EXTI0_1_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, gpio.o(i.EXTI0_1_IRQHandler))
  [Stack]

  - Max Depth = 20
  - Call Chain = EXTI0_1_IRQHandler ⇒ EXTI0_15_IRQHandlerCallback
  [Calls]
  - >> EXTI0_15_IRQHandlerCallback
  [Address Reference Count : 1]
  - startup_py32t020xx.o(RESET)

  EXTI2_3_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, gpio.o(i.EXTI2_3_IRQHandler))
  [Stack]

  - Max Depth = 20
  - Call Chain = EXTI2_3_IRQHandler ⇒ EXTI0_15_IRQHandlerCallback
  [Calls]
  - >> EXTI0_15_IRQHandlerCallback
  [Address Reference Count : 1]
  - startup_py32t020xx.o(RESET)

  EXTI4_15_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, gpio.o(i.EXTI4_15_IRQHandler))
  [Stack]

  - Max Depth = 20
  - Call Chain = EXTI4_15_IRQHandler ⇒ EXTI0_15_IRQHandlerCallback
  [Calls]
  - >> EXTI0_15_IRQHandlerCallback
  [Address Reference Count : 1]
  - startup_py32t020xx.o(RESET)

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

  - >> app_drivers_init

  FLASH_OBProgram (Thumb, 244 bytes, Stack size 16 bytes, py32_flash.o(i.FLASH_OBProgram))
  [Stack]

  - Max Depth = 28
  - Call Chain = FLASH_OBProgram ⇒ FLASH_OB_OptrConfig
  [Calls]
  - >> FLASH_WaitForLastOperation
  - >> FLASH_OB_OptrConfig
  - >> FLASH_OB_GetRDP
  [Called By]
  - >> app_drivers_init

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

  - >> FLASH_OBProgram

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

  - >> app_drivers_init

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

  - >> app_drivers_init

  FLASH_OB_OptrConfig (Thumb, 20 bytes, Stack size 12 bytes, py32_flash.o(i.FLASH_OB_OptrConfig))
  [Stack]

  - Max Depth = 12
  - Call Chain = FLASH_OB_OptrConfig
  [Called By]
  - >> FLASH_OBProgram

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

  - >> app_drivers_init

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

  - >> app_drivers_init

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

  - >> FLASH_OBProgram

  GPIO_Init (Thumb, 586 bytes, Stack size 40 bytes, gpio.o(i.GPIO_Init))
  [Stack]

  - Max Depth = 48
  - Call Chain = GPIO_Init ⇒ __ARM_common_switch8
  [Calls]
  - >> __ARM_common_switch8
  - >> __NVIC_SetPriority
  - >> __NVIC_EnableIRQ
  - >> LL_GPIO_SetPinPull
  - >> LL_GPIO_SetPinMode
  - >> LL_EXTI_SetEXTISource
  [Called By]
  - >> ADC_Init

  GPIO_LockPin (Thumb, 20 bytes, Stack size 8 bytes, tk_lib.o(i.GPIO_LockPin))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIO_LockPin
  [Called By]
  - >> TK_Init

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

  - >> APP_TouchKeyFlagsGenerate

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

  - >> APP_TouchKeyDifferCalc

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

  - >> APP_TouchKeyDifferCalc

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

  - >> TK_MainFsm

  Key_Filtering (Thumb, 152 bytes, Stack size 24 bytes, tk_lib.o(i.Key_Filtering))
  [Stack]

  - Max Depth = 36
  - Call Chain = Key_Filtering ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  - >> WaterProof_Evt
  [Called By]
  - >> TK_MainFsm

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

  - >> TK_IRQHandler

  SysTick_Handler (Thumb, 36 bytes, Stack size 8 bytes, main.o(i.SysTick_Handler))
  [Stack]

  - Max Depth = 28
  - Call Chain = SysTick_Handler ⇒ TK_TimerHandler
  [Calls]
  - >> user_timer
  - >> app_drivers_timer
  - >> TK_TimerHandler
  [Address Reference Count : 1]
  - startup_py32t020xx.o(RESET)

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

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

  SystemInit (Thumb, 40 bytes, Stack size 8 bytes, system_py32t020.o(i.SystemInit))
  [Stack]

  - Max Depth = 8
  - Call Chain = SystemInit
  [Address Reference Count : 1]
  - startup_py32t020xx.o(.text)

  TK_CsdIdacTrimChs (Thumb, 98 bytes, Stack size 36 bytes, py32t020_tk.o(i.TK_CsdIdacTrimChs))
  [Stack]

  - Max Depth = 48
  - Call Chain = TK_CsdIdacTrimChs ⇒ TK_SetSenseStart
  [Calls]
  - >> TK_SetSenseStart
  [Called By]
  - >> TK_CsdIdacTrim

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

  - >> TK_MainFsm

  TK_IRQHandler (Thumb, 368 bytes, Stack size 24 bytes, tk_lib.o(i.TK_IRQHandler))
  [Stack]

  - Max Depth = 60
  - Call Chain = TK_IRQHandler ⇒ TK_SingleChAcqStart ⇒ TK_SetSenseStart
  [Calls]
  - >> TK_SingleChAcqStart
  - >> TK_SetSenseStart
  - >> WaterProof_Isr
  - >> TK_LedCallback
  - >> SyncSamplingCallback
  [Address Reference Count : 1]
  - startup_py32t020xx.o(RESET)

  TK_Init (Thumb, 450 bytes, Stack size 24 bytes, tk_lib.o(i.TK_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = TK_Init ⇒ TK_LibInit ⇒ TK_CsdIdacTrim ⇒ TK_CsdIdacTrimChs ⇒ TK_SetSenseStart
  [Calls]
  - >> GPIO_LockPin
  - >> TK_LibInit
  - >> WaterProof_Evt
  - >> TK_UserParaInit
  - >> TK_RegisterCfg
  [Called By]
  - >> TK_MainFsm
  - >> main

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

  - >> TK_MultiChAcqStart
  - >> TK_IRQHandler

  TK_LibInit (Thumb, 298 bytes, Stack size 24 bytes, py32t020_tk.o(i.TK_LibInit))
  [Stack]

  - Max Depth = 112
  - Call Chain = TK_LibInit ⇒ TK_CsdIdacTrim ⇒ TK_CsdIdacTrimChs ⇒ TK_SetSenseStart
  [Calls]
  - >> nop_delay
  - >> TK_CsdIdacTrim
  [Called By]
  - >> TK_Init

  TK_MainFsm (Thumb, 394 bytes, Stack size 24 bytes, tk_lib.o(i.TK_MainFsm))
  [Stack]

  - Max Depth = 160
  - Call Chain = TK_MainFsm ⇒ TK_Init ⇒ TK_LibInit ⇒ TK_CsdIdacTrim ⇒ TK_CsdIdacTrimChs ⇒ TK_SetSenseStart
  [Calls]
  - >> TK_Init
  - >> __aeabi_uidivmod
  - >> TK_MultiChAcqStart
  - >> Key_Filtering
  - >> DebugDataUpdate
  - >> APP_TouchKeyFlagsGenerate
  - >> APP_TouchKeyDifferCalc
  - >> APP_TouchKeyDataProc
  - >> WaterProof_Evt
  - >> TK_EnterStop
  - >> Inside_Init
  - >> APP_TouchSliderOrWheelProc
  - >> APP_TouchSliderOrWheelChs
  [Called By]
  - >> main

  TK_MultiChAcqStart (Thumb, 36 bytes, Stack size 8 bytes, tk_lib.o(i.TK_MultiChAcqStart))
  [Stack]

  - Max Depth = 44
  - Call Chain = TK_MultiChAcqStart ⇒ TK_SingleChAcqStart ⇒ TK_SetSenseStart
  [Calls]
  - >> TK_SingleChAcqStart
  - >> TK_LedCallback
  [Called By]
  - >> TK_MainFsm

  TK_RegisterCfg (Thumb, 80 bytes, Stack size 12 bytes, tk_user.o(i.TK_RegisterCfg))
  [Stack]

  - Max Depth = 12
  - Call Chain = TK_RegisterCfg
  [Called By]
  - >> TK_Init

  TK_SetSenseStart (Thumb, 76 bytes, Stack size 12 bytes, py32t020_tk.o(i.TK_SetSenseStart))
  [Stack]

  - Max Depth = 12
  - Call Chain = TK_SetSenseStart
  [Called By]
  - >> TK_SingleChAcqStart
  - >> TK_IRQHandler
  - >> TK_CsdIdacTrimChs

  TK_SingleChAcqStart (Thumb, 130 bytes, Stack size 24 bytes, tk_lib.o(i.TK_SingleChAcqStart))
  [Stack]

  - Max Depth = 36
  - Call Chain = TK_SingleChAcqStart ⇒ TK_SetSenseStart
  [Calls]
  - >> TK_SetSenseStart
  [Called By]
  - >> TK_MultiChAcqStart
  - >> TK_IRQHandler

  TK_TimerHandler (Thumb, 160 bytes, Stack size 20 bytes, tk_lib.o(i.TK_TimerHandler))
  [Stack]

  - Max Depth = 20
  - Call Chain = TK_TimerHandler
  [Called By]
  - >> SysTick_Handler

  TK_UpdatBaseLineData (Thumb, 110 bytes, Stack size 24 bytes, tk_lib.o(i.TK_UpdatBaseLineData))
  [Stack]

  - Max Depth = 24
  - Call Chain = TK_UpdatBaseLineData
  [Calls]
  - >> TK_SetAreaConfirmCNT
  - >> WaterProof_Evt
  [Called By]
  - >> APP_TouchKeyFlagsGenerate

  TK_UserParaInit (Thumb, 176 bytes, Stack size 20 bytes, tk_user.o(i.TK_UserParaInit))
  [Stack]

  - Max Depth = 20
  - Call Chain = TK_UserParaInit
  [Called By]
  - >> TK_Init

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

  - >> TK_MainFsm
  - >> TK_Init
  - >> TK_UpdatBaseLineData
  - >> Key_Filtering
  - >> APP_TouchKeyFlagsGenerate
  - >> APP_TouchKeyDifferCalc
  - >> APP_TouchKeyDataProc
  - >> TK_CsdIdacTrim

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

  - >> TK_IRQHandler

  __ARM_common_switch8 (Thumb, 26 bytes, Stack size 8 bytes, gpio.o(i.__ARM_common_switch8))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_common_switch8
  [Called By]
  - >> GPIO_Init

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

  app_drivers_init (Thumb, 124 bytes, Stack size 32 bytes, drivers.o(i.app_drivers_init))
  [Stack]

  - Max Depth = 104
  - Call Chain = app_drivers_init ⇒ ADC_Init ⇒ GPIO_Init ⇒ __ARM_common_switch8
  [Calls]
  - >> FLASH_Unlock
  - >> FLASH_OB_Unlock
  - >> FLASH_OB_Lock
  - >> FLASH_OB_Launch
  - >> FLASH_OBProgram
  - >> FLASH_Lock
  - >> ADC_Init
  - >> __aeabi_memclr4
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  app_drivers_loop (Thumb, 20 bytes, Stack size 8 bytes, drivers.o(i.app_drivers_loop))
  [Stack]

  - Max Depth = 68
  - Call Chain = app_drivers_loop ⇒ ADC_Loop ⇒ __aeabi_fsub ⇒ __aeabi_fadd ⇒ _float_epilogue
  [Calls]
  - >> ADC_Loop
  [Called By]
  - >> main

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

  - >> SysTick_Handler

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

  - Max Depth = 160
  - Call Chain = main ⇒ TK_MainFsm ⇒ TK_Init ⇒ TK_LibInit ⇒ TK_CsdIdacTrim ⇒ TK_CsdIdacTrimChs ⇒ TK_SetSenseStart
  [Calls]
  - >> user_loop
  - >> user_init
  - >> app_drivers_loop
  - >> app_drivers_init
  - >> TK_MainFsm
  - >> TK_Init
  - >> SystemClockConfig
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  nop_delay_xus (Thumb, 16 bytes, Stack size 8 bytes, drivers.o(i.nop_delay_xus))
  [Stack]

  - Max Depth = 8
  - Call Chain = nop_delay_xus
  [Called By]
  - >> ADC_Init

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

  - >> main

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

  - >> main

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

  - >> SysTick_Handler

  ### Local Symbols

  SystemClockConfig (Thumb, 174 bytes, Stack size 16 bytes, main.o(i.SystemClockConfig))
  [Stack]

  - Max Depth = 44
  - Call Chain = SystemClockConfig ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> __NVIC_SetPriority
  - >> SystemCoreClockUpdate
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  __NVIC_SetPriority (Thumb, 60 bytes, Stack size 0 bytes, main.o(i.__NVIC_SetPriority))
  [Called By]

  - >> SystemClockConfig

  LL_EXTI_SetEXTISource (Thumb, 30 bytes, Stack size 8 bytes, gpio.o(i.LL_EXTI_SetEXTISource))
  [Stack]

  - Max Depth = 8
  - Call Chain = LL_EXTI_SetEXTISource
  [Called By]
  - >> GPIO_Init

  LL_GPIO_SetPinMode (Thumb, 20 bytes, Stack size 8 bytes, gpio.o(i.LL_GPIO_SetPinMode))
  [Stack]

  - Max Depth = 8
  - Call Chain = LL_GPIO_SetPinMode
  [Called By]
  - >> GPIO_Init

  LL_GPIO_SetPinPull (Thumb, 20 bytes, Stack size 8 bytes, gpio.o(i.LL_GPIO_SetPinPull))
  [Stack]

  - Max Depth = 8
  - Call Chain = LL_GPIO_SetPinPull
  [Called By]
  - >> GPIO_Init

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

  - >> GPIO_Init

  __NVIC_SetPriority (Thumb, 60 bytes, Stack size 0 bytes, gpio.o(i.__NVIC_SetPriority))
  [Called By]

  - >> GPIO_Init

  TK_CsdIdacTrim (Thumb, 308 bytes, Stack size 40 bytes, py32t020_tk.o(i.TK_CsdIdacTrim))
  [Stack]

  - Max Depth = 88
  - Call Chain = TK_CsdIdacTrim ⇒ TK_CsdIdacTrimChs ⇒ TK_SetSenseStart
  [Calls]
  - >> __aeabi_idivmod
  - >> __aeabi_uidivmod
  - >> TK_CsdIdacTrimChs
  - >> WaterProof_Evt
  [Called By]
  - >> TK_LibInit

  nop_delay (Thumb, 16 bytes, Stack size 8 bytes, py32t020_tk.o(i.nop_delay))
  [Stack]

  - Max Depth = 8
  - Call Chain = nop_delay
  [Called By]
  - >> TK_LibInit

  APP_TouchKeyDataProc (Thumb, 476 bytes, Stack size 24 bytes, tk_lib.o(i.APP_TouchKeyDataProc))
  [Stack]

  - Max Depth = 52
  - Call Chain = APP_TouchKeyDataProc ⇒ TK_GetArea ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  - >> TK_SetAreaConfirmCNT
  - >> TK_GetArea
  - >> WaterProof_Evt
  [Called By]
  - >> TK_MainFsm

  APP_TouchKeyDifferCalc (Thumb, 94 bytes, Stack size 16 bytes, tk_lib.o(i.APP_TouchKeyDifferCalc))
  [Stack]

  - Max Depth = 16
  - Call Chain = APP_TouchKeyDifferCalc
  [Calls]
  - >> WaterProof_Evt
  - >> Inside_In
  - >> Inside_Dif
  [Called By]
  - >> TK_MainFsm

  APP_TouchKeyFlagsGenerate (Thumb, 116 bytes, Stack size 16 bytes, tk_lib.o(i.APP_TouchKeyFlagsGenerate))
  [Stack]

  - Max Depth = 40
  - Call Chain = APP_TouchKeyFlagsGenerate ⇒ TK_UpdatBaseLineData
  [Calls]
  - >> TK_UpdatBaseLineData
  - >> WaterProof_Evt
  - >> InsideTrigger
  - >> APP_TouchKeyFlagsMask
  [Called By]
  - >> TK_MainFsm

  TK_GetArea (Thumb, 80 bytes, Stack size 16 bytes, tk_lib.o(i.TK_GetArea))
  [Stack]

  - Max Depth = 28
  - Call Chain = TK_GetArea ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> APP_TouchKeyDataProc

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

  - >> TK_UpdatBaseLineData
  - >> APP_TouchKeyDataProc

  ### Undefined Global Symbols