# Static Call Graph for image .\app\PS100.axf

#<CALLGRAPH># ARM Linker, 5060020: Last Updated: Wed Dec 02 09:16:03 2020

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

### Call chain for Maximum Stack Depth:

main ⇒ Intelligent_Management_Battery ⇒ Battery_Change_Mode ⇒ Battery_CB_Switch ⇒ Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)

### Mutually Recursive functions

- ADC0_1_IRQHandler ⇒ ADC0_1_IRQHandler
- Rsp_Can_Ctr_CMD ⇒ Battery_Change_Mode
- Handle_Can_Data ⇒ Battery_CB_Switch

  ### Function Pointers

  - ADC0_1_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - BusFault_Handler from gd32f10x_it.o(i.BusFault_Handler) referenced from startup_gd32f10x_md.o(RESET)
  - CAN0_EWMC_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - CAN0_RX1_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - DMA0_Channel0_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - DMA0_Channel1_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - DMA0_Channel2_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - DMA0_Channel3_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - DMA0_Channel4_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - DMA0_Channel5_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - DMA0_Channel6_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - DebugMon_Handler from gd32f10x_it.o(i.DebugMon_Handler) referenced from startup_gd32f10x_md.o(RESET)
  - EXMC_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - EXTI0_IRQHandler from drv_io.o(i.EXTI0_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - EXTI10_15_IRQHandler from drv_io.o(i.EXTI10_15_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - EXTI1_IRQHandler from drv_io.o(i.EXTI1_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - EXTI2_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - EXTI3_IRQHandler from drv_io.o(i.EXTI3_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - EXTI4_IRQHandler from drv_io.o(i.EXTI4_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - EXTI5_9_IRQHandler from drv_io.o(i.EXTI5_9_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - FMC_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - HardFault_Handler from gd32f10x_it.o(i.HardFault_Handler) referenced from startup_gd32f10x_md.o(RESET)
  - I2C0_ER_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - I2C0_EV_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - I2C1_ER_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - I2C1_EV_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - LVD_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - MemManage_Handler from gd32f10x_it.o(i.MemManage_Handler) referenced from startup_gd32f10x_md.o(RESET)
  - NMI_Handler from gd32f10x_it.o(i.NMI_Handler) referenced from startup_gd32f10x_md.o(RESET)
  - PendSV_Handler from gd32f10x_it.o(i.PendSV_Handler) referenced from startup_gd32f10x_md.o(RESET)
  - RCU_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - RTC_Alarm_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - RTC_IRQHandler from low_power.o(i.RTC_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - Reset_Handler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - SPI0_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - SPI1_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - SVC_Handler from gd32f10x_it.o(i.SVC_Handler) referenced from startup_gd32f10x_md.o(RESET)
  - SysTick_Handler from delay.o(i.SysTick_Handler) referenced from startup_gd32f10x_md.o(RESET)
  - SystemInit from system_gd32f10x.o(i.SystemInit) referenced from startup_gd32f10x_md.o(.text)
  - TAMPER_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - TIMER0_BRK_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - TIMER0_Channel_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - TIMER0_TRG_CMT_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - TIMER0_UP_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - TIMER1_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - TIMER2_IRQHandler from drv_adas.o(i.TIMER2_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - TIMER3_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - USART0_IRQHandler from drv_usart.o(i.USART0_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - USART1_IRQHandler from drv_usart_2.o(i.USART1_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - USART2_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - USBD_HP_CAN0_TX_IRQHandler from drv_can.o(i.USBD_HP_CAN0_TX_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - USBD_LP_CAN0_RX0_IRQHandler from drv_can.o(i.USBD_LP_CAN0_RX0_IRQHandler) referenced from startup_gd32f10x_md.o(RESET)
  - USBD_WKUP_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - UsageFault_Handler from gd32f10x_it.o(i.UsageFault_Handler) referenced from startup_gd32f10x_md.o(RESET)
  - WWDGT_IRQHandler from startup_gd32f10x_md.o(.text) referenced from startup_gd32f10x_md.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_gd32f10x_md.o(.text)
  - fputc from drv_can.o(i.fputc) referenced from printf5.o(i.__0printf$5)
  - 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_gd32f10x_md.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_gd32f10x_md.o(.text))
  [Address Reference Count : 1]

  - startup_gd32f10x_md.o(RESET)

  ADC0_1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_md.o(.text))
  [Calls]

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

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

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

  - >> Send_Sub_BMS_CMD_1
  - >> Handle_Sub_BMS_CMD_1
  - >> Send_Data_Can
  - >> Rsp_Can_Ctr_CMD
  - >> Rsp_Can_Bms_2_CMD
  - >> Rsp_Can_Bms_1_CMD
  - >> Get_Data_Can
  - >> Can_End_Ctr_Self_Send_Check
  - >> Can_Bms_2_Self_Send_Check
  - >> Can_Bms_1_Self_Send_Check
  - >> Handle_Can_CMD
  - >> Handle_Can_Data
  - >> Writer_SN
  - >> Check_SN
  - >> qws_iap_read_string
  - >> Send_Data_2_RS485
  - >> Get_RS485_2_Data
  - >> Send_Sub_BMS_CMD_2
  - >> Handle_Sub_BMS_CMD_2
  - >> Send_Data_RS485
  - >> Get_RS485_Data
  - >> USBD_LP_CAN0_RX0_IRQHandler
  - >> USBD_HP_CAN0_TX_IRQHandler

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

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

  __aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text))
  [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))
  [Calls]

  - >> __aeabi_memset
  [Called By]
  - >> Rsp_Can_Ctr_CMD
  - >> CAN_Config
  - >> RS485_Communication_Time_Out_2
  - >> RS485_Communication_Time_Out_1
  - >> End_Ctr_Initial
  - >> Can_Com_Initial
  - >> Reset_RX_Buffer
  - >> Reset_RX_Buffer

  __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
  [Called By]

  - >> Send_Data_Can
  - >> Initial_Neng_Hao_Bi
  - >> Sub_BMS_2_Initial
  - >> Sub_BMS_1_Initial
  - >> RS485_Communication_Time_Out_2
  - >> RS485_Communication_Time_Out_1
  - >> Check_Sub_BMS_2
  - >> Check_Sub_BMS_1
  - >> fputc
  - >> USBD_HP_CAN0_TX_IRQHandler

  __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

  strlen (Thumb, 14 bytes, Stack size 0 bytes, strlen.o(.text))
  [Called By]

  - >> qws_iap_read_string

  memcmp (Thumb, 26 bytes, Stack size 12 bytes, memcmp.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = memcmp
  [Called By]
  - >> Can_End_Ctr_Self_Send_Check
  - >> Handle_RS485_2_Data
  - >> Handle_RS485_1_Data
  - >> Handle_Can_Data

  __aeabi_fmul (Thumb, 100 bytes, Stack size 8 bytes, fmul.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_fmul
  [Called By]
  - >> Battery_2_Bu_Chang_Vol
  - >> Battery_1_Bu_Chang_Vol

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

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

  __aeabi_dsub (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_dadd

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

  - >> __aeabi_dadd

  __aeabi_dmul (Thumb, 228 bytes, Stack size 48 bytes, dmul.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> _double_epilogue
  [Called By]
  - >> Rsp_Can_Bms_2_CMD
  - >> Rsp_Can_Bms_1_CMD
  - >> Cal_Sheng_Yu_Li_Cheng
  - >> ADAS_Measure_Ju_Li_2
  - >> ADAS_Measure_Ju_Li_1

  __aeabi_ddiv (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = __aeabi_ddiv ⇒ _double_round
  [Calls]
  - >> _double_round
  [Called By]
  - >> Rsp_Can_Bms_2_CMD
  - >> Rsp_Can_Bms_1_CMD
  - >> Cal_Sheng_Yu_Li_Cheng
  - >> ADAS_Measure_Ju_Li_2
  - >> ADAS_Measure_Ju_Li_1

  __aeabi_i2f (Thumb, 18 bytes, Stack size 0 bytes, fflti.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = __aeabi_i2f ⇒ _float_epilogue
  [Calls]
  - >> _float_epilogue
  [Called By]
  - >> Battery_2_Bu_Chang_Vol
  - >> Battery_1_Bu_Chang_Vol

  __aeabi_ui2d (Thumb, 26 bytes, Stack size 16 bytes, dfltui.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = __aeabi_ui2d ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> _double_epilogue
  [Called By]
  - >> Rsp_Can_Bms_2_CMD
  - >> Rsp_Can_Bms_1_CMD
  - >> Cal_Sheng_Yu_Li_Cheng
  - >> ADAS_Measure_Ju_Li_2
  - >> ADAS_Measure_Ju_Li_1

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

  - >> Battery_2_Bu_Chang_Vol
  - >> Battery_1_Bu_Chang_Vol

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

  - Max Depth = 8
  - Call Chain = __aeabi_d2uiz
  [Calls]
  - >> __aeabi_llsr
  [Called By]
  - >> Rsp_Can_Bms_2_CMD
  - >> Rsp_Can_Bms_1_CMD
  - >> Check_End_Ctr_Status
  - >> Cal_Sheng_Yu_Li_Cheng
  - >> ADAS_Measure_Ju_Li_2
  - >> ADAS_Measure_Ju_Li_1

  __aeabi_cdcmpeq (Thumb, 0 bytes, Stack size 0 bytes, cdcmple.o(.text), UNUSED)

  __aeabi_cdcmple (Thumb, 48 bytes, Stack size 0 bytes, cdcmple.o(.text))
  [Called By]

  - >> Initial_Neng_Hao_Bi
  - >> Cal_Sheng_Yu_Li_Cheng

  __aeabi_cdrcmple (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text))
  [Called By]

  - >> Initial_Neng_Hao_Bi
  - >> Cal_Sheng_Yu_Li_Cheng

  __aeabi_uldivmod (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_llsr
  - >> __aeabi_llsl
  [Called By]
  - >> _printf_core

  __aeabi_llsl (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text))
  [Called By]

  - >> __aeabi_dadd
  - >> __aeabi_uldivmod
  - >> _double_epilogue

  _ll_shift_l (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)

  __aeabi_llsr (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text))
  [Called By]

  - >> __aeabi_d2uiz
  - >> __aeabi_uldivmod
  - >> _double_epilogue

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

  __aeabi_lasr (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text))
  [Called By]

  - >> __aeabi_dadd

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

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

  _float_round (Thumb, 18 bytes, Stack size 0 bytes, fepilogue.o(.text), UNUSED)

  _float_epilogue (Thumb, 92 bytes, Stack size 4 bytes, fepilogue.o(.text))
  [Stack]

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

  _double_round (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text))
  [Stack]

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

  _double_epilogue (Thumb, 156 bytes, Stack size 32 bytes, depilogue.o(.text))
  [Stack]

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

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

  - startup_gd32f10x_md.o(RESET)

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

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

  - >> EXTI10_15_IRQHandler

  ACC12_OVER_Loader_Timeout (Thumb, 66 bytes, Stack size 8 bytes, app_end_ctr.o(i.ACC12_OVER_Loader_Timeout))
  [Stack]

  - Max Depth = 8
  - Call Chain = ACC12_OVER_Loader_Timeout
  [Calls]
  - >> gpio_input_bit_get
  [Called By]
  - >> SysTick_Handler

  ACC2_Enable (Thumb, 56 bytes, Stack size 8 bytes, drv_io.o(i.ACC2_Enable))
  [Stack]

  - Max Depth = 32
  - Call Chain = ACC2_Enable ⇒ Check_S11 ⇒ S11_FL_On
  [Calls]
  - >> gpio_bit_write
  - >> Check_S11
  [Called By]
  - >> Handle_Can_Ctr_CMD
  - >> Power_On_Normal
  - >> Battery_CB_Switch
  - >> E_CTR_Initial

  ACC2_Is_On (Thumb, 56 bytes, Stack size 8 bytes, drv_io.o(i.ACC2_Is_On))
  [Stack]

  - Max Depth = 8
  - Call Chain = ACC2_Is_On
  [Calls]
  - >> gpio_output_bit_get
  - >> gpio_input_bit_get
  [Called By]
  - >> Handle_Can_Ctr_CMD
  - >> Check_S11_May_Operate
  - >> Check_S11

  ACC2_PWM (Thumb, 64 bytes, Stack size 8 bytes, drv_io.o(i.ACC2_PWM))
  [Stack]

  - Max Depth = 8
  - Call Chain = ACC2_PWM
  [Calls]
  - >> gpio_bit_write
  [Called By]
  - >> SysTick_Handler

  ADAS_Drv_IO_Initial (Thumb, 78 bytes, Stack size 8 bytes, drv_adas.o(i.ADAS_Drv_IO_Initial))
  [Stack]

  - Max Depth = 28
  - Call Chain = ADAS_Drv_IO_Initial ⇒ gpio_init
  [Calls]
  - >> rcu_periph_clock_enable
  - >> gpio_init
  - >> gpio_exti_source_select
  - >> exti_interrupt_flag_clear
  - >> exti_init
  [Called By]
  - >> ADAS_Drv_Initial

  ADAS_Drv_Initial (Thumb, 20 bytes, Stack size 8 bytes, drv_adas.o(i.ADAS_Drv_Initial))
  [Stack]

  - Max Depth = 56
  - Call Chain = ADAS_Drv_Initial ⇒ ADAS_Timer_Initial ⇒ nvic_irq_enable
  [Calls]
  - >> ADAS_Timer_Initial
  - >> ADAS_Receive_Timer_Initial
  - >> ADAS_PWM_IO_Reset
  - >> ADAS_Drv_IO_Initial
  [Called By]
  - >> ADAS_Initial

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

  - >> Power_On_Normal
  - >> ADAS_Initial
  - >> HT_Rsp_CMD

  ADAS_Initial (Thumb, 14 bytes, Stack size 8 bytes, app_adas.o(i.ADAS_Initial))
  [Stack]

  - Max Depth = 64
  - Call Chain = ADAS_Initial ⇒ ADAS_Drv_Initial ⇒ ADAS_Timer_Initial ⇒ nvic_irq_enable
  [Calls]
  - >> ADAS_Enable
  - >> ADAS_Drv_Initial
  [Called By]
  - >> main

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

  - >> Power_On_Normal

  ADAS_Measure_Finish_Ju_Li_1 (Thumb, 20 bytes, Stack size 4 bytes, app_adas.o(i.ADAS_Measure_Finish_Ju_Li_1))
  [Stack]

  - Max Depth = 20
  - Call Chain = ADAS_Measure_Finish_Ju_Li_1 ⇒ Sort
  [Calls]
  - >> Sort
  [Called By]
  - >> HT_Main
  - >> main

  ADAS_Measure_Finish_Ju_Li_2 (Thumb, 20 bytes, Stack size 4 bytes, app_adas.o(i.ADAS_Measure_Finish_Ju_Li_2))
  [Stack]

  - Max Depth = 20
  - Call Chain = ADAS_Measure_Finish_Ju_Li_2 ⇒ Sort
  [Calls]
  - >> Sort
  [Called By]
  - >> HT_Main
  - >> main

  ADAS_Measure_Ju_Li_1 (Thumb, 228 bytes, Stack size 40 bytes, app_adas.o(i.ADAS_Measure_Ju_Li_1))
  [Stack]

  - Max Depth = 128
  - Call Chain = ADAS_Measure_Ju_Li_1 ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> gpio_input_bit_get
  - >> __aeabi_ui2d
  - >> __aeabi_dmul
  - >> __aeabi_ddiv
  - >> __aeabi_d2uiz
  - >> timer_disable
  - >> timer_counter_read
  [Called By]
  - >> EXTI5_9_IRQHandler

  ADAS_PWM_1_Enable (Thumb, 48 bytes, Stack size 8 bytes, app_adas.o(i.ADAS_PWM_1_Enable))
  [Stack]

  - Max Depth = 76
  - Call Chain = ADAS_PWM_1_Enable ⇒ ADAS_PWM_Initial ⇒ gpio_init
  [Calls]
  - >> timer_enable
  - >> timer_disable
  - >> timer_counter_value_config
  - >> ADAS_PWM_Initial
  [Called By]
  - >> HT_Main
  - >> main

  ADAS_PWM_2_Enable (Thumb, 50 bytes, Stack size 8 bytes, app_adas.o(i.ADAS_PWM_2_Enable))
  [Stack]

  - Max Depth = 76
  - Call Chain = ADAS_PWM_2_Enable ⇒ ADAS_PWM_Initial ⇒ gpio_init
  [Calls]
  - >> timer_enable
  - >> timer_disable
  - >> timer_counter_value_config
  - >> ADAS_PWM_Initial
  [Called By]
  - >> HT_Main
  - >> main

  ADAS_Self_Send_Up (Thumb, 10 bytes, Stack size 8 bytes, app_can.o(i.ADAS_Self_Send_Up))
  [Stack]

  - Max Depth = 76
  - Call Chain = ADAS_Self_Send_Up ⇒ Can_ADAS_Self_Send ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Can_ADAS_Self_Send
  [Called By]
  - >> HT_Main
  - >> main

  Change_Mode_Sub_BMS_1_Normal (Thumb, 8 bytes, Stack size 8 bytes, app.o(i.Change_Mode_Sub_BMS_1_Normal))
  [Stack]

  - Max Depth = 16
  - Call Chain = Change_Mode_Sub_BMS_1_Normal ⇒ Is_Sub_BMS_1_Normal
  [Calls]
  - >> Is_Sub_BMS_1_Normal
  [Called By]
  - >> Battery_Change_Mode

  Change_Mode_Sub_BMS_2_Normal (Thumb, 8 bytes, Stack size 8 bytes, app.o(i.Change_Mode_Sub_BMS_2_Normal))
  [Stack]

  - Max Depth = 16
  - Call Chain = Change_Mode_Sub_BMS_2_Normal ⇒ Is_Sub_BMS_2_Normal
  [Calls]
  - >> Is_Sub_BMS_2_Normal
  [Called By]
  - >> Battery_Change_Mode

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

  - startup_gd32f10x_md.o(RESET)

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

  - startup_gd32f10x_md.o(RESET)

  ADAS_Measure_Ju_Li_2 (Thumb, 228 bytes, Stack size 40 bytes, app_adas.o(i.ADAS_Measure_Ju_Li_2))
  [Stack]

  - Max Depth = 128
  - Call Chain = ADAS_Measure_Ju_Li_2 ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> gpio_input_bit_get
  - >> __aeabi_ui2d
  - >> __aeabi_dmul
  - >> __aeabi_ddiv
  - >> __aeabi_d2uiz
  - >> timer_disable
  - >> timer_counter_read
  [Called By]
  - >> EXTI5_9_IRQHandler

  ADAS_PWM_IO_Reset (Thumb, 54 bytes, Stack size 8 bytes, drv_adas.o(i.ADAS_PWM_IO_Reset))
  [Stack]

  - Max Depth = 28
  - Call Chain = ADAS_PWM_IO_Reset ⇒ gpio_init
  [Calls]
  - >> rcu_periph_clock_enable
  - >> gpio_init
  - >> gpio_bit_reset
  - >> gpio_pin_remap_config
  [Called By]
  - >> ADAS_Drv_Initial
  - >> TIMER2_IRQHandler

  ADAS_PWM_Initial (Thumb, 226 bytes, Stack size 48 bytes, drv_adas.o(i.ADAS_PWM_Initial))
  [Stack]

  - Max Depth = 68
  - Call Chain = ADAS_PWM_Initial ⇒ gpio_init
  [Calls]
  - >> rcu_periph_clock_enable
  - >> gpio_init
  - >> timer_enable
  - >> timer_init
  - >> timer_deinit
  - >> timer_channel_output_shadow_config
  - >> timer_channel_output_pulse_value_config
  - >> timer_channel_output_mode_config
  - >> timer_channel_output_config
  - >> timer_auto_reload_shadow_enable
  - >> gpio_pin_remap_config
  [Called By]
  - >> ADAS_PWM_2_Enable
  - >> ADAS_PWM_1_Enable

  ADAS_Receive_Timer_Initial (Thumb, 76 bytes, Stack size 24 bytes, drv_adas.o(i.ADAS_Receive_Timer_Initial))
  [Stack]

  - Max Depth = 32
  - Call Chain = ADAS_Receive_Timer_Initial ⇒ timer_deinit
  [Calls]
  - >> rcu_periph_clock_enable
  - >> timer_disable
  - >> timer_struct_para_init
  - >> timer_interrupt_disable
  - >> timer_init
  - >> timer_deinit
  [Called By]
  - >> ADAS_Drv_Initial

  ADAS_Timeout (Thumb, 66 bytes, Stack size 0 bytes, app_adas.o(i.ADAS_Timeout))
  [Called By]

  - >> SysTick_Handler

  ADAS_Timer_Initial (Thumb, 88 bytes, Stack size 24 bytes, drv_adas.o(i.ADAS_Timer_Initial))
  [Stack]

  - Max Depth = 48
  - Call Chain = ADAS_Timer_Initial ⇒ nvic_irq_enable
  [Calls]
  - >> rcu_periph_clock_enable
  - >> nvic_irq_enable
  - >> timer_disable
  - >> timer_struct_para_init
  - >> timer_interrupt_enable
  - >> timer_init
  - >> timer_deinit
  [Called By]
  - >> ADAS_Drv_Initial

  App_Initial (Thumb, 26 bytes, Stack size 8 bytes, app.o(i.App_Initial))
  [Stack]

  - Max Depth = 84
  - Call Chain = App_Initial ⇒ Initial_Neng_Hao_Bi ⇒ Save_Neng_Hao_Bi ⇒ fmc_word_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> Initial_Neng_Hao_Bi
  [Called By]
  - >> main

  Battery_1_Bu_Chang_Vol (Thumb, 32 bytes, Stack size 16 bytes, app.o(i.Battery_1_Bu_Chang_Vol))
  [Stack]

  - Max Depth = 24
  - Call Chain = Battery_1_Bu_Chang_Vol ⇒ __aeabi_fmul
  [Calls]
  - >> __aeabi_i2f
  - >> __aeabi_fmul
  - >> __aeabi_f2iz
  [Called By]
  - >> Check_CB_BAT1_BAT2_SERIES
  - >> Check_CB_BAT1_BAT2_PARRALLEL
  - >> Change_Mode_Sub_BMS_PARRALLEL
  - >> Intelligent_Management_Battery

  Battery_2_Bu_Chang_Vol (Thumb, 32 bytes, Stack size 16 bytes, app.o(i.Battery_2_Bu_Chang_Vol))
  [Stack]

  - Max Depth = 24
  - Call Chain = Battery_2_Bu_Chang_Vol ⇒ __aeabi_fmul
  [Calls]
  - >> __aeabi_i2f
  - >> __aeabi_fmul
  - >> __aeabi_f2iz
  [Called By]
  - >> Check_CB_BAT1_BAT2_SERIES
  - >> Check_CB_BAT1_BAT2_PARRALLEL
  - >> Change_Mode_Sub_BMS_PARRALLEL
  - >> Intelligent_Management_Battery

  Battery_CB_Operate (Thumb, 60 bytes, Stack size 8 bytes, app.o(i.Battery_CB_Operate))
  [Stack]

  - Max Depth = 8
  - Call Chain = Battery_CB_Operate
  [Calls]
  - >> gpio_bit_write
  [Called By]
  - >> Battery_CB_Switch

  Battery_CB_Switch (Thumb, 2374 bytes, Stack size 16 bytes, app.o(i.Battery_CB_Switch))
  [Stack]

  - Max Depth = 208
  - Call Chain = Battery_CB_Switch ⇒ Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)
  [Calls]
  - >> delay_1ms
  - >> Operate_Sub_BMS_2_CD
  - >> Operate_Sub_BMS_1_CD
  - >> Measure_Vol
  - >> Is_Soak
  - >> ACC2_Enable
  - >> Power_On_Normal
  - >> Check_Battery_2_On
  - >> Check_Battery_1_On
  - >> Battery_CB_Operate
  - >> Handle_Can_Data
  [Called By]
  - >> Battery_Change_Mode
  - >> Handle_Can_Data
  - >> Check_CB_Operate_State
  - >> CB_Operate_Initial

  Battery_Change_Mode (Thumb, 100 bytes, Stack size 16 bytes, app.o(i.Battery_Change_Mode))
  [Stack]

  - Max Depth = 224
  - Call Chain = Battery_Change_Mode ⇒ Battery_CB_Switch ⇒ Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)
  [Calls]
  - >> Change_Mode_Sub_BMS_SERIES
  - >> Change_Mode_Sub_BMS_PARRALLEL
  - >> Change_Mode_Sub_BMS_2_Normal
  - >> Change_Mode_Sub_BMS_1_Normal
  - >> Battery_CB_Switch
  [Called By]
  - >> Rsp_Can_Ctr_CMD
  - >> Intelligent_Management_Battery
  - >> Check_Charge_In

  Bms_1_Self_Send_Timeout (Thumb, 98 bytes, Stack size 0 bytes, app_bms_1.o(i.Bms_1_Self_Send_Timeout))
  [Called By]

  - >> SysTick_Handler

  Bms_2_Self_Send_Timeout (Thumb, 98 bytes, Stack size 0 bytes, app_bms_2.o(i.Bms_2_Self_Send_Timeout))
  [Called By]

  - >> SysTick_Handler

  CAN_Config (Thumb, 338 bytes, Stack size 8 bytes, drv_can.o(i.CAN_Config))
  [Stack]

  - Max Depth = 40
  - Call Chain = CAN_Config ⇒ Can_NVIC_Config ⇒ nvic_irq_enable
  [Calls]
  - >> gpio_bit_write
  - >> rcu_periph_clock_enable
  - >> gpio_init
  - >> can_deinit
  - >> gpio_pin_remap_config
  - >> can_struct_para_init
  - >> can_interrupt_enable
  - >> can_init
  - >> can_filter_init
  - >> Can_NVIC_Config
  - >> __aeabi_memclr
  [Called By]
  - >> Can_Com_Initial

  CAN_Config_HW (Thumb, 270 bytes, Stack size 8 bytes, drv_can.o(i.CAN_Config_HW))
  [Stack]

  - Max Depth = 40
  - Call Chain = CAN_Config_HW ⇒ Can_NVIC_Config ⇒ nvic_irq_enable
  [Calls]
  - >> gpio_bit_write
  - >> rcu_periph_clock_enable
  - >> gpio_init
  - >> can_deinit
  - >> gpio_pin_remap_config
  - >> can_struct_para_init
  - >> can_interrupt_enable
  - >> can_init
  - >> can_filter_init
  - >> Can_NVIC_Config
  [Called By]
  - >> Check_Can_Poll

  CB_Operate_Initial (Thumb, 20 bytes, Stack size 8 bytes, app.o(i.CB_Operate_Initial))
  [Stack]

  - Max Depth = 216
  - Call Chain = CB_Operate_Initial ⇒ Battery_CB_Switch ⇒ Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)
  [Calls]
  - >> _CB_Operate_Initial
  - >> Battery_CB_Switch
  [Called By]
  - >> main

  Cal_Sheng_Yu_Li_Cheng (Thumb, 414 bytes, Stack size 48 bytes, app.o(i.Cal_Sheng_Yu_Li_Cheng))
  [Stack]

  - Max Depth = 136
  - Call Chain = Cal_Sheng_Yu_Li_Cheng ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_ui2d
  - >> __aeabi_dmul
  - >> __aeabi_ddiv
  - >> __aeabi_dadd
  - >> __aeabi_d2uiz
  - >> __aeabi_cdrcmple
  - >> __aeabi_cdcmple
  - >> Reset_Cal
  [Called By]
  - >> main

  Can_ADAS_Self_Send (Thumb, 152 bytes, Stack size 16 bytes, app_adas.o(i.Can_ADAS_Self_Send))
  [Stack]

  - Max Depth = 68
  - Call Chain = Can_ADAS_Self_Send ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  [Called By]
  - >> ADAS_Self_Send_Up

  Can_Bms_1_Self_Send_Check (Thumb, 190 bytes, Stack size 16 bytes, app_bms_1.o(i.Can_Bms_1_Self_Send_Check))
  [Stack]

  - Max Depth = 68
  - Call Chain = Can_Bms_1_Self_Send_Check ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  - >> __aeabi_memcpy
  [Called By]
  - >> Check_Can_Self_Send_Status

  Can_Bms_2_Self_Send_Check (Thumb, 190 bytes, Stack size 16 bytes, app_bms_2.o(i.Can_Bms_2_Self_Send_Check))
  [Stack]

  - Max Depth = 68
  - Call Chain = Can_Bms_2_Self_Send_Check ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  - >> __aeabi_memcpy
  [Called By]
  - >> Check_Can_Self_Send_Status

  Can_Com_Initial (Thumb, 258 bytes, Stack size 8 bytes, app_can.o(i.Can_Com_Initial))
  [Stack]

  - Max Depth = 48
  - Call Chain = Can_Com_Initial ⇒ CAN_Config ⇒ Can_NVIC_Config ⇒ nvic_irq_enable
  [Calls]
  - >> CAN_Config
  - >> __aeabi_memclr
  [Called By]
  - >> main

  Can_End_Ctr_Self_Send_Check (Thumb, 148 bytes, Stack size 16 bytes, app_end_ctr.o(i.Can_End_Ctr_Self_Send_Check))
  [Stack]

  - Max Depth = 68
  - Call Chain = Can_End_Ctr_Self_Send_Check ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  - >> memcmp
  - >> __aeabi_memcpy
  [Called By]
  - >> Check_Can_Self_Send_Status

  Change_Mode_Sub_BMS_PARRALLEL (Thumb, 78 bytes, Stack size 16 bytes, app.o(i.Change_Mode_Sub_BMS_PARRALLEL))
  [Stack]

  - Max Depth = 40
  - Call Chain = Change_Mode_Sub_BMS_PARRALLEL ⇒ Battery_2_Bu_Chang_Vol ⇒ __aeabi_fmul
  [Calls]
  - >> Is_Sub_BMS_2_Normal
  - >> Is_Sub_BMS_1_Normal
  - >> Battery_2_Bu_Chang_Vol
  - >> Battery_1_Bu_Chang_Vol
  [Called By]
  - >> Battery_Change_Mode

  Change_Mode_Sub_BMS_SERIES (Thumb, 90 bytes, Stack size 8 bytes, app.o(i.Change_Mode_Sub_BMS_SERIES))
  [Stack]

  - Max Depth = 16
  - Call Chain = Change_Mode_Sub_BMS_SERIES ⇒ Is_Sub_BMS_2_Normal
  [Calls]
  - >> Is_Sub_BMS_2_Normal
  - >> Is_Sub_BMS_1_Normal
  - >> IS_CHARGE_IN
  [Called By]
  - >> Battery_Change_Mode

  Charge_Dec_IRQ_Initial (Thumb, 46 bytes, Stack size 8 bytes, drv_io.o(i.Charge_Dec_IRQ_Initial))
  [Stack]

  - Max Depth = 32
  - Call Chain = Charge_Dec_IRQ_Initial ⇒ nvic_irq_enable
  [Calls]
  - >> rcu_periph_clock_enable
  - >> nvic_irq_enable
  - >> gpio_exti_source_select
  - >> exti_interrupt_flag_clear
  - >> exti_init
  [Called By]
  - >> GPIO_Initial

  Charger_Out (Thumb, 38 bytes, Stack size 8 bytes, app.o(i.Charger_Out))
  [Stack]

  - Max Depth = 8
  - Call Chain = Charger_Out
  [Calls]
  - >> Set_Charger_In
  [Called By]
  - >> Check_Charge_In

  Check_Battery_1_On (Thumb, 56 bytes, Stack size 8 bytes, app.o(i.Check_Battery_1_On))
  [Stack]

  - Max Depth = 108
  - Call Chain = Check_Battery_1_On ⇒ Measure_Vol ⇒ adc_getResult_6t ⇒ Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> gpio_output_bit_get
  - >> Measure_Vol
  [Called By]
  - >> Battery_CB_Switch

  Check_Battery_2_On (Thumb, 56 bytes, Stack size 8 bytes, app.o(i.Check_Battery_2_On))
  [Stack]

  - Max Depth = 108
  - Call Chain = Check_Battery_2_On ⇒ Measure_Vol ⇒ adc_getResult_6t ⇒ Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> gpio_output_bit_get
  - >> Measure_Vol
  [Called By]
  - >> Battery_CB_Switch

  Check_CB_BAT1_BAT2_PARRALLEL (Thumb, 184 bytes, Stack size 24 bytes, app.o(i.Check_CB_BAT1_BAT2_PARRALLEL))
  [Stack]

  - Max Depth = 48
  - Call Chain = Check_CB_BAT1_BAT2_PARRALLEL ⇒ Battery_2_Bu_Chang_Vol ⇒ __aeabi_fmul
  [Calls]
  - >> Is_Sub_BMS_2_Normal
  - >> Is_Sub_BMS_1_Normal
  - >> Select_One_BAT
  - >> Battery_2_Bu_Chang_Vol
  - >> Battery_1_Bu_Chang_Vol
  [Called By]
  - >> Check_CB_Operate_State

  Check_CB_BAT1_BAT2_SERIES (Thumb, 240 bytes, Stack size 16 bytes, app.o(i.Check_CB_BAT1_BAT2_SERIES))
  [Stack]

  - Max Depth = 40
  - Call Chain = Check_CB_BAT1_BAT2_SERIES ⇒ Battery_2_Bu_Chang_Vol ⇒ __aeabi_fmul
  [Calls]
  - >> Is_Sub_BMS_2_Normal
  - >> Is_Sub_BMS_1_Normal
  - >> IS_CHARGE_IN
  - >> Select_One_BAT_Han_Guo
  - >> Select_One_BAT
  - >> Battery_2_Bu_Chang_Vol
  - >> Battery_1_Bu_Chang_Vol
  [Called By]
  - >> Check_CB_Operate_State

  Check_CB_BAT_1 (Thumb, 72 bytes, Stack size 8 bytes, app.o(i.Check_CB_BAT_1))
  [Stack]

  - Max Depth = 16
  - Call Chain = Check_CB_BAT_1 ⇒ Is_Sub_BMS_1_Normal
  [Calls]
  - >> Is_Sub_BMS_1_Normal
  [Called By]
  - >> Check_CB_Operate_State

  Check_CB_BAT_2 (Thumb, 72 bytes, Stack size 8 bytes, app.o(i.Check_CB_BAT_2))
  [Stack]

  - Max Depth = 16
  - Call Chain = Check_CB_BAT_2 ⇒ Is_Sub_BMS_2_Normal
  [Calls]
  - >> Is_Sub_BMS_2_Normal
  [Called By]
  - >> Check_CB_Operate_State

  Check_CB_Operate_State (Thumb, 128 bytes, Stack size 8 bytes, app.o(i.Check_CB_Operate_State))
  [Stack]

  - Max Depth = 216
  - Call Chain = Check_CB_Operate_State ⇒ Battery_CB_Switch ⇒ Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)
  [Calls]
  - >> Sub_BMS_2_COM_Finish
  - >> Sub_BMS_1_COM_Finish
  - >> Select_One_BAT
  - >> Power_On_Normal
  - >> Check_CB_BAT_2
  - >> Check_CB_BAT_1
  - >> Check_CB_BAT1_BAT2_SERIES
  - >> Check_CB_BAT1_BAT2_PARRALLEL
  - >> Battery_CB_Switch
  [Called By]
  - >> main

  Check_Can_Poll (Thumb, 56 bytes, Stack size 8 bytes, drv_can.o(i.Check_Can_Poll))
  [Stack]

  - Max Depth = 48
  - Call Chain = Check_Can_Poll ⇒ CAN_Config_HW ⇒ Can_NVIC_Config ⇒ nvic_irq_enable
  [Calls]
  - >> gpio_bit_write
  - >> can_deinit
  - >> can_error_get
  - >> CAN_Config_HW
  [Called By]
  - >> HT_Main
  - >> main

  Check_Can_Self_Send_Status (Thumb, 22 bytes, Stack size 8 bytes, app_can.o(i.Check_Can_Self_Send_Status))
  [Stack]

  - Max Depth = 76
  - Call Chain = Check_Can_Self_Send_Status ⇒ Can_End_Ctr_Self_Send_Check ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Can_End_Ctr_Self_Send_Check
  - >> Can_Bms_2_Self_Send_Check
  - >> Can_Bms_1_Self_Send_Check
  [Called By]
  - >> main

  Check_Charge_In (Thumb, 324 bytes, Stack size 8 bytes, app.o(i.Check_Charge_In))
  [Stack]

  - Max Depth = 232
  - Call Chain = Check_Charge_In ⇒ Battery_Change_Mode ⇒ Battery_CB_Switch ⇒ Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)
  [Calls]
  - >> gpio_output_bit_get
  - >> gpio_bit_write
  - >> IS_CHARGE_IN
  - >> Charger_Out
  - >> Battery_Change_Mode
  [Called By]
  - >> main

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

  - >> SysTick_Handler

  Check_End_Ctr_Status (Thumb, 468 bytes, Stack size 8 bytes, app_end_ctr.o(i.Check_End_Ctr_Status))
  [Stack]

  - Max Depth = 16
  - Call Chain = Check_End_Ctr_Status ⇒ __aeabi_d2uiz
  [Calls]
  - >> gpio_output_bit_get
  - >> gpio_input_bit_get
  - >> __aeabi_d2uiz
  - >> IS_CHARGE_IN
  [Called By]
  - >> main

  Check_HT_Flash (Thumb, 38 bytes, Stack size 8 bytes, hardware_test.o(i.Check_HT_Flash))
  [Stack]

  - Max Depth = 8
  - Call Chain = Check_HT_Flash
  [Called By]
  - >> HT_Main

  Check_S11 (Thumb, 84 bytes, Stack size 16 bytes, drv_io.o(i.Check_S11))
  [Stack]

  - Max Depth = 24
  - Call Chain = Check_S11 ⇒ S11_FL_On
  [Calls]
  - >> gpio_input_bit_get
  - >> S11_May_Operate
  - >> S11_FL_On
  - >> ACC2_Is_On
  [Called By]
  - >> QD_Enable_From
  - >> ACC2_Enable

  Check_S11_May_Operate (Thumb, 40 bytes, Stack size 8 bytes, drv_io.o(i.Check_S11_May_Operate))
  [Stack]

  - Max Depth = 16
  - Call Chain = Check_S11_May_Operate ⇒ S11_FL_On
  [Calls]
  - >> gpio_input_bit_get
  - >> S11_May_Operate
  - >> S11_FL_On
  - >> ACC2_Is_On
  [Called By]
  - >> main

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

  - Max Depth = 44
  - Call Chain = Check_SN ⇒ fmc_halfword_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> fmc_unlock
  - >> fmc_page_erase
  - >> fmc_lock
  - >> fmc_halfword_program
  - >> Flash_flag_clear
  - >> __aeabi_memcpy
  [Called By]
  - >> main

  Check_Sub_BMS_1 (Thumb, 76 bytes, Stack size 8 bytes, app_rs485_1.o(i.Check_Sub_BMS_1))
  [Stack]

  - Max Depth = 8
  - Call Chain = Check_Sub_BMS_1
  [Calls]
  - >> SUB_BMS_1_DEC
  - >> __aeabi_memclr4
  [Called By]
  - >> main

  Check_Sub_BMS_2 (Thumb, 76 bytes, Stack size 8 bytes, app_rs485_2.o(i.Check_Sub_BMS_2))
  [Stack]

  - Max Depth = 8
  - Call Chain = Check_Sub_BMS_2
  [Calls]
  - >> SUB_BMS_2_DEC
  - >> __aeabi_memclr4
  [Called By]
  - >> main

  EXTI0_IRQHandler (Thumb, 28 bytes, Stack size 8 bytes, drv_io.o(i.EXTI0_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI0_IRQHandler
  [Calls]
  - >> exti_interrupt_flag_clear
  - >> exti_interrupt_flag_get
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  EXTI10_15_IRQHandler (Thumb, 168 bytes, Stack size 8 bytes, drv_io.o(i.EXTI10_15_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI10_15_IRQHandler
  [Calls]
  - >> exti_interrupt_flag_clear
  - >> ACC12_OVER_Loader_Interrupt
  - >> exti_interrupt_flag_get
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  EXTI1_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, drv_io.o(i.EXTI1_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI1_IRQHandler
  [Calls]
  - >> exti_interrupt_flag_clear
  - >> exti_interrupt_flag_get
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  EXTI3_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, drv_io.o(i.EXTI3_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI3_IRQHandler
  [Calls]
  - >> exti_interrupt_flag_clear
  - >> exti_interrupt_flag_get
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  EXTI4_IRQHandler (Thumb, 34 bytes, Stack size 8 bytes, drv_io.o(i.EXTI4_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI4_IRQHandler
  [Calls]
  - >> gpio_input_bit_get
  - >> Set_Charger_In
  - >> exti_interrupt_flag_clear
  - >> exti_interrupt_flag_get
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  EXTI5_9_IRQHandler (Thumb, 124 bytes, Stack size 8 bytes, drv_io.o(i.EXTI5_9_IRQHandler))
  [Stack]

  - Max Depth = 136
  - Call Chain = EXTI5_9_IRQHandler ⇒ ADAS_Measure_Ju_Li_2 ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> exti_interrupt_flag_clear
  - >> ADAS_Measure_Ju_Li_2
  - >> ADAS_Measure_Ju_Li_1
  - >> exti_interrupt_flag_get
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  E_CTR_Dec_IRQ_Initial (Thumb, 218 bytes, Stack size 8 bytes, drv_io.o(i.E_CTR_Dec_IRQ_Initial))
  [Stack]

  - Max Depth = 32
  - Call Chain = E_CTR_Dec_IRQ_Initial ⇒ nvic_irq_enable
  [Calls]
  - >> rcu_periph_clock_enable
  - >> nvic_irq_enable
  - >> gpio_exti_source_select
  - >> exti_interrupt_flag_clear
  - >> exti_init
  [Called By]
  - >> E_CTR_Initial

  E_CTR_Initial (Thumb, 310 bytes, Stack size 8 bytes, drv_io.o(i.E_CTR_Initial))
  [Stack]

  - Max Depth = 48
  - Call Chain = E_CTR_Initial ⇒ QD_Enable_From ⇒ Check_S11 ⇒ S11_FL_On
  [Calls]
  - >> gpio_bit_write
  - >> QD_Enable_From
  - >> ACC2_Enable
  - >> rcu_periph_clock_enable
  - >> gpio_init
  - >> E_CTR_Dec_IRQ_Initial
  - >> gpio_pin_remap_config
  [Called By]
  - >> End_Ctr_Initial

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

  - >> USART0_IRQHandler

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

  - >> USART1_IRQHandler

  End_Ctr_Initial (Thumb, 16 bytes, Stack size 8 bytes, app_end_ctr.o(i.End_Ctr_Initial))
  [Stack]

  - Max Depth = 56
  - Call Chain = End_Ctr_Initial ⇒ E_CTR_Initial ⇒ QD_Enable_From ⇒ Check_S11 ⇒ S11_FL_On
  [Calls]
  - >> E_CTR_Initial
  - >> __aeabi_memclr
  [Called By]
  - >> main

  End_Ctr_Self_Send_Timeout (Thumb, 98 bytes, Stack size 0 bytes, app_end_ctr.o(i.End_Ctr_Self_Send_Timeout))
  [Called By]

  - >> SysTick_Handler

  Enter_Sleep (Thumb, 148 bytes, Stack size 0 bytes, low_power.o(i.Enter_Sleep))
  [Stack]

  - Max Depth = 100
  - Call Chain = Enter_Sleep ⇒ Measure_Vol ⇒ adc_getResult_6t ⇒ Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> Measure_Vol
  - >> systick_config
  - >> rcu_periph_clock_enable
  - >> usart_deinit
  - >> systick_close
  - >> pmu_to_deepsleepmode
  - >> can_deinit
  - >> SystemInit
  - >> RTC_Open
  - >> LP_Measure_Vol_Initial
  [Called By]
  - >> main

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

  - >> SysTick_Handler

  Flash_flag_clear (Thumb, 12 bytes, Stack size 8 bytes, main.o(i.Flash_flag_clear))
  [Stack]

  - Max Depth = 8
  - Call Chain = Flash_flag_clear
  [Calls]
  - >> fmc_flag_clear
  [Called By]
  - >> Save_Neng_Hao_Bi
  - >> Writer_SN
  - >> Check_SN

  GPIO_Initial (Thumb, 180 bytes, Stack size 8 bytes, drv_io.o(i.GPIO_Initial))
  [Stack]

  - Max Depth = 40
  - Call Chain = GPIO_Initial ⇒ Charge_Dec_IRQ_Initial ⇒ nvic_irq_enable
  [Calls]
  - >> gpio_bit_write
  - >> rcu_periph_clock_enable
  - >> gpio_init
  - >> Charge_Dec_IRQ_Initial
  - >> gpio_pin_remap_config
  [Called By]
  - >> Misc_Initial

  Get_Data_Can (Thumb, 206 bytes, Stack size 16 bytes, drv_can.o(i.Get_Data_Can))
  [Stack]

  - Max Depth = 16
  - Call Chain = Get_Data_Can
  [Calls]
  - >> Reset_Can_Rx_Buffer
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_Can_Data

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

  - >> Reset_Cal

  Get_RS485_2_Data (Thumb, 44 bytes, Stack size 16 bytes, drv_usart_2.o(i.Get_RS485_2_Data))
  [Stack]

  - Max Depth = 24
  - Call Chain = Get_RS485_2_Data ⇒ Reset_RX_Buffer
  [Calls]
  - >> Reset_RX_Buffer
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_RS485_2_Data
  - >> HT_Handle_RS485_Data

  Get_RS485_Data (Thumb, 44 bytes, Stack size 16 bytes, drv_usart.o(i.Get_RS485_Data))
  [Stack]

  - Max Depth = 24
  - Call Chain = Get_RS485_Data ⇒ Reset_RX_Buffer
  [Calls]
  - >> Reset_RX_Buffer
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_RS485_1_Data
  - >> HT_Handle_RS485_Data

  HT_Flash_flag_clear (Thumb, 12 bytes, Stack size 8 bytes, hardware_test.o(i.HT_Flash_flag_clear))
  [Stack]

  - Max Depth = 8
  - Call Chain = HT_Flash_flag_clear
  [Calls]
  - >> fmc_flag_clear
  [Called By]
  - >> Writer_HT_Flash

  HT_Frame_CRC (Thumb, 28 bytes, Stack size 8 bytes, hardware_test.o(i.HT_Frame_CRC))
  [Stack]

  - Max Depth = 8
  - Call Chain = HT_Frame_CRC
  [Called By]
  - >> HT_Rsp_CMD
  - >> HT_Handle_CMD

  HT_Handle_CMD (Thumb, 252 bytes, Stack size 16 bytes, hardware_test.o(i.HT_Handle_CMD))
  [Stack]

  - Max Depth = 24
  - Call Chain = HT_Handle_CMD ⇒ HT_Frame_CRC
  [Calls]
  - >> gpio_bit_write
  - >> HT_Frame_CRC
  [Called By]
  - >> HT_Handle_RS485_Data

  HT_Handle_RS485_Data (Thumb, 118 bytes, Stack size 16 bytes, hardware_test.o(i.HT_Handle_RS485_Data))
  [Stack]

  - Max Depth = 140
  - Call Chain = HT_Handle_RS485_Data ⇒ HT_Rsp_CMD ⇒ Measure_Vol ⇒ adc_getResult_6t ⇒ Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> HT_Rsp_CMD
  - >> HT_Handle_CMD
  - >> Send_Data_2_RS485
  - >> Get_RS485_2_Data
  - >> Send_Data_RS485
  - >> Get_RS485_Data
  [Called By]
  - >> HT_Main

  HT_Main (Thumb, 224 bytes, Stack size 8 bytes, hardware_test.o(i.HT_Main))
  [Stack]

  - Max Depth = 200
  - Call Chain = HT_Main ⇒ Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)
  [Calls]
  - >> gpio_input_bit_get
  - >> qws_iap_write_magic
  - >> Handle_Can_Data
  - >> Check_Can_Poll
  - >> ADAS_Self_Send_Up
  - >> ADAS_PWM_2_Enable
  - >> ADAS_PWM_1_Enable
  - >> ADAS_Measure_Finish_Ju_Li_2
  - >> ADAS_Measure_Finish_Ju_Li_1
  - >> HT_Handle_RS485_Data
  - >> Check_HT_Flash
  - >> Writer_HT_Flash
  [Called By]
  - >> main

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

  - >> SysTick_Handler

  HT_Rsp_CMD (Thumb, 1894 bytes, Stack size 24 bytes, hardware_test.o(i.HT_Rsp_CMD))
  [Stack]

  - Max Depth = 124
  - Call Chain = HT_Rsp_CMD ⇒ Measure_Vol ⇒ adc_getResult_6t ⇒ Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> gpio_input_bit_get
  - >> gpio_bit_write
  - >> delay_1ms
  - >> Measure_Vol
  - >> ADAS_Enable
  - >> getTemperature
  - >> HT_Frame_CRC
  [Called By]
  - >> HT_Handle_RS485_Data

  Handle_Can_Bms_1_CMD (Thumb, 130 bytes, Stack size 8 bytes, app_bms_1.o(i.Handle_Can_Bms_1_CMD))
  [Stack]

  - Max Depth = 8
  - Call Chain = Handle_Can_Bms_1_CMD
  [Called By]
  - >> Handle_Can_CMD

  Handle_Can_Bms_2_CMD (Thumb, 130 bytes, Stack size 8 bytes, app_bms_2.o(i.Handle_Can_Bms_2_CMD))
  [Stack]

  - Max Depth = 8
  - Call Chain = Handle_Can_Bms_2_CMD
  [Called By]
  - >> Handle_Can_CMD

  Handle_Can_Ctr_CMD (Thumb, 806 bytes, Stack size 16 bytes, app_end_ctr.o(i.Handle_Can_Ctr_CMD))
  [Stack]

  - Max Depth = 68
  - Call Chain = Handle_Can_Ctr_CMD ⇒ qws_iap_reboot ⇒ qws_iap_write_magic ⇒ fmc_word_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> gpio_input_bit_get
  - >> gpio_bit_write
  - >> delay_1ms
  - >> QD_Enable_From
  - >> ACC2_Enable
  - >> Writer_SN
  - >> ACC2_Is_On
  - >> qws_iap_reboot
  [Called By]
  - >> Handle_Can_CMD

  Handle_Can_Data (Thumb, 2324 bytes, Stack size 16 bytes, app_can.o(i.Handle_Can_Data))
  [Stack]

  - Max Depth = 192 + In Cycle
  - Call Chain = Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)
  [Calls]
  - >> Send_Data_Can
  - >> Get_Data_Can
  - >> Handle_Can_CMD
  - >> Measure_Vol
  - >> Battery_CB_Switch
  - >> __2printf
  - >> memcmp
  - >> __aeabi_memcpy
  [Called By]
  - >> Battery_CB_Switch
  - >> HT_Main
  - >> main

  Handle_RS485_1_Data (Thumb, 160 bytes, Stack size 8 bytes, app_rs485_1.o(i.Handle_RS485_1_Data))
  [Stack]

  - Max Depth = 52
  - Call Chain = Handle_RS485_1_Data ⇒ Writer_HT_Flash ⇒ fmc_halfword_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> Handle_Sub_BMS_CMD_1
  - >> Writer_HT_Flash
  - >> RS485_Print
  - >> Get_RS485_Data
  - >> memcmp
  [Called By]
  - >> Operate_Sub_BMS_1_CD
  - >> main
  - >> Update_Sub_BMS_1_Software

  Handle_RS485_2_Data (Thumb, 160 bytes, Stack size 8 bytes, app_rs485_2.o(i.Handle_RS485_2_Data))
  [Stack]

  - Max Depth = 52
  - Call Chain = Handle_RS485_2_Data ⇒ Writer_HT_Flash ⇒ fmc_halfword_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> Get_RS485_2_Data
  - >> Handle_Sub_BMS_CMD_2
  - >> Writer_HT_Flash
  - >> RS485_Print
  - >> memcmp
  [Called By]
  - >> Operate_Sub_BMS_2_CD
  - >> main
  - >> Update_Sub_BMS_2_Software

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

  - startup_gd32f10x_md.o(RESET)

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

  - >> Select_One_BAT_Han_Guo
  - >> Select_One_BAT
  - >> Check_CB_BAT1_BAT2_SERIES
  - >> Change_Mode_Sub_BMS_SERIES
  - >> Check_End_Ctr_Status
  - >> Check_Charge_In

  Initial_Neng_Hao_Bi (Thumb, 164 bytes, Stack size 24 bytes, app.o(i.Initial_Neng_Hao_Bi))
  [Stack]

  - Max Depth = 76
  - Call Chain = Initial_Neng_Hao_Bi ⇒ Save_Neng_Hao_Bi ⇒ fmc_word_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> __aeabi_cdrcmple
  - >> __aeabi_cdcmple
  - >> Save_Neng_Hao_Bi
  - >> __aeabi_memclr4
  [Called By]
  - >> App_Initial

  Intelligent_Management_Battery (Thumb, 328 bytes, Stack size 16 bytes, app.o(i.Intelligent_Management_Battery))
  [Stack]

  - Max Depth = 240
  - Call Chain = Intelligent_Management_Battery ⇒ Battery_Change_Mode ⇒ Battery_CB_Switch ⇒ Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)
  [Calls]
  - >> gpio_output_bit_get
  - >> Battery_Change_Mode
  - >> Battery_2_Bu_Chang_Vol
  - >> Battery_1_Bu_Chang_Vol
  [Called By]
  - >> main

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

  - >> Is_Sub_BMS_2_Normal
  - >> Is_Sub_BMS_1_Normal
  - >> Battery_CB_Switch

  Is_Sub_BMS_1_Normal (Thumb, 172 bytes, Stack size 8 bytes, app_rs485_1.o(i.Is_Sub_BMS_1_Normal))
  [Stack]

  - Max Depth = 8
  - Call Chain = Is_Sub_BMS_1_Normal
  [Calls]
  - >> gpio_output_bit_get
  - >> gpio_input_bit_get
  - >> Is_Soak
  - >> SUB_BMS_1_DEC
  [Called By]
  - >> Rsp_Can_Bms_1_CMD
  - >> Select_One_BAT_Han_Guo
  - >> Select_One_BAT
  - >> Check_CB_BAT_1
  - >> Check_CB_BAT1_BAT2_SERIES
  - >> Check_CB_BAT1_BAT2_PARRALLEL
  - >> Change_Mode_Sub_BMS_SERIES
  - >> Change_Mode_Sub_BMS_PARRALLEL
  - >> Change_Mode_Sub_BMS_1_Normal

  Is_Sub_BMS_2_Normal (Thumb, 172 bytes, Stack size 8 bytes, app_rs485_2.o(i.Is_Sub_BMS_2_Normal))
  [Stack]

  - Max Depth = 8
  - Call Chain = Is_Sub_BMS_2_Normal
  [Calls]
  - >> gpio_output_bit_get
  - >> gpio_input_bit_get
  - >> Is_Soak
  - >> SUB_BMS_2_DEC
  [Called By]
  - >> Rsp_Can_Bms_2_CMD
  - >> Select_One_BAT_Han_Guo
  - >> Select_One_BAT
  - >> Check_CB_BAT_2
  - >> Check_CB_BAT1_BAT2_SERIES
  - >> Check_CB_BAT1_BAT2_PARRALLEL
  - >> Change_Mode_Sub_BMS_SERIES
  - >> Change_Mode_Sub_BMS_PARRALLEL
  - >> Change_Mode_Sub_BMS_2_Normal

  LP_Measure_Vol_Initial (Thumb, 46 bytes, Stack size 8 bytes, low_power.o(i.LP_Measure_Vol_Initial))
  [Stack]

  - Max Depth = 28
  - Call Chain = LP_Measure_Vol_Initial ⇒ gpio_init
  [Calls]
  - >> rcu_periph_clock_enable
  - >> gpio_init
  - >> rcu_adc_clock_config
  [Called By]
  - >> Enter_Sleep

  Low_Power_Initial (Thumb, 8 bytes, Stack size 4 bytes, low_power.o(i.Low_Power_Initial))
  [Stack]

  - Max Depth = 4
  - Call Chain = Low_Power_Initial
  [Calls]
  - >> Set_Enter_Sleep_Delay
  [Called By]
  - >> main

  Measure_Temprature_Initial (Thumb, 40 bytes, Stack size 8 bytes, measure_temprature.o(i.Measure_Temprature_Initial))
  [Stack]

  - Max Depth = 108
  - Call Chain = Measure_Temprature_Initial ⇒ getTemperature ⇒ adc_getResult_6t ⇒ Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> getTemperature
  - >> _Measure_Temprature_Initial
  [Called By]
  - >> main

  Measure_Vol (Thumb, 50 bytes, Stack size 16 bytes, measure_vol.o(i.Measure_Vol))
  [Stack]

  - Max Depth = 100
  - Call Chain = Measure_Vol ⇒ adc_getResult_6t ⇒ Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> adc_getResult_6t
  [Called By]
  - >> Check_Battery_2_On
  - >> Check_Battery_1_On
  - >> Battery_CB_Switch
  - >> Handle_Can_Data
  - >> Enter_Sleep
  - >> HT_Rsp_CMD

  Measure_Vol_Initial (Thumb, 8 bytes, Stack size 8 bytes, measure_vol.o(i.Measure_Vol_Initial))
  [Stack]

  - Max Depth = 36
  - Call Chain = Measure_Vol_Initial ⇒ _Measure_Vol_Initial ⇒ gpio_init
  [Calls]
  - >> _Measure_Vol_Initial
  [Called By]
  - >> main

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

  - startup_gd32f10x_md.o(RESET)

  Misc_Initial (Thumb, 8 bytes, Stack size 8 bytes, app.o(i.Misc_Initial))
  [Stack]

  - Max Depth = 48
  - Call Chain = Misc_Initial ⇒ GPIO_Initial ⇒ Charge_Dec_IRQ_Initial ⇒ nvic_irq_enable
  [Calls]
  - >> GPIO_Initial
  [Called By]
  - >> main

  Operate_Sub_BMS_1_CD (Thumb, 160 bytes, Stack size 24 bytes, app_rs485_1.o(i.Operate_Sub_BMS_1_CD))
  [Stack]

  - Max Depth = 80
  - Call Chain = Operate_Sub_BMS_1_CD ⇒ Send_Sub_BMS_CMD_1 ⇒ Send_Data_RS485 ⇒ usart_interrupt_flag_get
  [Calls]
  - >> Send_Sub_BMS_CMD_1
  - >> delay_1ms
  - >> Handle_RS485_1_Data
  [Called By]
  - >> Battery_CB_Switch

  Operate_Sub_BMS_2_CD (Thumb, 160 bytes, Stack size 24 bytes, app_rs485_2.o(i.Operate_Sub_BMS_2_CD))
  [Stack]

  - Max Depth = 76
  - Call Chain = Operate_Sub_BMS_2_CD ⇒ Handle_RS485_2_Data ⇒ Writer_HT_Flash ⇒ fmc_halfword_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> delay_1ms
  - >> Handle_RS485_2_Data
  - >> Send_Sub_BMS_CMD_2
  [Called By]
  - >> Battery_CB_Switch

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

  - startup_gd32f10x_md.o(RESET)

  Power_On_Normal (Thumb, 110 bytes, Stack size 16 bytes, app.o(i.Power_On_Normal))
  [Stack]

  - Max Depth = 56
  - Call Chain = Power_On_Normal ⇒ QD_Enable_From ⇒ Check_S11 ⇒ S11_FL_On
  [Calls]
  - >> gpio_bit_write
  - >> Set_Enter_Sleep_Delay
  - >> Reset_Enter_Sleep_Delay
  - >> QD_Enable_From
  - >> Can_Stop_Send
  - >> ADAS_Enable
  - >> ACC2_Enable
  [Called By]
  - >> Battery_CB_Switch
  - >> Check_CB_Operate_State

  QD_Enable_From (Thumb, 30 bytes, Stack size 16 bytes, drv_io.o(i.QD_Enable_From))
  [Stack]

  - Max Depth = 40
  - Call Chain = QD_Enable_From ⇒ Check_S11 ⇒ S11_FL_On
  [Calls]
  - >> gpio_bit_write
  - >> Check_S11
  [Called By]
  - >> Handle_Can_Ctr_CMD
  - >> Power_On_Normal
  - >> E_CTR_Initial

  RS485_Communication_Time_Out_1 (Thumb, 110 bytes, Stack size 8 bytes, app_rs485_1.o(i.RS485_Communication_Time_Out_1))
  [Stack]

  - Max Depth = 8
  - Call Chain = RS485_Communication_Time_Out_1
  [Calls]
  - >> __aeabi_memclr4
  - >> __aeabi_memclr
  [Called By]
  - >> main

  RS485_Communication_Time_Out_2 (Thumb, 110 bytes, Stack size 8 bytes, app_rs485_2.o(i.RS485_Communication_Time_Out_2))
  [Stack]

  - Max Depth = 8
  - Call Chain = RS485_Communication_Time_Out_2
  [Calls]
  - >> __aeabi_memclr4
  - >> __aeabi_memclr
  [Called By]
  - >> main

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

  - >> Handle_RS485_2_Data
  - >> Handle_RS485_1_Data

  RTC_IRQHandler (Thumb, 54 bytes, Stack size 8 bytes, low_power.o(i.RTC_IRQHandler))
  [Stack]

  - Max Depth = 12
  - Call Chain = RTC_IRQHandler ⇒ rtc_counter_set
  [Calls]
  - >> exti_interrupt_flag_clear
  - >> rtc_lwoff_wait
  - >> rtc_flag_get
  - >> rtc_flag_clear
  - >> rtc_counter_set
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  RTC_Open (Thumb, 142 bytes, Stack size 8 bytes, low_power.o(i.RTC_Open))
  [Stack]

  - Max Depth = 32
  - Call Chain = RTC_Open ⇒ nvic_irq_enable
  [Calls]
  - >> rcu_periph_clock_enable
  - >> nvic_irq_enable
  - >> exti_interrupt_flag_clear
  - >> exti_init
  - >> rtc_register_sync_wait
  - >> rtc_prescaler_set
  - >> rtc_lwoff_wait
  - >> rtc_interrupt_enable
  - >> rtc_alarm_config
  - >> rcu_rtc_clock_config
  - >> rcu_osci_stab_wait
  - >> rcu_osci_on
  - >> pmu_backup_write_enable
  - >> exti_interrupt_enable
  - >> bkp_deinit
  [Called By]
  - >> Enter_Sleep

  Resend_can_adas_frame (Thumb, 12 bytes, Stack size 8 bytes, app_can.o(i.Resend_can_adas_frame))
  [Stack]

  - Max Depth = 60
  - Call Chain = Resend_can_adas_frame ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  [Called By]
  - >> main

  Resend_can_bms_1_frame (Thumb, 12 bytes, Stack size 8 bytes, app_can.o(i.Resend_can_bms_1_frame))
  [Stack]

  - Max Depth = 60
  - Call Chain = Resend_can_bms_1_frame ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  [Called By]
  - >> main

  Resend_can_bms_2_frame (Thumb, 12 bytes, Stack size 8 bytes, app_can.o(i.Resend_can_bms_2_frame))
  [Stack]

  - Max Depth = 60
  - Call Chain = Resend_can_bms_2_frame ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  [Called By]
  - >> main

  Resend_can_ctr_frame (Thumb, 12 bytes, Stack size 8 bytes, app_can.o(i.Resend_can_ctr_frame))
  [Stack]

  - Max Depth = 60
  - Call Chain = Resend_can_ctr_frame ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  [Called By]
  - >> main

  Reset_Cal (Thumb, 50 bytes, Stack size 8 bytes, app.o(i.Reset_Cal))
  [Stack]

  - Max Depth = 8
  - Call Chain = Reset_Cal
  [Calls]
  - >> Get_QD_State
  [Called By]
  - >> Cal_Sheng_Yu_Li_Cheng

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

  - >> Power_On_Normal

  Rsp_Can_Bms_1_CMD (Thumb, 930 bytes, Stack size 72 bytes, app_bms_1.o(i.Rsp_Can_Bms_1_CMD))
  [Stack]

  - Max Depth = 160
  - Call Chain = Rsp_Can_Bms_1_CMD ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> Send_Data_Can
  - >> __aeabi_ui2d
  - >> __aeabi_dmul
  - >> __aeabi_ddiv
  - >> __aeabi_d2uiz
  - >> Is_Sub_BMS_1_Normal
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_Can_CMD

  Rsp_Can_Bms_2_CMD (Thumb, 918 bytes, Stack size 64 bytes, app_bms_2.o(i.Rsp_Can_Bms_2_CMD))
  [Stack]

  - Max Depth = 152
  - Call Chain = Rsp_Can_Bms_2_CMD ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> Send_Data_Can
  - >> __aeabi_ui2d
  - >> __aeabi_dmul
  - >> __aeabi_ddiv
  - >> __aeabi_d2uiz
  - >> Is_Sub_BMS_2_Normal
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_Can_CMD

  Rsp_Can_Ctr_CMD (Thumb, 1584 bytes, Stack size 32 bytes, app_end_ctr.o(i.Rsp_Can_Ctr_CMD))
  [Stack]

  - Max Depth = 112 + In Cycle
  - Call Chain = Rsp_Can_Ctr_CMD ⇒ Battery_Change_Mode (Cycle)
  [Calls]
  - >> Send_Data_Can
  - >> gpio_output_bit_get
  - >> gpio_input_bit_get
  - >> Battery_Change_Mode
  - >> qws_iap_read_string
  - >> Update_Sub_BMS_2_Software
  - >> Writer_HT_Flash
  - >> Update_Sub_BMS_1_Software
  - >> __aeabi_memclr
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_Can_CMD

  S11_FL_On (Thumb, 36 bytes, Stack size 8 bytes, app.o(i.S11_FL_On))
  [Stack]

  - Max Depth = 8
  - Call Chain = S11_FL_On
  [Calls]
  - >> gpio_bit_write
  [Called By]
  - >> Check_S11_May_Operate
  - >> Check_S11

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

  - >> Check_S11_May_Operate
  - >> Check_S11

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

  - >> Is_Sub_BMS_1_Normal
  - >> Check_Sub_BMS_1

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

  - >> Is_Sub_BMS_2_Normal
  - >> Check_Sub_BMS_2

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

  - startup_gd32f10x_md.o(RESET)

  Sample_ADC_Value (Thumb, 140 bytes, Stack size 16 bytes, drv_adc.o(i.Sample_ADC_Value))
  [Stack]

  - Max Depth = 36
  - Call Chain = Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> delay_1ms
  - >> adc_special_function_config
  - >> adc_software_trigger_enable
  - >> adc_regular_data_read
  - >> adc_regular_channel_config
  - >> adc_mode_config
  - >> adc_flag_get
  - >> adc_flag_clear
  - >> adc_external_trigger_source_config
  - >> adc_external_trigger_config
  - >> adc_enable
  - >> adc_deinit
  - >> adc_data_alignment_config
  - >> adc_channel_length_config
  - >> adc_calibration_enable
  [Called By]
  - >> adc_getResult_6t

  Save_Neng_Hao_Bi (Thumb, 96 bytes, Stack size 32 bytes, app.o(i.Save_Neng_Hao_Bi))
  [Stack]

  - Max Depth = 52
  - Call Chain = Save_Neng_Hao_Bi ⇒ fmc_word_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> fmc_word_program
  - >> fmc_unlock
  - >> fmc_page_erase
  - >> fmc_lock
  - >> Flash_flag_clear
  [Called By]
  - >> Initial_Neng_Hao_Bi
  - >> Save_Param

  Save_Param (Thumb, 12 bytes, Stack size 8 bytes, app.o(i.Save_Param))
  [Stack]

  - Max Depth = 60
  - Call Chain = Save_Param ⇒ Save_Neng_Hao_Bi ⇒ fmc_word_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> Save_Neng_Hao_Bi
  [Called By]
  - >> main

  Save_Param_Time_Out (Thumb, 44 bytes, Stack size 0 bytes, app.o(i.Save_Param_Time_Out))
  [Called By]

  - >> SysTick_Handler

  Select_One_BAT (Thumb, 72 bytes, Stack size 8 bytes, app.o(i.Select_One_BAT))
  [Stack]

  - Max Depth = 16
  - Call Chain = Select_One_BAT ⇒ Is_Sub_BMS_2_Normal
  [Calls]
  - >> Is_Sub_BMS_2_Normal
  - >> Is_Sub_BMS_1_Normal
  - >> IS_CHARGE_IN
  [Called By]
  - >> Check_CB_BAT1_BAT2_SERIES
  - >> Check_CB_BAT1_BAT2_PARRALLEL
  - >> Check_CB_Operate_State

  Select_One_BAT_Han_Guo (Thumb, 92 bytes, Stack size 8 bytes, app.o(i.Select_One_BAT_Han_Guo))
  [Stack]

  - Max Depth = 16
  - Call Chain = Select_One_BAT_Han_Guo ⇒ Is_Sub_BMS_2_Normal
  [Calls]
  - >> Is_Sub_BMS_2_Normal
  - >> Is_Sub_BMS_1_Normal
  - >> IS_CHARGE_IN
  [Called By]
  - >> Check_CB_BAT1_BAT2_SERIES

  Send_Data_2_RS485 (Thumb, 54 bytes, Stack size 16 bytes, drv_usart_2.o(i.Send_Data_2_RS485))
  [Stack]

  - Max Depth = 24
  - Call Chain = Send_Data_2_RS485 ⇒ usart_interrupt_enable
  [Calls]
  - >> usart_interrupt_enable
  - >> __aeabi_memcpy
  [Called By]
  - >> HT_Handle_RS485_Data
  - >> Send_Sub_BMS_CMD_2

  Send_Data_Can (Thumb, 168 bytes, Stack size 40 bytes, drv_can.o(i.Send_Data_Can))
  [Stack]

  - Max Depth = 52
  - Call Chain = Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> can_message_transmit
  - >> can_interrupt_enable
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> Rsp_Can_Ctr_CMD
  - >> Rsp_Can_Bms_2_CMD
  - >> Rsp_Can_Bms_1_CMD
  - >> Can_End_Ctr_Self_Send_Check
  - >> Can_Bms_2_Self_Send_Check
  - >> Can_Bms_1_Self_Send_Check
  - >> Can_ADAS_Self_Send
  - >> Timeout_Resend_can_ctr_frame
  - >> Timeout_Resend_can_bms_2_frame
  - >> Timeout_Resend_can_bms_1_frame
  - >> Timeout_Resend_can_adas_frame
  - >> Resend_can_ctr_frame
  - >> Resend_can_bms_2_frame
  - >> Resend_can_bms_1_frame
  - >> Resend_can_adas_frame
  - >> Handle_Can_Data

  Send_Data_RS485 (Thumb, 64 bytes, Stack size 16 bytes, drv_usart.o(i.Send_Data_RS485))
  [Stack]

  - Max Depth = 32
  - Call Chain = Send_Data_RS485 ⇒ usart_interrupt_flag_get
  [Calls]
  - >> usart_interrupt_flag_get
  - >> usart_interrupt_enable
  - >> __aeabi_memcpy
  [Called By]
  - >> Send_Sub_BMS_CMD_1
  - >> HT_Handle_RS485_Data

  Send_Sub_BMS_1_CMD (Thumb, 18 bytes, Stack size 8 bytes, app_rs485_1.o(i.Send_Sub_BMS_1_CMD))
  [Stack]

  - Max Depth = 64
  - Call Chain = Send_Sub_BMS_1_CMD ⇒ Send_Sub_BMS_CMD_1 ⇒ Send_Data_RS485 ⇒ usart_interrupt_flag_get
  [Calls]
  - >> Send_Sub_BMS_CMD_1
  [Called By]
  - >> main

  Send_Sub_BMS_2_CMD (Thumb, 18 bytes, Stack size 8 bytes, app_rs485_2.o(i.Send_Sub_BMS_2_CMD))
  [Stack]

  - Max Depth = 56
  - Call Chain = Send_Sub_BMS_2_CMD ⇒ Send_Sub_BMS_CMD_2 ⇒ Send_Data_2_RS485 ⇒ usart_interrupt_enable
  [Calls]
  - >> Send_Sub_BMS_CMD_2
  [Called By]
  - >> main

  Series_Delay_Timeout (Thumb, 66 bytes, Stack size 0 bytes, app.o(i.Series_Delay_Timeout))
  [Called By]

  - >> SysTick_Handler

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

  - >> Charger_Out
  - >> EXTI4_IRQHandler

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

  - >> Power_On_Normal
  - >> Low_Power_Initial

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

  - >> SysTick_Handler

  Sort (Thumb, 70 bytes, Stack size 16 bytes, app_adas.o(i.Sort))
  [Stack]

  - Max Depth = 16
  - Call Chain = Sort
  [Called By]
  - >> ADAS_Measure_Finish_Ju_Li_2
  - >> ADAS_Measure_Finish_Ju_Li_1

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

  - >> Check_CB_Operate_State

  Sub_BMS_1_Initial (Thumb, 44 bytes, Stack size 8 bytes, app_rs485_1.o(i.Sub_BMS_1_Initial))
  [Stack]

  - Max Depth = 128
  - Call Chain = Sub_BMS_1_Initial ⇒ Usart1_Initial ⇒ usart_baudrate_set ⇒ rcu_clock_freq_get
  [Calls]
  - >> Usart1_Initial
  - >> __aeabi_memclr4
  [Called By]
  - >> main

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

  - >> main

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

  - >> Check_CB_Operate_State

  Sub_BMS_2_Initial (Thumb, 34 bytes, Stack size 8 bytes, app_rs485_2.o(i.Sub_BMS_2_Initial))
  [Stack]

  - Max Depth = 128
  - Call Chain = Sub_BMS_2_Initial ⇒ Usart2_Initial ⇒ usart_baudrate_set ⇒ rcu_clock_freq_get
  [Calls]
  - >> Usart2_Initial
  - >> __aeabi_memclr4
  [Called By]
  - >> main

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

  - >> main

  SysTick_Handler (Thumb, 712 bytes, Stack size 8 bytes, delay.o(i.SysTick_Handler))
  [Stack]

  - Max Depth = 16
  - Call Chain = SysTick_Handler ⇒ ACC12_OVER_Loader_Timeout
  [Calls]
  - >> gpio_bit_write
  - >> Series_Delay_Timeout
  - >> Save_Param_Time_Out
  - >> Enter_Sleep_Delay_Timeout
  - >> HT_Reboot_Timeout
  - >> Bms_2_Self_Send_Timeout
  - >> Bms_1_Self_Send_Timeout
  - >> ADAS_Timeout
  - >> Shield_XL_Timeout
  - >> End_Ctr_Self_Send_Timeout
  - >> ACC12_OVER_Loader_Timeout
  - >> Check_Charger_Timeout
  - >> ACC2_PWM
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  SystemInit (Thumb, 84 bytes, Stack size 8 bytes, system_gd32f10x.o(i.SystemInit))
  [Stack]

  - Max Depth = 16
  - Call Chain = SystemInit ⇒ system_clock_config
  [Calls]
  - >> system_clock_config
  [Called By]
  - >> Enter_Sleep
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(.text)

  TIMER2_IRQHandler (Thumb, 42 bytes, Stack size 8 bytes, drv_adas.o(i.TIMER2_IRQHandler))
  [Stack]

  - Max Depth = 36
  - Call Chain = TIMER2_IRQHandler ⇒ ADAS_PWM_IO_Reset ⇒ gpio_init
  [Calls]
  - >> timer_disable
  - >> timer_interrupt_flag_get
  - >> timer_interrupt_flag_clear
  - >> ADAS_PWM_IO_Reset
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  Timeout_Resend_can_adas_frame (Thumb, 12 bytes, Stack size 8 bytes, app_can.o(i.Timeout_Resend_can_adas_frame))
  [Stack]

  - Max Depth = 60
  - Call Chain = Timeout_Resend_can_adas_frame ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  [Called By]
  - >> main

  Timeout_Resend_can_bms_1_frame (Thumb, 12 bytes, Stack size 8 bytes, app_can.o(i.Timeout_Resend_can_bms_1_frame))
  [Stack]

  - Max Depth = 60
  - Call Chain = Timeout_Resend_can_bms_1_frame ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  [Called By]
  - >> main

  Timeout_Resend_can_bms_2_frame (Thumb, 12 bytes, Stack size 8 bytes, app_can.o(i.Timeout_Resend_can_bms_2_frame))
  [Stack]

  - Max Depth = 60
  - Call Chain = Timeout_Resend_can_bms_2_frame ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  [Called By]
  - >> main

  Timeout_Resend_can_ctr_frame (Thumb, 12 bytes, Stack size 8 bytes, app_can.o(i.Timeout_Resend_can_ctr_frame))
  [Stack]

  - Max Depth = 60
  - Call Chain = Timeout_Resend_can_ctr_frame ⇒ Send_Data_Can ⇒ can_message_transmit
  [Calls]
  - >> Send_Data_Can
  [Called By]
  - >> main

  USART0_IRQHandler (Thumb, 126 bytes, Stack size 8 bytes, drv_usart.o(i.USART0_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = USART0_IRQHandler ⇒ usart_interrupt_disable
  [Calls]
  - >> usart_interrupt_disable
  - >> usart_flag_get
  - >> usart_data_transmit
  - >> usart_data_receive
  - >> Enable_Uart1_Timer
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  USART1_IRQHandler (Thumb, 126 bytes, Stack size 8 bytes, drv_usart_2.o(i.USART1_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = USART1_IRQHandler ⇒ usart_interrupt_disable
  [Calls]
  - >> Enable_Uart2_Timer
  - >> usart_interrupt_disable
  - >> usart_flag_get
  - >> usart_data_transmit
  - >> usart_data_receive
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  USBD_HP_CAN0_TX_IRQHandler (Thumb, 186 bytes, Stack size 32 bytes, drv_can.o(i.USBD_HP_CAN0_TX_IRQHandler))
  [Stack]

  - Max Depth = 44
  - Call Chain = USBD_HP_CAN0_TX_IRQHandler ⇒ can_message_transmit
  [Calls]
  - >> can_message_transmit
  - >> can_interrupt_disable
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  USBD_LP_CAN0_RX0_IRQHandler (Thumb, 240 bytes, Stack size 40 bytes, drv_can.o(i.USBD_LP_CAN0_RX0_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = USBD_LP_CAN0_RX0_IRQHandler ⇒ can_message_receive
  [Calls]
  - >> can_message_receive
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - startup_gd32f10x_md.o(RESET)

  Update_Sub_BMS_1_Software (Thumb, 148 bytes, Stack size 24 bytes, app_rs485_1.o(i.Update_Sub_BMS_1_Software))
  [Stack]

  - Max Depth = 80
  - Call Chain = Update_Sub_BMS_1_Software ⇒ Send_Sub_BMS_CMD_1 ⇒ Send_Data_RS485 ⇒ usart_interrupt_flag_get
  [Calls]
  - >> Send_Sub_BMS_CMD_1
  - >> delay_1ms
  - >> Handle_RS485_1_Data
  [Called By]
  - >> Rsp_Can_Ctr_CMD

  Update_Sub_BMS_2_Software (Thumb, 132 bytes, Stack size 24 bytes, app_rs485_2.o(i.Update_Sub_BMS_2_Software))
  [Stack]

  - Max Depth = 76
  - Call Chain = Update_Sub_BMS_2_Software ⇒ Handle_RS485_2_Data ⇒ Writer_HT_Flash ⇒ fmc_halfword_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> delay_1ms
  - >> Handle_RS485_2_Data
  - >> Send_Sub_BMS_CMD_2
  [Called By]
  - >> Rsp_Can_Ctr_CMD

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

  - startup_gd32f10x_md.o(RESET)

  Usart1_Initial (Thumb, 162 bytes, Stack size 8 bytes, drv_usart.o(i.Usart1_Initial))
  [Stack]

  - Max Depth = 120
  - Call Chain = Usart1_Initial ⇒ usart_baudrate_set ⇒ rcu_clock_freq_get
  [Calls]
  - >> rcu_periph_clock_enable
  - >> nvic_priority_group_set
  - >> nvic_irq_enable
  - >> gpio_init
  - >> usart_deinit
  - >> usart_word_length_set
  - >> usart_transmit_config
  - >> usart_stop_bit_set
  - >> usart_receive_config
  - >> usart_parity_config
  - >> usart_interrupt_enable
  - >> usart_hardware_flow_rts_config
  - >> usart_hardware_flow_cts_config
  - >> usart_enable
  - >> usart_baudrate_set
  [Called By]
  - >> Sub_BMS_1_Initial

  Usart2_Initial (Thumb, 158 bytes, Stack size 8 bytes, drv_usart_2.o(i.Usart2_Initial))
  [Stack]

  - Max Depth = 120
  - Call Chain = Usart2_Initial ⇒ usart_baudrate_set ⇒ rcu_clock_freq_get
  [Calls]
  - >> rcu_periph_clock_enable
  - >> nvic_priority_group_set
  - >> nvic_irq_enable
  - >> gpio_init
  - >> usart_deinit
  - >> usart_word_length_set
  - >> usart_transmit_config
  - >> usart_stop_bit_set
  - >> usart_receive_config
  - >> usart_parity_config
  - >> usart_interrupt_enable
  - >> usart_hardware_flow_rts_config
  - >> usart_hardware_flow_cts_config
  - >> usart_enable
  - >> usart_baudrate_set
  [Called By]
  - >> Sub_BMS_2_Initial

  Writer_HT_Flash (Thumb, 82 bytes, Stack size 24 bytes, hardware_test.o(i.Writer_HT_Flash))
  [Stack]

  - Max Depth = 44
  - Call Chain = Writer_HT_Flash ⇒ fmc_halfword_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> fmc_unlock
  - >> fmc_page_erase
  - >> fmc_lock
  - >> fmc_halfword_program
  - >> HT_Flash_flag_clear
  [Called By]
  - >> Rsp_Can_Ctr_CMD
  - >> Handle_RS485_2_Data
  - >> Handle_RS485_1_Data
  - >> HT_Main

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

  - Max Depth = 44
  - Call Chain = Writer_SN ⇒ fmc_halfword_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> fmc_unlock
  - >> fmc_page_erase
  - >> fmc_lock
  - >> fmc_halfword_program
  - >> Flash_flag_clear
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_Can_Ctr_CMD

  _CB_Operate_Initial (Thumb, 26 bytes, Stack size 8 bytes, drv_io.o(i._CB_Operate_Initial))
  [Stack]

  - Max Depth = 28
  - Call Chain = _CB_Operate_Initial ⇒ gpio_init
  [Calls]
  - >> rcu_periph_clock_enable
  - >> gpio_init
  [Called By]
  - >> CB_Operate_Initial

  _Measure_Temprature_Initial (Thumb, 58 bytes, Stack size 8 bytes, drv_adc.o(i._Measure_Temprature_Initial))
  [Stack]

  - Max Depth = 28
  - Call Chain = _Measure_Temprature_Initial ⇒ gpio_init
  [Calls]
  - >> rcu_periph_clock_enable
  - >> gpio_init
  - >> rcu_adc_clock_config
  [Called By]
  - >> Measure_Temprature_Initial

  _Measure_Vol_Initial (Thumb, 16 bytes, Stack size 8 bytes, drv_adc.o(i._Measure_Vol_Initial))
  [Stack]

  - Max Depth = 28
  - Call Chain = _Measure_Vol_Initial ⇒ gpio_init
  [Calls]
  - >> gpio_init
  [Called By]
  - >> Measure_Vol_Initial

  __0printf$5 (Thumb, 22 bytes, Stack size 24 bytes, printf5.o(i.__0printf$5), UNUSED)
  [Calls]

  - >> _printf_core

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

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

  - Max Depth = 24
  - Call Chain = __2printf
  [Called By]
  - >> Handle_Can_Data

  __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_calibration_enable (Thumb, 42 bytes, Stack size 0 bytes, gd32f10x_adc.o(i.adc_calibration_enable))
  [Called By]

  - >> Sample_ADC_Value

  adc_channel_length_config (Thumb, 70 bytes, Stack size 12 bytes, gd32f10x_adc.o(i.adc_channel_length_config))
  [Stack]

  - Max Depth = 12
  - Call Chain = adc_channel_length_config
  [Called By]
  - >> Sample_ADC_Value

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

  - >> Sample_ADC_Value

  adc_deinit (Thumb, 84 bytes, Stack size 8 bytes, gd32f10x_adc.o(i.adc_deinit))
  [Stack]

  - Max Depth = 8
  - Call Chain = adc_deinit
  [Calls]
  - >> rcu_periph_reset_enable
  - >> rcu_periph_reset_disable
  [Called By]
  - >> Sample_ADC_Value

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

  - >> Sample_ADC_Value

  adc_external_trigger_config (Thumb, 62 bytes, Stack size 0 bytes, gd32f10x_adc.o(i.adc_external_trigger_config))
  [Called By]

  - >> Sample_ADC_Value

  adc_external_trigger_source_config (Thumb, 48 bytes, Stack size 0 bytes, gd32f10x_adc.o(i.adc_external_trigger_source_config))
  [Called By]

  - >> Sample_ADC_Value

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

  - >> Sample_ADC_Value

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

  - >> Sample_ADC_Value

  adc_getResult_6t (Thumb, 158 bytes, Stack size 48 bytes, drv_adc.o(i.adc_getResult_6t))
  [Stack]

  - Max Depth = 84
  - Call Chain = adc_getResult_6t ⇒ Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> Sample_ADC_Value
  [Called By]
  - >> Measure_Vol
  - >> getTemperature

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

  - >> Sample_ADC_Value

  adc_regular_channel_config (Thumb, 172 bytes, Stack size 20 bytes, gd32f10x_adc.o(i.adc_regular_channel_config))
  [Stack]

  - Max Depth = 20
  - Call Chain = adc_regular_channel_config
  [Called By]
  - >> Sample_ADC_Value

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

  - >> Sample_ADC_Value

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

  - >> Sample_ADC_Value

  adc_special_function_config (Thumb, 90 bytes, Stack size 0 bytes, gd32f10x_adc.o(i.adc_special_function_config))
  [Called By]

  - >> Sample_ADC_Value

  bkp_deinit (Thumb, 12 bytes, Stack size 8 bytes, gd32f10x_bkp.o(i.bkp_deinit))
  [Stack]

  - Max Depth = 8
  - Call Chain = bkp_deinit
  [Calls]
  - >> rcu_bkp_reset_enable
  - >> rcu_bkp_reset_disable
  [Called By]
  - >> RTC_Open

  can_deinit (Thumb, 28 bytes, Stack size 8 bytes, gd32f10x_can.o(i.can_deinit))
  [Stack]

  - Max Depth = 8
  - Call Chain = can_deinit
  [Calls]
  - >> rcu_periph_reset_enable
  - >> rcu_periph_reset_disable
  [Called By]
  - >> CAN_Config
  - >> Enter_Sleep
  - >> Check_Can_Poll
  - >> CAN_Config_HW

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

  - >> Check_Can_Poll

  can_filter_init (Thumb, 262 bytes, Stack size 8 bytes, gd32f10x_can.o(i.can_filter_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = can_filter_init
  [Called By]
  - >> CAN_Config
  - >> CAN_Config_HW

  can_init (Thumb, 290 bytes, Stack size 16 bytes, gd32f10x_can.o(i.can_init))
  [Stack]

  - Max Depth = 16
  - Call Chain = can_init
  [Called By]
  - >> CAN_Config
  - >> CAN_Config_HW

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

  - >> USBD_HP_CAN0_TX_IRQHandler

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

  - >> Send_Data_Can
  - >> CAN_Config
  - >> CAN_Config_HW

  can_message_receive (Thumb, 228 bytes, Stack size 8 bytes, gd32f10x_can.o(i.can_message_receive))
  [Stack]

  - Max Depth = 8
  - Call Chain = can_message_receive
  [Called By]
  - >> USBD_LP_CAN0_RX0_IRQHandler

  can_message_transmit (Thumb, 332 bytes, Stack size 12 bytes, gd32f10x_can.o(i.can_message_transmit))
  [Stack]

  - Max Depth = 12
  - Call Chain = can_message_transmit
  [Called By]
  - >> Send_Data_Can
  - >> fputc
  - >> USBD_HP_CAN0_TX_IRQHandler

  can_struct_para_init (Thumb, 158 bytes, Stack size 8 bytes, gd32f10x_can.o(i.can_struct_para_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = can_struct_para_init
  [Called By]
  - >> CAN_Config
  - >> CAN_Config_HW

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

  - >> Handle_Can_Ctr_CMD
  - >> Operate_Sub_BMS_2_CD
  - >> Operate_Sub_BMS_1_CD
  - >> Battery_CB_Switch
  - >> HT_Rsp_CMD
  - >> Update_Sub_BMS_2_Software
  - >> Update_Sub_BMS_1_Software
  - >> Sample_ADC_Value

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

  - >> fputc

  exti_init (Thumb, 178 bytes, Stack size 8 bytes, gd32f10x_exti.o(i.exti_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = exti_init
  [Called By]
  - >> RTC_Open
  - >> ADAS_Drv_IO_Initial
  - >> E_CTR_Dec_IRQ_Initial
  - >> Charge_Dec_IRQ_Initial

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

  - >> RTC_Open

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

  - >> RTC_Open
  - >> RTC_IRQHandler
  - >> ADAS_Drv_IO_Initial
  - >> E_CTR_Dec_IRQ_Initial
  - >> EXTI5_9_IRQHandler
  - >> EXTI4_IRQHandler
  - >> EXTI3_IRQHandler
  - >> EXTI1_IRQHandler
  - >> EXTI10_15_IRQHandler
  - >> EXTI0_IRQHandler
  - >> Charge_Dec_IRQ_Initial

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

  - >> EXTI5_9_IRQHandler
  - >> EXTI4_IRQHandler
  - >> EXTI3_IRQHandler
  - >> EXTI1_IRQHandler
  - >> EXTI10_15_IRQHandler
  - >> EXTI0_IRQHandler

  fmc_bank0_ready_wait (Thumb, 34 bytes, Stack size 4 bytes, gd32f10x_fmc.o(i.fmc_bank0_ready_wait))
  [Stack]

  - Max Depth = 4
  - Call Chain = fmc_bank0_ready_wait
  [Calls]
  - >> fmc_bank0_state_get
  [Called By]
  - >> fmc_word_program
  - >> fmc_page_erase
  - >> fmc_halfword_program

  fmc_bank0_state_get (Thumb, 44 bytes, Stack size 0 bytes, gd32f10x_fmc.o(i.fmc_bank0_state_get))
  [Called By]

  - >> fmc_bank0_ready_wait

  fmc_bank1_ready_wait (Thumb, 34 bytes, Stack size 4 bytes, gd32f10x_fmc.o(i.fmc_bank1_ready_wait))
  [Stack]

  - Max Depth = 4
  - Call Chain = fmc_bank1_ready_wait
  [Calls]
  - >> fmc_bank1_state_get
  [Called By]
  - >> fmc_word_program
  - >> fmc_page_erase
  - >> fmc_halfword_program

  fmc_bank1_state_get (Thumb, 44 bytes, Stack size 0 bytes, gd32f10x_fmc.o(i.fmc_bank1_state_get))
  [Called By]

  - >> fmc_bank1_ready_wait

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

  - >> Flash_flag_clear
  - >> HT_Flash_flag_clear
  - >> qws_iap_fmc_flag_clear

  fmc_halfword_program (Thumb, 178 bytes, Stack size 16 bytes, gd32f10x_fmc.o(i.fmc_halfword_program))
  [Stack]

  - Max Depth = 20
  - Call Chain = fmc_halfword_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> fmc_bank1_ready_wait
  - >> fmc_bank0_ready_wait
  [Called By]
  - >> Writer_SN
  - >> Check_SN
  - >> Writer_HT_Flash

  fmc_lock (Thumb, 34 bytes, Stack size 0 bytes, gd32f10x_fmc.o(i.fmc_lock))
  [Called By]

  - >> Save_Neng_Hao_Bi
  - >> qws_iap_write_magic
  - >> Writer_SN
  - >> Check_SN
  - >> Writer_HT_Flash

  fmc_page_erase (Thumb, 222 bytes, Stack size 12 bytes, gd32f10x_fmc.o(i.fmc_page_erase))
  [Stack]

  - Max Depth = 16
  - Call Chain = fmc_page_erase ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> fmc_bank1_ready_wait
  - >> fmc_bank0_ready_wait
  [Called By]
  - >> Save_Neng_Hao_Bi
  - >> qws_iap_write_magic
  - >> Writer_SN
  - >> Check_SN
  - >> Writer_HT_Flash

  fmc_unlock (Thumb, 52 bytes, Stack size 0 bytes, gd32f10x_fmc.o(i.fmc_unlock))
  [Called By]

  - >> Save_Neng_Hao_Bi
  - >> qws_iap_write_magic
  - >> Writer_SN
  - >> Check_SN
  - >> Writer_HT_Flash

  fmc_word_program (Thumb, 178 bytes, Stack size 16 bytes, gd32f10x_fmc.o(i.fmc_word_program))
  [Stack]

  - Max Depth = 20
  - Call Chain = fmc_word_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> fmc_bank1_ready_wait
  - >> fmc_bank0_ready_wait
  [Called By]
  - >> Save_Neng_Hao_Bi
  - >> qws_iap_write_magic

  fputc (Thumb, 76 bytes, Stack size 32 bytes, drv_can.o(i.fputc))
  [Stack]

  - Max Depth = 44
  - Call Chain = fputc ⇒ can_message_transmit
  [Calls]
  - >> can_message_transmit
  - >> delay_1us
  - >> __aeabi_memclr4
  [Address Reference Count : 1]
  - printf5.o(i.__0printf$5)

  getTemperature (Thumb, 164 bytes, Stack size 16 bytes, measure_temprature.o(i.getTemperature))
  [Stack]

  - Max Depth = 100
  - Call Chain = getTemperature ⇒ adc_getResult_6t ⇒ Sample_ADC_Value ⇒ adc_regular_channel_config
  [Calls]
  - >> gpio_bit_write
  - >> adc_getResult_6t
  [Called By]
  - >> Measure_Temprature_Initial
  - >> main
  - >> HT_Rsp_CMD

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

  - >> ADAS_PWM_IO_Reset

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

  - >> Handle_Can_Ctr_CMD
  - >> CAN_Config
  - >> QD_Enable_From
  - >> GPIO_Initial
  - >> ACC2_Enable
  - >> S11_FL_On
  - >> Power_On_Normal
  - >> Battery_CB_Operate
  - >> getTemperature
  - >> Check_Charge_In
  - >> Check_Can_Poll
  - >> HT_Rsp_CMD
  - >> HT_Handle_CMD
  - >> E_CTR_Initial
  - >> CAN_Config_HW
  - >> ACC2_PWM
  - >> SysTick_Handler

  gpio_exti_source_select (Thumb, 146 bytes, Stack size 8 bytes, gd32f10x_gpio.o(i.gpio_exti_source_select))
  [Stack]

  - Max Depth = 8
  - Call Chain = gpio_exti_source_select
  [Called By]
  - >> ADAS_Drv_IO_Initial
  - >> E_CTR_Dec_IRQ_Initial
  - >> Charge_Dec_IRQ_Initial

  gpio_init (Thumb, 172 bytes, Stack size 20 bytes, gd32f10x_gpio.o(i.gpio_init))
  [Stack]

  - Max Depth = 20
  - Call Chain = gpio_init
  [Called By]
  - >> CAN_Config
  - >> _CB_Operate_Initial
  - >> GPIO_Initial
  - >> LP_Measure_Vol_Initial
  - >> ADAS_PWM_Initial
  - >> E_CTR_Initial
  - >> _Measure_Vol_Initial
  - >> _Measure_Temprature_Initial
  - >> Usart2_Initial
  - >> Usart1_Initial
  - >> ADAS_PWM_IO_Reset
  - >> ADAS_Drv_IO_Initial
  - >> CAN_Config_HW

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

  - >> Rsp_Can_Ctr_CMD
  - >> Handle_Can_Ctr_CMD
  - >> Is_Sub_BMS_2_Normal
  - >> Is_Sub_BMS_1_Normal
  - >> HT_Main
  - >> Check_S11_May_Operate
  - >> Check_End_Ctr_Status
  - >> HT_Rsp_CMD
  - >> ADAS_Measure_Ju_Li_2
  - >> ADAS_Measure_Ju_Li_1
  - >> ACC2_Is_On
  - >> ACC12_OVER_Loader_Timeout
  - >> EXTI4_IRQHandler
  - >> Check_S11

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

  - >> Rsp_Can_Ctr_CMD
  - >> Is_Sub_BMS_2_Normal
  - >> Is_Sub_BMS_1_Normal
  - >> Check_Battery_2_On
  - >> Check_Battery_1_On
  - >> Intelligent_Management_Battery
  - >> Check_End_Ctr_Status
  - >> Check_Charge_In
  - >> ACC2_Is_On

  gpio_pin_remap_config (Thumb, 138 bytes, Stack size 20 bytes, gd32f10x_gpio.o(i.gpio_pin_remap_config))
  [Stack]

  - Max Depth = 20
  - Call Chain = gpio_pin_remap_config
  [Called By]
  - >> CAN_Config
  - >> GPIO_Initial
  - >> ADAS_PWM_Initial
  - >> E_CTR_Initial
  - >> ADAS_PWM_IO_Reset
  - >> CAN_Config_HW

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

  - Max Depth = 240
  - Call Chain = main ⇒ Intelligent_Management_Battery ⇒ Battery_Change_Mode ⇒ Battery_CB_Switch ⇒ Handle_Can_Data ⇒ Battery_CB_Switch (Cycle)
  [Calls]
  - >> systick_config
  - >> qws_iap_write_magic
  - >> getTemperature
  - >> Timeout_Resend_can_ctr_frame
  - >> Timeout_Resend_can_bms_2_frame
  - >> Timeout_Resend_can_bms_1_frame
  - >> Timeout_Resend_can_adas_frame
  - >> Sub_BMS_2_lt_State
  - >> Sub_BMS_2_Initial
  - >> Sub_BMS_1_lt_State
  - >> Sub_BMS_1_Initial
  - >> Send_Sub_BMS_2_CMD
  - >> Send_Sub_BMS_1_CMD
  - >> Save_Param
  - >> Resend_can_ctr_frame
  - >> Resend_can_bms_2_frame
  - >> Resend_can_bms_1_frame
  - >> Resend_can_adas_frame
  - >> RS485_Communication_Time_Out_2
  - >> RS485_Communication_Time_Out_1
  - >> Misc_Initial
  - >> Measure_Vol_Initial
  - >> Measure_Temprature_Initial
  - >> Low_Power_Initial
  - >> Intelligent_Management_Battery
  - >> Handle_RS485_2_Data
  - >> Handle_RS485_1_Data
  - >> Handle_Can_Data
  - >> HT_Main
  - >> Enter_Sleep
  - >> End_Ctr_Initial
  - >> Check_Sub_BMS_2
  - >> Check_Sub_BMS_1
  - >> Check_S11_May_Operate
  - >> Check_End_Ctr_Status
  - >> Check_Charge_In
  - >> Check_Can_Self_Send_Status
  - >> Check_Can_Poll
  - >> Check_CB_Operate_State
  - >> Can_Com_Initial
  - >> Cal_Sheng_Yu_Li_Cheng
  - >> CB_Operate_Initial
  - >> App_Initial
  - >> ADAS_Self_Send_Up
  - >> ADAS_PWM_2_Enable
  - >> ADAS_PWM_1_Enable
  - >> ADAS_Measure_Finish_Ju_Li_2
  - >> ADAS_Measure_Finish_Ju_Li_1
  - >> ADAS_Initial
  - >> Check_SN
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  nvic_irq_enable (Thumb, 162 bytes, Stack size 24 bytes, gd32f10x_misc.o(i.nvic_irq_enable))
  [Stack]

  - Max Depth = 24
  - Call Chain = nvic_irq_enable
  [Calls]
  - >> nvic_priority_group_set
  [Called By]
  - >> RTC_Open
  - >> Usart2_Initial
  - >> Usart1_Initial
  - >> ADAS_Timer_Initial
  - >> E_CTR_Dec_IRQ_Initial
  - >> Charge_Dec_IRQ_Initial
  - >> Can_NVIC_Config

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

  - >> nvic_irq_enable
  - >> Usart2_Initial
  - >> Usart1_Initial

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

  - >> RTC_Open

  pmu_to_deepsleepmode (Thumb, 58 bytes, Stack size 0 bytes, gd32f10x_pmu.o(i.pmu_to_deepsleepmode))
  [Called By]

  - >> Enter_Sleep

  qws_iap_fmc_flag_clear (Thumb, 12 bytes, Stack size 8 bytes, app_end_ctr.o(i.qws_iap_fmc_flag_clear))
  [Stack]

  - Max Depth = 8
  - Call Chain = qws_iap_fmc_flag_clear
  [Calls]
  - >> fmc_flag_clear
  [Called By]
  - >> qws_iap_write_magic

  qws_iap_read_string (Thumb, 74 bytes, Stack size 24 bytes, app_end_ctr.o(i.qws_iap_read_string))
  [Stack]

  - Max Depth = 24
  - Call Chain = qws_iap_read_string
  [Calls]
  - >> strlen
  - >> __aeabi_memcpy
  [Called By]
  - >> Rsp_Can_Ctr_CMD

  qws_iap_reboot (Thumb, 74 bytes, Stack size 0 bytes, app_end_ctr.o(i.qws_iap_reboot))
  [Stack]

  - Max Depth = 52
  - Call Chain = qws_iap_reboot ⇒ qws_iap_write_magic ⇒ fmc_word_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> qws_iap_write_magic
  [Called By]
  - >> Handle_Can_Ctr_CMD

  qws_iap_write_magic (Thumb, 110 bytes, Stack size 32 bytes, app_end_ctr.o(i.qws_iap_write_magic))
  [Stack]

  - Max Depth = 52
  - Call Chain = qws_iap_write_magic ⇒ fmc_word_program ⇒ fmc_bank1_ready_wait
  [Calls]
  - >> fmc_word_program
  - >> fmc_unlock
  - >> fmc_page_erase
  - >> fmc_lock
  - >> qws_iap_fmc_flag_clear
  [Called By]
  - >> HT_Main
  - >> main
  - >> qws_iap_reboot

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

  - >> LP_Measure_Vol_Initial
  - >> _Measure_Temprature_Initial

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

  - >> bkp_deinit

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

  - >> bkp_deinit

  rcu_clock_freq_get (Thumb, 264 bytes, Stack size 80 bytes, gd32f10x_rcu.o(i.rcu_clock_freq_get))
  [Stack]

  - Max Depth = 80
  - Call Chain = rcu_clock_freq_get
  [Called By]
  - >> usart_baudrate_set

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

  - >> rcu_osci_stab_wait

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

  - >> RTC_Open

  rcu_osci_stab_wait (Thumb, 218 bytes, Stack size 20 bytes, gd32f10x_rcu.o(i.rcu_osci_stab_wait))
  [Stack]

  - Max Depth = 20
  - Call Chain = rcu_osci_stab_wait
  [Calls]
  - >> rcu_flag_get
  [Called By]
  - >> RTC_Open

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

  - >> CAN_Config
  - >> _CB_Operate_Initial
  - >> GPIO_Initial
  - >> Enter_Sleep
  - >> RTC_Open
  - >> LP_Measure_Vol_Initial
  - >> ADAS_PWM_Initial
  - >> E_CTR_Initial
  - >> _Measure_Temprature_Initial
  - >> Usart2_Initial
  - >> Usart1_Initial
  - >> ADAS_Timer_Initial
  - >> ADAS_Receive_Timer_Initial
  - >> ADAS_PWM_IO_Reset
  - >> ADAS_Drv_IO_Initial
  - >> E_CTR_Dec_IRQ_Initial
  - >> Charge_Dec_IRQ_Initial
  - >> CAN_Config_HW

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

  - >> usart_deinit
  - >> can_deinit
  - >> timer_deinit
  - >> adc_deinit

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

  - >> usart_deinit
  - >> can_deinit
  - >> timer_deinit
  - >> adc_deinit

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

  - >> RTC_Open

  rtc_alarm_config (Thumb, 26 bytes, Stack size 4 bytes, gd32f10x_rtc.o(i.rtc_alarm_config))
  [Stack]

  - Max Depth = 4
  - Call Chain = rtc_alarm_config
  [Calls]
  - >> rtc_configuration_mode_exit
  - >> rtc_configuration_mode_enter
  [Called By]
  - >> RTC_Open

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

  - >> rtc_prescaler_set
  - >> rtc_counter_set
  - >> rtc_alarm_config

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

  - >> rtc_prescaler_set
  - >> rtc_counter_set
  - >> rtc_alarm_config

  rtc_counter_set (Thumb, 26 bytes, Stack size 4 bytes, gd32f10x_rtc.o(i.rtc_counter_set))
  [Stack]

  - Max Depth = 4
  - Call Chain = rtc_counter_set
  [Calls]
  - >> rtc_configuration_mode_exit
  - >> rtc_configuration_mode_enter
  [Called By]
  - >> RTC_IRQHandler

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

  - >> RTC_IRQHandler

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

  - >> RTC_IRQHandler

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

  - >> RTC_Open

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

  - >> RTC_Open
  - >> RTC_IRQHandler

  rtc_prescaler_set (Thumb, 28 bytes, Stack size 4 bytes, gd32f10x_rtc.o(i.rtc_prescaler_set))
  [Stack]

  - Max Depth = 4
  - Call Chain = rtc_prescaler_set
  [Calls]
  - >> rtc_configuration_mode_exit
  - >> rtc_configuration_mode_enter
  [Called By]
  - >> RTC_Open

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

  - >> RTC_Open

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

  - >> Enter_Sleep

  systick_config (Thumb, 84 bytes, Stack size 8 bytes, delay.o(i.systick_config))
  [Stack]

  - Max Depth = 16
  - Call Chain = systick_config ⇒ NVIC_SetPriority
  [Calls]
  - >> NVIC_SetPriority
  [Called By]
  - >> Enter_Sleep
  - >> main

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

  - >> ADAS_PWM_Initial

  timer_channel_output_config (Thumb, 484 bytes, Stack size 8 bytes, gd32f10x_timer.o(i.timer_channel_output_config))
  [Stack]

  - Max Depth = 8
  - Call Chain = timer_channel_output_config
  [Called By]
  - >> ADAS_PWM_Initial

  timer_channel_output_mode_config (Thumb, 90 bytes, Stack size 0 bytes, gd32f10x_timer.o(i.timer_channel_output_mode_config))
  [Called By]

  - >> ADAS_PWM_Initial

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

  - >> ADAS_PWM_Initial

  timer_channel_output_shadow_config (Thumb, 90 bytes, Stack size 0 bytes, gd32f10x_timer.o(i.timer_channel_output_shadow_config))
  [Called By]

  - >> ADAS_PWM_Initial

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

  - >> ADAS_Measure_Ju_Li_2
  - >> ADAS_Measure_Ju_Li_1

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

  - >> ADAS_PWM_2_Enable
  - >> ADAS_PWM_1_Enable

  timer_deinit (Thumb, 210 bytes, Stack size 8 bytes, gd32f10x_timer.o(i.timer_deinit))
  [Stack]

  - Max Depth = 8
  - Call Chain = timer_deinit
  [Calls]
  - >> rcu_periph_reset_enable
  - >> rcu_periph_reset_disable
  [Called By]
  - >> ADAS_PWM_Initial
  - >> ADAS_Timer_Initial
  - >> ADAS_Receive_Timer_Initial

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

  - >> ADAS_PWM_2_Enable
  - >> ADAS_PWM_1_Enable
  - >> ADAS_Measure_Ju_Li_2
  - >> ADAS_Measure_Ju_Li_1
  - >> TIMER2_IRQHandler
  - >> ADAS_Timer_Initial
  - >> ADAS_Receive_Timer_Initial

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

  - >> ADAS_PWM_2_Enable
  - >> ADAS_PWM_1_Enable
  - >> ADAS_PWM_Initial

  timer_init (Thumb, 170 bytes, Stack size 0 bytes, gd32f10x_timer.o(i.timer_init))
  [Called By]

  - >> ADAS_PWM_Initial
  - >> ADAS_Timer_Initial
  - >> ADAS_Receive_Timer_Initial

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

  - >> ADAS_Receive_Timer_Initial

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

  - >> ADAS_Timer_Initial

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

  - >> TIMER2_IRQHandler

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

  - >> TIMER2_IRQHandler

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

  - >> ADAS_Timer_Initial
  - >> ADAS_Receive_Timer_Initial

  usart_baudrate_set (Thumb, 136 bytes, Stack size 32 bytes, gd32f10x_usart.o(i.usart_baudrate_set))
  [Stack]

  - Max Depth = 112
  - Call Chain = usart_baudrate_set ⇒ rcu_clock_freq_get
  [Calls]
  - >> rcu_clock_freq_get
  [Called By]
  - >> Usart2_Initial
  - >> Usart1_Initial

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

  - >> USART1_IRQHandler
  - >> USART0_IRQHandler

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

  - >> USART1_IRQHandler
  - >> USART0_IRQHandler

  usart_deinit (Thumb, 136 bytes, Stack size 8 bytes, gd32f10x_usart.o(i.usart_deinit))
  [Stack]

  - Max Depth = 8
  - Call Chain = usart_deinit
  [Calls]
  - >> rcu_periph_reset_enable
  - >> rcu_periph_reset_disable
  [Called By]
  - >> Enter_Sleep
  - >> Usart2_Initial
  - >> Usart1_Initial

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

  - >> Usart2_Initial
  - >> Usart1_Initial

  usart_flag_get (Thumb, 30 bytes, Stack size 8 bytes, gd32f10x_usart.o(i.usart_flag_get))
  [Stack]

  - Max Depth = 8
  - Call Chain = usart_flag_get
  [Called By]
  - >> USART1_IRQHandler
  - >> USART0_IRQHandler

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

  - >> Usart2_Initial
  - >> Usart1_Initial

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

  - >> Usart2_Initial
  - >> Usart1_Initial

  usart_interrupt_disable (Thumb, 26 bytes, Stack size 8 bytes, gd32f10x_usart.o(i.usart_interrupt_disable))
  [Stack]

  - Max Depth = 8
  - Call Chain = usart_interrupt_disable
  [Called By]
  - >> USART1_IRQHandler
  - >> USART0_IRQHandler

  usart_interrupt_enable (Thumb, 26 bytes, Stack size 8 bytes, gd32f10x_usart.o(i.usart_interrupt_enable))
  [Stack]

  - Max Depth = 8
  - Call Chain = usart_interrupt_enable
  [Called By]
  - >> Usart2_Initial
  - >> Send_Data_2_RS485
  - >> Usart1_Initial
  - >> Send_Data_RS485

  usart_interrupt_flag_get (Thumb, 56 bytes, Stack size 16 bytes, gd32f10x_usart.o(i.usart_interrupt_flag_get))
  [Stack]

  - Max Depth = 16
  - Call Chain = usart_interrupt_flag_get
  [Called By]
  - >> Send_Data_RS485

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

  - >> Usart2_Initial
  - >> Usart1_Initial

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

  - >> Usart2_Initial
  - >> Usart1_Initial

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

  - >> Usart2_Initial
  - >> Usart1_Initial

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

  - >> Usart2_Initial
  - >> Usart1_Initial

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

  - >> Usart2_Initial
  - >> Usart1_Initial

  ### Local Symbols

  Handle_Can_CMD (Thumb, 226 bytes, Stack size 16 bytes, app_can.o(i.Handle_Can_CMD))
  [Stack]

  - Max Depth = 176
  - Call Chain = Handle_Can_CMD ⇒ Rsp_Can_Bms_1_CMD ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> Rsp_Can_Ctr_CMD
  - >> Rsp_Can_Bms_2_CMD
  - >> Rsp_Can_Bms_1_CMD
  - >> Handle_Can_Ctr_CMD
  - >> Handle_Can_Bms_2_CMD
  - >> Handle_Can_Bms_1_CMD
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_Can_Data

  Get_Check_Sum_1 (Thumb, 64 bytes, Stack size 8 bytes, app_rs485_1.o(i.Get_Check_Sum_1))
  [Stack]

  - Max Depth = 8
  - Call Chain = Get_Check_Sum_1
  [Called By]
  - >> Send_Sub_BMS_CMD_1
  - >> Handle_Sub_BMS_CMD_1

  Handle_Sub_BMS_CMD_1 (Thumb, 384 bytes, Stack size 24 bytes, app_rs485_1.o(i.Handle_Sub_BMS_CMD_1))
  [Stack]

  - Max Depth = 32
  - Call Chain = Handle_Sub_BMS_CMD_1 ⇒ Get_Check_Sum_1
  [Calls]
  - >> Get_Check_Sum_1
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_RS485_1_Data

  Send_Sub_BMS_CMD_1 (Thumb, 446 bytes, Stack size 24 bytes, app_rs485_1.o(i.Send_Sub_BMS_CMD_1))
  [Stack]

  - Max Depth = 56
  - Call Chain = Send_Sub_BMS_CMD_1 ⇒ Send_Data_RS485 ⇒ usart_interrupt_flag_get
  [Calls]
  - >> Get_Check_Sum_1
  - >> Send_Data_RS485
  - >> __aeabi_memcpy
  [Called By]
  - >> Operate_Sub_BMS_1_CD
  - >> Send_Sub_BMS_1_CMD
  - >> Update_Sub_BMS_1_Software

  Get_Check_Sum_2 (Thumb, 64 bytes, Stack size 8 bytes, app_rs485_2.o(i.Get_Check_Sum_2))
  [Stack]

  - Max Depth = 8
  - Call Chain = Get_Check_Sum_2
  [Called By]
  - >> Send_Sub_BMS_CMD_2
  - >> Handle_Sub_BMS_CMD_2

  Handle_Sub_BMS_CMD_2 (Thumb, 384 bytes, Stack size 24 bytes, app_rs485_2.o(i.Handle_Sub_BMS_CMD_2))
  [Stack]

  - Max Depth = 32
  - Call Chain = Handle_Sub_BMS_CMD_2 ⇒ Get_Check_Sum_2
  [Calls]
  - >> Get_Check_Sum_2
  - >> __aeabi_memcpy
  [Called By]
  - >> Handle_RS485_2_Data

  Send_Sub_BMS_CMD_2 (Thumb, 446 bytes, Stack size 24 bytes, app_rs485_2.o(i.Send_Sub_BMS_CMD_2))
  [Stack]

  - Max Depth = 48
  - Call Chain = Send_Sub_BMS_CMD_2 ⇒ Send_Data_2_RS485 ⇒ usart_interrupt_enable
  [Calls]
  - >> Send_Data_2_RS485
  - >> Get_Check_Sum_2
  - >> __aeabi_memcpy
  [Called By]
  - >> Operate_Sub_BMS_2_CD
  - >> Send_Sub_BMS_2_CMD
  - >> Update_Sub_BMS_2_Software

  NVIC_SetPriority (Thumb, 32 bytes, Stack size 8 bytes, delay.o(i.NVIC_SetPriority))
  [Stack]

  - Max Depth = 8
  - Call Chain = NVIC_SetPriority
  [Called By]
  - >> systick_config

  Can_NVIC_Config (Thumb, 24 bytes, Stack size 8 bytes, drv_can.o(i.Can_NVIC_Config))
  [Stack]

  - Max Depth = 32
  - Call Chain = Can_NVIC_Config ⇒ nvic_irq_enable
  [Calls]
  - >> nvic_irq_enable
  [Called By]
  - >> CAN_Config
  - >> CAN_Config_HW

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

  - >> Get_Data_Can

  Reset_RX_Buffer (Thumb, 20 bytes, Stack size 8 bytes, drv_usart.o(i.Reset_RX_Buffer))
  [Stack]

  - Max Depth = 8
  - Call Chain = Reset_RX_Buffer
  [Calls]
  - >> __aeabi_memclr
  [Called By]
  - >> Get_RS485_Data

  Reset_RX_Buffer (Thumb, 20 bytes, Stack size 8 bytes, drv_usart_2.o(i.Reset_RX_Buffer))
  [Stack]

  - Max Depth = 8
  - Call Chain = Reset_RX_Buffer
  [Calls]
  - >> __aeabi_memclr
  [Called By]
  - >> Get_RS485_2_Data

  system_clock_108m_irc8m (Thumb, 160 bytes, Stack size 0 bytes, system_gd32f10x.o(i.system_clock_108m_irc8m))
  [Called By]

  - >> system_clock_config

  system_clock_config (Thumb, 8 bytes, Stack size 8 bytes, system_gd32f10x.o(i.system_clock_config))
  [Stack]

  - Max Depth = 8
  - Call Chain = system_clock_config
  [Calls]
  - >> system_clock_108m_irc8m
  [Called By]
  - >> SystemInit

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

  - >> __aeabi_uldivmod
  [Called By]
  - >> __0printf$5

  ### Undefined Global Symbols