# Static Call Graph for image ELE_CHASSIS\AUTO_CHASSIS.axf

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Fri Jul 11 21:11:33 2025

### Maximum Stack Usage = 376 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

### Call chain for Maximum Stack Depth:

Task_AttiEsti ⇒ AHRS_Update ⇒ AHRS_UpdateIMU ⇒ InvSqrt ⇒ __hardfp_sqrtf ⇒ __set_errno

### Functions with no stack information

- __user_initial_stackheap

### Mutually Recursive functions

- ADC_IRQHandler ⇒ ADC_IRQHandler

  ### Function Pointers

  - ACTION_IdleCallback from action.o(i.ACTION_IdleCallback) referenced from action.o(i.ACTIONRECV_Init)
  - ADC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - BMI088_AcclIntCallback from bmi088.o(i.BMI088_AcclIntCallback) referenced from bmi088.o(i.BMI088_Init)
  - BMI088_CaliintCallback from bmi088.o(i.BMI088_CaliintCallback) referenced from bmi088.o(i.BMI088_Init)
  - BMI088_GyroIntCallback from bmi088.o(i.BMI088_GyroIntCallback) referenced from bmi088.o(i.BMI088_Init)
  - BMI088_RxCpltCallback from bmi088.o(i.BMI088_RxCpltCallback) referenced from bmi088.o(i.BMI088_Init)
  - BusFault_Handler from stm32f4xx_it.o(i.BusFault_Handler) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_RX0_IRQHandler from stm32f4xx_it.o(i.CAN1_RX0_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_RX1_IRQHandler from stm32f4xx_it.o(i.CAN1_RX1_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_SCE_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_TX_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN2_RX0_IRQHandler from stm32f4xx_it.o(i.CAN2_RX0_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - CAN2_RX1_IRQHandler from stm32f4xx_it.o(i.CAN2_RX1_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - CAN2_SCE_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN2_TX_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN_CAN1RxFifoMsgPendingCallback from can_use.o(i.CAN_CAN1RxFifoMsgPendingCallback) referenced from can_use.o(i.CAN_Init)
  - CAN_CAN2RxFifoMsgPendingCallback from can_use.o(i.CAN_CAN2RxFifoMsgPendingCallback) referenced from can_use.o(i.CAN_Init)
  - CDC_Control_FS from usbd_cdc_if.o(i.CDC_Control_FS) referenced 2 times from usbd_cdc_if.o(.data)
  - CDC_DeInit_FS from usbd_cdc_if.o(i.CDC_DeInit_FS) referenced 2 times from usbd_cdc_if.o(.data)
  - CDC_Init_FS from usbd_cdc_if.o(i.CDC_Init_FS) referenced 2 times from usbd_cdc_if.o(.data)
  - CDC_Receive_FS from usbd_cdc_if.o(i.CDC_Receive_FS) referenced 2 times from usbd_cdc_if.o(.data)
  - CDC_TransmitCplt_FS from usbd_cdc_if.o(i.CDC_TransmitCplt_FS) referenced 2 times from usbd_cdc_if.o(.data)
  - DCMI_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream0_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream1_IRQHandler from stm32f4xx_it.o(i.DMA1_Stream1_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream4_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream5_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream6_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream7_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream0_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream1_IRQHandler from stm32f4xx_it.o(i.DMA2_Stream1_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream2_IRQHandler from stm32f4xx_it.o(i.DMA2_Stream2_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream3_IRQHandler from stm32f4xx_it.o(i.DMA2_Stream3_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream4_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream5_IRQHandler from stm32f4xx_it.o(i.DMA2_Stream5_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream6_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream7_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DebugMon_Handler from stm32f4xx_it.o(i.DebugMon_Handler) referenced from startup_stm32f407xx.o(RESET)
  - ETH_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - ETH_WKUP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI0_IRQHandler from stm32f4xx_it.o(i.EXTI0_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - EXTI15_10_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI1_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI4_IRQHandler from stm32f4xx_it.o(i.EXTI4_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - EXTI9_5_IRQHandler from stm32f4xx_it.o(i.EXTI9_5_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - FLASH_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - FMC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - FPU_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - HASH_RNG_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - HardFault_Handler from stm32f4xx_it.o(i.HardFault_Handler) referenced from startup_stm32f407xx.o(RESET)
  - I2C1_ER_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C1_EV_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C2_ER_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C2_EV_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C3_ER_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C3_EV_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - MemManage_Handler from stm32f4xx_it.o(i.MemManage_Handler) referenced from startup_stm32f407xx.o(RESET)
  - NMI_Handler from stm32f4xx_it.o(i.NMI_Handler) referenced from startup_stm32f407xx.o(RESET)
  - NUC_IdleCallback from nuc.o(i.NUC_IdleCallback) referenced from nuc.o(i.NUC_Init)
  - OTG_FS_IRQHandler from stm32f4xx_it.o(i.OTG_FS_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - OTG_FS_WKUP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - OTG_HS_EP1_IN_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - OTG_HS_EP1_OUT_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - OTG_HS_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - OTG_HS_WKUP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - Ops10msTimerCallback from action.o(i.Ops10msTimerCallback) referenced from action.o(i.ACTIONRECV_Init)
  - PVD_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - PendSV_Handler from port.o(.emb_text) referenced from startup_stm32f407xx.o(RESET)
  - RCC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - REMOTE_RxCpltCallback from remote_control.o(i.REMOTE_RxCpltCallback) referenced from remote_control.o(i.REMOTE_Init)
  - RTC_Alarm_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - RTC_WKUP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - Reset_Handler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SDIO_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SPI1_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SPI2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SPI3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SPI_DMAError from stm32f4xx_hal_spi.o(i.SPI_DMAError) referenced from stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA)
  - SPI_DMAError from stm32f4xx_hal_spi.o(i.SPI_DMAError) referenced from stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)
  - SPI_DMAHalfReceiveCplt from stm32f4xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) referenced from stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA)
  - SPI_DMAHalfReceiveCplt from stm32f4xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) referenced from stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)
  - SPI_DMAHalfTransmitReceiveCplt from stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt) referenced from stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)
  - SPI_DMAReceiveCplt from stm32f4xx_hal_spi.o(i.SPI_DMAReceiveCplt) referenced from stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA)
  - SPI_DMAReceiveCplt from stm32f4xx_hal_spi.o(i.SPI_DMAReceiveCplt) referenced from stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)
  - SPI_DMATransmitReceiveCplt from stm32f4xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt) referenced from stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)
  - SVC_Handler from port.o(.emb_text) referenced from startup_stm32f407xx.o(RESET)
  - StartDefaultTask from freertos.o(i.StartDefaultTask) referenced from freertos.o(i.MX_FREERTOS_Init)
  - SysTick_Handler from stm32f4xx_it.o(i.SysTick_Handler) referenced from startup_stm32f407xx.o(RESET)
  - SystemInit from system_stm32f4xx.o(i.SystemInit) referenced from startup_stm32f407xx.o(.text)
  - TAMP_STAMP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM1_BRK_TIM9_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM1_CC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM1_TRG_COM_TIM11_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM1_UP_TIM10_IRQHandler from stm32f4xx_it.o(i.TIM1_UP_TIM10_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - TIM2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM4_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM5_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM6_DAC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM7_IRQHandler from stm32f4xx_it.o(i.TIM7_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - TIM8_BRK_TIM12_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM8_CC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM8_TRG_COM_TIM14_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM8_UP_TIM13_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - Task_AttiEsti from atti_esti.o(i.Task_AttiEsti) referenced from init.o(i.Task_Init)
  - Task_Chassis from chassis_task.o(i.Task_Chassis) referenced from init.o(i.Task_Init)
  - Task_Init from init.o(i.Task_Init) referenced from freertos.o(i.MX_FREERTOS_Init)
  - Task_action from action_task.o(i.Task_action) referenced from init.o(i.Task_Init)
  - Task_calc from calc_task.o(i.Task_calc) referenced from init.o(i.Task_Init)
  - Task_can from can_task.o(i.Task_can) referenced from init.o(i.Task_Init)
  - Task_cmd from cmd_task.o(i.Task_cmd) referenced from init.o(i.Task_Init)
  - Task_error_detect from error_detect_task.o(i.Task_error_detect) referenced from init.o(i.Task_Init)
  - Task_navi from navi_task.o(i.Task_navi) referenced from init.o(i.Task_Init)
  - Task_nuc from nuc_task.o(i.Task_nuc) referenced from init.o(i.Task_Init)
  - Task_remote from remote_control_task.o(i.Task_remote) referenced from init.o(i.Task_Init)
  - TimerCallback from cmsis_os2.o(i.TimerCallback) referenced from cmsis_os2.o(i.osTimerNew)
  - UART4_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - UART5_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - UART_DMAAbortOnError from stm32f4xx_hal_uart.o(i.UART_DMAAbortOnError) referenced from stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler)
  - UART_DMAError from stm32f4xx_hal_uart.o(i.UART_DMAError) referenced from stm32f4xx_hal_uart.o(i.UART_Start_Receive_DMA)
  - UART_DMAReceiveCplt from stm32f4xx_hal_uart.o(i.UART_DMAReceiveCplt) referenced from stm32f4xx_hal_uart.o(i.UART_Start_Receive_DMA)
  - UART_DMARxHalfCplt from stm32f4xx_hal_uart.o(i.UART_DMARxHalfCplt) referenced from stm32f4xx_hal_uart.o(i.UART_Start_Receive_DMA)
  - USART1_IRQHandler from stm32f4xx_it.o(i.USART1_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - USART2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - USART3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - USART6_IRQHandler from stm32f4xx_it.o(i.USART6_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - USBD_CDC_DataIn from usbd_cdc.o(i.USBD_CDC_DataIn) referenced 2 times from usbd_cdc.o(.data)
  - USBD_CDC_DataOut from usbd_cdc.o(i.USBD_CDC_DataOut) referenced 2 times from usbd_cdc.o(.data)
  - USBD_CDC_DeInit from usbd_cdc.o(i.USBD_CDC_DeInit) referenced 2 times from usbd_cdc.o(.data)
  - USBD_CDC_EP0_RxReady from usbd_cdc.o(i.USBD_CDC_EP0_RxReady) referenced 2 times from usbd_cdc.o(.data)
  - USBD_CDC_GetDeviceQualifierDescriptor from usbd_cdc.o(i.USBD_CDC_GetDeviceQualifierDescriptor) referenced 2 times from usbd_cdc.o(.data)
  - USBD_CDC_GetFSCfgDesc from usbd_cdc.o(i.USBD_CDC_GetFSCfgDesc) referenced 2 times from usbd_cdc.o(.data)
  - USBD_CDC_GetHSCfgDesc from usbd_cdc.o(i.USBD_CDC_GetHSCfgDesc) referenced 2 times from usbd_cdc.o(.data)
  - USBD_CDC_GetOtherSpeedCfgDesc from usbd_cdc.o(i.USBD_CDC_GetOtherSpeedCfgDesc) referenced 2 times from usbd_cdc.o(.data)
  - USBD_CDC_Init from usbd_cdc.o(i.USBD_CDC_Init) referenced 2 times from usbd_cdc.o(.data)
  - USBD_CDC_Setup from usbd_cdc.o(i.USBD_CDC_Setup) referenced 2 times from usbd_cdc.o(.data)
  - USBD_FS_ConfigStrDescriptor from usbd_desc.o(i.USBD_FS_ConfigStrDescriptor) referenced 2 times from usbd_desc.o(.data)
  - USBD_FS_DeviceDescriptor from usbd_desc.o(i.USBD_FS_DeviceDescriptor) referenced 2 times from usbd_desc.o(.data)
  - USBD_FS_InterfaceStrDescriptor from usbd_desc.o(i.USBD_FS_InterfaceStrDescriptor) referenced 2 times from usbd_desc.o(.data)
  - USBD_FS_LangIDStrDescriptor from usbd_desc.o(i.USBD_FS_LangIDStrDescriptor) referenced 2 times from usbd_desc.o(.data)
  - USBD_FS_ManufacturerStrDescriptor from usbd_desc.o(i.USBD_FS_ManufacturerStrDescriptor) referenced 2 times from usbd_desc.o(.data)
  - USBD_FS_ProductStrDescriptor from usbd_desc.o(i.USBD_FS_ProductStrDescriptor) referenced 2 times from usbd_desc.o(.data)
  - USBD_FS_SerialStrDescriptor from usbd_desc.o(i.USBD_FS_SerialStrDescriptor) referenced 2 times from usbd_desc.o(.data)
  - UsageFault_Handler from stm32f4xx_it.o(i.UsageFault_Handler) referenced from startup_stm32f407xx.o(RESET)
  - WWDG_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - __main from __main.o(!!!main) referenced from startup_stm32f407xx.o(.text)
  - prvIdleTask from tasks.o(i.prvIdleTask) referenced from tasks.o(i.vTaskStartScheduler)
  - prvTaskExitError from port.o(i.prvTaskExitError) referenced from port.o(i.pxPortInitialiseStack)
  - prvTimerTask from timers.o(i.prvTimerTask) referenced from timers.o(i.xTimerCreateTimerTask)

  ### Global Symbols

  __main (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
  [Calls]

  - >> __scatterload
  - >> __rt_entry

  __scatterload (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
  [Called By]

  - >> __main

  __scatterload_rt2 (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
  [Calls]

  - >> __rt_entry

  __scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

  __scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

  __decompress (Thumb, 90 bytes, Stack size unknown bytes, __dczerorl2.o(!!dczerorl2), UNUSED)

  __decompress1 (Thumb, 0 bytes, Stack size unknown bytes, __dczerorl2.o(!!dczerorl2), UNUSED)

  __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)

  __rt_lib_init (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))
  [Called By]

  - >> __rt_entry_li

  __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000001))
  [Calls]

  - >> _fp_init

  __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))

  __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C))

  __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))

  __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))

  __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))

  __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))

  __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))

  __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))

  __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A))

  __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011))

  __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))

  __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))

  __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))

  __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))

  __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))

  __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))

  __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033))

  __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))

  __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))

  __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))

  __rt_lib_shutdown (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))
  [Called By]

  - >> __rt_exit_ls

  __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))

  __rt_lib_shutdown_fini_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))

  __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000009))

  __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000011))

  __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000012))

  __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))

  __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000006))

  __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E))

  __rt_entry (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
  [Called By]

  - >> __main
  - >> __scatterload_rt2

  __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))

  __rt_entry_sh (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = __rt_entry_sh ⇒ __user_setup_stackheap
  [Calls]
  - >> __user_setup_stackheap

  __rt_entry_li (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A))
  [Calls]

  - >> __rt_lib_init

  __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))

  __rt_entry_main (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D))
  [Stack]

  - Max Depth = 192 + Unknown Stack Size
  - Call Chain = __rt_entry_main ⇒ main ⇒ MX_FREERTOS_Init ⇒ osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> main
  - >> exit

  __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))

  __rt_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
  [Called By]

  - >> exit

  __rt_exit_ls (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003))
  [Calls]

  - >> __rt_lib_shutdown

  __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))

  __rt_exit_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))
  [Calls]

  - >> _sys_exit

  SVC_Handler (Thumb, 28 bytes, Stack size 0 bytes, port.o(.emb_text))
  [Address Reference Count : 1]

  - startup_stm32f407xx.o(RESET)

  __asm___6_port_c_39a90d8d__prvStartFirstTask (Thumb, 36 bytes, Stack size 0 bytes, port.o(.emb_text))
  [Called By]

  - >> xPortStartScheduler

  __asm___6_port_c_39a90d8d__prvEnableVFP (Thumb, 16 bytes, Stack size 0 bytes, port.o(.emb_text))
  [Called By]

  - >> xPortStartScheduler

  PendSV_Handler (Thumb, 88 bytes, Stack size 0 bytes, port.o(.emb_text))
  [Stack]

  - Max Depth = 8
  - Call Chain = PendSV_Handler ⇒ vTaskSwitchContext
  [Calls]
  - >> vTaskSwitchContext
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  vPortGetIPSR (Thumb, 6 bytes, Stack size 0 bytes, port.o(.emb_text))
  [Called By]

  - >> vPortValidateInterruptPriority

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

  - startup_stm32f407xx.o(RESET)

  ADC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f407xx.o(.text))
  [Calls]

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

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

  __user_initial_stackheap (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32f407xx.o(.text))
  [Called By]

  - >> __user_setup_stackheap

  __aeabi_uldivmod (Thumb, 0 bytes, Stack size 48 bytes, lludivv7m.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = __aeabi_uldivmod
  [Called By]
  - >> UART_SetConfig
  - >> HAL_RCC_GetSysClockFreq

  _ll_udiv (Thumb, 238 bytes, Stack size 48 bytes, lludivv7m.o(.text), UNUSED)

  memcmp (Thumb, 88 bytes, Stack size 8 bytes, memcmp.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = memcmp
  [Called By]
  - >> Config_Get

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

  - >> prvCopyDataToQueue
  - >> prvCopyDataFromQueue
  - >> BSP_Flash_ReadBytes

  __rt_memcpy (Thumb, 138 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memcpy4

  _memcpy_lastbytes (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_v6.o(.text), UNUSED)

  __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_memcpy4
  [Called By]
  - >> HAL_PCD_Init
  - >> detect_init
  - >> vofa_tx_main
  - >> __rt_memcpy

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

  __rt_memcpy_w (Thumb, 100 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED)

  _memcpy_lastbytes_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_w.o(.text), UNUSED)

  __aeabi_memset (Thumb, 16 bytes, Stack size 0 bytes, aeabi_memset.o(.text))
  [Calls]

  - >> _memset
  [Called By]
  - >> prvInitialiseNewTask

  __aeabi_memclr (Thumb, 0 bytes, Stack size 0 bytes, rt_memclr.o(.text))
  [Called By]

  - >> REMOTE_Init
  - >> LD_HandleOffline
  - >> DR16_HandleOffline

  __rt_memclr (Thumb, 68 bytes, Stack size 0 bytes, rt_memclr.o(.text), UNUSED)
  [Calls]

  - >> _memset_w

  _memset (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr.o(.text))
  [Called By]

  - >> __aeabi_memset

  __aeabi_memclr4 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = __aeabi_memclr4
  [Called By]
  - >> HAL_TIM_MspPostInit
  - >> HAL_SPI_MspInit
  - >> HAL_CAN_MspInit
  - >> MX_TIM4_Init
  - >> MX_TIM10_Init
  - >> MX_GPIO_Init
  - >> SystemClock_Config
  - >> HAL_UART_MspInit
  - >> CAN_Init
  - >> vofa_tx_main
  - >> USBD_CDC_Init
  - >> HAL_PCD_MspInit

  __aeabi_memclr8 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED)

  __rt_memclr_w (Thumb, 78 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED)

  _memset_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED)
  [Called By]

  - >> __rt_memclr

  __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)

  __rt_heap_escrow$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)

  __rt_heap_expand$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)

  __read_errno (Thumb, 10 bytes, Stack size 8 bytes, _rserrno.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_errno_addr

  __set_errno (Thumb, 12 bytes, Stack size 8 bytes, _rserrno.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __set_errno
  [Calls]
  - >> __aeabi_errno_addr
  [Called By]
  - >> __hardfp_tanf
  - >> sqrtf
  - >> __hardfp_sqrtf
  - >> __hardfp_sqrt
  - >> __hardfp_sinf
  - >> __hardfp_sin
  - >> __hardfp_fmod
  - >> __hardfp_cosf
  - >> __hardfp_cos
  - >> __hardfp_atan2f
  - >> __hardfp_atan2
  - >> __hardfp_asinf

  __aeabi_errno_addr (Thumb, 8 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text))
  [Called By]

  - >> __set_errno
  - >> __read_errno

  __errno$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED)

  __rt_errno_addr$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED)

  __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

  __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
  [Called By]

  - >> __user_setup_stackheap

  __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

  __user_setup_stackheap (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = __user_setup_stackheap
  [Calls]
  - >> __user_initial_stackheap
  - >> __user_perproc_libspace
  [Called By]
  - >> __rt_entry_sh

  exit (Thumb, 18 bytes, Stack size 8 bytes, exit.o(.text))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = exit
  [Calls]
  - >> __rt_exit
  [Called By]
  - >> __rt_entry_main

  _sys_exit (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))
  [Called By]

  - >> __rt_exit_exit

  __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

  __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

  __semihosting_library_function (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)

  ACTIONRECV_Init (Thumb, 68 bytes, Stack size 8 bytes, action.o(i.ACTIONRECV_Init))
  [Stack]

  - Max Depth = 224
  - Call Chain = ACTIONRECV_Init ⇒ osTimerNew ⇒ xTimerCreateStatic ⇒ prvInitialiseNewTimer ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> osTimerStart
  - >> osTimerNew
  - >> osThreadGetId
  - >> BSP_UART_RegisterCallback
  [Called By]
  - >> Task_action

  ACTION_DataRefresh (Thumb, 98 bytes, Stack size 8 bytes, action.o(i.ACTION_DataRefresh))
  [Stack]

  - Max Depth = 64
  - Call Chain = ACTION_DataRefresh ⇒ osThreadFlagsClear ⇒ xTaskGenericNotify
  [Calls]
  - >> osThreadFlagsGet
  - >> osThreadFlagsClear
  [Called By]
  - >> Task_action

  ACTION_Parse (Thumb, 194 bytes, Stack size 0 bytes, action.o(i.ACTION_Parse))
  [Called By]

  - >> Task_action

  ACTION_StartReceiving (Thumb, 30 bytes, Stack size 8 bytes, action.o(i.ACTION_StartReceiving))
  [Stack]

  - Max Depth = 108
  - Call Chain = ACTION_StartReceiving ⇒ HAL_UARTEx_ReceiveToIdle_DMA ⇒ UART_Start_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UARTEx_ReceiveToIdle_DMA
  - >> BSP_UART_GetHandle
  [Called By]
  - >> Task_action

  ACTION_WaitDmaCplt (Thumb, 28 bytes, Stack size 8 bytes, action.o(i.ACTION_WaitDmaCplt))
  [Stack]

  - Max Depth = 112
  - Call Chain = ACTION_WaitDmaCplt ⇒ osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadFlagsWait
  [Called By]
  - >> Task_action

  AHRS_GetEulr (Thumb, 300 bytes, Stack size 40 bytes, ahrs.o(i.AHRS_GetEulr))
  [Stack]

  - Max Depth = 80
  - Call Chain = AHRS_GetEulr ⇒ __hardfp_atan2f ⇒ __set_errno
  [Calls]
  - >> __hardfp_atan2f
  - >> __hardfp_asinf
  [Called By]
  - >> Task_AttiEsti

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

  - >> Task_AttiEsti

  AHRS_Update (Thumb, 2412 bytes, Stack size 200 bytes, ahrs.o(i.AHRS_Update))
  [Stack]

  - Max Depth = 368
  - Call Chain = AHRS_Update ⇒ AHRS_UpdateIMU ⇒ InvSqrt ⇒ __hardfp_sqrtf ⇒ __set_errno
  [Calls]
  - >> AHRS_UpdateIMU
  - >> InvSqrt
  - >> __hardfp_sqrtf
  [Called By]
  - >> Task_AttiEsti

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

  - >> Task_action

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

  - >> Chassis_UpdateFeedback

  BMI088_AcclIntCallback (Thumb, 14 bytes, Stack size 8 bytes, bmi088.o(i.BMI088_AcclIntCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = BMI088_AcclIntCallback ⇒ osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> osThreadFlagsSet
  [Address Reference Count : 1]
  - bmi088.o(i.BMI088_Init)

  BMI088_AcclStartDmaRecv (Thumb, 18 bytes, Stack size 8 bytes, bmi088.o(i.BMI088_AcclStartDmaRecv))
  [Stack]

  - Max Depth = 136
  - Call Chain = BMI088_AcclStartDmaRecv ⇒ BMI_Read ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> BMI_Read
  [Called By]
  - >> Task_AttiEsti

  BMI088_AcclWaitDmaCplt (Thumb, 16 bytes, Stack size 8 bytes, bmi088.o(i.BMI088_AcclWaitDmaCplt))
  [Stack]

  - Max Depth = 112
  - Call Chain = BMI088_AcclWaitDmaCplt ⇒ osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadFlagsWait
  [Called By]
  - >> Task_AttiEsti

  BMI088_CaliintCallback (Thumb, 16 bytes, Stack size 8 bytes, bmi088.o(i.BMI088_CaliintCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = BMI088_CaliintCallback ⇒ osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> osThreadFlagsSet
  [Address Reference Count : 1]
  - bmi088.o(i.BMI088_Init)

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

  - >> Task_AttiEsti

  BMI088_GyroIntCallback (Thumb, 14 bytes, Stack size 8 bytes, bmi088.o(i.BMI088_GyroIntCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = BMI088_GyroIntCallback ⇒ osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> osThreadFlagsSet
  [Address Reference Count : 1]
  - bmi088.o(i.BMI088_Init)

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

  - >> BMI088_calibration

  BMI088_GyroStartDmaRecv (Thumb, 18 bytes, Stack size 8 bytes, bmi088.o(i.BMI088_GyroStartDmaRecv))
  [Stack]

  - Max Depth = 136
  - Call Chain = BMI088_GyroStartDmaRecv ⇒ BMI_Read ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> BMI_Read
  [Called By]
  - >> BMI088_calibration
  - >> Task_AttiEsti

  BMI088_GyroWaitDmaCplt (Thumb, 16 bytes, Stack size 8 bytes, bmi088.o(i.BMI088_GyroWaitDmaCplt))
  [Stack]

  - Max Depth = 112
  - Call Chain = BMI088_GyroWaitDmaCplt ⇒ osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadFlagsWait
  [Called By]
  - >> BMI088_calibration
  - >> Task_AttiEsti

  BMI088_Init (Thumb, 294 bytes, Stack size 16 bytes, bmi088.o(i.BMI088_Init))
  [Stack]

  - Max Depth = 184
  - Call Chain = BMI088_Init ⇒ BMI_ReadSingle ⇒ HAL_SPI_Receive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> osThreadGetId
  - >> BSP_SPI_RegisterCallback
  - >> BSP_GPIO_RegisterCallback
  - >> BSP_GPIO_EnableIRQ
  - >> BSP_GPIO_DisableIRQ
  - >> BSP_Delay
  - >> BMI_WriteSingle
  - >> BMI_ReadSingle
  [Called By]
  - >> Task_AttiEsti

  BMI088_ParseAccl (Thumb, 186 bytes, Stack size 16 bytes, bmi088.o(i.BMI088_ParseAccl))
  [Stack]

  - Max Depth = 16
  - Call Chain = BMI088_ParseAccl
  [Called By]
  - >> Task_AttiEsti

  BMI088_ParseGyro (Thumb, 240 bytes, Stack size 16 bytes, bmi088.o(i.BMI088_ParseGyro))
  [Stack]

  - Max Depth = 16
  - Call Chain = BMI088_ParseGyro
  [Called By]
  - >> BMI088_calibration
  - >> Task_AttiEsti

  BMI088_WaitNew (Thumb, 16 bytes, Stack size 8 bytes, bmi088.o(i.BMI088_WaitNew))
  [Stack]

  - Max Depth = 112
  - Call Chain = BMI088_WaitNew ⇒ osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadFlagsWait
  [Called By]
  - >> BMI088_calibration
  - >> Task_AttiEsti

  BMI088_calibration (Thumb, 340 bytes, Stack size 48 bytes, bmi088.o(i.BMI088_calibration))
  [Stack]

  - Max Depth = 184
  - Call Chain = BMI088_calibration ⇒ BMI088_GyroStartDmaRecv ⇒ BMI_Read ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> osThreadFlagsGet
  - >> osThreadFlagsClear
  - >> osKernelUnlock
  - >> osKernelLock
  - >> Config_Set
  - >> Config_Get
  - >> BMI088_WaitNew
  - >> BMI088_ParseGyro
  - >> BMI088_GyroWaitDmaCplt
  - >> BMI088_GyroStartDmaRecv
  - >> BMI088_GyroStable
  [Called By]
  - >> Task_AttiEsti

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

  - >> CAN_VESC_Control
  - >> CAN_Init
  - >> CAN_DJIMotor_Control
  - >> CAN_CAN2RxFifoMsgPendingCallback
  - >> CAN_CAN1RxFifoMsgPendingCallback

  BSP_CAN_RegisterCallback (Thumb, 34 bytes, Stack size 8 bytes, bsp_can.o(i.BSP_CAN_RegisterCallback))
  [Stack]

  - Max Depth = 8
  - Call Chain = BSP_CAN_RegisterCallback
  [Called By]
  - >> CAN_Init

  BSP_Delay (Thumb, 106 bytes, Stack size 16 bytes, delay.o(i.BSP_Delay))
  [Stack]

  - Max Depth = 88
  - Call Chain = BSP_Delay ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> HAL_Delay
  - >> osKernelGetTickFreq
  - >> osKernelGetState
  [Called By]
  - >> BMI088_Init
  - >> BMI_WriteSingle
  - >> BMI_ReadSingle

  BSP_Flash_EraseSector (Thumb, 58 bytes, Stack size 32 bytes, flash.o(i.BSP_Flash_EraseSector))
  [Stack]

  - Max Depth = 72
  - Call Chain = BSP_Flash_EraseSector ⇒ HAL_FLASHEx_Erase ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> HAL_FLASHEx_Erase
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Lock
  - >> FLASH_WaitForLastOperation
  [Called By]
  - >> Config_Set

  BSP_Flash_ReadBytes (Thumb, 20 bytes, Stack size 16 bytes, flash.o(i.BSP_Flash_ReadBytes))
  [Stack]

  - Max Depth = 16
  - Call Chain = BSP_Flash_ReadBytes
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> Config_Get

  BSP_Flash_WriteBytes (Thumb, 60 bytes, Stack size 24 bytes, flash.o(i.BSP_Flash_WriteBytes))
  [Stack]

  - Max Depth = 64
  - Call Chain = BSP_Flash_WriteBytes ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Program
  - >> HAL_FLASH_Lock
  - >> FLASH_WaitForLastOperation
  [Called By]
  - >> Config_Set

  BSP_GPIO_DisableIRQ (Thumb, 66 bytes, Stack size 8 bytes, gpio_1.o(i.BSP_GPIO_DisableIRQ))
  [Stack]

  - Max Depth = 16
  - Call Chain = BSP_GPIO_DisableIRQ ⇒ HAL_NVIC_DisableIRQ
  [Calls]
  - >> HAL_NVIC_DisableIRQ
  [Called By]
  - >> BMI088_Init

  BSP_GPIO_EnableIRQ (Thumb, 66 bytes, Stack size 8 bytes, gpio_1.o(i.BSP_GPIO_EnableIRQ))
  [Stack]

  - Max Depth = 8
  - Call Chain = BSP_GPIO_EnableIRQ
  [Calls]
  - >> HAL_NVIC_EnableIRQ
  [Called By]
  - >> BMI088_Init

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

  - >> BMI088_Init

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

  - >> Buzzer_Control
  - >> Task_AttiEsti

  BSP_PWM_Start (Thumb, 38 bytes, Stack size 8 bytes, pwm.o(i.BSP_PWM_Start))
  [Stack]

  - Max Depth = 36
  - Call Chain = BSP_PWM_Start ⇒ HAL_TIM_PWM_Start ⇒ TIM_CCxChannelCmd
  [Calls]
  - >> HAL_TIM_PWM_Start
  [Called By]
  - >> Buzzer_Control
  - >> Task_AttiEsti

  BSP_PWM_Stop (Thumb, 48 bytes, Stack size 8 bytes, pwm.o(i.BSP_PWM_Stop))
  [Stack]

  - Max Depth = 32
  - Call Chain = BSP_PWM_Stop ⇒ HAL_TIM_PWM_Stop ⇒ TIM_CCxChannelCmd
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> HAL_TIM_PWM_Stop
  [Called By]
  - >> Buzzer_Control
  - >> Chassis_Control

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

  - >> BMI_WriteSingle
  - >> BMI_ReadSingle
  - >> BMI_Read

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

  - >> BMI088_Init

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

  - >> REMOTE_StartDmaRecv
  - >> ACTION_StartReceiving
  - >> NUC_StartReceiving
  - >> NUC_Send

  BSP_UART_RegisterCallback (Thumb, 30 bytes, Stack size 8 bytes, bsp_usart.o(i.BSP_UART_RegisterCallback))
  [Stack]

  - Max Depth = 8
  - Call Chain = BSP_UART_RegisterCallback
  [Called By]
  - >> REMOTE_Init
  - >> ACTIONRECV_Init
  - >> NUC_Init

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

  - startup_stm32f407xx.o(RESET)

  Buzzer_Control (Thumb, 94 bytes, Stack size 16 bytes, pwm.o(i.Buzzer_Control))
  [Stack]

  - Max Depth = 52
  - Call Chain = Buzzer_Control ⇒ BSP_PWM_Start ⇒ HAL_TIM_PWM_Start ⇒ TIM_CCxChannelCmd
  [Calls]
  - >> HAL_GetTick
  - >> BSP_PWM_Start
  - >> BSP_PWM_Set
  - >> BSP_PWM_Stop
  [Called By]
  - >> Chassis_Control

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

  - >> Chassis_init

  CAN1_RX0_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.CAN1_RX0_IRQHandler))
  [Stack]

  - Max Depth = 64
  - Call Chain = CAN1_RX0_IRQHandler ⇒ HAL_CAN_IRQHandler ⇒ HAL_CAN_RxFifo1MsgPendingCallback
  [Calls]
  - >> HAL_CAN_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  CAN1_RX1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.CAN1_RX1_IRQHandler))
  [Stack]

  - Max Depth = 64
  - Call Chain = CAN1_RX1_IRQHandler ⇒ HAL_CAN_IRQHandler ⇒ HAL_CAN_RxFifo1MsgPendingCallback
  [Calls]
  - >> HAL_CAN_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  CAN2_RX0_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.CAN2_RX0_IRQHandler))
  [Stack]

  - Max Depth = 64
  - Call Chain = CAN2_RX0_IRQHandler ⇒ HAL_CAN_IRQHandler ⇒ HAL_CAN_RxFifo1MsgPendingCallback
  [Calls]
  - >> HAL_CAN_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  CAN2_RX1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.CAN2_RX1_IRQHandler))
  [Stack]

  - Max Depth = 64
  - Call Chain = CAN2_RX1_IRQHandler ⇒ HAL_CAN_IRQHandler ⇒ HAL_CAN_RxFifo1MsgPendingCallback
  [Calls]
  - >> HAL_CAN_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  CAN_DJIMotor_Control (Thumb, 422 bytes, Stack size 40 bytes, can_use.o(i.CAN_DJIMotor_Control))
  [Stack]

  - Max Depth = 60
  - Call Chain = CAN_DJIMotor_Control ⇒ HAL_CAN_AddTxMessage
  [Calls]
  - >> HAL_CAN_AddTxMessage
  - >> BSP_CAN_GetHandle
  [Called By]
  - >> Task_can

  CAN_Init (Thumb, 188 bytes, Stack size 56 bytes, can_use.o(i.CAN_Init))
  [Stack]

  - Max Depth = 184
  - Call Chain = CAN_Init ⇒ osMessageQueueNew ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_CAN_Start
  - >> HAL_CAN_ConfigFilter
  - >> HAL_CAN_ActivateNotification
  - >> osMessageQueueNew
  - >> BSP_CAN_RegisterCallback
  - >> BSP_CAN_GetHandle
  - >> __aeabi_memclr4
  [Called By]
  - >> Task_can

  CAN_StoreMsg (Thumb, 366 bytes, Stack size 16 bytes, can_use.o(i.CAN_StoreMsg))
  [Stack]

  - Max Depth = 28
  - Call Chain = CAN_StoreMsg ⇒ CAN_VescMotor_Decode_1
  [Calls]
  - >> detect_hook
  - >> CAN_VescMotor_Decode_1
  - >> CAN_Sick_Receive
  - >> CAN_DJIMotor_Decode
  [Called By]
  - >> Task_can

  CAN_VESC_Control (Thumb, 274 bytes, Stack size 64 bytes, can_use.o(i.CAN_VESC_Control))
  [Stack]

  - Max Depth = 136
  - Call Chain = CAN_VESC_Control ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> HAL_CAN_AddTxMessage
  - >> BSP_CAN_GetHandle
  [Called By]
  - >> Task_can

  CMD_CtrlSet (Thumb, 600 bytes, Stack size 0 bytes, cmd.o(i.CMD_CtrlSet))
  [Called By]

  - >> Task_cmd

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

  - >> Task_cmd

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

  - >> Task_cmd

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

  - >> Task_cmd

  CMD_ParseRc (Thumb, 86 bytes, Stack size 16 bytes, cmd.o(i.CMD_ParseRc))
  [Stack]

  - Max Depth = 16
  - Call Chain = CMD_ParseRc
  [Calls]
  - >> CMD_remote
  - >> CMD_RcLostLogic
  [Called By]
  - >> Task_cmd

  Chassis_Control (Thumb, 766 bytes, Stack size 40 bytes, chassis.o(i.Chassis_Control))
  [Stack]

  - Max Depth = 368
  - Call Chain = Chassis_Control ⇒ Chassis_speed_calculate ⇒ __hardfp_sin ⇒ __ieee754_rem_pio2 ⇒ __aeabi_dmul
  [Calls]
  - >> PID_calc
  - >> LowPassFilter2p_Apply
  - >> Buzzer_Control
  - >> BSP_PWM_Stop
  - >> Chassis_speed_calculate
  - >> Chassis_RolPrevent
  - >> Chassis_SetCtrl
  [Called By]
  - >> Task_Chassis

  Chassis_RolPrevent (Thumb, 126 bytes, Stack size 0 bytes, chassis.o(i.Chassis_RolPrevent))
  [Called By]

  - >> Chassis_Control

  Chassis_UpdateFeedback (Thumb, 532 bytes, Stack size 32 bytes, chassis.o(i.Chassis_UpdateFeedback))
  [Stack]

  - Max Depth = 120
  - Call Chain = Chassis_UpdateFeedback ⇒ __hardfp_fmod ⇒ __mathlib_dbl_invalid ⇒ __aeabi_ddiv
  [Calls]
  - >> LowPassFilter2p_Apply
  - >> AngleChange
  - >> __hardfp_fmod
  - >> __aeabi_f2d
  - >> __aeabi_d2f
  [Called By]
  - >> Task_Chassis

  Chassis_init (Thumb, 476 bytes, Stack size 40 bytes, chassis.o(i.Chassis_init))
  [Stack]

  - Max Depth = 108
  - Call Chain = Chassis_init ⇒ LowPassFilter2p_Init ⇒ __hardfp_tanf ⇒ __mathlib_rredf2
  [Calls]
  - >> PID_init
  - >> LowPassFilter2p_Init
  - >> Buzzer_Init
  [Called By]
  - >> Task_Chassis

  Chassis_speed_calculate (Thumb, 7392 bytes, Stack size 144 bytes, chassis.o(i.Chassis_speed_calculate))
  [Stack]

  - Max Depth = 328
  - Call Chain = Chassis_speed_calculate ⇒ __hardfp_sin ⇒ __ieee754_rem_pio2 ⇒ __aeabi_dmul
  [Calls]
  - >> __hardfp_sqrt
  - >> __hardfp_sinf
  - >> __hardfp_sin
  - >> __hardfp_fabs
  - >> __hardfp_cosf
  - >> __hardfp_cos
  - >> __hardfp_atan2
  - >> __hardfp_atan
  - >> __aeabi_f2d
  - >> __aeabi_dmul
  - >> __aeabi_cdcmple
  - >> __aeabi_dsub
  - >> __aeabi_dadd
  - >> __aeabi_d2f
  - >> __aeabi_dneg
  [Called By]
  - >> Chassis_Control

  Config_Get (Thumb, 102 bytes, Stack size 8 bytes, config.o(i.Config_Get))
  [Stack]

  - Max Depth = 24
  - Call Chain = Config_Get ⇒ BSP_Flash_ReadBytes
  [Calls]
  - >> BSP_Flash_ReadBytes
  - >> memcmp
  [Called By]
  - >> Task_Init
  - >> BMI088_calibration
  - >> Task_AttiEsti

  Config_Set (Thumb, 30 bytes, Stack size 8 bytes, config.o(i.Config_Set))
  [Stack]

  - Max Depth = 80
  - Call Chain = Config_Set ⇒ BSP_Flash_EraseSector ⇒ HAL_FLASHEx_Erase ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> osKernelUnlock
  - >> osKernelLock
  - >> BSP_Flash_WriteBytes
  - >> BSP_Flash_EraseSector
  [Called By]
  - >> BMI088_calibration

  DMA1_Stream1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.DMA1_Stream1_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = DMA1_Stream1_IRQHandler ⇒ HAL_DMA_IRQHandler
  [Calls]
  - >> HAL_DMA_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  DMA2_Stream1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.DMA2_Stream1_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = DMA2_Stream1_IRQHandler ⇒ HAL_DMA_IRQHandler
  [Calls]
  - >> HAL_DMA_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  DMA2_Stream2_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.DMA2_Stream2_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = DMA2_Stream2_IRQHandler ⇒ HAL_DMA_IRQHandler
  [Calls]
  - >> HAL_DMA_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  DMA2_Stream3_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.DMA2_Stream3_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = DMA2_Stream3_IRQHandler ⇒ HAL_DMA_IRQHandler
  [Calls]
  - >> HAL_DMA_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  DMA2_Stream5_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.DMA2_Stream5_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = DMA2_Stream5_IRQHandler ⇒ HAL_DMA_IRQHandler
  [Calls]
  - >> HAL_DMA_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  DR16_HandleOffline (Thumb, 38 bytes, Stack size 16 bytes, remote_control.o(i.DR16_HandleOffline))
  [Stack]

  - Max Depth = 16
  - Call Chain = DR16_HandleOffline
  [Calls]
  - >> __aeabi_memclr
  [Called By]
  - >> Task_remote

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

  - startup_stm32f407xx.o(RESET)

  EXTI0_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.EXTI0_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = EXTI0_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback
  [Calls]
  - >> HAL_GPIO_EXTI_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  EXTI4_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.EXTI4_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = EXTI4_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback
  [Calls]
  - >> HAL_GPIO_EXTI_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  EXTI9_5_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.EXTI9_5_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = EXTI9_5_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback
  [Calls]
  - >> HAL_GPIO_EXTI_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

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

  - >> HAL_SPI_MspInit
  - >> MX_USB_DEVICE_Init
  - >> MX_USART6_UART_Init
  - >> MX_USART3_UART_Init
  - >> MX_USART1_UART_Init
  - >> MX_TIM7_Init
  - >> MX_TIM4_Init
  - >> MX_TIM10_Init
  - >> MX_SPI1_Init
  - >> MX_CRC_Init
  - >> MX_CAN2_Init
  - >> MX_CAN1_Init
  - >> SystemClock_Config
  - >> HAL_UART_MspInit
  - >> USBD_LL_Init
  - >> HAL_PCD_ResetCallback

  FLASH_Erase_Sector (Thumb, 86 bytes, Stack size 8 bytes, stm32f4xx_hal_flash_ex.o(i.FLASH_Erase_Sector))
  [Stack]

  - Max Depth = 8
  - Call Chain = FLASH_Erase_Sector
  [Called By]
  - >> HAL_FLASHEx_Erase

  FLASH_FlushCaches (Thumb, 114 bytes, Stack size 0 bytes, stm32f4xx_hal_flash_ex.o(i.FLASH_FlushCaches))
  [Called By]

  - >> HAL_FLASHEx_Erase

  FLASH_WaitForLastOperation (Thumb, 90 bytes, Stack size 16 bytes, stm32f4xx_hal_flash.o(i.FLASH_WaitForLastOperation))
  [Stack]

  - Max Depth = 16
  - Call Chain = FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_SetErrorCode
  - >> HAL_GetTick
  [Called By]
  - >> HAL_FLASHEx_Erase
  - >> HAL_FLASH_Program
  - >> BSP_Flash_WriteBytes
  - >> BSP_Flash_EraseSector

  HAL_CAN_ActivateNotification (Thumb, 42 bytes, Stack size 8 bytes, stm32f4xx_hal_can.o(i.HAL_CAN_ActivateNotification))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_CAN_ActivateNotification
  [Called By]
  - >> CAN_Init

  HAL_CAN_AddTxMessage (Thumb, 342 bytes, Stack size 20 bytes, stm32f4xx_hal_can.o(i.HAL_CAN_AddTxMessage))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_CAN_AddTxMessage
  [Called By]
  - >> CAN_VESC_Control
  - >> CAN_DJIMotor_Control

  HAL_CAN_ConfigFilter (Thumb, 286 bytes, Stack size 20 bytes, stm32f4xx_hal_can.o(i.HAL_CAN_ConfigFilter))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_CAN_ConfigFilter
  [Called By]
  - >> CAN_Init

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

  - >> HAL_CAN_IRQHandler

  HAL_CAN_GetRxMessage (Thumb, 378 bytes, Stack size 16 bytes, stm32f4xx_hal_can.o(i.HAL_CAN_GetRxMessage))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_CAN_GetRxMessage
  [Called By]
  - >> CAN_CAN2RxFifoMsgPendingCallback
  - >> CAN_CAN1RxFifoMsgPendingCallback

  HAL_CAN_IRQHandler (Thumb, 590 bytes, Stack size 40 bytes, stm32f4xx_hal_can.o(i.HAL_CAN_IRQHandler))
  [Stack]

  - Max Depth = 56
  - Call Chain = HAL_CAN_IRQHandler ⇒ HAL_CAN_RxFifo1MsgPendingCallback
  [Calls]
  - >> HAL_CAN_WakeUpFromRxMsgCallback
  - >> HAL_CAN_TxMailbox2CompleteCallback
  - >> HAL_CAN_TxMailbox2AbortCallback
  - >> HAL_CAN_TxMailbox1CompleteCallback
  - >> HAL_CAN_TxMailbox1AbortCallback
  - >> HAL_CAN_TxMailbox0CompleteCallback
  - >> HAL_CAN_TxMailbox0AbortCallback
  - >> HAL_CAN_SleepCallback
  - >> HAL_CAN_RxFifo1FullCallback
  - >> HAL_CAN_RxFifo0FullCallback
  - >> HAL_CAN_ErrorCallback
  - >> HAL_CAN_RxFifo1MsgPendingCallback
  - >> HAL_CAN_RxFifo0MsgPendingCallback
  [Called By]
  - >> CAN2_RX1_IRQHandler
  - >> CAN2_RX0_IRQHandler
  - >> CAN1_RX1_IRQHandler
  - >> CAN1_RX0_IRQHandler

  HAL_CAN_Init (Thumb, 372 bytes, Stack size 16 bytes, stm32f4xx_hal_can.o(i.HAL_CAN_Init))
  [Stack]

  - Max Depth = 96
  - Call Chain = HAL_CAN_Init ⇒ HAL_CAN_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_CAN_MspInit
  - >> HAL_GetTick
  [Called By]
  - >> MX_CAN2_Init
  - >> MX_CAN1_Init

  HAL_CAN_MspInit (Thumb, 360 bytes, Stack size 32 bytes, can.o(i.HAL_CAN_MspInit))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_CAN_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_GPIO_Init
  - >> __aeabi_memclr4
  [Called By]
  - >> HAL_CAN_Init

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

  - >> HAL_CAN_IRQHandler

  HAL_CAN_RxFifo0MsgPendingCallback (Thumb, 54 bytes, Stack size 16 bytes, bsp_can.o(i.HAL_CAN_RxFifo0MsgPendingCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_CAN_RxFifo0MsgPendingCallback
  [Calls]
  - >> CAN_Get
  [Called By]
  - >> HAL_CAN_IRQHandler

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

  - >> HAL_CAN_IRQHandler

  HAL_CAN_RxFifo1MsgPendingCallback (Thumb, 54 bytes, Stack size 16 bytes, bsp_can.o(i.HAL_CAN_RxFifo1MsgPendingCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_CAN_RxFifo1MsgPendingCallback
  [Calls]
  - >> CAN_Get
  [Called By]
  - >> HAL_CAN_IRQHandler

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

  - >> HAL_CAN_IRQHandler

  HAL_CAN_Start (Thumb, 94 bytes, Stack size 16 bytes, stm32f4xx_hal_can.o(i.HAL_CAN_Start))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_CAN_Start
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> CAN_Init

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

  - >> HAL_CAN_IRQHandler

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

  - >> HAL_CAN_IRQHandler

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

  - >> HAL_CAN_IRQHandler

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

  - >> HAL_CAN_IRQHandler

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

  - >> HAL_CAN_IRQHandler

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

  - >> HAL_CAN_IRQHandler

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

  - >> HAL_CAN_IRQHandler

  HAL_CRC_Init (Thumb, 32 bytes, Stack size 8 bytes, stm32f4xx_hal_crc.o(i.HAL_CRC_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_CRC_Init ⇒ HAL_CRC_MspInit
  [Calls]
  - >> HAL_CRC_MspInit
  [Called By]
  - >> MX_CRC_Init

  HAL_CRC_MspInit (Thumb, 44 bytes, Stack size 8 bytes, crc.o(i.HAL_CRC_MspInit))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_CRC_MspInit
  [Called By]
  - >> HAL_CRC_Init

  HAL_DMA_Abort (Thumb, 172 bytes, Stack size 16 bytes, stm32f4xx_hal_dma.o(i.HAL_DMA_Abort))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_DMA_Abort
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> HAL_UART_IRQHandler

  HAL_DMA_Abort_IT (Thumb, 40 bytes, Stack size 0 bytes, stm32f4xx_hal_dma.o(i.HAL_DMA_Abort_IT))
  [Called By]

  - >> HAL_UART_IRQHandler

  HAL_DMA_IRQHandler (Thumb, 570 bytes, Stack size 24 bytes, stm32f4xx_hal_dma.o(i.HAL_DMA_IRQHandler))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_DMA_IRQHandler
  [Called By]
  - >> DMA2_Stream5_IRQHandler
  - >> DMA2_Stream3_IRQHandler
  - >> DMA2_Stream2_IRQHandler
  - >> DMA2_Stream1_IRQHandler
  - >> DMA1_Stream1_IRQHandler

  HAL_DMA_Init (Thumb, 232 bytes, Stack size 24 bytes, stm32f4xx_hal_dma.o(i.HAL_DMA_Init))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_DMA_Init
  [Calls]
  - >> DMA_CheckFifoParam
  - >> DMA_CalcBaseAndBitshift
  - >> HAL_GetTick
  [Called By]
  - >> HAL_SPI_MspInit
  - >> HAL_UART_MspInit

  HAL_DMA_Start_IT (Thumb, 146 bytes, Stack size 32 bytes, stm32f4xx_hal_dma.o(i.HAL_DMA_Start_IT))
  [Stack]

  - Max Depth = 44
  - Call Chain = HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> DMA_SetConfig
  [Called By]
  - >> UART_Start_Receive_DMA
  - >> HAL_SPI_TransmitReceive_DMA
  - >> HAL_SPI_Receive_DMA

  HAL_Delay (Thumb, 36 bytes, Stack size 16 bytes, stm32f4xx_hal.o(i.HAL_Delay))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_Delay
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> USB_SetCurrentMode
  - >> BSP_Delay

  HAL_FLASHEx_Erase (Thumb, 164 bytes, Stack size 24 bytes, stm32f4xx_hal_flash_ex.o(i.HAL_FLASHEx_Erase))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_FLASHEx_Erase ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_MassErase
  - >> FLASH_FlushCaches
  - >> FLASH_Erase_Sector
  - >> FLASH_WaitForLastOperation
  [Called By]
  - >> BSP_Flash_EraseSector

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

  - >> BSP_Flash_WriteBytes
  - >> BSP_Flash_EraseSector

  HAL_FLASH_Program (Thumb, 142 bytes, Stack size 24 bytes, stm32f4xx_hal_flash.o(i.HAL_FLASH_Program))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_WaitForLastOperation
  - >> FLASH_Program_Word
  - >> FLASH_Program_HalfWord
  - >> FLASH_Program_DoubleWord
  - >> FLASH_Program_Byte
  [Called By]
  - >> BSP_Flash_WriteBytes

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

  - >> BSP_Flash_WriteBytes
  - >> BSP_Flash_EraseSector

  HAL_GPIO_EXTI_Callback (Thumb, 42 bytes, Stack size 16 bytes, gpio_1.o(i.HAL_GPIO_EXTI_Callback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_GPIO_EXTI_Callback
  [Called By]
  - >> HAL_GPIO_EXTI_IRQHandler

  HAL_GPIO_EXTI_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, stm32f4xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback
  [Calls]
  - >> HAL_GPIO_EXTI_Callback
  [Called By]
  - >> EXTI9_5_IRQHandler
  - >> EXTI4_IRQHandler
  - >> EXTI0_IRQHandler

  HAL_GPIO_Init (Thumb, 454 bytes, Stack size 24 bytes, stm32f4xx_hal_gpio.o(i.HAL_GPIO_Init))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_GPIO_Init
  [Called By]
  - >> HAL_TIM_MspPostInit
  - >> HAL_SPI_MspInit
  - >> HAL_CAN_MspInit
  - >> MX_GPIO_Init
  - >> HAL_UART_MspInit
  - >> HAL_PCD_MspInit

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

  - >> BMI088_RxCpltCallback

  HAL_GPIO_TogglePin (Thumb, 20 bytes, Stack size 8 bytes, stm32f4xx_hal_gpio.o(i.HAL_GPIO_TogglePin))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_GPIO_TogglePin
  [Called By]
  - >> NUC_RawParse

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

  - >> MX_GPIO_Init
  - >> BSP_PWM_Stop
  - >> BMI_WriteSingle
  - >> BMI_ReadSingle
  - >> BMI_Read
  - >> BMI088_RxCpltCallback

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

  - >> HAL_DMA_Init
  - >> HAL_CAN_Init
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> HAL_UART_Transmit
  - >> UART_WaitOnFlagUntilTimeout
  - >> HAL_Delay
  - >> HAL_DMA_Abort
  - >> FLASH_WaitForLastOperation
  - >> SPI_WaitFlagStateUntilTimeout
  - >> SPI_DMATransmitReceiveCplt
  - >> SPI_DMAReceiveCplt
  - >> HAL_CAN_Start
  - >> HAL_SPI_TransmitReceive
  - >> HAL_SPI_Transmit
  - >> HAL_SPI_Receive
  - >> Buzzer_Control
  - >> sick_calculate_d

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

  - >> SysTick_Handler

  HAL_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32f4xx_hal.o(i.HAL_Init))
  [Stack]

  - Max Depth = 72
  - Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_MspInit
  - >> HAL_InitTick
  - >> HAL_NVIC_SetPriorityGrouping
  [Called By]
  - >> main

  HAL_InitTick (Thumb, 64 bytes, Stack size 16 bytes, stm32f4xx_hal.o(i.HAL_InitTick))
  [Stack]

  - Max Depth = 64
  - Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_SetPriority
  - >> HAL_SYSTICK_Config
  [Called By]
  - >> HAL_RCC_ClockConfig
  - >> HAL_Init

  HAL_MspInit (Thumb, 78 bytes, Stack size 8 bytes, stm32f4xx_hal_msp.o(i.HAL_MspInit))
  [Stack]

  - Max Depth = 56
  - Call Chain = HAL_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_SetPriority
  [Called By]
  - >> HAL_Init

  HAL_NVIC_DisableIRQ (Thumb, 62 bytes, Stack size 8 bytes, stm32f4xx_hal_cortex.o(i.HAL_NVIC_DisableIRQ))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_NVIC_DisableIRQ
  [Called By]
  - >> BSP_GPIO_DisableIRQ

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

  - >> HAL_TIM_Base_MspInit
  - >> HAL_CAN_MspInit
  - >> MX_GPIO_Init
  - >> MX_DMA_Init
  - >> HAL_UART_MspInit
  - >> BSP_GPIO_EnableIRQ
  - >> HAL_PCD_MspInit

  HAL_NVIC_SetPriority (Thumb, 124 bytes, Stack size 40 bytes, stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriority))
  [Stack]

  - Max Depth = 48
  - Call Chain = HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> __NVIC_SetPriority
  - >> __NVIC_GetPriorityGrouping
  [Called By]
  - >> HAL_TIM_Base_MspInit
  - >> HAL_CAN_MspInit
  - >> MX_GPIO_Init
  - >> MX_DMA_Init
  - >> HAL_MspInit
  - >> HAL_UART_MspInit
  - >> HAL_InitTick
  - >> HAL_PCD_MspInit

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

  - >> HAL_Init

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

  - >> HAL_PCD_IRQHandler

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

  - >> USBD_LL_Init

  HAL_PCDEx_SetTxFiFo (Thumb, 78 bytes, Stack size 20 bytes, stm32f4xx_hal_pcd_ex.o(i.HAL_PCDEx_SetTxFiFo))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_PCDEx_SetTxFiFo
  [Called By]
  - >> USBD_LL_Init

  HAL_PCD_ConnectCallback (Thumb, 14 bytes, Stack size 8 bytes, usbd_conf.o(i.HAL_PCD_ConnectCallback))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_PCD_ConnectCallback
  [Calls]
  - >> USBD_LL_DevConnected
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_DataInStageCallback (Thumb, 32 bytes, Stack size 16 bytes, usbd_conf.o(i.HAL_PCD_DataInStageCallback))
  [Stack]

  - Max Depth = 180
  - Call Chain = HAL_PCD_DataInStageCallback ⇒ USBD_LL_DataInStage ⇒ USBD_CtlContinueSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_DataInStage
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_DataOutStageCallback (Thumb, 32 bytes, Stack size 16 bytes, usbd_conf.o(i.HAL_PCD_DataOutStageCallback))
  [Stack]

  - Max Depth = 180
  - Call Chain = HAL_PCD_DataOutStageCallback ⇒ USBD_LL_DataOutStage ⇒ USBD_CtlContinueRx ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_DataOutStage
  [Called By]
  - >> PCD_EP_OutXfrComplete_int

  HAL_PCD_DisconnectCallback (Thumb, 14 bytes, Stack size 8 bytes, usbd_conf.o(i.HAL_PCD_DisconnectCallback))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_PCD_DisconnectCallback ⇒ USBD_LL_DevDisconnected
  [Calls]
  - >> USBD_LL_DevDisconnected
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_EP_Abort (Thumb, 66 bytes, Stack size 24 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_EP_Abort))
  [Stack]

  - Max Depth = 44
  - Call Chain = HAL_PCD_EP_Abort ⇒ USB_EPStopXfer
  [Calls]
  - >> USB_EPStopXfer
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_EP_Close (Thumb, 106 bytes, Stack size 16 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_EP_Close))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_PCD_EP_Close ⇒ USB_DeactivateEndpoint
  [Calls]
  - >> USB_DeactivateEndpoint
  [Called By]
  - >> USBD_LL_CloseEP

  HAL_PCD_EP_ClrStall (Thumb, 124 bytes, Stack size 16 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_EP_ClrStall))
  [Stack]

  - Max Depth = 28
  - Call Chain = HAL_PCD_EP_ClrStall ⇒ USB_EPClearStall
  [Calls]
  - >> USB_EPClearStall
  [Called By]
  - >> USBD_LL_ClearStallEP

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

  - >> USBD_LL_GetRxDataSize

  HAL_PCD_EP_Open (Thumb, 140 bytes, Stack size 32 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_EP_Open))
  [Stack]

  - Max Depth = 48
  - Call Chain = HAL_PCD_EP_Open ⇒ USB_ActivateEndpoint
  [Calls]
  - >> USB_ActivateEndpoint
  [Called By]
  - >> USBD_LL_OpenEP

  HAL_PCD_EP_Receive (Thumb, 88 bytes, Stack size 24 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_EP_Receive))
  [Stack]

  - Max Depth = 84
  - Call Chain = HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USB_EPStartXfer
  - >> USB_EP0StartXfer
  [Called By]
  - >> USBD_LL_PrepareReceive

  HAL_PCD_EP_SetStall (Thumb, 138 bytes, Stack size 16 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_EP_SetStall))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_PCD_EP_SetStall ⇒ USB_EP0_OutStart
  [Calls]
  - >> USB_EPSetStall
  - >> USB_EP0_OutStart
  [Called By]
  - >> USBD_LL_StallEP

  HAL_PCD_EP_Transmit (Thumb, 90 bytes, Stack size 24 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_EP_Transmit))
  [Stack]

  - Max Depth = 84
  - Call Chain = HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USB_EPStartXfer
  - >> USB_EP0StartXfer
  [Called By]
  - >> USBD_LL_Transmit

  HAL_PCD_IRQHandler (Thumb, 1738 bytes, Stack size 48 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_IRQHandler))
  [Stack]

  - Max Depth = 276
  - Call Chain = HAL_PCD_IRQHandler ⇒ PCD_EP_OutSetupPacket_int ⇒ HAL_PCD_SetupStageCallback ⇒ USBD_LL_SetupStage ⇒ USBD_StdDevReq ⇒ USBD_GetDescriptor ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USB_SetTurnaroundTime
  - >> USB_ReadPacket
  - >> USB_ReadInterrupts
  - >> USB_ReadDevOutEPInterrupt
  - >> USB_ReadDevInEPInterrupt
  - >> USB_ReadDevAllOutEpInterrupt
  - >> USB_ReadDevAllInEpInterrupt
  - >> USB_GetMode
  - >> USB_GetDevSpeed
  - >> USB_FlushTxFifo
  - >> USB_EP0_OutStart
  - >> USB_ActivateSetup
  - >> HAL_RCC_GetHCLKFreq
  - >> HAL_PCDEx_LPM_Callback
  - >> HAL_PCD_EP_Abort
  - >> PCD_WriteEmptyTxFifo
  - >> PCD_EP_OutXfrComplete_int
  - >> PCD_EP_OutSetupPacket_int
  - >> HAL_PCD_SuspendCallback
  - >> HAL_PCD_SOFCallback
  - >> HAL_PCD_ResumeCallback
  - >> HAL_PCD_ResetCallback
  - >> HAL_PCD_ISOOUTIncompleteCallback
  - >> HAL_PCD_ISOINIncompleteCallback
  - >> HAL_PCD_DisconnectCallback
  - >> HAL_PCD_DataInStageCallback
  - >> HAL_PCD_ConnectCallback
  [Called By]
  - >> OTG_FS_IRQHandler

  HAL_PCD_ISOINIncompleteCallback (Thumb, 18 bytes, Stack size 16 bytes, usbd_conf.o(i.HAL_PCD_ISOINIncompleteCallback))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_PCD_ISOINIncompleteCallback ⇒ USBD_LL_IsoINIncomplete
  [Calls]
  - >> USBD_LL_IsoINIncomplete
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_ISOOUTIncompleteCallback (Thumb, 18 bytes, Stack size 16 bytes, usbd_conf.o(i.HAL_PCD_ISOOUTIncompleteCallback))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_PCD_ISOOUTIncompleteCallback ⇒ USBD_LL_IsoOUTIncomplete
  [Calls]
  - >> USBD_LL_IsoOUTIncomplete
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_Init (Thumb, 358 bytes, Stack size 56 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = HAL_PCD_Init ⇒ HAL_PCD_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> USB_SetCurrentMode
  - >> USB_DisableGlobalInt
  - >> USB_DevInit
  - >> USB_DevDisconnect
  - >> USB_CoreInit
  - >> __aeabi_memcpy4
  - >> HAL_PCD_MspInit
  [Called By]
  - >> USBD_LL_Init

  HAL_PCD_MspInit (Thumb, 160 bytes, Stack size 32 bytes, usbd_conf.o(i.HAL_PCD_MspInit))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_PCD_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_GPIO_Init
  - >> __aeabi_memclr4
  [Called By]
  - >> HAL_PCD_Init

  HAL_PCD_ResetCallback (Thumb, 48 bytes, Stack size 16 bytes, usbd_conf.o(i.HAL_PCD_ResetCallback))
  [Stack]

  - Max Depth = 112
  - Call Chain = HAL_PCD_ResetCallback ⇒ USBD_LL_Reset ⇒ USBD_LL_OpenEP ⇒ HAL_PCD_EP_Open ⇒ USB_ActivateEndpoint
  [Calls]
  - >> Error_Handler
  - >> USBD_LL_SetSpeed
  - >> USBD_LL_Reset
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_ResumeCallback (Thumb, 14 bytes, Stack size 8 bytes, usbd_conf.o(i.HAL_PCD_ResumeCallback))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_PCD_ResumeCallback
  [Calls]
  - >> USBD_LL_Resume
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_SOFCallback (Thumb, 14 bytes, Stack size 8 bytes, usbd_conf.o(i.HAL_PCD_SOFCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_PCD_SOFCallback ⇒ USBD_LL_SOF
  [Calls]
  - >> USBD_LL_SOF
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_SetAddress (Thumb, 54 bytes, Stack size 16 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_SetAddress))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_PCD_SetAddress ⇒ USB_SetDevAddress
  [Calls]
  - >> USB_SetDevAddress
  [Called By]
  - >> USBD_LL_SetUSBAddress

  HAL_PCD_SetupStageCallback (Thumb, 18 bytes, Stack size 8 bytes, usbd_conf.o(i.HAL_PCD_SetupStageCallback))
  [Stack]

  - Max Depth = 196
  - Call Chain = HAL_PCD_SetupStageCallback ⇒ USBD_LL_SetupStage ⇒ USBD_StdDevReq ⇒ USBD_GetDescriptor ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_SetupStage
  [Called By]
  - >> PCD_EP_OutSetupPacket_int

  HAL_PCD_Start (Thumb, 74 bytes, Stack size 16 bytes, stm32f4xx_hal_pcd.o(i.HAL_PCD_Start))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_PCD_Start
  [Calls]
  - >> USB_EnableGlobalInt
  - >> USB_DevConnect
  [Called By]
  - >> USBD_LL_Start

  HAL_PCD_SuspendCallback (Thumb, 46 bytes, Stack size 8 bytes, usbd_conf.o(i.HAL_PCD_SuspendCallback))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_PCD_SuspendCallback
  [Calls]
  - >> USBD_LL_Suspend
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_RCC_ClockConfig (Thumb, 368 bytes, Stack size 16 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_ClockConfig))
  [Stack]

  - Max Depth = 96
  - Call Chain = HAL_RCC_ClockConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uldivmod
  [Calls]
  - >> HAL_RCC_GetSysClockFreq
  - >> HAL_InitTick
  - >> HAL_GetTick
  [Called By]
  - >> SystemClock_Config

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

  - >> HAL_PCD_IRQHandler
  - >> HAL_RCC_GetPCLK2Freq
  - >> HAL_RCC_GetPCLK1Freq

  HAL_RCC_GetPCLK1Freq (Thumb, 22 bytes, Stack size 4 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq))
  [Stack]

  - Max Depth = 4
  - Call Chain = HAL_RCC_GetPCLK1Freq
  [Calls]
  - >> HAL_RCC_GetHCLKFreq
  [Called By]
  - >> UART_SetConfig

  HAL_RCC_GetPCLK2Freq (Thumb, 22 bytes, Stack size 4 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq))
  [Stack]

  - Max Depth = 4
  - Call Chain = HAL_RCC_GetPCLK2Freq
  [Calls]
  - >> HAL_RCC_GetHCLKFreq
  [Called By]
  - >> UART_SetConfig

  HAL_RCC_GetSysClockFreq (Thumb, 162 bytes, Stack size 32 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_RCC_GetSysClockFreq ⇒ __aeabi_uldivmod
  [Calls]
  - >> __aeabi_uldivmod
  [Called By]
  - >> HAL_RCC_ClockConfig

  HAL_RCC_OscConfig (Thumb, 1172 bytes, Stack size 24 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_OscConfig))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_RCC_OscConfig
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> SystemClock_Config

  HAL_SPI_ErrorCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_ErrorCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_SPI_ErrorCallback
  [Calls]
  - >> SPI_Get
  [Called By]
  - >> SPI_DMATransmitReceiveCplt
  - >> SPI_DMAReceiveCplt
  - >> SPI_DMAError

  HAL_SPI_Init (Thumb, 200 bytes, Stack size 8 bytes, stm32f4xx_hal_spi.o(i.HAL_SPI_Init))
  [Stack]

  - Max Depth = 64
  - Call Chain = HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_DMA_Init
  [Calls]
  - >> HAL_SPI_MspInit
  [Called By]
  - >> MX_SPI1_Init

  HAL_SPI_MspInit (Thumb, 316 bytes, Stack size 32 bytes, spi.o(i.HAL_SPI_MspInit))
  [Stack]

  - Max Depth = 56
  - Call Chain = HAL_SPI_MspInit ⇒ HAL_DMA_Init
  [Calls]
  - >> HAL_DMA_Init
  - >> HAL_GPIO_Init
  - >> Error_Handler
  - >> __aeabi_memclr4
  [Called By]
  - >> HAL_SPI_Init

  HAL_SPI_Receive (Thumb, 368 bytes, Stack size 32 bytes, stm32f4xx_hal_spi.o(i.HAL_SPI_Receive))
  [Stack]

  - Max Depth = 152
  - Call Chain = HAL_SPI_Receive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GetTick
  - >> SPI_EndRxTransaction
  - >> HAL_SPI_TransmitReceive
  [Called By]
  - >> BMI_ReadSingle

  HAL_SPI_Receive_DMA (Thumb, 270 bytes, Stack size 24 bytes, stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA))
  [Stack]

  - Max Depth = 100
  - Call Chain = HAL_SPI_Receive_DMA ⇒ HAL_SPI_TransmitReceive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_DMA_Start_IT
  - >> HAL_SPI_TransmitReceive_DMA
  [Called By]
  - >> BMI_Read

  HAL_SPI_RxCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_RxCpltCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_SPI_RxCpltCallback
  [Calls]
  - >> SPI_Get
  [Called By]
  - >> SPI_DMAReceiveCplt

  HAL_SPI_RxHalfCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_RxHalfCpltCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_SPI_RxHalfCpltCallback
  [Calls]
  - >> SPI_Get
  [Called By]
  - >> SPI_DMAHalfReceiveCplt

  HAL_SPI_Transmit (Thumb, 430 bytes, Stack size 40 bytes, stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit))
  [Stack]

  - Max Depth = 104
  - Call Chain = HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GetTick
  - >> SPI_EndRxTxTransaction
  [Called By]
  - >> BMI_WriteSingle
  - >> BMI_ReadSingle
  - >> BMI_Read

  HAL_SPI_TransmitReceive (Thumb, 554 bytes, Stack size 56 bytes, stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive))
  [Stack]

  - Max Depth = 120
  - Call Chain = HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GetTick
  - >> SPI_EndRxTxTransaction
  [Called By]
  - >> HAL_SPI_Receive

  HAL_SPI_TransmitReceive_DMA (Thumb, 342 bytes, Stack size 32 bytes, stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA))
  [Stack]

  - Max Depth = 76
  - Call Chain = HAL_SPI_TransmitReceive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_DMA_Start_IT
  [Called By]
  - >> HAL_SPI_Receive_DMA

  HAL_SPI_TxRxCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_TxRxCpltCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_SPI_TxRxCpltCallback
  [Calls]
  - >> SPI_Get
  [Called By]
  - >> SPI_DMATransmitReceiveCplt

  HAL_SPI_TxRxHalfCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_SPI_TxRxHalfCpltCallback
  [Calls]
  - >> SPI_Get
  [Called By]
  - >> SPI_DMAHalfTransmitReceiveCplt

  HAL_SYSTICK_Config (Thumb, 52 bytes, Stack size 16 bytes, stm32f4xx_hal_cortex.o(i.HAL_SYSTICK_Config))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_SYSTICK_Config ⇒ __NVIC_SetPriority
  [Calls]
  - >> __NVIC_SetPriority
  [Called By]
  - >> HAL_InitTick

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

  HAL_TIMEx_MasterConfigSynchronization (Thumb, 150 bytes, Stack size 12 bytes, stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization))
  [Stack]

  - Max Depth = 12
  - Call Chain = HAL_TIMEx_MasterConfigSynchronization
  [Called By]
  - >> MX_TIM7_Init
  - >> MX_TIM4_Init

  HAL_TIM_Base_Init (Thumb, 102 bytes, Stack size 8 bytes, stm32f4xx_hal_tim.o(i.HAL_TIM_Base_Init))
  [Stack]

  - Max Depth = 72
  - Call Chain = HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_TIM_Base_MspInit
  - >> TIM_Base_SetConfig
  [Called By]
  - >> MX_TIM7_Init
  - >> MX_TIM4_Init
  - >> MX_TIM10_Init

  HAL_TIM_Base_MspInit (Thumb, 164 bytes, Stack size 16 bytes, tim.o(i.HAL_TIM_Base_MspInit))
  [Stack]

  - Max Depth = 64
  - Call Chain = HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  [Called By]
  - >> HAL_TIM_Base_Init

  HAL_TIM_ConfigClockSource (Thumb, 268 bytes, Stack size 24 bytes, stm32f4xx_hal_tim.o(i.HAL_TIM_ConfigClockSource))
  [Stack]

  - Max Depth = 36
  - Call Chain = HAL_TIM_ConfigClockSource ⇒ TIM_ETR_SetConfig
  [Calls]
  - >> TIM_ETR_SetConfig
  - >> TIM_TI2_ConfigInputStage
  - >> TIM_TI1_ConfigInputStage
  - >> TIM_ITRx_SetConfig
  [Called By]
  - >> MX_TIM4_Init

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

  - >> HAL_TIM_IRQHandler

  HAL_TIM_IRQHandler (Thumb, 406 bytes, Stack size 8 bytes, stm32f4xx_hal_tim.o(i.HAL_TIM_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_TIM_IRQHandler
  [Calls]
  - >> HAL_TIM_TriggerCallback
  - >> HAL_TIM_PeriodElapsedCallback
  - >> HAL_TIM_PWM_PulseFinishedCallback
  - >> HAL_TIM_OC_DelayElapsedCallback
  - >> HAL_TIM_IC_CaptureCallback
  - >> HAL_TIMEx_CommutCallback
  - >> HAL_TIMEx_BreakCallback
  [Called By]
  - >> TIM7_IRQHandler
  - >> TIM1_UP_TIM10_IRQHandler

  HAL_TIM_MspPostInit (Thumb, 156 bytes, Stack size 32 bytes, tim.o(i.HAL_TIM_MspPostInit))
  [Stack]

  - Max Depth = 56
  - Call Chain = HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GPIO_Init
  - >> __aeabi_memclr4
  [Called By]
  - >> MX_TIM4_Init
  - >> MX_TIM10_Init

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

  - >> HAL_TIM_IRQHandler

  HAL_TIM_PWM_ConfigChannel (Thumb, 260 bytes, Stack size 24 bytes, stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel))
  [Stack]

  - Max Depth = 36
  - Call Chain = HAL_TIM_PWM_ConfigChannel ⇒ TIM_OC2_SetConfig
  [Calls]
  - >> TIM_OC2_SetConfig
  - >> TIM_OC4_SetConfig
  - >> TIM_OC3_SetConfig
  - >> TIM_OC1_SetConfig
  [Called By]
  - >> MX_TIM4_Init
  - >> MX_TIM10_Init

  HAL_TIM_PWM_Init (Thumb, 102 bytes, Stack size 8 bytes, stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig
  [Calls]
  - >> HAL_TIM_PWM_MspInit
  - >> TIM_Base_SetConfig
  [Called By]
  - >> MX_TIM4_Init
  - >> MX_TIM10_Init

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

  - >> HAL_TIM_PWM_Init

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

  - >> HAL_TIM_IRQHandler

  HAL_TIM_PWM_Start (Thumb, 238 bytes, Stack size 16 bytes, stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Start))
  [Stack]

  - Max Depth = 28
  - Call Chain = HAL_TIM_PWM_Start ⇒ TIM_CCxChannelCmd
  [Calls]
  - >> TIM_CCxChannelCmd
  [Called By]
  - >> BSP_PWM_Start

  HAL_TIM_PWM_Stop (Thumb, 160 bytes, Stack size 12 bytes, stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Stop))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_TIM_PWM_Stop ⇒ TIM_CCxChannelCmd
  [Calls]
  - >> TIM_CCxChannelCmd
  [Called By]
  - >> BSP_PWM_Stop

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

  HAL_UARTEx_ReceiveToIdle_DMA (Thumb, 130 bytes, Stack size 24 bytes, stm32f4xx_hal_uart.o(i.HAL_UARTEx_ReceiveToIdle_DMA))
  [Stack]

  - Max Depth = 100
  - Call Chain = HAL_UARTEx_ReceiveToIdle_DMA ⇒ UART_Start_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> UART_Start_Receive_DMA
  [Called By]
  - >> REMOTE_StartDmaRecv
  - >> ACTION_StartReceiving
  - >> NUC_StartReceiving

  HAL_UARTEx_RxEventCallback (Thumb, 52 bytes, Stack size 16 bytes, bsp_usart.o(i.HAL_UARTEx_RxEventCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_UARTEx_RxEventCallback
  [Calls]
  - >> UART_Get
  [Called By]
  - >> UART_Receive_IT
  - >> UART_DMARxHalfCplt
  - >> UART_DMAReceiveCplt
  - >> HAL_UART_IRQHandler

  HAL_UART_ErrorCallback (Thumb, 46 bytes, Stack size 16 bytes, bsp_usart.o(i.HAL_UART_ErrorCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_UART_ErrorCallback
  [Calls]
  - >> UART_Get
  [Called By]
  - >> UART_DMAError
  - >> UART_DMAAbortOnError
  - >> HAL_UART_IRQHandler

  HAL_UART_IRQHandler (Thumb, 732 bytes, Stack size 40 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback
  [Calls]
  - >> UART_Transmit_IT
  - >> UART_Receive_IT
  - >> UART_EndTransmit_IT
  - >> UART_EndRxTransfer
  - >> HAL_DMA_Abort_IT
  - >> HAL_DMA_Abort
  - >> HAL_UART_ErrorCallback
  - >> HAL_UARTEx_RxEventCallback
  [Called By]
  - >> USART6_IRQHandler
  - >> USART1_IRQHandler

  HAL_UART_Init (Thumb, 114 bytes, Stack size 8 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_Init))
  [Stack]

  - Max Depth = 96
  - Call Chain = HAL_UART_Init ⇒ UART_SetConfig ⇒ __aeabi_uldivmod
  [Calls]
  - >> UART_SetConfig
  - >> HAL_UART_MspInit
  [Called By]
  - >> MX_USART6_UART_Init
  - >> MX_USART3_UART_Init
  - >> MX_USART1_UART_Init

  HAL_UART_MspInit (Thumb, 626 bytes, Stack size 32 bytes, usart.o(i.HAL_UART_MspInit))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_DMA_Init
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_GPIO_Init
  - >> Error_Handler
  - >> __aeabi_memclr4
  [Called By]
  - >> HAL_UART_Init

  HAL_UART_RxCpltCallback (Thumb, 46 bytes, Stack size 16 bytes, bsp_usart.o(i.HAL_UART_RxCpltCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_UART_RxCpltCallback
  [Calls]
  - >> UART_Get
  [Called By]
  - >> UART_Receive_IT
  - >> UART_DMAReceiveCplt

  HAL_UART_RxHalfCpltCallback (Thumb, 46 bytes, Stack size 16 bytes, bsp_usart.o(i.HAL_UART_RxHalfCpltCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_UART_RxHalfCpltCallback
  [Calls]
  - >> UART_Get
  [Called By]
  - >> UART_DMARxHalfCplt

  HAL_UART_Transmit (Thumb, 210 bytes, Stack size 40 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_Transmit))
  [Stack]

  - Max Depth = 64
  - Call Chain = HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> UART_WaitOnFlagUntilTimeout
  - >> HAL_GetTick
  [Called By]
  - >> NUC_Send

  HAL_UART_TxCpltCallback (Thumb, 46 bytes, Stack size 16 bytes, bsp_usart.o(i.HAL_UART_TxCpltCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_UART_TxCpltCallback
  [Calls]
  - >> UART_Get
  [Called By]
  - >> UART_EndTransmit_IT

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

  - startup_stm32f407xx.o(RESET)

  InvSqrt (Thumb, 36 bytes, Stack size 16 bytes, user_math.o(i.InvSqrt))
  [Stack]

  - Max Depth = 40
  - Call Chain = InvSqrt ⇒ __hardfp_sqrtf ⇒ __set_errno
  [Calls]
  - >> __hardfp_sqrtf
  [Called By]
  - >> AHRS_UpdateIMU
  - >> AHRS_Update

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

  - >> REMOTE_ParseRC

  LD_HandleOffline (Thumb, 40 bytes, Stack size 16 bytes, remote_control.o(i.LD_HandleOffline))
  [Stack]

  - Max Depth = 16
  - Call Chain = LD_HandleOffline
  [Calls]
  - >> __aeabi_memclr
  [Called By]
  - >> REMOTE_ParseRC
  - >> Task_remote

  LD_ParseRaw (Thumb, 420 bytes, Stack size 0 bytes, remote_control.o(i.LD_ParseRaw))
  [Called By]

  - >> REMOTE_ParseRC

  LowPassFilter2p_Apply (Thumb, 124 bytes, Stack size 0 bytes, filter.o(i.LowPassFilter2p_Apply))
  [Called By]

  - >> Chassis_UpdateFeedback
  - >> Chassis_Control

  LowPassFilter2p_Init (Thumb, 264 bytes, Stack size 32 bytes, filter.o(i.LowPassFilter2p_Init))
  [Stack]

  - Max Depth = 68
  - Call Chain = LowPassFilter2p_Init ⇒ __hardfp_tanf ⇒ __mathlib_rredf2
  [Calls]
  - >> __hardfp_tanf
  - >> __hardfp_cosf
  [Called By]
  - >> Chassis_init

  MX_CAN1_Init (Thumb, 64 bytes, Stack size 8 bytes, can.o(i.MX_CAN1_Init))
  [Stack]

  - Max Depth = 104
  - Call Chain = MX_CAN1_Init ⇒ HAL_CAN_Init ⇒ HAL_CAN_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_CAN_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_CAN2_Init (Thumb, 64 bytes, Stack size 8 bytes, can.o(i.MX_CAN2_Init))
  [Stack]

  - Max Depth = 104
  - Call Chain = MX_CAN2_Init ⇒ HAL_CAN_Init ⇒ HAL_CAN_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_CAN_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_CRC_Init (Thumb, 22 bytes, Stack size 8 bytes, crc.o(i.MX_CRC_Init))
  [Stack]

  - Max Depth = 24
  - Call Chain = MX_CRC_Init ⇒ HAL_CRC_Init ⇒ HAL_CRC_MspInit
  [Calls]
  - >> HAL_CRC_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_DMA_Init (Thumb, 146 bytes, Stack size 8 bytes, dma.o(i.MX_DMA_Init))
  [Stack]

  - Max Depth = 56
  - Call Chain = MX_DMA_Init ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  [Called By]
  - >> main

  MX_FREERTOS_Init (Thumb, 28 bytes, Stack size 8 bytes, freertos.o(i.MX_FREERTOS_Init))
  [Stack]

  - Max Depth = 192 + Unknown Stack Size
  - Call Chain = MX_FREERTOS_Init ⇒ osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osThreadNew
  [Called By]
  - >> main

  MX_GPIO_Init (Thumb, 470 bytes, Stack size 32 bytes, gpio.o(i.MX_GPIO_Init))
  [Stack]

  - Max Depth = 80
  - Call Chain = MX_GPIO_Init ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_GPIO_WritePin
  - >> HAL_GPIO_Init
  - >> __aeabi_memclr4
  [Called By]
  - >> main

  MX_SPI1_Init (Thumb, 62 bytes, Stack size 8 bytes, spi.o(i.MX_SPI1_Init))
  [Stack]

  - Max Depth = 72
  - Call Chain = MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_DMA_Init
  [Calls]
  - >> HAL_SPI_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_TIM10_Init (Thumb, 100 bytes, Stack size 32 bytes, tim.o(i.MX_TIM10_Init))
  [Stack]

  - Max Depth = 104
  - Call Chain = MX_TIM10_Init ⇒ HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_PWM_ConfigChannel
  - >> HAL_TIM_Base_Init
  - >> HAL_TIM_MspPostInit
  - >> Error_Handler
  - >> __aeabi_memclr4
  [Called By]
  - >> main

  MX_TIM4_Init (Thumb, 154 bytes, Stack size 56 bytes, tim.o(i.MX_TIM4_Init))
  [Stack]

  - Max Depth = 128
  - Call Chain = MX_TIM4_Init ⇒ HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_PWM_ConfigChannel
  - >> HAL_TIM_ConfigClockSource
  - >> HAL_TIM_Base_Init
  - >> HAL_TIMEx_MasterConfigSynchronization
  - >> HAL_TIM_MspPostInit
  - >> Error_Handler
  - >> __aeabi_memclr4
  [Called By]
  - >> main

  MX_TIM7_Init (Thumb, 68 bytes, Stack size 16 bytes, tim.o(i.MX_TIM7_Init))
  [Stack]

  - Max Depth = 88
  - Call Chain = MX_TIM7_Init ⇒ HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> HAL_TIM_Base_Init
  - >> HAL_TIMEx_MasterConfigSynchronization
  - >> Error_Handler
  [Called By]
  - >> main

  MX_USART1_UART_Init (Thumb, 46 bytes, Stack size 8 bytes, usart.o(i.MX_USART1_UART_Init))
  [Stack]

  - Max Depth = 104
  - Call Chain = MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ __aeabi_uldivmod
  [Calls]
  - >> Error_Handler
  - >> HAL_UART_Init
  [Called By]
  - >> main

  MX_USART3_UART_Init (Thumb, 48 bytes, Stack size 8 bytes, usart.o(i.MX_USART3_UART_Init))
  [Stack]

  - Max Depth = 104
  - Call Chain = MX_USART3_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ __aeabi_uldivmod
  [Calls]
  - >> Error_Handler
  - >> HAL_UART_Init
  [Called By]
  - >> main

  MX_USART6_UART_Init (Thumb, 46 bytes, Stack size 8 bytes, usart.o(i.MX_USART6_UART_Init))
  [Stack]

  - Max Depth = 104
  - Call Chain = MX_USART6_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ __aeabi_uldivmod
  [Calls]
  - >> Error_Handler
  - >> HAL_UART_Init
  [Called By]
  - >> main

  MX_USB_DEVICE_Init (Thumb, 60 bytes, Stack size 8 bytes, usb_device.o(i.MX_USB_DEVICE_Init))
  [Stack]

  - Max Depth = 176
  - Call Chain = MX_USB_DEVICE_Init ⇒ USBD_Init ⇒ USBD_LL_Init ⇒ HAL_PCD_Init ⇒ HAL_PCD_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> Error_Handler
  - >> USBD_Start
  - >> USBD_RegisterClass
  - >> USBD_Init
  - >> USBD_CDC_RegisterInterface
  [Called By]
  - >> StartDefaultTask

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - >> Task_nuc

  NUC_Init (Thumb, 42 bytes, Stack size 8 bytes, nuc.o(i.NUC_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = NUC_Init ⇒ osThreadGetId
  [Calls]
  - >> osThreadGetId
  - >> BSP_UART_RegisterCallback
  [Called By]
  - >> Task_nuc

  NUC_RawParse (Thumb, 234 bytes, Stack size 24 bytes, nuc.o(i.NUC_RawParse))
  [Stack]

  - Max Depth = 32
  - Call Chain = NUC_RawParse ⇒ HAL_GPIO_TogglePin
  [Calls]
  - >> HAL_GPIO_TogglePin
  [Called By]
  - >> Task_nuc

  NUC_Send (Thumb, 110 bytes, Stack size 24 bytes, nuc.o(i.NUC_Send))
  [Stack]

  - Max Depth = 88
  - Call Chain = NUC_Send ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_UART_Transmit
  - >> BSP_UART_GetHandle
  [Called By]
  - >> NUC_Send_control

  NUC_Send_control (Thumb, 98 bytes, Stack size 16 bytes, nuc.o(i.NUC_Send_control))
  [Stack]

  - Max Depth = 104
  - Call Chain = NUC_Send_control ⇒ NUC_Send ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> NUC_Send
  [Called By]
  - >> Task_nuc

  NUC_StartReceiving (Thumb, 30 bytes, Stack size 8 bytes, nuc.o(i.NUC_StartReceiving))
  [Stack]

  - Max Depth = 108
  - Call Chain = NUC_StartReceiving ⇒ HAL_UARTEx_ReceiveToIdle_DMA ⇒ UART_Start_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UARTEx_ReceiveToIdle_DMA
  - >> BSP_UART_GetHandle
  [Called By]
  - >> Task_nuc

  NUC_WaitDmaCplt (Thumb, 28 bytes, Stack size 8 bytes, nuc.o(i.NUC_WaitDmaCplt))
  [Stack]

  - Max Depth = 112
  - Call Chain = NUC_WaitDmaCplt ⇒ osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadFlagsWait
  [Called By]
  - >> Task_nuc

  Navi_init (Thumb, 394 bytes, Stack size 24 bytes, navi.o(i.Navi_init))
  [Stack]

  - Max Depth = 40
  - Call Chain = Navi_init ⇒ PID_init
  [Calls]
  - >> PID_init
  - >> get_map_pointer
  [Called By]
  - >> Task_navi

  OTG_FS_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.OTG_FS_IRQHandler))
  [Stack]

  - Max Depth = 284
  - Call Chain = OTG_FS_IRQHandler ⇒ HAL_PCD_IRQHandler ⇒ PCD_EP_OutSetupPacket_int ⇒ HAL_PCD_SetupStageCallback ⇒ USBD_LL_SetupStage ⇒ USBD_StdDevReq ⇒ USBD_GetDescriptor ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> HAL_PCD_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  PID_calc (Thumb, 530 bytes, Stack size 0 bytes, pid.o(i.PID_calc))
  [Called By]

  - >> Chassis_Control
  - >> Task_AttiEsti
  - >> sick_point
  - >> ops9_AngleCorr
  - >> hold_point
  - >> POS_chassis_set

  PID_init (Thumb, 184 bytes, Stack size 16 bytes, pid.o(i.PID_init))
  [Stack]

  - Max Depth = 16
  - Call Chain = PID_init
  [Calls]
  - >> __ARM_isfinitef
  [Called By]
  - >> Chassis_init
  - >> Navi_init
  - >> Task_AttiEsti

  POS_chassis_set (Thumb, 100 bytes, Stack size 24 bytes, navi.o(i.POS_chassis_set))
  [Stack]

  - Max Depth = 56
  - Call Chain = POS_chassis_set ⇒ ops9_AngleCorr
  [Calls]
  - >> PID_calc
  - >> ops9_AngleCorr
  [Called By]
  - >> go_path

  REMOTE_Init (Thumb, 40 bytes, Stack size 8 bytes, remote_control.o(i.REMOTE_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = REMOTE_Init ⇒ osThreadGetId
  [Calls]
  - >> osThreadGetId
  - >> BSP_UART_RegisterCallback
  - >> __aeabi_memclr
  [Called By]
  - >> Task_remote

  REMOTE_ParseRC (Thumb, 282 bytes, Stack size 16 bytes, remote_control.o(i.REMOTE_ParseRC))
  [Stack]

  - Max Depth = 32
  - Call Chain = REMOTE_ParseRC ⇒ LD_HandleOffline
  [Calls]
  - >> LD_HandleOffline
  - >> LD_ParseRaw
  - >> Keymap
  [Called By]
  - >> Task_remote

  REMOTE_StartDmaRecv (Thumb, 30 bytes, Stack size 8 bytes, remote_control.o(i.REMOTE_StartDmaRecv))
  [Stack]

  - Max Depth = 108
  - Call Chain = REMOTE_StartDmaRecv ⇒ HAL_UARTEx_ReceiveToIdle_DMA ⇒ UART_Start_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UARTEx_ReceiveToIdle_DMA
  - >> BSP_UART_GetHandle
  [Called By]
  - >> Task_remote

  REMOTE_WaitDmaCplt (Thumb, 28 bytes, Stack size 8 bytes, remote_control.o(i.REMOTE_WaitDmaCplt))
  [Stack]

  - Max Depth = 112
  - Call Chain = REMOTE_WaitDmaCplt ⇒ osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadFlagsWait
  [Called By]
  - >> Task_remote

  StartDefaultTask (Thumb, 14 bytes, Stack size 0 bytes, freertos.o(i.StartDefaultTask))
  [Stack]

  - Max Depth = 176
  - Call Chain = StartDefaultTask ⇒ MX_USB_DEVICE_Init ⇒ USBD_Init ⇒ USBD_LL_Init ⇒ HAL_PCD_Init ⇒ HAL_PCD_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> osDelay
  - >> MX_USB_DEVICE_Init
  [Address Reference Count : 1]
  - freertos.o(i.MX_FREERTOS_Init)

  SysTick_Handler (Thumb, 20 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.SysTick_Handler))
  [Stack]

  - Max Depth = 40
  - Call Chain = SysTick_Handler ⇒ xPortSysTickHandler ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetSchedulerState
  - >> xPortSysTickHandler
  - >> HAL_IncTick
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  SystemClock_Config (Thumb, 170 bytes, Stack size 80 bytes, main.o(i.SystemClock_Config))
  [Stack]

  - Max Depth = 176
  - Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uldivmod
  [Calls]
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> Error_Handler
  - >> __aeabi_memclr4
  [Called By]
  - >> main

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

  - startup_stm32f407xx.o(.text)

  TIM1_UP_TIM10_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.TIM1_UP_TIM10_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = TIM1_UP_TIM10_IRQHandler ⇒ HAL_TIM_IRQHandler
  [Calls]
  - >> HAL_TIM_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  TIM7_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.TIM7_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = TIM7_IRQHandler ⇒ HAL_TIM_IRQHandler
  [Calls]
  - >> HAL_TIM_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  TIM_Base_SetConfig (Thumb, 170 bytes, Stack size 8 bytes, stm32f4xx_hal_tim.o(i.TIM_Base_SetConfig))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM_Base_SetConfig
  [Called By]
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_Base_Init

  TIM_CCxChannelCmd (Thumb, 34 bytes, Stack size 12 bytes, stm32f4xx_hal_tim.o(i.TIM_CCxChannelCmd))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIM_CCxChannelCmd
  [Called By]
  - >> HAL_TIM_PWM_Stop
  - >> HAL_TIM_PWM_Start

  TIM_ETR_SetConfig (Thumb, 22 bytes, Stack size 12 bytes, stm32f4xx_hal_tim.o(i.TIM_ETR_SetConfig))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIM_ETR_SetConfig
  [Called By]
  - >> HAL_TIM_ConfigClockSource

  TIM_OC2_SetConfig (Thumb, 114 bytes, Stack size 12 bytes, stm32f4xx_hal_tim.o(i.TIM_OC2_SetConfig))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIM_OC2_SetConfig
  [Called By]
  - >> HAL_TIM_PWM_ConfigChannel

  Task_AttiEsti (Thumb, 248 bytes, Stack size 8 bytes, atti_esti.o(i.Task_AttiEsti))
  [Stack]

  - Max Depth = 376
  - Call Chain = Task_AttiEsti ⇒ AHRS_Update ⇒ AHRS_UpdateIMU ⇒ InvSqrt ⇒ __hardfp_sqrtf ⇒ __set_errno
  [Calls]
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osKernelUnlock
  - >> osKernelLock
  - >> BSP_PWM_Start
  - >> BSP_PWM_Set
  - >> Config_Get
  - >> PID_init
  - >> PID_calc
  - >> detect_hook
  - >> BMI088_calibration
  - >> BMI088_WaitNew
  - >> BMI088_ParseGyro
  - >> BMI088_ParseAccl
  - >> BMI088_Init
  - >> BMI088_GyroWaitDmaCplt
  - >> BMI088_GyroStartDmaRecv
  - >> BMI088_GetUpdateFreq
  - >> BMI088_AcclWaitDmaCplt
  - >> BMI088_AcclStartDmaRecv
  - >> AHRS_Update
  - >> AHRS_Init
  - >> AHRS_GetEulr
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

  Task_Chassis (Thumb, 348 bytes, Stack size 0 bytes, chassis_task.o(i.Task_Chassis))
  [Stack]

  - Max Depth = 368
  - Call Chain = Task_Chassis ⇒ Chassis_Control ⇒ Chassis_speed_calculate ⇒ __hardfp_sin ⇒ __ieee754_rem_pio2 ⇒ __aeabi_dmul
  [Calls]
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osMessageQueueGet
  - >> osKernelUnlock
  - >> osKernelLock
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> Chassis_init
  - >> Chassis_UpdateFeedback
  - >> Chassis_Control
  - >> vofa_tx_main
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

  Task_Init (Thumb, 476 bytes, Stack size 16 bytes, init.o(i.Task_Init))
  [Stack]

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = Task_Init ⇒ osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osThreadNew
  - >> osThreadTerminate
  - >> osThreadGetId
  - >> osMessageQueueNew
  - >> osKernelUnlock
  - >> osKernelLock
  - >> Config_Get
  [Address Reference Count : 1]
  - freertos.o(i.MX_FREERTOS_Init)

  Task_action (Thumb, 152 bytes, Stack size 0 bytes, action_task.o(i.Task_action))
  [Stack]

  - Max Depth = 224
  - Call Chain = Task_action ⇒ ACTIONRECV_Init ⇒ osTimerNew ⇒ xTimerCreateStatic ⇒ prvInitialiseNewTimer ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> Action_HandleOffline
  - >> ACTION_WaitDmaCplt
  - >> ACTION_StartReceiving
  - >> ACTION_Parse
  - >> ACTION_DataRefresh
  - >> ACTIONRECV_Init
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

  Task_calc (Thumb, 86 bytes, Stack size 0 bytes, calc_task.o(i.Task_calc))
  [Stack]

  - Max Depth = 128
  - Call Chain = Task_calc ⇒ osMessageQueueGet ⇒ xQueueReceive ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osMessageQueueGet
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> path_select
  - >> block_select
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

  Task_can (Thumb, 246 bytes, Stack size 8 bytes, can_task.o(i.Task_can))
  [Stack]

  - Max Depth = 192
  - Call Chain = Task_can ⇒ CAN_Init ⇒ osMessageQueueNew ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osMessageQueueGet
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> CAN_VESC_Control
  - >> CAN_StoreMsg
  - >> CAN_Init
  - >> CAN_DJIMotor_Control
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

  Task_cmd (Thumb, 206 bytes, Stack size 0 bytes, cmd_task.o(i.Task_cmd))
  [Stack]

  - Max Depth = 136
  - Call Chain = Task_cmd ⇒ osMessageQueuePut ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osMessageQueueGet
  - >> osKernelUnlock
  - >> osKernelLock
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> CMD_ParseRc
  - >> CMD_ParseNuc
  - >> CMD_ParseAction
  - >> CMD_Init
  - >> CMD_CtrlSet
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

  Task_error_detect (Thumb, 676 bytes, Stack size 0 bytes, error_detect_task.o(i.Task_error_detect))
  [Stack]

  - Max Depth = 96
  - Call Chain = Task_error_detect ⇒ osDelayUntil ⇒ vTaskDelayUntil ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskDelay
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> xTaskGetTickCount
  - >> detect_init
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

  Task_navi (Thumb, 146 bytes, Stack size 0 bytes, navi_task.o(i.Task_navi))
  [Stack]

  - Max Depth = 360
  - Call Chain = Task_navi ⇒ go_path ⇒ hold_point ⇒ __hardfp_sin ⇒ __ieee754_rem_pio2 ⇒ __aeabi_dmul
  [Calls]
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osMessageQueueGet
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> sick_calculate_d
  - >> go_path
  - >> Navi_init
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

  Task_nuc (Thumb, 140 bytes, Stack size 0 bytes, nuc_task.o(i.Task_nuc))
  [Stack]

  - Max Depth = 136
  - Call Chain = Task_nuc ⇒ osMessageQueuePut ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osMessageQueueGet
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> NUC_WaitDmaCplt
  - >> NUC_StartReceiving
  - >> NUC_Send_control
  - >> NUC_RawParse
  - >> NUC_Init
  - >> NUC_HandleOffline
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

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

  - Max Depth = 136
  - Call Chain = Task_remote ⇒ osMessageQueuePut ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> osThreadGetStackSpace
  - >> osThreadGetId
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> REMOTE_WaitDmaCplt
  - >> REMOTE_StartDmaRecv
  - >> REMOTE_ParseRC
  - >> REMOTE_Init
  - >> LD_HandleOffline
  - >> DR16_HandleOffline
  [Address Reference Count : 1]
  - init.o(i.Task_Init)

  UART_Start_Receive_DMA (Thumb, 196 bytes, Stack size 32 bytes, stm32f4xx_hal_uart.o(i.UART_Start_Receive_DMA))
  [Stack]

  - Max Depth = 76
  - Call Chain = UART_Start_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_DMA_Start_IT
  [Called By]
  - >> HAL_UARTEx_ReceiveToIdle_DMA

  USART1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.USART1_IRQHandler))
  [Stack]

  - Max Depth = 88
  - Call Chain = USART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback
  [Calls]
  - >> HAL_UART_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  USART6_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it.o(i.USART6_IRQHandler))
  [Stack]

  - Max Depth = 88
  - Call Chain = USART6_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback
  [Calls]
  - >> HAL_UART_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  USBD_CDC_GetDeviceQualifierDescriptor (Thumb, 10 bytes, Stack size 0 bytes, usbd_cdc.o(i.USBD_CDC_GetDeviceQualifierDescriptor))
  [Address Reference Count : 1]

  - usbd_cdc.o(.data)

  USBD_CDC_ReceivePacket (Thumb, 74 bytes, Stack size 16 bytes, usbd_cdc.o(i.USBD_CDC_ReceivePacket))
  [Stack]

  - Max Depth = 132
  - Call Chain = USBD_CDC_ReceivePacket ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_PrepareReceive
  [Called By]
  - >> CDC_Receive_FS

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

  - >> MX_USB_DEVICE_Init

  USBD_CDC_SetRxBuffer (Thumb, 30 bytes, Stack size 8 bytes, usbd_cdc.o(i.USBD_CDC_SetRxBuffer))
  [Stack]

  - Max Depth = 8
  - Call Chain = USBD_CDC_SetRxBuffer
  [Called By]
  - >> CDC_Receive_FS
  - >> CDC_Init_FS

  USBD_CDC_SetTxBuffer (Thumb, 36 bytes, Stack size 12 bytes, usbd_cdc.o(i.USBD_CDC_SetTxBuffer))
  [Stack]

  - Max Depth = 12
  - Call Chain = USBD_CDC_SetTxBuffer
  [Called By]
  - >> CDC_Init_FS

  USBD_ClrClassConfig (Thumb, 28 bytes, Stack size 16 bytes, usbd_core.o(i.USBD_ClrClassConfig))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_ClrClassConfig
  [Called By]
  - >> USBD_SetConfig

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

  - >> USBD_StdEPReq
  - >> USBD_LL_DataOutStage
  - >> USBD_LL_DataInStage

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

  - >> USBD_StdItfReq
  - >> USBD_LL_DataOutStage

  USBD_CtlContinueRx (Thumb, 24 bytes, Stack size 16 bytes, usbd_ioreq.o(i.USBD_CtlContinueRx))
  [Stack]

  - Max Depth = 132
  - Call Chain = USBD_CtlContinueRx ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_PrepareReceive
  [Called By]
  - >> USBD_LL_DataOutStage

  USBD_CtlContinueSendData (Thumb, 24 bytes, Stack size 16 bytes, usbd_ioreq.o(i.USBD_CtlContinueSendData))
  [Stack]

  - Max Depth = 132
  - Call Chain = USBD_CtlContinueSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_Transmit
  [Called By]
  - >> USBD_LL_DataInStage

  USBD_CtlError (Thumb, 24 bytes, Stack size 16 bytes, usbd_ctlreq.o(i.USBD_CtlError))
  [Stack]

  - Max Depth = 72
  - Call Chain = USBD_CtlError ⇒ USBD_LL_StallEP ⇒ HAL_PCD_EP_SetStall ⇒ USB_EP0_OutStart
  [Calls]
  - >> USBD_LL_StallEP
  [Called By]
  - >> USBD_CDC_Setup
  - >> USBD_SetFeature
  - >> USBD_SetConfig
  - >> USBD_SetAddress
  - >> USBD_GetStatus
  - >> USBD_GetDescriptor
  - >> USBD_GetConfig
  - >> USBD_ClrFeature
  - >> USBD_StdItfReq
  - >> USBD_StdEPReq
  - >> USBD_StdDevReq

  USBD_CtlPrepareRx (Thumb, 40 bytes, Stack size 16 bytes, usbd_ioreq.o(i.USBD_CtlPrepareRx))
  [Stack]

  - Max Depth = 132
  - Call Chain = USBD_CtlPrepareRx ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_PrepareReceive
  [Called By]
  - >> USBD_CDC_Setup

  USBD_CtlReceiveStatus (Thumb, 26 bytes, Stack size 8 bytes, usbd_ioreq.o(i.USBD_CtlReceiveStatus))
  [Stack]

  - Max Depth = 124
  - Call Chain = USBD_CtlReceiveStatus ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_PrepareReceive
  [Called By]
  - >> USBD_LL_DataInStage

  USBD_CtlSendData (Thumb, 34 bytes, Stack size 16 bytes, usbd_ioreq.o(i.USBD_CtlSendData))
  [Stack]

  - Max Depth = 132
  - Call Chain = USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_Transmit
  [Called By]
  - >> USBD_CDC_Setup
  - >> USBD_GetStatus
  - >> USBD_GetDescriptor
  - >> USBD_GetConfig
  - >> USBD_StdEPReq

  USBD_CtlSendStatus (Thumb, 26 bytes, Stack size 8 bytes, usbd_ioreq.o(i.USBD_CtlSendStatus))
  [Stack]

  - Max Depth = 124
  - Call Chain = USBD_CtlSendStatus ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_Transmit
  [Called By]
  - >> USBD_SetFeature
  - >> USBD_SetConfig
  - >> USBD_SetAddress
  - >> USBD_GetDescriptor
  - >> USBD_ClrFeature
  - >> USBD_StdItfReq
  - >> USBD_StdEPReq
  - >> USBD_LL_DataOutStage

  USBD_FS_ConfigStrDescriptor (Thumb, 34 bytes, Stack size 16 bytes, usbd_desc.o(i.USBD_FS_ConfigStrDescriptor))
  [Stack]

  - Max Depth = 40
  - Call Chain = USBD_FS_ConfigStrDescriptor ⇒ USBD_GetString
  [Calls]
  - >> USBD_GetString
  [Address Reference Count : 1]
  - usbd_desc.o(.data)

  USBD_FS_DeviceDescriptor (Thumb, 10 bytes, Stack size 0 bytes, usbd_desc.o(i.USBD_FS_DeviceDescriptor))
  [Address Reference Count : 1]

  - usbd_desc.o(.data)

  USBD_FS_InterfaceStrDescriptor (Thumb, 34 bytes, Stack size 16 bytes, usbd_desc.o(i.USBD_FS_InterfaceStrDescriptor))
  [Stack]

  - Max Depth = 40
  - Call Chain = USBD_FS_InterfaceStrDescriptor ⇒ USBD_GetString
  [Calls]
  - >> USBD_GetString
  [Address Reference Count : 1]
  - usbd_desc.o(.data)

  USBD_FS_LangIDStrDescriptor (Thumb, 10 bytes, Stack size 0 bytes, usbd_desc.o(i.USBD_FS_LangIDStrDescriptor))
  [Address Reference Count : 1]

  - usbd_desc.o(.data)

  USBD_FS_ManufacturerStrDescriptor (Thumb, 20 bytes, Stack size 16 bytes, usbd_desc.o(i.USBD_FS_ManufacturerStrDescriptor))
  [Stack]

  - Max Depth = 40
  - Call Chain = USBD_FS_ManufacturerStrDescriptor ⇒ USBD_GetString
  [Calls]
  - >> USBD_GetString
  [Address Reference Count : 1]
  - usbd_desc.o(.data)

  USBD_FS_ProductStrDescriptor (Thumb, 34 bytes, Stack size 16 bytes, usbd_desc.o(i.USBD_FS_ProductStrDescriptor))
  [Stack]

  - Max Depth = 40
  - Call Chain = USBD_FS_ProductStrDescriptor ⇒ USBD_GetString
  [Calls]
  - >> USBD_GetString
  [Address Reference Count : 1]
  - usbd_desc.o(.data)

  USBD_FS_SerialStrDescriptor (Thumb, 18 bytes, Stack size 16 bytes, usbd_desc.o(i.USBD_FS_SerialStrDescriptor))
  [Stack]

  - Max Depth = 44
  - Call Chain = USBD_FS_SerialStrDescriptor ⇒ Get_SerialNum ⇒ IntToUnicode
  [Calls]
  - >> Get_SerialNum
  [Address Reference Count : 1]
  - usbd_desc.o(.data)

  USBD_GetEpDesc (Thumb, 80 bytes, Stack size 28 bytes, usbd_core.o(i.USBD_GetEpDesc))
  [Stack]

  - Max Depth = 36
  - Call Chain = USBD_GetEpDesc ⇒ USBD_GetNextDesc
  [Calls]
  - >> USBD_GetNextDesc
  [Called By]
  - >> USBD_CDC_GetOtherSpeedCfgDesc
  - >> USBD_CDC_GetHSCfgDesc
  - >> USBD_CDC_GetFSCfgDesc

  USBD_GetNextDesc (Thumb, 20 bytes, Stack size 8 bytes, usbd_core.o(i.USBD_GetNextDesc))
  [Stack]

  - Max Depth = 8
  - Call Chain = USBD_GetNextDesc
  [Called By]
  - >> USBD_GetEpDesc

  USBD_GetString (Thumb, 84 bytes, Stack size 24 bytes, usbd_ctlreq.o(i.USBD_GetString))
  [Stack]

  - Max Depth = 24
  - Call Chain = USBD_GetString
  [Calls]
  - >> USBD_GetLen
  [Called By]
  - >> USBD_FS_ProductStrDescriptor
  - >> USBD_FS_ManufacturerStrDescriptor
  - >> USBD_FS_InterfaceStrDescriptor
  - >> USBD_FS_ConfigStrDescriptor

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

  - >> USBD_LL_Transmit
  - >> USBD_LL_Start
  - >> USBD_LL_StallEP
  - >> USBD_LL_SetUSBAddress
  - >> USBD_LL_PrepareReceive
  - >> USBD_LL_OpenEP
  - >> USBD_LL_CloseEP
  - >> USBD_LL_ClearStallEP

  USBD_Init (Thumb, 58 bytes, Stack size 24 bytes, usbd_core.o(i.USBD_Init))
  [Stack]

  - Max Depth = 168
  - Call Chain = USBD_Init ⇒ USBD_LL_Init ⇒ HAL_PCD_Init ⇒ HAL_PCD_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> USBD_LL_Init
  [Called By]
  - >> MX_USB_DEVICE_Init

  USBD_LL_ClearStallEP (Thumb, 38 bytes, Stack size 24 bytes, usbd_conf.o(i.USBD_LL_ClearStallEP))
  [Stack]

  - Max Depth = 52
  - Call Chain = USBD_LL_ClearStallEP ⇒ HAL_PCD_EP_ClrStall ⇒ USB_EPClearStall
  [Calls]
  - >> HAL_PCD_EP_ClrStall
  - >> USBD_Get_USB_Status
  [Called By]
  - >> USBD_StdEPReq

  USBD_LL_CloseEP (Thumb, 38 bytes, Stack size 24 bytes, usbd_conf.o(i.USBD_LL_CloseEP))
  [Stack]

  - Max Depth = 56
  - Call Chain = USBD_LL_CloseEP ⇒ HAL_PCD_EP_Close ⇒ USB_DeactivateEndpoint
  [Calls]
  - >> HAL_PCD_EP_Close
  - >> USBD_Get_USB_Status
  [Called By]
  - >> USBD_CDC_DeInit

  USBD_LL_DataInStage (Thumb, 264 bytes, Stack size 32 bytes, usbd_core.o(i.USBD_LL_DataInStage))
  [Stack]

  - Max Depth = 164
  - Call Chain = USBD_LL_DataInStage ⇒ USBD_CtlContinueSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlReceiveStatus
  - >> USBD_CtlContinueSendData
  - >> USBD_RunTestMode
  - >> USBD_CoreFindEP
  - >> USBD_LL_StallEP
  - >> USBD_LL_PrepareReceive
  [Called By]
  - >> HAL_PCD_DataInStageCallback

  USBD_LL_DataOutStage (Thumb, 258 bytes, Stack size 32 bytes, usbd_core.o(i.USBD_LL_DataOutStage))
  [Stack]

  - Max Depth = 164
  - Call Chain = USBD_LL_DataOutStage ⇒ USBD_CtlContinueRx ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlSendStatus
  - >> USBD_CtlContinueRx
  - >> USBD_CoreFindIF
  - >> USBD_CoreFindEP
  [Called By]
  - >> HAL_PCD_DataOutStageCallback

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

  - >> HAL_PCD_ConnectCallback

  USBD_LL_DevDisconnected (Thumb, 38 bytes, Stack size 16 bytes, usbd_core.o(i.USBD_LL_DevDisconnected))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_LL_DevDisconnected
  [Called By]
  - >> HAL_PCD_DisconnectCallback

  USBD_LL_GetRxDataSize (Thumb, 18 bytes, Stack size 16 bytes, usbd_conf.o(i.USBD_LL_GetRxDataSize))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_LL_GetRxDataSize
  [Calls]
  - >> HAL_PCD_EP_GetRxCount
  [Called By]
  - >> USBD_CDC_DataOut

  USBD_LL_Init (Thumb, 100 bytes, Stack size 8 bytes, usbd_conf.o(i.USBD_LL_Init))
  [Stack]

  - Max Depth = 144
  - Call Chain = USBD_LL_Init ⇒ HAL_PCD_Init ⇒ HAL_PCD_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
  [Calls]
  - >> Error_Handler
  - >> HAL_PCDEx_SetTxFiFo
  - >> HAL_PCDEx_SetRxFiFo
  - >> HAL_PCD_Init
  [Called By]
  - >> USBD_Init

  USBD_LL_IsStallEP (Thumb, 56 bytes, Stack size 8 bytes, usbd_conf.o(i.USBD_LL_IsStallEP))
  [Stack]

  - Max Depth = 8
  - Call Chain = USBD_LL_IsStallEP
  [Called By]
  - >> USBD_StdEPReq

  USBD_LL_IsoINIncomplete (Thumb, 72 bytes, Stack size 16 bytes, usbd_core.o(i.USBD_LL_IsoINIncomplete))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_LL_IsoINIncomplete
  [Called By]
  - >> HAL_PCD_ISOINIncompleteCallback

  USBD_LL_IsoOUTIncomplete (Thumb, 72 bytes, Stack size 16 bytes, usbd_core.o(i.USBD_LL_IsoOUTIncomplete))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_LL_IsoOUTIncomplete
  [Called By]
  - >> HAL_PCD_ISOOUTIncompleteCallback

  USBD_LL_OpenEP (Thumb, 48 bytes, Stack size 32 bytes, usbd_conf.o(i.USBD_LL_OpenEP))
  [Stack]

  - Max Depth = 80
  - Call Chain = USBD_LL_OpenEP ⇒ HAL_PCD_EP_Open ⇒ USB_ActivateEndpoint
  [Calls]
  - >> HAL_PCD_EP_Open
  - >> USBD_Get_USB_Status
  [Called By]
  - >> USBD_CDC_Init
  - >> USBD_LL_Reset

  USBD_LL_PrepareReceive (Thumb, 48 bytes, Stack size 32 bytes, usbd_conf.o(i.USBD_LL_PrepareReceive))
  [Stack]

  - Max Depth = 116
  - Call Chain = USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> HAL_PCD_EP_Receive
  - >> USBD_Get_USB_Status
  [Called By]
  - >> USBD_CDC_ReceivePacket
  - >> USBD_CDC_Init
  - >> USBD_CtlPrepareRx
  - >> USBD_CtlReceiveStatus
  - >> USBD_CtlContinueRx
  - >> USBD_LL_DataInStage

  USBD_LL_Reset (Thumb, 108 bytes, Stack size 16 bytes, usbd_core.o(i.USBD_LL_Reset))
  [Stack]

  - Max Depth = 96
  - Call Chain = USBD_LL_Reset ⇒ USBD_LL_OpenEP ⇒ HAL_PCD_EP_Open ⇒ USB_ActivateEndpoint
  [Calls]
  - >> USBD_LL_OpenEP
  [Called By]
  - >> HAL_PCD_ResetCallback

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

  - >> HAL_PCD_ResumeCallback

  USBD_LL_SOF (Thumb, 40 bytes, Stack size 8 bytes, usbd_core.o(i.USBD_LL_SOF))
  [Stack]

  - Max Depth = 8
  - Call Chain = USBD_LL_SOF
  [Called By]
  - >> HAL_PCD_SOFCallback

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

  - >> HAL_PCD_ResetCallback

  USBD_LL_SetUSBAddress (Thumb, 38 bytes, Stack size 24 bytes, usbd_conf.o(i.USBD_LL_SetUSBAddress))
  [Stack]

  - Max Depth = 48
  - Call Chain = USBD_LL_SetUSBAddress ⇒ HAL_PCD_SetAddress ⇒ USB_SetDevAddress
  [Calls]
  - >> HAL_PCD_SetAddress
  - >> USBD_Get_USB_Status
  [Called By]
  - >> USBD_SetAddress

  USBD_LL_SetupStage (Thumb, 118 bytes, Stack size 16 bytes, usbd_core.o(i.USBD_LL_SetupStage))
  [Stack]

  - Max Depth = 188
  - Call Chain = USBD_LL_SetupStage ⇒ USBD_StdDevReq ⇒ USBD_GetDescriptor ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_StdItfReq
  - >> USBD_StdEPReq
  - >> USBD_StdDevReq
  - >> USBD_ParseSetupRequest
  - >> USBD_LL_StallEP
  [Called By]
  - >> HAL_PCD_SetupStageCallback

  USBD_LL_StallEP (Thumb, 38 bytes, Stack size 24 bytes, usbd_conf.o(i.USBD_LL_StallEP))
  [Stack]

  - Max Depth = 56
  - Call Chain = USBD_LL_StallEP ⇒ HAL_PCD_EP_SetStall ⇒ USB_EP0_OutStart
  [Calls]
  - >> HAL_PCD_EP_SetStall
  - >> USBD_Get_USB_Status
  [Called By]
  - >> USBD_CtlError
  - >> USBD_StdEPReq
  - >> USBD_LL_SetupStage
  - >> USBD_LL_DataInStage

  USBD_LL_Start (Thumb, 30 bytes, Stack size 16 bytes, usbd_conf.o(i.USBD_LL_Start))
  [Stack]

  - Max Depth = 32
  - Call Chain = USBD_LL_Start ⇒ HAL_PCD_Start
  [Calls]
  - >> HAL_PCD_Start
  - >> USBD_Get_USB_Status
  [Called By]
  - >> USBD_Start

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

  - >> HAL_PCD_SuspendCallback

  USBD_LL_Transmit (Thumb, 48 bytes, Stack size 32 bytes, usbd_conf.o(i.USBD_LL_Transmit))
  [Stack]

  - Max Depth = 116
  - Call Chain = USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> HAL_PCD_EP_Transmit
  - >> USBD_Get_USB_Status
  [Called By]
  - >> USBD_CDC_DataIn
  - >> USBD_CtlSendData
  - >> USBD_CtlSendStatus
  - >> USBD_CtlContinueSendData

  USBD_ParseSetupRequest (Thumb, 54 bytes, Stack size 16 bytes, usbd_ctlreq.o(i.USBD_ParseSetupRequest))
  [Stack]

  - Max Depth = 28
  - Call Chain = USBD_ParseSetupRequest ⇒ SWAPBYTE
  [Calls]
  - >> SWAPBYTE
  [Called By]
  - >> USBD_LL_SetupStage

  USBD_RegisterClass (Thumb, 72 bytes, Stack size 16 bytes, usbd_core.o(i.USBD_RegisterClass))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_RegisterClass
  [Called By]
  - >> MX_USB_DEVICE_Init

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

  - >> USBD_LL_DataInStage

  USBD_SetClassConfig (Thumb, 32 bytes, Stack size 16 bytes, usbd_core.o(i.USBD_SetClassConfig))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_SetClassConfig
  [Called By]
  - >> USBD_SetConfig

  USBD_Start (Thumb, 12 bytes, Stack size 8 bytes, usbd_core.o(i.USBD_Start))
  [Stack]

  - Max Depth = 40
  - Call Chain = USBD_Start ⇒ USBD_LL_Start ⇒ HAL_PCD_Start
  [Calls]
  - >> USBD_LL_Start
  [Called By]
  - >> MX_USB_DEVICE_Init

  USBD_StdDevReq (Thumb, 174 bytes, Stack size 16 bytes, usbd_ctlreq.o(i.USBD_StdDevReq))
  [Stack]

  - Max Depth = 172
  - Call Chain = USBD_StdDevReq ⇒ USBD_GetDescriptor ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlError
  - >> USBD_SetFeature
  - >> USBD_SetConfig
  - >> USBD_SetAddress
  - >> USBD_GetStatus
  - >> USBD_GetDescriptor
  - >> USBD_GetConfig
  - >> USBD_ClrFeature
  [Called By]
  - >> USBD_LL_SetupStage

  USBD_StdEPReq (Thumb, 640 bytes, Stack size 32 bytes, usbd_ctlreq.o(i.USBD_StdEPReq))
  [Stack]

  - Max Depth = 164
  - Call Chain = USBD_StdEPReq ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlSendData
  - >> USBD_CtlError
  - >> USBD_CtlSendStatus
  - >> USBD_CoreFindEP
  - >> USBD_LL_StallEP
  - >> USBD_LL_IsStallEP
  - >> USBD_LL_ClearStallEP
  [Called By]
  - >> USBD_LL_SetupStage

  USBD_StdItfReq (Thumb, 174 bytes, Stack size 24 bytes, usbd_ctlreq.o(i.USBD_StdItfReq))
  [Stack]

  - Max Depth = 148
  - Call Chain = USBD_StdItfReq ⇒ USBD_CtlSendStatus ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlError
  - >> USBD_CtlSendStatus
  - >> USBD_CoreFindIF
  [Called By]
  - >> USBD_LL_SetupStage

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

  - >> USBD_CDC_DeInit

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

  - >> USBD_CDC_Init

  USB_ActivateEndpoint (Thumb, 202 bytes, Stack size 16 bytes, stm32f4xx_ll_usb.o(i.USB_ActivateEndpoint))
  [Stack]

  - Max Depth = 16
  - Call Chain = USB_ActivateEndpoint
  [Called By]
  - >> HAL_PCD_EP_Open

  USB_ActivateSetup (Thumb, 40 bytes, Stack size 0 bytes, stm32f4xx_ll_usb.o(i.USB_ActivateSetup))
  [Called By]

  - >> HAL_PCD_IRQHandler

  USB_CoreInit (Thumb, 128 bytes, Stack size 32 bytes, stm32f4xx_ll_usb.o(i.USB_CoreInit))
  [Stack]

  - Max Depth = 40
  - Call Chain = USB_CoreInit ⇒ USB_CoreReset
  [Calls]
  - >> USB_CoreReset
  [Called By]
  - >> HAL_PCD_Init

  USB_DeactivateEndpoint (Thumb, 318 bytes, Stack size 16 bytes, stm32f4xx_ll_usb.o(i.USB_DeactivateEndpoint))
  [Stack]

  - Max Depth = 16
  - Call Chain = USB_DeactivateEndpoint
  [Called By]
  - >> HAL_PCD_EP_Close

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

  - >> HAL_PCD_Start

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

  - >> HAL_PCD_Init

  USB_DevInit (Thumb, 472 bytes, Stack size 36 bytes, stm32f4xx_ll_usb.o(i.USB_DevInit))
  [Stack]

  - Max Depth = 44
  - Call Chain = USB_DevInit ⇒ USB_FlushTxFifo
  [Calls]
  - >> USB_SetDevSpeed
  - >> USB_FlushTxFifo
  - >> USB_FlushRxFifo
  [Called By]
  - >> HAL_PCD_Init

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

  - >> HAL_PCD_Init

  USB_EP0StartXfer (Thumb, 472 bytes, Stack size 20 bytes, stm32f4xx_ll_usb.o(i.USB_EP0StartXfer))
  [Stack]

  - Max Depth = 20
  - Call Chain = USB_EP0StartXfer
  [Called By]
  - >> HAL_PCD_EP_Transmit
  - >> HAL_PCD_EP_Receive

  USB_EP0_OutStart (Thumb, 106 bytes, Stack size 16 bytes, stm32f4xx_ll_usb.o(i.USB_EP0_OutStart))
  [Stack]

  - Max Depth = 16
  - Call Chain = USB_EP0_OutStart
  [Called By]
  - >> HAL_PCD_EP_SetStall
  - >> PCD_EP_OutXfrComplete_int
  - >> PCD_EP_OutSetupPacket_int
  - >> HAL_PCD_IRQHandler

  USB_EPClearStall (Thumb, 142 bytes, Stack size 12 bytes, stm32f4xx_ll_usb.o(i.USB_EPClearStall))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_EPClearStall
  [Called By]
  - >> HAL_PCD_EP_ClrStall

  USB_EPSetStall (Thumb, 154 bytes, Stack size 12 bytes, stm32f4xx_ll_usb.o(i.USB_EPSetStall))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_EPSetStall
  [Called By]
  - >> HAL_PCD_EP_SetStall

  USB_EPStartXfer (Thumb, 836 bytes, Stack size 32 bytes, stm32f4xx_ll_usb.o(i.USB_EPStartXfer))
  [Stack]

  - Max Depth = 60
  - Call Chain = USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USB_WritePacket
  [Called By]
  - >> HAL_PCD_EP_Transmit
  - >> HAL_PCD_EP_Receive

  USB_EPStopXfer (Thumb, 236 bytes, Stack size 20 bytes, stm32f4xx_ll_usb.o(i.USB_EPStopXfer))
  [Stack]

  - Max Depth = 20
  - Call Chain = USB_EPStopXfer
  [Called By]
  - >> HAL_PCD_EP_Abort

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

  - >> HAL_PCD_Start

  USB_FlushRxFifo (Thumb, 80 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(i.USB_FlushRxFifo))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_FlushRxFifo
  [Called By]
  - >> USB_DevInit

  USB_FlushTxFifo (Thumb, 84 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(i.USB_FlushTxFifo))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_FlushTxFifo
  [Called By]
  - >> USB_DevInit
  - >> HAL_PCD_IRQHandler

  USB_GetDevSpeed (Thumb, 38 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(i.USB_GetDevSpeed))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_GetDevSpeed
  [Called By]
  - >> HAL_PCD_IRQHandler

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

  - >> USB_SetCurrentMode
  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_IRQHandler

  USB_ReadDevInEPInterrupt (Thumb, 50 bytes, Stack size 16 bytes, stm32f4xx_ll_usb.o(i.USB_ReadDevInEPInterrupt))
  [Stack]

  - Max Depth = 16
  - Call Chain = USB_ReadDevInEPInterrupt
  [Called By]
  - >> HAL_PCD_IRQHandler

  USB_ReadDevOutEPInterrupt (Thumb, 26 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(i.USB_ReadDevOutEPInterrupt))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_ReadDevOutEPInterrupt
  [Called By]
  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_IRQHandler

  USB_ReadPacket (Thumb, 96 bytes, Stack size 24 bytes, stm32f4xx_ll_usb.o(i.USB_ReadPacket))
  [Stack]

  - Max Depth = 24
  - Call Chain = USB_ReadPacket
  [Called By]
  - >> HAL_PCD_IRQHandler

  USB_SetCurrentMode (Thumb, 104 bytes, Stack size 16 bytes, stm32f4xx_ll_usb.o(i.USB_SetCurrentMode))
  [Stack]

  - Max Depth = 32
  - Call Chain = USB_SetCurrentMode ⇒ HAL_Delay
  [Calls]
  - >> HAL_Delay
  - >> USB_GetMode
  [Called By]
  - >> HAL_PCD_Init

  USB_SetDevAddress (Thumb, 42 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(i.USB_SetDevAddress))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_SetDevAddress
  [Called By]
  - >> HAL_PCD_SetAddress

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

  - >> USB_DevInit

  USB_SetTurnaroundTime (Thumb, 192 bytes, Stack size 12 bytes, stm32f4xx_ll_usb.o(i.USB_SetTurnaroundTime))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_SetTurnaroundTime
  [Called By]
  - >> HAL_PCD_IRQHandler

  USB_WritePacket (Thumb, 68 bytes, Stack size 28 bytes, stm32f4xx_ll_usb.o(i.USB_WritePacket))
  [Stack]

  - Max Depth = 28
  - Call Chain = USB_WritePacket
  [Called By]
  - >> USB_EPStartXfer
  - >> PCD_WriteEmptyTxFifo

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

  - startup_stm32f407xx.o(RESET)

  __ARM_fpclassify (Thumb, 48 bytes, Stack size 8 bytes, fpclassify.o(i.__ARM_fpclassify))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_fpclassify
  [Called By]
  - >> __hardfp_atan
  - >> __kernel_sin

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

  - >> __hardfp_tanf
  - >> __hardfp_sinf
  - >> __hardfp_atan2f
  - >> __hardfp_asinf

  __hardfp_asinf (Thumb, 258 bytes, Stack size 16 bytes, asinf.o(i.__hardfp_asinf))
  [Stack]

  - Max Depth = 40
  - Call Chain = __hardfp_asinf ⇒ sqrtf ⇒ __set_errno
  [Calls]
  - >> sqrtf
  - >> __mathlib_flt_underflow
  - >> __mathlib_flt_invalid
  - >> __mathlib_flt_infnan
  - >> __ARM_fpclassifyf
  - >> __set_errno
  [Called By]
  - >> AHRS_GetEulr

  __hardfp_atan (Thumb, 622 bytes, Stack size 48 bytes, atan.o(i.__hardfp_atan))
  [Stack]

  - Max Depth = 104
  - Call Chain = __hardfp_atan ⇒ __kernel_poly ⇒ __aeabi_dmul
  [Calls]
  - >> fabs
  - >> __aeabi_dmul
  - >> __aeabi_dsub
  - >> __aeabi_drsub
  - >> __aeabi_dadd
  - >> __aeabi_dneg
  - >> __kernel_poly
  - >> __ARM_fpclassify
  - >> __mathlib_dbl_underflow
  - >> __mathlib_dbl_infnan
  - >> __aeabi_ddiv
  [Called By]
  - >> Chassis_speed_calculate
  - >> atan

  __hardfp_atan2 (Thumb, 448 bytes, Stack size 56 bytes, atan2.o(i.__hardfp_atan2))
  [Stack]

  - Max Depth = 168
  - Call Chain = __hardfp_atan2 ⇒ atan ⇒ __hardfp_atan ⇒ __kernel_poly ⇒ __aeabi_dmul
  [Calls]
  - >> fabs
  - >> atan
  - >> __aeabi_dsub
  - >> __aeabi_drsub
  - >> __aeabi_dneg
  - >> __mathlib_dbl_infnan2
  - >> __aeabi_cdcmpeq
  - >> __aeabi_ddiv
  - >> __set_errno
  [Called By]
  - >> Chassis_speed_calculate

  __hardfp_atan2f (Thumb, 594 bytes, Stack size 32 bytes, atan2f.o(i.__hardfp_atan2f))
  [Stack]

  - Max Depth = 40
  - Call Chain = __hardfp_atan2f ⇒ __set_errno
  [Calls]
  - >> __mathlib_flt_underflow
  - >> __mathlib_flt_infnan2
  - >> __ARM_fpclassifyf
  - >> __set_errno
  [Called By]
  - >> AHRS_GetEulr

  __hardfp_cos (Thumb, 180 bytes, Stack size 32 bytes, cos.o(i.__hardfp_cos))
  [Stack]

  - Max Depth = 184
  - Call Chain = __hardfp_cos ⇒ __ieee754_rem_pio2 ⇒ __aeabi_dmul
  [Calls]
  - >> __aeabi_dneg
  - >> __kernel_sin
  - >> __ieee754_rem_pio2
  - >> __mathlib_dbl_invalid
  - >> __mathlib_dbl_infnan
  - >> __kernel_cos
  - >> __set_errno
  [Called By]
  - >> Chassis_speed_calculate
  - >> hold_point

  __hardfp_cosf (Thumb, 280 bytes, Stack size 8 bytes, cosf.o(i.__hardfp_cosf))
  [Stack]

  - Max Depth = 28
  - Call Chain = __hardfp_cosf ⇒ __mathlib_rredf2
  [Calls]
  - >> __mathlib_rredf2
  - >> __mathlib_flt_invalid
  - >> __mathlib_flt_infnan
  - >> __set_errno
  [Called By]
  - >> LowPassFilter2p_Init
  - >> Chassis_speed_calculate

  __hardfp_fabs (Thumb, 20 bytes, Stack size 8 bytes, fabs.o(i.__hardfp_fabs))
  [Stack]

  - Max Depth = 8
  - Call Chain = __hardfp_fabs
  [Called By]
  - >> Chassis_speed_calculate

  __hardfp_fmod (Thumb, 254 bytes, Stack size 48 bytes, fmod.o(i.__hardfp_fmod))
  [Stack]

  - Max Depth = 88
  - Call Chain = __hardfp_fmod ⇒ __mathlib_dbl_invalid ⇒ __aeabi_ddiv
  [Calls]
  - >> __aeabi_drsub
  - >> __mathlib_dbl_invalid
  - >> _drem
  - >> __set_errno
  [Called By]
  - >> Chassis_UpdateFeedback

  __hardfp_sin (Thumb, 180 bytes, Stack size 32 bytes, sin.o(i.__hardfp_sin))
  [Stack]

  - Max Depth = 184
  - Call Chain = __hardfp_sin ⇒ __ieee754_rem_pio2 ⇒ __aeabi_dmul
  [Calls]
  - >> __aeabi_dneg
  - >> __kernel_sin
  - >> __ieee754_rem_pio2
  - >> __mathlib_dbl_invalid
  - >> __mathlib_dbl_infnan
  - >> __kernel_cos
  - >> __set_errno
  [Called By]
  - >> Chassis_speed_calculate
  - >> hold_point

  __hardfp_sinf (Thumb, 344 bytes, Stack size 16 bytes, sinf.o(i.__hardfp_sinf))
  [Stack]

  - Max Depth = 36
  - Call Chain = __hardfp_sinf ⇒ __mathlib_rredf2
  [Calls]
  - >> __mathlib_rredf2
  - >> __mathlib_flt_underflow
  - >> __mathlib_flt_invalid
  - >> __mathlib_flt_infnan
  - >> __ARM_fpclassifyf
  - >> __set_errno
  [Called By]
  - >> Chassis_speed_calculate

  __hardfp_sqrt (Thumb, 122 bytes, Stack size 32 bytes, sqrt.o(i.__hardfp_sqrt))
  [Stack]

  - Max Depth = 72
  - Call Chain = __hardfp_sqrt ⇒ _dsqrt ⇒ __fpl_dnaninf
  [Calls]
  - >> _dsqrt
  - >> __set_errno
  [Called By]
  - >> Chassis_speed_calculate

  __hardfp_sqrtf (Thumb, 58 bytes, Stack size 16 bytes, sqrtf.o(i.__hardfp_sqrtf))
  [Stack]

  - Max Depth = 24
  - Call Chain = __hardfp_sqrtf ⇒ __set_errno
  [Calls]
  - >> __set_errno
  [Called By]
  - >> go_path
  - >> AHRS_Update
  - >> InvSqrt

  __hardfp_tanf (Thumb, 322 bytes, Stack size 16 bytes, tanf.o(i.__hardfp_tanf))
  [Stack]

  - Max Depth = 36
  - Call Chain = __hardfp_tanf ⇒ __mathlib_rredf2
  [Calls]
  - >> __mathlib_rredf2
  - >> __mathlib_flt_underflow
  - >> __mathlib_flt_invalid
  - >> __mathlib_flt_infnan
  - >> __ARM_fpclassifyf
  - >> __set_errno
  [Called By]
  - >> LowPassFilter2p_Init

  __ieee754_rem_pio2 (Thumb, 938 bytes, Stack size 120 bytes, rred.o(i.__ieee754_rem_pio2))
  [Stack]

  - Max Depth = 152
  - Call Chain = __ieee754_rem_pio2 ⇒ __aeabi_dmul
  [Calls]
  - >> fabs
  - >> __aeabi_dmul
  - >> __aeabi_dsub
  - >> __aeabi_drsub
  - >> __aeabi_dadd
  - >> __aeabi_dneg
  - >> __aeabi_ui2d
  - >> __aeabi_i2d
  - >> __aeabi_d2iz
  [Called By]
  - >> __hardfp_sin
  - >> __hardfp_cos

  __kernel_cos (Thumb, 322 bytes, Stack size 64 bytes, cos_i.o(i.__kernel_cos))
  [Stack]

  - Max Depth = 120
  - Call Chain = __kernel_cos ⇒ __kernel_poly ⇒ __aeabi_dmul
  [Calls]
  - >> __aeabi_dmul
  - >> __aeabi_dsub
  - >> __aeabi_drsub
  - >> __aeabi_d2iz
  - >> __kernel_poly
  [Called By]
  - >> __hardfp_sin
  - >> __hardfp_cos

  __kernel_poly (Thumb, 248 bytes, Stack size 24 bytes, poly.o(i.__kernel_poly))
  [Stack]

  - Max Depth = 56
  - Call Chain = __kernel_poly ⇒ __aeabi_dmul
  [Calls]
  - >> __aeabi_dmul
  - >> __aeabi_dadd
  [Called By]
  - >> __hardfp_atan
  - >> __kernel_sin
  - >> __kernel_cos

  __kernel_sin (Thumb, 280 bytes, Stack size 72 bytes, sin_i.o(i.__kernel_sin))
  [Stack]

  - Max Depth = 128
  - Call Chain = __kernel_sin ⇒ __kernel_poly ⇒ __aeabi_dmul
  [Calls]
  - >> __aeabi_dmul
  - >> __aeabi_dsub
  - >> __aeabi_drsub
  - >> __aeabi_dadd
  - >> __kernel_poly
  - >> __ARM_fpclassify
  - >> __mathlib_dbl_underflow
  [Called By]
  - >> __hardfp_sin
  - >> __hardfp_cos

  __mathlib_dbl_infnan (Thumb, 20 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_infnan))
  [Stack]

  - Max Depth = 24
  - Call Chain = __mathlib_dbl_infnan ⇒ __aeabi_dadd
  [Calls]
  - >> __aeabi_dadd
  [Called By]
  - >> __hardfp_sin
  - >> __hardfp_cos
  - >> __hardfp_atan

  __mathlib_dbl_infnan2 (Thumb, 20 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_infnan2))
  [Stack]

  - Max Depth = 24
  - Call Chain = __mathlib_dbl_infnan2 ⇒ __aeabi_dadd
  [Calls]
  - >> __aeabi_dadd
  [Called By]
  - >> __hardfp_atan2

  __mathlib_dbl_invalid (Thumb, 24 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_invalid))
  [Stack]

  - Max Depth = 40
  - Call Chain = __mathlib_dbl_invalid ⇒ __aeabi_ddiv
  [Calls]
  - >> __aeabi_ddiv
  [Called By]
  - >> __hardfp_sin
  - >> __hardfp_fmod
  - >> __hardfp_cos

  __mathlib_dbl_underflow (Thumb, 24 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_underflow))
  [Stack]

  - Max Depth = 40
  - Call Chain = __mathlib_dbl_underflow ⇒ __aeabi_dmul
  [Calls]
  - >> __aeabi_dmul
  [Called By]
  - >> __hardfp_atan
  - >> __kernel_sin

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

  - >> __hardfp_tanf
  - >> __hardfp_sinf
  - >> __hardfp_cosf
  - >> __hardfp_asinf

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

  - >> __hardfp_atan2f

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

  - >> __hardfp_tanf
  - >> __hardfp_sinf
  - >> __hardfp_cosf
  - >> __hardfp_asinf

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

  - >> __hardfp_tanf
  - >> __hardfp_sinf
  - >> __hardfp_atan2f
  - >> __hardfp_asinf

  __mathlib_rredf2 (Thumb, 316 bytes, Stack size 20 bytes, rredf.o(i.__mathlib_rredf2))
  [Stack]

  - Max Depth = 20
  - Call Chain = __mathlib_rredf2
  [Called By]
  - >> __hardfp_tanf
  - >> __hardfp_sinf
  - >> __hardfp_cosf

  abs_float_double (Thumb, 56 bytes, Stack size 0 bytes, user_math.o(i.abs_float_double))
  [Called By]

  - >> go_path
  - >> isArrive_path

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

  - Max Depth = 112
  - Call Chain = atan ⇒ __hardfp_atan ⇒ __kernel_poly ⇒ __aeabi_dmul
  [Calls]
  - >> __hardfp_atan
  [Called By]
  - >> __hardfp_atan2

  block_select (Thumb, 290 bytes, Stack size 0 bytes, map.o(i.block_select))
  [Called By]

  - >> Task_calc

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

  - >> main

  detect_hook (Thumb, 288 bytes, Stack size 8 bytes, error_detect_task.o(i.detect_hook))
  [Stack]

  - Max Depth = 8
  - Call Chain = detect_hook
  [Calls]
  - >> xTaskGetTickCount
  [Called By]
  - >> CAN_StoreMsg
  - >> Task_AttiEsti
  - >> NUC_IdleCallback

  eTaskGetState (Thumb, 128 bytes, Stack size 32 bytes, tasks.o(i.eTaskGetState))
  [Stack]

  - Max Depth = 32
  - Call Chain = eTaskGetState
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> osThreadTerminate

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

  - Max Depth = 8
  - Call Chain = fabs
  [Called By]
  - >> __hardfp_atan2
  - >> __hardfp_atan
  - >> __ieee754_rem_pio2

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

  - >> Navi_init

  go_path (Thumb, 952 bytes, Stack size 56 bytes, navi.o(i.go_path))
  [Stack]

  - Max Depth = 360
  - Call Chain = go_path ⇒ hold_point ⇒ __hardfp_sin ⇒ __ieee754_rem_pio2 ⇒ __aeabi_dmul
  [Calls]
  - >> abs_float_double
  - >> sick_point
  - >> isArrive_path
  - >> hold_point
  - >> POS_chassis_set
  - >> __hardfp_sqrtf
  [Called By]
  - >> Task_navi

  hold_point (Thumb, 522 bytes, Stack size 120 bytes, navi.o(i.hold_point))
  [Stack]

  - Max Depth = 304
  - Call Chain = hold_point ⇒ __hardfp_sin ⇒ __ieee754_rem_pio2 ⇒ __aeabi_dmul
  [Calls]
  - >> PID_calc
  - >> ops9_AngleCorr
  - >> __hardfp_sin
  - >> __hardfp_cos
  - >> __aeabi_f2d
  - >> __aeabi_dmul
  - >> __aeabi_dsub
  - >> __aeabi_dadd
  - >> __aeabi_d2f
  [Called By]
  - >> go_path

  isArrive_path (Thumb, 122 bytes, Stack size 40 bytes, navi.o(i.isArrive_path))
  [Stack]

  - Max Depth = 40
  - Call Chain = isArrive_path
  [Calls]
  - >> abs_float_double
  [Called By]
  - >> go_path

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

  - Max Depth = 192 + Unknown Stack Size
  - Call Chain = main ⇒ MX_FREERTOS_Init ⇒ osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osKernelStart
  - >> osKernelInitialize
  - >> delay_init
  - >> MX_USART6_UART_Init
  - >> MX_USART3_UART_Init
  - >> MX_USART1_UART_Init
  - >> MX_TIM7_Init
  - >> MX_TIM4_Init
  - >> MX_TIM10_Init
  - >> MX_SPI1_Init
  - >> MX_GPIO_Init
  - >> MX_FREERTOS_Init
  - >> MX_DMA_Init
  - >> MX_CRC_Init
  - >> MX_CAN2_Init
  - >> MX_CAN1_Init
  - >> HAL_Init
  - >> SystemClock_Config
  [Called By]
  - >> __rt_entry_main

  ops9_AngleCorr (Thumb, 146 bytes, Stack size 32 bytes, navi.o(i.ops9_AngleCorr))
  [Stack]

  - Max Depth = 32
  - Call Chain = ops9_AngleCorr
  [Calls]
  - >> PID_calc
  [Called By]
  - >> hold_point
  - >> POS_chassis_set

  osDelay (Thumb, 30 bytes, Stack size 16 bytes, cmsis_os2.o(i.osDelay))
  [Stack]

  - Max Depth = 72
  - Call Chain = osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskDelay
  - >> __get_IPSR
  [Called By]
  - >> StartDefaultTask
  - >> BSP_Delay
  - >> CAN_VESC_Control
  - >> vofa_tx_main

  osDelayUntil (Thumb, 52 bytes, Stack size 24 bytes, cmsis_os2.o(i.osDelayUntil))
  [Stack]

  - Max Depth = 96
  - Call Chain = osDelayUntil ⇒ vTaskDelayUntil ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskDelayUntil
  - >> __get_IPSR
  - >> xTaskGetTickCount
  [Called By]
  - >> Task_remote
  - >> Task_nuc
  - >> Task_navi
  - >> Task_error_detect
  - >> Task_cmd
  - >> Task_can
  - >> Task_calc
  - >> Task_action
  - >> Task_Chassis

  osKernelGetState (Thumb, 48 bytes, Stack size 8 bytes, cmsis_os2.o(i.osKernelGetState))
  [Stack]

  - Max Depth = 8
  - Call Chain = osKernelGetState
  [Calls]
  - >> xTaskGetSchedulerState
  [Called By]
  - >> BSP_Delay

  osKernelGetTickCount (Thumb, 26 bytes, Stack size 8 bytes, cmsis_os2.o(i.osKernelGetTickCount))
  [Stack]

  - Max Depth = 40
  - Call Chain = osKernelGetTickCount ⇒ xTaskGetTickCountFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> __get_IPSR
  - >> xTaskGetTickCountFromISR
  - >> xTaskGetTickCount
  [Called By]
  - >> Task_remote
  - >> Task_nuc
  - >> Task_navi
  - >> Task_error_detect
  - >> Task_cmd
  - >> Task_can
  - >> Task_calc
  - >> Task_action
  - >> Task_Chassis

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

  - >> BSP_Delay
  - >> Task_remote
  - >> Task_nuc
  - >> Task_navi
  - >> Task_error_detect
  - >> Task_cmd
  - >> Task_can
  - >> Task_calc
  - >> Task_action
  - >> Task_Chassis

  osKernelInitialize (Thumb, 38 bytes, Stack size 8 bytes, cmsis_os2.o(i.osKernelInitialize))
  [Stack]

  - Max Depth = 8
  - Call Chain = osKernelInitialize
  [Calls]
  - >> __get_IPSR
  [Called By]
  - >> main

  osKernelLock (Thumb, 56 bytes, Stack size 8 bytes, cmsis_os2.o(i.osKernelLock))
  [Stack]

  - Max Depth = 8
  - Call Chain = osKernelLock
  [Calls]
  - >> vTaskSuspendAll
  - >> xTaskGetSchedulerState
  - >> __get_IPSR
  [Called By]
  - >> Task_Init
  - >> Config_Set
  - >> BMI088_calibration
  - >> Task_cmd
  - >> Task_Chassis
  - >> Task_AttiEsti

  osKernelStart (Thumb, 82 bytes, Stack size 16 bytes, cmsis_os2.o(i.osKernelStart))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = osKernelStart ⇒ vTaskStartScheduler ⇒ xTimerCreateTimerTask ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vTaskStartScheduler
  - >> __get_IPSR
  [Called By]
  - >> main

  osKernelUnlock (Thumb, 68 bytes, Stack size 8 bytes, cmsis_os2.o(i.osKernelUnlock))
  [Stack]

  - Max Depth = 48
  - Call Chain = osKernelUnlock ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> xTaskGetSchedulerState
  - >> __get_IPSR
  [Called By]
  - >> Task_Init
  - >> Config_Set
  - >> BMI088_calibration
  - >> Task_cmd
  - >> Task_Chassis
  - >> Task_AttiEsti

  osMessageQueueGet (Thumb, 124 bytes, Stack size 32 bytes, cmsis_os2.o(i.osMessageQueueGet))
  [Stack]

  - Max Depth = 128
  - Call Chain = osMessageQueueGet ⇒ xQueueReceive ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> xQueueReceiveFromISR
  - >> xQueueReceive
  - >> __get_IPSR
  [Called By]
  - >> Task_nuc
  - >> Task_navi
  - >> Task_cmd
  - >> Task_can
  - >> Task_calc
  - >> Task_Chassis

  osMessageQueueNew (Thumb, 154 bytes, Stack size 32 bytes, cmsis_os2.o(i.osMessageQueueNew))
  [Stack]

  - Max Depth = 128
  - Call Chain = osMessageQueueNew ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueGenericCreateStatic
  - >> xQueueGenericCreate
  - >> vQueueAddToRegistry
  - >> __get_IPSR
  [Called By]
  - >> Task_Init
  - >> CAN_Init

  osMessageQueuePut (Thumb, 128 bytes, Stack size 32 bytes, cmsis_os2.o(i.osMessageQueuePut))
  [Stack]

  - Max Depth = 136
  - Call Chain = osMessageQueuePut ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend
  - >> __get_IPSR
  [Called By]
  - >> Task_remote
  - >> Task_nuc
  - >> Task_navi
  - >> Task_cmd
  - >> Task_can
  - >> Task_action
  - >> Task_Chassis
  - >> Task_AttiEsti
  - >> CAN_CAN2RxFifoMsgPendingCallback
  - >> CAN_CAN1RxFifoMsgPendingCallback

  osMessageQueueReset (Thumb, 40 bytes, Stack size 16 bytes, cmsis_os2.o(i.osMessageQueueReset))
  [Stack]

  - Max Depth = 48
  - Call Chain = osMessageQueueReset ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xQueueGenericReset
  - >> __get_IPSR
  [Called By]
  - >> Task_remote
  - >> Task_nuc
  - >> Task_navi
  - >> Task_cmd
  - >> Task_can
  - >> Task_action
  - >> Task_Chassis
  - >> Task_AttiEsti

  osThreadFlagsClear (Thumb, 88 bytes, Stack size 24 bytes, cmsis_os2.o(i.osThreadFlagsClear))
  [Stack]

  - Max Depth = 56
  - Call Chain = osThreadFlagsClear ⇒ xTaskGenericNotify
  [Calls]
  - >> xTaskGenericNotify
  - >> xTaskGetCurrentTaskHandle
  - >> __get_IPSR
  [Called By]
  - >> ACTION_DataRefresh
  - >> BMI088_calibration

  osThreadFlagsGet (Thumb, 48 bytes, Stack size 16 bytes, cmsis_os2.o(i.osThreadFlagsGet))
  [Stack]

  - Max Depth = 48
  - Call Chain = osThreadFlagsGet ⇒ xTaskGenericNotify
  [Calls]
  - >> xTaskGenericNotify
  - >> xTaskGetCurrentTaskHandle
  - >> __get_IPSR
  [Called By]
  - >> ACTION_DataRefresh
  - >> BMI088_calibration

  osThreadFlagsSet (Thumb, 122 bytes, Stack size 32 bytes, cmsis_os2.o(i.osThreadFlagsSet))
  [Stack]

  - Max Depth = 88
  - Call Chain = osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> xTaskGenericNotifyFromISR
  - >> xTaskGenericNotify
  - >> __get_IPSR
  [Called By]
  - >> BMI088_GyroIntCallback
  - >> BMI088_CaliintCallback
  - >> BMI088_AcclIntCallback
  - >> BMI088_RxCpltCallback
  - >> REMOTE_RxCpltCallback
  - >> Ops10msTimerCallback
  - >> ACTION_IdleCallback
  - >> NUC_IdleCallback

  osThreadFlagsWait (Thumb, 178 bytes, Stack size 48 bytes, cmsis_os2.o(i.osThreadFlagsWait))
  [Stack]

  - Max Depth = 104
  - Call Chain = osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> xTaskNotifyWait
  - >> __get_IPSR
  - >> xTaskGetTickCount
  [Called By]
  - >> REMOTE_WaitDmaCplt
  - >> ACTION_WaitDmaCplt
  - >> NUC_WaitDmaCplt
  - >> BMI088_WaitNew
  - >> BMI088_GyroWaitDmaCplt
  - >> BMI088_AcclWaitDmaCplt

  osThreadGetId (Thumb, 12 bytes, Stack size 8 bytes, cmsis_os2.o(i.osThreadGetId))
  [Stack]

  - Max Depth = 8
  - Call Chain = osThreadGetId
  [Calls]
  - >> xTaskGetCurrentTaskHandle
  [Called By]
  - >> Task_Init
  - >> REMOTE_Init
  - >> ACTIONRECV_Init
  - >> NUC_Init
  - >> BMI088_Init
  - >> Task_remote
  - >> Task_nuc
  - >> Task_navi
  - >> Task_error_detect
  - >> Task_cmd
  - >> Task_can
  - >> Task_calc
  - >> Task_action
  - >> Task_Chassis
  - >> Task_AttiEsti

  osThreadGetStackSpace (Thumb, 30 bytes, Stack size 16 bytes, cmsis_os2.o(i.osThreadGetStackSpace))
  [Stack]

  - Max Depth = 40
  - Call Chain = osThreadGetStackSpace ⇒ uxTaskGetStackHighWaterMark
  [Calls]
  - >> uxTaskGetStackHighWaterMark
  - >> __get_IPSR
  [Called By]
  - >> Task_remote
  - >> Task_nuc
  - >> Task_navi
  - >> Task_error_detect
  - >> Task_cmd
  - >> Task_can
  - >> Task_calc
  - >> Task_action
  - >> Task_Chassis
  - >> Task_AttiEsti

  osThreadNew (Thumb, 184 bytes, Stack size 48 bytes, cmsis_os2.o(i.osThreadNew))
  [Stack]

  - Max Depth = 184 + Unknown Stack Size
  - Call Chain = osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> __get_IPSR
  - >> xTaskCreateStatic
  - >> xTaskCreate
  [Called By]
  - >> Task_Init
  - >> MX_FREERTOS_Init

  osThreadTerminate (Thumb, 60 bytes, Stack size 24 bytes, cmsis_os2.o(i.osThreadTerminate))
  [Stack]

  - Max Depth = 104
  - Call Chain = osThreadTerminate ⇒ vTaskDelete ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskDelete
  - >> eTaskGetState
  - >> __get_IPSR
  [Called By]
  - >> Task_Init

  osTimerNew (Thumb, 182 bytes, Stack size 48 bytes, cmsis_os2.o(i.osTimerNew))
  [Stack]

  - Max Depth = 216
  - Call Chain = osTimerNew ⇒ xTimerCreateStatic ⇒ prvInitialiseNewTimer ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vPortFree
  - >> pvPortMalloc
  - >> __get_IPSR
  - >> xTimerCreateStatic
  - >> xTimerCreate
  [Called By]
  - >> ACTIONRECV_Init

  osTimerStart (Thumb, 60 bytes, Stack size 24 bytes, cmsis_os2.o(i.osTimerStart))
  [Stack]

  - Max Depth = 176
  - Call Chain = osTimerStart ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> __get_IPSR
  - >> xTimerGenericCommand
  [Called By]
  - >> ACTIONRECV_Init

  path_select (Thumb, 162 bytes, Stack size 0 bytes, map.o(i.path_select))
  [Called By]

  - >> Task_calc

  pvPortMalloc (Thumb, 306 bytes, Stack size 24 bytes, heap_4.o(i.pvPortMalloc))
  [Stack]

  - Max Depth = 64
  - Call Chain = pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvInsertBlockIntoFreeList
  - >> prvHeapInit
  [Called By]
  - >> xQueueGenericCreate
  - >> osTimerNew
  - >> xTimerCreate
  - >> xTaskCreate

  pvTimerGetTimerID (Thumb, 44 bytes, Stack size 16 bytes, timers.o(i.pvTimerGetTimerID))
  [Stack]

  - Max Depth = 16
  - Call Chain = pvTimerGetTimerID
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> TimerCallback

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

  - >> prvInitialiseNewTask

  sick_calculate_d (Thumb, 406 bytes, Stack size 32 bytes, navi.o(i.sick_calculate_d))
  [Stack]

  - Max Depth = 32
  - Call Chain = sick_calculate_d
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> Task_navi

  sick_point (Thumb, 366 bytes, Stack size 24 bytes, navi.o(i.sick_point))
  [Stack]

  - Max Depth = 24
  - Call Chain = sick_point
  [Calls]
  - >> PID_calc
  [Called By]
  - >> go_path

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

  - Max Depth = 24
  - Call Chain = sqrtf ⇒ __set_errno
  [Calls]
  - >> __set_errno
  [Called By]
  - >> __hardfp_asinf

  uxListRemove (Thumb, 40 bytes, Stack size 0 bytes, list.o(i.uxListRemove))
  [Called By]

  - >> xTaskResumeAll
  - >> vTaskDelete
  - >> prvCheckTasksWaitingTermination
  - >> prvAddCurrentTaskToDelayedList
  - >> xTaskGenericNotifyFromISR
  - >> xTaskGenericNotify
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityDisinherit
  - >> prvSwitchTimerLists
  - >> prvProcessReceivedCommands
  - >> prvProcessExpiredTimer
  - >> xTaskIncrementTick

  uxTaskGetStackHighWaterMark (Thumb, 34 bytes, Stack size 24 bytes, tasks.o(i.uxTaskGetStackHighWaterMark))
  [Stack]

  - Max Depth = 24
  - Call Chain = uxTaskGetStackHighWaterMark
  [Calls]
  - >> prvTaskCheckFreeStackSpace
  [Called By]
  - >> osThreadGetStackSpace

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

  - >> vTaskStartScheduler

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

  - >> xTimerCreateTimerTask

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

  - >> vTaskSwitchContext

  vListInitialise (Thumb, 26 bytes, Stack size 0 bytes, list.o(i.vListInitialise))
  [Called By]

  - >> prvInitialiseTaskLists
  - >> xQueueGenericReset
  - >> prvCheckForValidListAndQueue

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

  - >> prvInitialiseNewTask
  - >> prvInitialiseNewTimer

  vListInsert (Thumb, 52 bytes, Stack size 8 bytes, list.o(i.vListInsert))
  [Stack]

  - Max Depth = 8
  - Call Chain = vListInsert
  [Called By]
  - >> prvAddCurrentTaskToDelayedList
  - >> vTaskPlaceOnEventList
  - >> prvSwitchTimerLists
  - >> prvInsertTimerInActiveList

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

  - >> xTaskResumeAll
  - >> vTaskDelete
  - >> prvAddNewTaskToReadyList
  - >> prvAddCurrentTaskToDelayedList
  - >> xTaskGenericNotifyFromISR
  - >> xTaskGenericNotify
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityDisinherit
  - >> vTaskPlaceOnEventListRestricted
  - >> xTaskIncrementTick

  vPortEnterCritical (Thumb, 76 bytes, Stack size 0 bytes, port.o(i.vPortEnterCritical))
  [Called By]

  - >> xTaskResumeAll
  - >> vTaskDelete
  - >> eTaskGetState
  - >> prvCheckTasksWaitingTermination
  - >> prvAddNewTaskToReadyList
  - >> xTaskNotifyWait
  - >> xTaskGenericNotify
  - >> xTaskCheckForTimeOut
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> vQueueWaitForMessageRestricted
  - >> prvUnlockQueue
  - >> prvIsQueueFull
  - >> prvIsQueueEmpty
  - >> pvTimerGetTimerID
  - >> prvCheckForValidListAndQueue

  vPortExitCritical (Thumb, 56 bytes, Stack size 0 bytes, port.o(i.vPortExitCritical))
  [Called By]

  - >> xTaskResumeAll
  - >> vTaskDelete
  - >> eTaskGetState
  - >> prvCheckTasksWaitingTermination
  - >> prvAddNewTaskToReadyList
  - >> xTaskNotifyWait
  - >> xTaskGenericNotify
  - >> xTaskCheckForTimeOut
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> vQueueWaitForMessageRestricted
  - >> prvUnlockQueue
  - >> prvIsQueueFull
  - >> prvIsQueueEmpty
  - >> pvTimerGetTimerID
  - >> prvCheckForValidListAndQueue

  vPortFree (Thumb, 150 bytes, Stack size 16 bytes, heap_4.o(i.vPortFree))
  [Stack]

  - Max Depth = 56
  - Call Chain = vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvInsertBlockIntoFreeList
  [Called By]
  - >> prvDeleteTCB
  - >> osTimerNew
  - >> prvProcessReceivedCommands
  - >> xTaskCreate

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

  - >> xPortStartScheduler

  vPortValidateInterruptPriority (Thumb, 106 bytes, Stack size 16 bytes, port.o(i.vPortValidateInterruptPriority))
  [Stack]

  - Max Depth = 16
  - Call Chain = vPortValidateInterruptPriority
  [Calls]
  - >> vPortGetIPSR
  [Called By]
  - >> xTaskGenericNotifyFromISR
  - >> xQueueReceiveFromISR
  - >> xQueueGenericSendFromISR
  - >> xTaskGetTickCountFromISR

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

  - >> osMessageQueueNew
  - >> prvCheckForValidListAndQueue

  vQueueWaitForMessageRestricted (Thumb, 74 bytes, Stack size 24 bytes, queue.o(i.vQueueWaitForMessageRestricted))
  [Stack]

  - Max Depth = 72
  - Call Chain = vQueueWaitForMessageRestricted ⇒ vTaskPlaceOnEventListRestricted ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vTaskPlaceOnEventListRestricted
  - >> prvUnlockQueue
  [Called By]
  - >> prvProcessTimerOrBlockTask

  vTaskDelay (Thumb, 82 bytes, Stack size 16 bytes, tasks.o(i.vTaskDelay))
  [Stack]

  - Max Depth = 56
  - Call Chain = vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvAddCurrentTaskToDelayedList
  [Called By]
  - >> osDelay
  - >> Task_error_detect

  vTaskDelayUntil (Thumb, 200 bytes, Stack size 32 bytes, tasks.o(i.vTaskDelayUntil))
  [Stack]

  - Max Depth = 72
  - Call Chain = vTaskDelayUntil ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvAddCurrentTaskToDelayedList
  [Called By]
  - >> osDelayUntil

  vTaskDelete (Thumb, 168 bytes, Stack size 16 bytes, tasks.o(i.vTaskDelete))
  [Stack]

  - Max Depth = 80
  - Call Chain = vTaskDelete ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> prvResetNextTaskUnblockTime
  - >> prvDeleteTCB
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> osThreadTerminate

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

  - >> xTaskCheckForTimeOut
  - >> xQueueReceive
  - >> xQueueGenericSend

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

  - >> prvUnlockQueue

  vTaskPlaceOnEventList (Thumb, 52 bytes, Stack size 16 bytes, tasks.o(i.vTaskPlaceOnEventList))
  [Stack]

  - Max Depth = 48
  - Call Chain = vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> prvAddCurrentTaskToDelayedList
  - >> vListInsert
  [Called By]
  - >> xQueueReceive
  - >> xQueueGenericSend

  vTaskPlaceOnEventListRestricted (Thumb, 60 bytes, Stack size 16 bytes, tasks.o(i.vTaskPlaceOnEventListRestricted))
  [Stack]

  - Max Depth = 48
  - Call Chain = vTaskPlaceOnEventListRestricted ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> prvAddCurrentTaskToDelayedList
  - >> vListInsertEnd
  [Called By]
  - >> vQueueWaitForMessageRestricted

  vTaskStartScheduler (Thumb, 156 bytes, Stack size 32 bytes, tasks.o(i.vTaskStartScheduler))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = vTaskStartScheduler ⇒ xTimerCreateTimerTask ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTimerCreateTimerTask
  - >> xPortStartScheduler
  - >> vApplicationGetIdleTaskMemory
  - >> xTaskCreateStatic
  [Called By]
  - >> osKernelStart

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

  - >> vPortFree
  - >> pvPortMalloc
  - >> vTaskDelayUntil
  - >> vTaskDelay
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> osKernelLock
  - >> prvProcessTimerOrBlockTask

  vTaskSwitchContext (Thumb, 152 bytes, Stack size 8 bytes, tasks.o(i.vTaskSwitchContext))
  [Stack]

  - Max Depth = 8
  - Call Chain = vTaskSwitchContext
  [Calls]
  - >> vApplicationStackOverflowHook
  [Called By]
  - >> PendSV_Handler

  vofa_tx_main (Thumb, 72 bytes, Stack size 80 bytes, vofa.o(i.vofa_tx_main))
  [Stack]

  - Max Depth = 152
  - Call Chain = vofa_tx_main ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy4
  [Called By]
  - >> Task_Chassis

  xPortStartScheduler (Thumb, 330 bytes, Stack size 16 bytes, port.o(i.xPortStartScheduler))
  [Stack]

  - Max Depth = 16
  - Call Chain = xPortStartScheduler
  [Calls]
  - >> __asm___6_port_c_39a90d8d__prvEnableVFP
  - >> __asm___6_port_c_39a90d8d__prvStartFirstTask
  - >> vPortSetupTimerInterrupt
  [Called By]
  - >> vTaskStartScheduler

  xPortSysTickHandler (Thumb, 46 bytes, Stack size 8 bytes, port.o(i.xPortSysTickHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = xPortSysTickHandler ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskIncrementTick
  [Called By]
  - >> SysTick_Handler

  xQueueGenericCreate (Thumb, 90 bytes, Stack size 32 bytes, queue.o(i.xQueueGenericCreate))
  [Stack]

  - Max Depth = 96
  - Call Chain = xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> pvPortMalloc
  - >> prvInitialiseNewQueue
  [Called By]
  - >> osMessageQueueNew

  xQueueGenericCreateStatic (Thumb, 224 bytes, Stack size 32 bytes, queue.o(i.xQueueGenericCreateStatic))
  [Stack]

  - Max Depth = 88
  - Call Chain = xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> prvInitialiseNewQueue
  [Called By]
  - >> osMessageQueueNew
  - >> prvCheckForValidListAndQueue

  xQueueGenericReset (Thumb, 146 bytes, Stack size 16 bytes, queue.o(i.xQueueGenericReset))
  [Stack]

  - Max Depth = 32
  - Call Chain = xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  - >> xTaskRemoveFromEventList
  [Called By]
  - >> prvInitialiseNewQueue
  - >> osMessageQueueReset

  xQueueGenericSend (Thumb, 420 bytes, Stack size 56 bytes, queue.o(i.xQueueGenericSend))
  [Stack]

  - Max Depth = 104
  - Call Chain = xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> xTaskGetSchedulerState
  - >> xTaskRemoveFromEventList
  - >> xTaskCheckForTimeOut
  - >> vTaskPlaceOnEventList
  - >> vTaskInternalSetTimeOutState
  - >> prvUnlockQueue
  - >> prvIsQueueFull
  - >> prvCopyDataToQueue
  [Called By]
  - >> osMessageQueuePut
  - >> xTimerGenericCommand

  xQueueGenericSendFromISR (Thumb, 252 bytes, Stack size 40 bytes, queue.o(i.xQueueGenericSendFromISR))
  [Stack]

  - Max Depth = 80
  - Call Chain = xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> vPortValidateInterruptPriority
  - >> prvCopyDataToQueue
  [Called By]
  - >> osMessageQueuePut
  - >> xTimerGenericCommand

  xQueueReceive (Thumb, 356 bytes, Stack size 48 bytes, queue.o(i.xQueueReceive))
  [Stack]

  - Max Depth = 96
  - Call Chain = xQueueReceive ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> xTaskGetSchedulerState
  - >> xTaskRemoveFromEventList
  - >> xTaskCheckForTimeOut
  - >> vTaskPlaceOnEventList
  - >> vTaskInternalSetTimeOutState
  - >> prvUnlockQueue
  - >> prvIsQueueEmpty
  - >> prvCopyDataFromQueue
  [Called By]
  - >> osMessageQueueGet
  - >> prvProcessReceivedCommands

  xQueueReceiveFromISR (Thumb, 202 bytes, Stack size 40 bytes, queue.o(i.xQueueReceiveFromISR))
  [Stack]

  - Max Depth = 56
  - Call Chain = xQueueReceiveFromISR ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> vPortValidateInterruptPriority
  - >> prvCopyDataFromQueue
  [Called By]
  - >> osMessageQueueGet

  xTaskCheckForTimeOut (Thumb, 156 bytes, Stack size 16 bytes, tasks.o(i.xTaskCheckForTimeOut))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskCheckForTimeOut
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vTaskInternalSetTimeOutState
  [Called By]
  - >> xQueueReceive
  - >> xQueueGenericSend

  xTaskCreate (Thumb, 100 bytes, Stack size 72 bytes, tasks.o(i.xTaskCreate))
  [Stack]

  - Max Depth = 136 + Unknown Stack Size
  - Call Chain = xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortFree
  - >> pvPortMalloc
  - >> prvInitialiseNewTask
  - >> prvAddNewTaskToReadyList
  [Called By]
  - >> osThreadNew

  xTaskCreateStatic (Thumb, 186 bytes, Stack size 56 bytes, tasks.o(i.xTaskCreateStatic))
  [Stack]

  - Max Depth = 96 + Unknown Stack Size
  - Call Chain = xTaskCreateStatic ⇒ prvInitialiseNewTask
  [Calls]
  - >> prvInitialiseNewTask
  - >> prvAddNewTaskToReadyList
  [Called By]
  - >> osThreadNew
  - >> vTaskStartScheduler
  - >> xTimerCreateTimerTask

  xTaskGenericNotify (Thumb, 278 bytes, Stack size 32 bytes, tasks.o(i.xTaskGenericNotify))
  [Stack]

  - Max Depth = 32
  - Call Chain = xTaskGenericNotify
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> osThreadFlagsSet
  - >> osThreadFlagsGet
  - >> osThreadFlagsClear

  xTaskGenericNotifyFromISR (Thumb, 332 bytes, Stack size 40 bytes, tasks.o(i.xTaskGenericNotifyFromISR))
  [Stack]

  - Max Depth = 56
  - Call Chain = xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> vPortValidateInterruptPriority
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> osThreadFlagsSet

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

  - >> osThreadGetId
  - >> osThreadFlagsGet
  - >> osThreadFlagsClear

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

  - >> SysTick_Handler
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> osKernelUnlock
  - >> osKernelLock
  - >> osKernelGetState
  - >> xTimerGenericCommand

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

  - >> osThreadFlagsWait
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> prvSampleTimeNow
  - >> detect_hook
  - >> Task_error_detect

  xTaskGetTickCountFromISR (Thumb, 16 bytes, Stack size 16 bytes, tasks.o(i.xTaskGetTickCountFromISR))
  [Stack]

  - Max Depth = 32
  - Call Chain = xTaskGetTickCountFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> vPortValidateInterruptPriority
  [Called By]
  - >> osKernelGetTickCount

  xTaskIncrementTick (Thumb, 280 bytes, Stack size 24 bytes, tasks.o(i.xTaskIncrementTick))
  [Stack]

  - Max Depth = 24
  - Call Chain = xTaskIncrementTick
  [Calls]
  - >> prvResetNextTaskUnblockTime
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xTaskResumeAll
  - >> xPortSysTickHandler

  xTaskNotifyWait (Thumb, 150 bytes, Stack size 24 bytes, tasks.o(i.xTaskNotifyWait))
  [Stack]

  - Max Depth = 56
  - Call Chain = xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> prvAddCurrentTaskToDelayedList
  [Called By]
  - >> osThreadFlagsWait

  xTaskPriorityDisinherit (Thumb, 152 bytes, Stack size 16 bytes, tasks.o(i.xTaskPriorityDisinherit))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskPriorityDisinherit
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> prvCopyDataToQueue

  xTaskRemoveFromEventList (Thumb, 126 bytes, Stack size 16 bytes, tasks.o(i.xTaskRemoveFromEventList))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskRemoveFromEventList
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xQueueReceiveFromISR
  - >> xQueueReceive
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> prvUnlockQueue

  xTaskResumeAll (Thumb, 222 bytes, Stack size 16 bytes, tasks.o(i.xTaskResumeAll))
  [Stack]

  - Max Depth = 40
  - Call Chain = xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> prvResetNextTaskUnblockTime
  - >> vListInsertEnd
  - >> uxListRemove
  - >> xTaskIncrementTick
  [Called By]
  - >> vPortFree
  - >> pvPortMalloc
  - >> vTaskDelayUntil
  - >> vTaskDelay
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> osKernelUnlock
  - >> prvProcessTimerOrBlockTask

  xTimerCreate (Thumb, 54 bytes, Stack size 40 bytes, timers.o(i.xTimerCreate))
  [Stack]

  - Max Depth = 168
  - Call Chain = xTimerCreate ⇒ prvInitialiseNewTimer ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> pvPortMalloc
  - >> prvInitialiseNewTimer
  [Called By]
  - >> osTimerNew

  xTimerCreateStatic (Thumb, 114 bytes, Stack size 40 bytes, timers.o(i.xTimerCreateStatic))
  [Stack]

  - Max Depth = 168
  - Call Chain = xTimerCreateStatic ⇒ prvInitialiseNewTimer ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> prvInitialiseNewTimer
  [Called By]
  - >> osTimerNew

  xTimerCreateTimerTask (Thumb, 100 bytes, Stack size 32 bytes, timers.o(i.xTimerCreateTimerTask))
  [Stack]

  - Max Depth = 128 + Unknown Stack Size
  - Call Chain = xTimerCreateTimerTask ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vApplicationGetTimerTaskMemory
  - >> prvCheckForValidListAndQueue
  - >> xTaskCreateStatic
  [Called By]
  - >> vTaskStartScheduler

  xTimerGenericCommand (Thumb, 128 bytes, Stack size 48 bytes, timers.o(i.xTimerGenericCommand))
  [Stack]

  - Max Depth = 152
  - Call Chain = xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> xTaskGetSchedulerState
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend
  [Called By]
  - >> osTimerStart
  - >> prvSwitchTimerLists
  - >> prvProcessReceivedCommands
  - >> prvProcessExpiredTimer

  __aeabi_dneg (Thumb, 0 bytes, Stack size 0 bytes, basic.o(x$fpl$basic))
  [Called By]

  - >> Chassis_speed_calculate
  - >> __hardfp_sin
  - >> __hardfp_cos
  - >> __hardfp_atan2
  - >> __hardfp_atan
  - >> __ieee754_rem_pio2

  _dneg (Thumb, 6 bytes, Stack size 0 bytes, basic.o(x$fpl$basic), UNUSED)

  __aeabi_fneg (Thumb, 0 bytes, Stack size 0 bytes, basic.o(x$fpl$basic), UNUSED)

  _fneg (Thumb, 6 bytes, Stack size 0 bytes, basic.o(x$fpl$basic), UNUSED)

  _dabs (Thumb, 6 bytes, Stack size 0 bytes, basic.o(x$fpl$basic), UNUSED)

  _fabs (Thumb, 6 bytes, Stack size 0 bytes, basic.o(x$fpl$basic), UNUSED)

  __aeabi_d2f (Thumb, 0 bytes, Stack size 32 bytes, d2f.o(x$fpl$d2f))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_d2f
  [Called By]
  - >> Chassis_speed_calculate
  - >> Chassis_UpdateFeedback
  - >> hold_point

  _d2f (Thumb, 98 bytes, Stack size 32 bytes, d2f.o(x$fpl$d2f), UNUSED)
  [Calls]

  - >> __fpl_fretinf
  - >> __fpl_dnaninf

  __aeabi_dadd (Thumb, 0 bytes, Stack size 16 bytes, daddsub_clz.o(x$fpl$dadd))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_dadd
  [Called By]
  - >> Chassis_speed_calculate
  - >> hold_point
  - >> __hardfp_atan
  - >> __kernel_sin
  - >> __ieee754_rem_pio2
  - >> __kernel_poly
  - >> __mathlib_dbl_infnan2
  - >> __mathlib_dbl_infnan

  _dadd (Thumb, 332 bytes, Stack size 16 bytes, daddsub_clz.o(x$fpl$dadd), UNUSED)
  [Calls]

  - >> _dsub1
  - >> __fpl_dretinf
  - >> __fpl_dnaninf

  __fpl_dcmp_Inf (Thumb, 24 bytes, Stack size 0 bytes, dcmpi.o(x$fpl$dcmpinf), UNUSED)
  [Called By]

  - >> _dcmple
  - >> _dcmpeq

  __aeabi_ddiv (Thumb, 0 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_ddiv
  [Called By]
  - >> __hardfp_atan2
  - >> __hardfp_atan
  - >> __mathlib_dbl_invalid

  _ddiv (Thumb, 552 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv), UNUSED)
  [Calls]

  - >> __fpl_dretinf
  - >> __fpl_dnaninf

  __aeabi_cdcmpeq (Thumb, 0 bytes, Stack size 32 bytes, deqf.o(x$fpl$deqf))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_cdcmpeq
  [Called By]
  - >> __hardfp_atan2

  _dcmpeq (Thumb, 120 bytes, Stack size 32 bytes, deqf.o(x$fpl$deqf), UNUSED)
  [Calls]

  - >> __fpl_dnaninf
  - >> __fpl_dcmp_Inf

  __aeabi_d2iz (Thumb, 0 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_d2iz
  [Called By]
  - >> __ieee754_rem_pio2
  - >> __kernel_cos

  _dfix (Thumb, 94 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix), UNUSED)
  [Calls]

  - >> __fpl_dnaninf

  __aeabi_i2d (Thumb, 0 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt))
  [Called By]

  - >> __ieee754_rem_pio2

  _dflt (Thumb, 46 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt), UNUSED)

  __aeabi_ui2d (Thumb, 0 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dfltu))
  [Called By]

  - >> __ieee754_rem_pio2

  _dfltu (Thumb, 38 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dfltu), UNUSED)

  __aeabi_cdcmple (Thumb, 0 bytes, Stack size 32 bytes, dleqf.o(x$fpl$dleqf))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_cdcmple
  [Called By]
  - >> Chassis_speed_calculate

  _dcmple (Thumb, 120 bytes, Stack size 32 bytes, dleqf.o(x$fpl$dleqf), UNUSED)
  [Calls]

  - >> __fpl_dnaninf
  - >> __fpl_dcmp_Inf

  __fpl_dcmple_InfNaN (Thumb, 0 bytes, Stack size unknown bytes, dleqf.o(x$fpl$dleqf), UNUSED)

  __aeabi_dmul (Thumb, 0 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_dmul
  [Called By]
  - >> Chassis_speed_calculate
  - >> hold_point
  - >> __hardfp_atan
  - >> __kernel_sin
  - >> __ieee754_rem_pio2
  - >> __kernel_poly
  - >> __mathlib_dbl_underflow
  - >> __kernel_cos

  _dmul (Thumb, 332 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul), UNUSED)
  [Calls]

  - >> __fpl_dretinf
  - >> __fpl_dnaninf

  __fpl_dnaninf (Thumb, 156 bytes, Stack size 16 bytes, dnaninf.o(x$fpl$dnaninf))
  [Stack]

  - Max Depth = 16
  - Call Chain = __fpl_dnaninf
  [Called By]
  - >> _dmul
  - >> _dcmple
  - >> _dsub
  - >> _dadd
  - >> _d2f
  - >> _dfix
  - >> _dsqrt
  - >> _drem
  - >> _dcmpeq
  - >> _ddiv

  _drem (Thumb, 328 bytes, Stack size 16 bytes, drem_clz.o(x$fpl$drem))
  [Stack]

  - Max Depth = 32
  - Call Chain = _drem ⇒ __fpl_dnaninf
  [Calls]
  - >> __fpl_dnaninf
  [Called By]
  - >> __hardfp_fmod

  __fpl_dretinf (Thumb, 12 bytes, Stack size 0 bytes, dretinf.o(x$fpl$dretinf), UNUSED)
  [Called By]

  - >> _f2d
  - >> _dmul
  - >> _dadd
  - >> _ddiv

  __aeabi_drsub (Thumb, 0 bytes, Stack size 8 bytes, daddsub_clz.o(x$fpl$drsb))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_drsub
  [Called By]
  - >> __hardfp_fmod
  - >> __hardfp_atan2
  - >> __hardfp_atan
  - >> __kernel_sin
  - >> __ieee754_rem_pio2
  - >> __kernel_cos

  _drsb (Thumb, 22 bytes, Stack size 8 bytes, daddsub_clz.o(x$fpl$drsb), UNUSED)
  [Calls]

  - >> _dsub1
  - >> _dadd1

  _dsqrt (Thumb, 404 bytes, Stack size 24 bytes, dsqrt_umaal.o(x$fpl$dsqrt))
  [Stack]

  - Max Depth = 40
  - Call Chain = _dsqrt ⇒ __fpl_dnaninf
  [Calls]
  - >> __fpl_dnaninf
  [Called By]
  - >> __hardfp_sqrt

  __aeabi_dsub (Thumb, 0 bytes, Stack size 32 bytes, daddsub_clz.o(x$fpl$dsub))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_dsub
  [Called By]
  - >> Chassis_speed_calculate
  - >> hold_point
  - >> __hardfp_atan2
  - >> __hardfp_atan
  - >> __kernel_sin
  - >> __ieee754_rem_pio2
  - >> __kernel_cos

  _dsub (Thumb, 464 bytes, Stack size 32 bytes, daddsub_clz.o(x$fpl$dsub), UNUSED)
  [Calls]

  - >> _dadd1
  - >> __fpl_dnaninf

  __aeabi_f2d (Thumb, 0 bytes, Stack size 16 bytes, f2d.o(x$fpl$f2d))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_f2d
  [Called By]
  - >> Chassis_speed_calculate
  - >> Chassis_UpdateFeedback
  - >> hold_point

  _f2d (Thumb, 86 bytes, Stack size 16 bytes, f2d.o(x$fpl$f2d), UNUSED)
  [Calls]

  - >> __fpl_fnaninf
  - >> __fpl_dretinf

  __fpl_fnaninf (Thumb, 140 bytes, Stack size 8 bytes, fnaninf.o(x$fpl$fnaninf), UNUSED)
  [Called By]

  - >> _f2d

  _fp_init (Thumb, 10 bytes, Stack size 0 bytes, fpinit.o(x$fpl$fpinit))
  [Called By]

  - >> __rt_lib_init_fp_1

  __fplib_config_fpu_vfp (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED)

  __fplib_config_pureend_doubles (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED)

  __fpl_fretinf (Thumb, 10 bytes, Stack size 0 bytes, fretinf.o(x$fpl$fretinf), UNUSED)
  [Called By]

  - >> _d2f

  ### Local Symbols

  PCD_EP_OutSetupPacket_int (Thumb, 94 bytes, Stack size 32 bytes, stm32f4xx_hal_pcd.o(i.PCD_EP_OutSetupPacket_int))
  [Stack]

  - Max Depth = 228
  - Call Chain = PCD_EP_OutSetupPacket_int ⇒ HAL_PCD_SetupStageCallback ⇒ USBD_LL_SetupStage ⇒ USBD_StdDevReq ⇒ USBD_GetDescriptor ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USB_EP0_OutStart
  - >> HAL_PCD_SetupStageCallback
  [Called By]
  - >> HAL_PCD_IRQHandler

  PCD_EP_OutXfrComplete_int (Thumb, 314 bytes, Stack size 32 bytes, stm32f4xx_hal_pcd.o(i.PCD_EP_OutXfrComplete_int))
  [Stack]

  - Max Depth = 212
  - Call Chain = PCD_EP_OutXfrComplete_int ⇒ HAL_PCD_DataOutStageCallback ⇒ USBD_LL_DataOutStage ⇒ USBD_CtlContinueRx ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USB_EP0_OutStart
  - >> HAL_PCD_DataOutStageCallback
  [Called By]
  - >> HAL_PCD_IRQHandler

  PCD_WriteEmptyTxFifo (Thumb, 182 bytes, Stack size 40 bytes, stm32f4xx_hal_pcd.o(i.PCD_WriteEmptyTxFifo))
  [Stack]

  - Max Depth = 68
  - Call Chain = PCD_WriteEmptyTxFifo ⇒ USB_WritePacket
  [Calls]
  - >> USB_WritePacket
  [Called By]
  - >> HAL_PCD_IRQHandler

  USB_CoreReset (Thumb, 84 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(i.USB_CoreReset))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_CoreReset
  [Called By]
  - >> USB_CoreInit

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

  - >> HAL_FLASH_Program

  FLASH_Program_DoubleWord (Thumb, 56 bytes, Stack size 8 bytes, stm32f4xx_hal_flash.o(i.FLASH_Program_DoubleWord))
  [Stack]

  - Max Depth = 8
  - Call Chain = FLASH_Program_DoubleWord
  [Called By]
  - >> HAL_FLASH_Program

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

  - >> HAL_FLASH_Program

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

  - >> HAL_FLASH_Program

  FLASH_SetErrorCode (Thumb, 142 bytes, Stack size 0 bytes, stm32f4xx_hal_flash.o(i.FLASH_SetErrorCode))
  [Called By]

  - >> FLASH_WaitForLastOperation

  FLASH_MassErase (Thumb, 42 bytes, Stack size 0 bytes, stm32f4xx_hal_flash_ex.o(i.FLASH_MassErase))
  [Called By]

  - >> HAL_FLASHEx_Erase

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

  - >> HAL_DMA_Init

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

  - >> HAL_DMA_Init

  DMA_SetConfig (Thumb, 44 bytes, Stack size 12 bytes, stm32f4xx_hal_dma.o(i.DMA_SetConfig))
  [Stack]

  - Max Depth = 12
  - Call Chain = DMA_SetConfig
  [Called By]
  - >> HAL_DMA_Start_IT

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

  - >> HAL_NVIC_SetPriority

  __NVIC_SetPriority (Thumb, 32 bytes, Stack size 8 bytes, stm32f4xx_hal_cortex.o(i.__NVIC_SetPriority))
  [Stack]

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

  SPI_DMAError (Thumb, 40 bytes, Stack size 16 bytes, stm32f4xx_hal_spi.o(i.SPI_DMAError))
  [Stack]

  - Max Depth = 32
  - Call Chain = SPI_DMAError ⇒ HAL_SPI_ErrorCallback
  [Calls]
  - >> HAL_SPI_ErrorCallback
  [Address Reference Count : 2]
  - stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA)
  - stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)

  SPI_DMAHalfReceiveCplt (Thumb, 14 bytes, Stack size 16 bytes, stm32f4xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt))
  [Stack]

  - Max Depth = 32
  - Call Chain = SPI_DMAHalfReceiveCplt ⇒ HAL_SPI_RxHalfCpltCallback
  [Calls]
  - >> HAL_SPI_RxHalfCpltCallback
  [Address Reference Count : 2]
  - stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA)
  - stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)

  SPI_DMAHalfTransmitReceiveCplt (Thumb, 14 bytes, Stack size 16 bytes, stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt))
  [Stack]

  - Max Depth = 32
  - Call Chain = SPI_DMAHalfTransmitReceiveCplt ⇒ HAL_SPI_TxRxHalfCpltCallback
  [Calls]
  - >> HAL_SPI_TxRxHalfCpltCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)

  SPI_DMAReceiveCplt (Thumb, 124 bytes, Stack size 16 bytes, stm32f4xx_hal_spi.o(i.SPI_DMAReceiveCplt))
  [Stack]

  - Max Depth = 80
  - Call Chain = SPI_DMAReceiveCplt ⇒ SPI_EndRxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GetTick
  - >> SPI_EndRxTransaction
  - >> HAL_SPI_RxCpltCallback
  - >> HAL_SPI_ErrorCallback
  [Address Reference Count : 2]
  - stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA)
  - stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)

  SPI_DMATransmitReceiveCplt (Thumb, 104 bytes, Stack size 16 bytes, stm32f4xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt))
  [Stack]

  - Max Depth = 80
  - Call Chain = SPI_DMATransmitReceiveCplt ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GetTick
  - >> SPI_EndRxTxTransaction
  - >> HAL_SPI_TxRxCpltCallback
  - >> HAL_SPI_ErrorCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)

  SPI_EndRxTransaction (Thumb, 148 bytes, Stack size 24 bytes, stm32f4xx_hal_spi.o(i.SPI_EndRxTransaction))
  [Stack]

  - Max Depth = 64
  - Call Chain = SPI_EndRxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> SPI_WaitFlagStateUntilTimeout
  [Called By]
  - >> SPI_DMAReceiveCplt
  - >> HAL_SPI_Receive

  SPI_EndRxTxTransaction (Thumb, 100 bytes, Stack size 24 bytes, stm32f4xx_hal_spi.o(i.SPI_EndRxTxTransaction))
  [Stack]

  - Max Depth = 64
  - Call Chain = SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> SPI_WaitFlagStateUntilTimeout
  [Called By]
  - >> SPI_DMATransmitReceiveCplt
  - >> HAL_SPI_TransmitReceive
  - >> HAL_SPI_Transmit

  SPI_WaitFlagStateUntilTimeout (Thumb, 210 bytes, Stack size 40 bytes, stm32f4xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout))
  [Stack]

  - Max Depth = 40
  - Call Chain = SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> SPI_EndRxTxTransaction
  - >> SPI_EndRxTransaction

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

  - >> HAL_TIM_ConfigClockSource

  TIM_OC1_SetConfig (Thumb, 104 bytes, Stack size 12 bytes, stm32f4xx_hal_tim.o(i.TIM_OC1_SetConfig))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIM_OC1_SetConfig
  [Called By]
  - >> HAL_TIM_PWM_ConfigChannel

  TIM_OC3_SetConfig (Thumb, 112 bytes, Stack size 12 bytes, stm32f4xx_hal_tim.o(i.TIM_OC3_SetConfig))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIM_OC3_SetConfig
  [Called By]
  - >> HAL_TIM_PWM_ConfigChannel

  TIM_OC4_SetConfig (Thumb, 74 bytes, Stack size 12 bytes, stm32f4xx_hal_tim.o(i.TIM_OC4_SetConfig))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIM_OC4_SetConfig
  [Called By]
  - >> HAL_TIM_PWM_ConfigChannel

  TIM_TI1_ConfigInputStage (Thumb, 38 bytes, Stack size 12 bytes, stm32f4xx_hal_tim.o(i.TIM_TI1_ConfigInputStage))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIM_TI1_ConfigInputStage
  [Called By]
  - >> HAL_TIM_ConfigClockSource

  TIM_TI2_ConfigInputStage (Thumb, 40 bytes, Stack size 12 bytes, stm32f4xx_hal_tim.o(i.TIM_TI2_ConfigInputStage))
  [Stack]

  - Max Depth = 12
  - Call Chain = TIM_TI2_ConfigInputStage
  [Called By]
  - >> HAL_TIM_ConfigClockSource

  UART_DMAAbortOnError (Thumb, 20 bytes, Stack size 16 bytes, stm32f4xx_hal_uart.o(i.UART_DMAAbortOnError))
  [Stack]

  - Max Depth = 32
  - Call Chain = UART_DMAAbortOnError ⇒ HAL_UART_ErrorCallback
  [Calls]
  - >> HAL_UART_ErrorCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler)

  UART_DMAError (Thumb, 80 bytes, Stack size 16 bytes, stm32f4xx_hal_uart.o(i.UART_DMAError))
  [Stack]

  - Max Depth = 32
  - Call Chain = UART_DMAError ⇒ HAL_UART_ErrorCallback
  [Calls]
  - >> UART_EndTxTransfer
  - >> UART_EndRxTransfer
  - >> HAL_UART_ErrorCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_uart.o(i.UART_Start_Receive_DMA)

  UART_DMAReceiveCplt (Thumb, 176 bytes, Stack size 16 bytes, stm32f4xx_hal_uart.o(i.UART_DMAReceiveCplt))
  [Stack]

  - Max Depth = 32
  - Call Chain = UART_DMAReceiveCplt ⇒ HAL_UART_RxCpltCallback
  [Calls]
  - >> HAL_UART_RxCpltCallback
  - >> HAL_UARTEx_RxEventCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_uart.o(i.UART_Start_Receive_DMA)

  UART_DMARxHalfCplt (Thumb, 32 bytes, Stack size 16 bytes, stm32f4xx_hal_uart.o(i.UART_DMARxHalfCplt))
  [Stack]

  - Max Depth = 32
  - Call Chain = UART_DMARxHalfCplt ⇒ HAL_UART_RxHalfCpltCallback
  [Calls]
  - >> HAL_UART_RxHalfCpltCallback
  - >> HAL_UARTEx_RxEventCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_uart.o(i.UART_Start_Receive_DMA)

  UART_EndRxTransfer (Thumb, 108 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.UART_EndRxTransfer))
  [Called By]

  - >> UART_DMAError
  - >> HAL_UART_IRQHandler

  UART_EndTransmit_IT (Thumb, 32 bytes, Stack size 8 bytes, stm32f4xx_hal_uart.o(i.UART_EndTransmit_IT))
  [Stack]

  - Max Depth = 24
  - Call Chain = UART_EndTransmit_IT ⇒ HAL_UART_TxCpltCallback
  [Calls]
  - >> HAL_UART_TxCpltCallback
  [Called By]
  - >> HAL_UART_IRQHandler

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

  - >> UART_DMAError

  UART_Receive_IT (Thumb, 248 bytes, Stack size 24 bytes, stm32f4xx_hal_uart.o(i.UART_Receive_IT))
  [Stack]

  - Max Depth = 40
  - Call Chain = UART_Receive_IT ⇒ HAL_UART_RxCpltCallback
  [Calls]
  - >> HAL_UART_RxCpltCallback
  - >> HAL_UARTEx_RxEventCallback
  [Called By]
  - >> HAL_UART_IRQHandler

  UART_SetConfig (Thumb, 546 bytes, Stack size 40 bytes, stm32f4xx_hal_uart.o(i.UART_SetConfig))
  [Stack]

  - Max Depth = 88
  - Call Chain = UART_SetConfig ⇒ __aeabi_uldivmod
  [Calls]
  - >> HAL_RCC_GetPCLK2Freq
  - >> HAL_RCC_GetPCLK1Freq
  - >> __aeabi_uldivmod
  [Called By]
  - >> HAL_UART_Init

  UART_Transmit_IT (Thumb, 96 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.UART_Transmit_IT))
  [Called By]

  - >> HAL_UART_IRQHandler

  UART_WaitOnFlagUntilTimeout (Thumb, 146 bytes, Stack size 24 bytes, stm32f4xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout))
  [Stack]

  - Max Depth = 24
  - Call Chain = UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> HAL_UART_Transmit

  prvCopyDataFromQueue (Thumb, 42 bytes, Stack size 16 bytes, queue.o(i.prvCopyDataFromQueue))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvCopyDataFromQueue
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> xQueueReceiveFromISR
  - >> xQueueReceive

  prvCopyDataToQueue (Thumb, 126 bytes, Stack size 24 bytes, queue.o(i.prvCopyDataToQueue))
  [Stack]

  - Max Depth = 40
  - Call Chain = prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xTaskPriorityDisinherit
  - >> __aeabi_memcpy
  [Called By]
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend

  prvInitialiseNewQueue (Thumb, 42 bytes, Stack size 24 bytes, queue.o(i.prvInitialiseNewQueue))
  [Stack]

  - Max Depth = 56
  - Call Chain = prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xQueueGenericReset
  [Called By]
  - >> xQueueGenericCreateStatic
  - >> xQueueGenericCreate

  prvIsQueueEmpty (Thumb, 26 bytes, Stack size 16 bytes, queue.o(i.prvIsQueueEmpty))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvIsQueueEmpty
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueReceive

  prvIsQueueFull (Thumb, 30 bytes, Stack size 16 bytes, queue.o(i.prvIsQueueFull))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvIsQueueFull
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericSend

  prvUnlockQueue (Thumb, 126 bytes, Stack size 16 bytes, queue.o(i.prvUnlockQueue))
  [Stack]

  - Max Depth = 32
  - Call Chain = prvUnlockQueue ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> xTaskRemoveFromEventList
  - >> vTaskMissedYield
  [Called By]
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> vQueueWaitForMessageRestricted

  prvAddCurrentTaskToDelayedList (Thumb, 110 bytes, Stack size 24 bytes, tasks.o(i.prvAddCurrentTaskToDelayedList))
  [Stack]

  - Max Depth = 32
  - Call Chain = prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vListInsertEnd
  - >> vListInsert
  - >> uxListRemove
  [Called By]
  - >> vTaskDelayUntil
  - >> vTaskDelay
  - >> xTaskNotifyWait
  - >> vTaskPlaceOnEventListRestricted
  - >> vTaskPlaceOnEventList

  prvAddNewTaskToReadyList (Thumb, 154 bytes, Stack size 8 bytes, tasks.o(i.prvAddNewTaskToReadyList))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvAddNewTaskToReadyList ⇒ prvInitialiseTaskLists
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> prvInitialiseTaskLists
  - >> vListInsertEnd
  [Called By]
  - >> xTaskCreateStatic
  - >> xTaskCreate

  prvCheckTasksWaitingTermination (Thumb, 60 bytes, Stack size 8 bytes, tasks.o(i.prvCheckTasksWaitingTermination))
  [Stack]

  - Max Depth = 72
  - Call Chain = prvCheckTasksWaitingTermination ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> prvDeleteTCB
  - >> uxListRemove
  [Called By]
  - >> prvIdleTask

  prvDeleteTCB (Thumb, 80 bytes, Stack size 8 bytes, tasks.o(i.prvDeleteTCB))
  [Stack]

  - Max Depth = 64
  - Call Chain = prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortFree
  [Called By]
  - >> vTaskDelete
  - >> prvCheckTasksWaitingTermination

  prvIdleTask (Thumb, 32 bytes, Stack size 0 bytes, tasks.o(i.prvIdleTask))
  [Stack]

  - Max Depth = 72
  - Call Chain = prvIdleTask ⇒ prvCheckTasksWaitingTermination ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvCheckTasksWaitingTermination
  [Address Reference Count : 1]
  - tasks.o(i.vTaskStartScheduler)

  prvInitialiseNewTask (Thumb, 194 bytes, Stack size 40 bytes, tasks.o(i.prvInitialiseNewTask))
  [Stack]

  - Max Depth = 40 + Unknown Stack Size
  - Call Chain = prvInitialiseNewTask
  [Calls]
  - >> vListInitialiseItem
  - >> pxPortInitialiseStack
  - >> __aeabi_memset
  [Called By]
  - >> xTaskCreateStatic
  - >> xTaskCreate

  prvInitialiseTaskLists (Thumb, 70 bytes, Stack size 8 bytes, tasks.o(i.prvInitialiseTaskLists))
  [Stack]

  - Max Depth = 8
  - Call Chain = prvInitialiseTaskLists
  [Calls]
  - >> vListInitialise
  [Called By]
  - >> prvAddNewTaskToReadyList

  prvResetNextTaskUnblockTime (Thumb, 42 bytes, Stack size 0 bytes, tasks.o(i.prvResetNextTaskUnblockTime))
  [Called By]

  - >> xTaskResumeAll
  - >> vTaskDelete
  - >> xTaskIncrementTick

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

  - >> uxTaskGetStackHighWaterMark

  prvCheckForValidListAndQueue (Thumb, 78 bytes, Stack size 8 bytes, timers.o(i.prvCheckForValidListAndQueue))
  [Stack]

  - Max Depth = 96
  - Call Chain = prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  - >> xQueueGenericCreateStatic
  - >> vQueueAddToRegistry
  [Called By]
  - >> prvInitialiseNewTimer
  - >> xTimerCreateTimerTask

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

  - >> prvTimerTask

  prvInitialiseNewTimer (Thumb, 90 bytes, Stack size 32 bytes, timers.o(i.prvInitialiseNewTimer))
  [Stack]

  - Max Depth = 128
  - Call Chain = prvInitialiseNewTimer ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vListInitialiseItem
  - >> prvCheckForValidListAndQueue
  [Called By]
  - >> xTimerCreateStatic
  - >> xTimerCreate

  prvInsertTimerInActiveList (Thumb, 80 bytes, Stack size 24 bytes, timers.o(i.prvInsertTimerInActiveList))
  [Stack]

  - Max Depth = 32
  - Call Chain = prvInsertTimerInActiveList ⇒ vListInsert
  [Calls]
  - >> vListInsert
  [Called By]
  - >> prvProcessReceivedCommands
  - >> prvProcessExpiredTimer

  prvProcessExpiredTimer (Thumb, 110 bytes, Stack size 24 bytes, timers.o(i.prvProcessExpiredTimer))
  [Stack]

  - Max Depth = 176
  - Call Chain = prvProcessExpiredTimer ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> uxListRemove
  - >> xTimerGenericCommand
  - >> prvInsertTimerInActiveList
  [Called By]
  - >> prvProcessTimerOrBlockTask

  prvProcessReceivedCommands (Thumb, 350 bytes, Stack size 48 bytes, timers.o(i.prvProcessReceivedCommands))
  [Stack]

  - Max Depth = 248
  - Call Chain = prvProcessReceivedCommands ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vPortFree
  - >> xQueueReceive
  - >> uxListRemove
  - >> xTimerGenericCommand
  - >> prvSampleTimeNow
  - >> prvInsertTimerInActiveList
  [Called By]
  - >> prvTimerTask

  prvProcessTimerOrBlockTask (Thumb, 102 bytes, Stack size 24 bytes, timers.o(i.prvProcessTimerOrBlockTask))
  [Stack]

  - Max Depth = 224
  - Call Chain = prvProcessTimerOrBlockTask ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vQueueWaitForMessageRestricted
  - >> prvSampleTimeNow
  - >> prvProcessExpiredTimer
  [Called By]
  - >> prvTimerTask

  prvSampleTimeNow (Thumb, 40 bytes, Stack size 16 bytes, timers.o(i.prvSampleTimeNow))
  [Stack]

  - Max Depth = 200
  - Call Chain = prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> prvSwitchTimerLists
  - >> xTaskGetTickCount
  [Called By]
  - >> prvProcessTimerOrBlockTask
  - >> prvProcessReceivedCommands

  prvSwitchTimerLists (Thumb, 154 bytes, Stack size 32 bytes, timers.o(i.prvSwitchTimerLists))
  [Stack]

  - Max Depth = 184
  - Call Chain = prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vListInsert
  - >> uxListRemove
  - >> xTimerGenericCommand
  [Called By]
  - >> prvSampleTimeNow

  prvTimerTask (Thumb, 26 bytes, Stack size 8 bytes, timers.o(i.prvTimerTask))
  [Stack]

  - Max Depth = 256
  - Call Chain = prvTimerTask ⇒ prvProcessReceivedCommands ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> prvProcessTimerOrBlockTask
  - >> prvProcessReceivedCommands
  - >> prvGetNextExpireTime
  [Address Reference Count : 1]
  - timers.o(i.xTimerCreateTimerTask)

  TimerCallback (Thumb, 22 bytes, Stack size 16 bytes, cmsis_os2.o(i.TimerCallback))
  [Stack]

  - Max Depth = 32
  - Call Chain = TimerCallback ⇒ pvTimerGetTimerID
  [Calls]
  - >> pvTimerGetTimerID
  [Address Reference Count : 1]
  - cmsis_os2.o(i.osTimerNew)

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

  - >> osThreadNew
  - >> osDelay
  - >> osKernelStart
  - >> osKernelInitialize
  - >> osTimerStart
  - >> osTimerNew
  - >> osThreadTerminate
  - >> osThreadGetStackSpace
  - >> osThreadFlagsWait
  - >> osThreadFlagsSet
  - >> osThreadFlagsGet
  - >> osThreadFlagsClear
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osMessageQueueNew
  - >> osMessageQueueGet
  - >> osKernelUnlock
  - >> osKernelLock
  - >> osKernelGetTickCount
  - >> osDelayUntil

  prvHeapInit (Thumb, 98 bytes, Stack size 12 bytes, heap_4.o(i.prvHeapInit))
  [Stack]

  - Max Depth = 12
  - Call Chain = prvHeapInit
  [Called By]
  - >> pvPortMalloc

  prvInsertBlockIntoFreeList (Thumb, 96 bytes, Stack size 8 bytes, heap_4.o(i.prvInsertBlockIntoFreeList))
  [Stack]

  - Max Depth = 8
  - Call Chain = prvInsertBlockIntoFreeList
  [Called By]
  - >> vPortFree
  - >> pvPortMalloc

  prvTaskExitError (Thumb, 60 bytes, Stack size 0 bytes, port.o(i.prvTaskExitError))
  [Address Reference Count : 1]

  - port.o(i.pxPortInitialiseStack)

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

  - >> Chassis_Control

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

  - >> HAL_SPI_TxRxHalfCpltCallback
  - >> HAL_SPI_TxRxCpltCallback
  - >> HAL_SPI_RxHalfCpltCallback
  - >> HAL_SPI_RxCpltCallback
  - >> HAL_SPI_ErrorCallback

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

  - >> HAL_CAN_RxFifo1MsgPendingCallback
  - >> HAL_CAN_RxFifo0MsgPendingCallback

  UART_Get (Thumb, 42 bytes, Stack size 0 bytes, bsp_usart.o(i.UART_Get))
  [Called By]

  - >> HAL_UART_TxCpltCallback
  - >> HAL_UART_RxHalfCpltCallback
  - >> HAL_UART_RxCpltCallback
  - >> HAL_UART_ErrorCallback
  - >> HAL_UARTEx_RxEventCallback

  detect_init (Thumb, 348 bytes, Stack size 88 bytes, error_detect_task.o(i.detect_init))
  [Stack]

  - Max Depth = 96
  - Call Chain = detect_init ⇒ __aeabi_memcpy4
  [Calls]
  - >> __aeabi_memcpy4
  [Called By]
  - >> Task_error_detect

  AHRS_UpdateIMU (Thumb, 1018 bytes, Stack size 128 bytes, ahrs.o(i.AHRS_UpdateIMU))
  [Stack]

  - Max Depth = 168
  - Call Chain = AHRS_UpdateIMU ⇒ InvSqrt ⇒ __hardfp_sqrtf ⇒ __set_errno
  [Calls]
  - >> InvSqrt
  [Called By]
  - >> AHRS_Update

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

  - >> PID_init

  BMI088_RxCpltCallback (Thumb, 64 bytes, Stack size 8 bytes, bmi088.o(i.BMI088_RxCpltCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = BMI088_RxCpltCallback ⇒ osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> HAL_GPIO_ReadPin
  - >> osThreadFlagsSet
  [Address Reference Count : 1]
  - bmi088.o(i.BMI088_Init)

  BMI_Read (Thumb, 98 bytes, Stack size 24 bytes, bmi088.o(i.BMI_Read))
  [Stack]

  - Max Depth = 128
  - Call Chain = BMI_Read ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> HAL_SPI_Transmit
  - >> HAL_SPI_Receive_DMA
  - >> BSP_SPI_GetHandle
  [Called By]
  - >> BMI088_GyroStartDmaRecv
  - >> BMI088_AcclStartDmaRecv

  BMI_ReadSingle (Thumb, 134 bytes, Stack size 16 bytes, bmi088.o(i.BMI_ReadSingle))
  [Stack]

  - Max Depth = 168
  - Call Chain = BMI_ReadSingle ⇒ HAL_SPI_Receive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> HAL_SPI_Transmit
  - >> HAL_SPI_Receive
  - >> BSP_SPI_GetHandle
  - >> BSP_Delay
  [Called By]
  - >> BMI088_Init

  BMI_WriteSingle (Thumb, 118 bytes, Stack size 24 bytes, bmi088.o(i.BMI_WriteSingle))
  [Stack]

  - Max Depth = 128
  - Call Chain = BMI_WriteSingle ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> HAL_SPI_Transmit
  - >> BSP_SPI_GetHandle
  - >> BSP_Delay
  [Called By]
  - >> BMI088_Init

  CAN_CAN1RxFifoMsgPendingCallback (Thumb, 44 bytes, Stack size 8 bytes, can_use.o(i.CAN_CAN1RxFifoMsgPendingCallback))
  [Stack]

  - Max Depth = 144
  - Call Chain = CAN_CAN1RxFifoMsgPendingCallback ⇒ osMessageQueuePut ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> HAL_CAN_GetRxMessage
  - >> osMessageQueuePut
  - >> BSP_CAN_GetHandle
  [Address Reference Count : 1]
  - can_use.o(i.CAN_Init)

  CAN_CAN2RxFifoMsgPendingCallback (Thumb, 44 bytes, Stack size 8 bytes, can_use.o(i.CAN_CAN2RxFifoMsgPendingCallback))
  [Stack]

  - Max Depth = 144
  - Call Chain = CAN_CAN2RxFifoMsgPendingCallback ⇒ osMessageQueuePut ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> HAL_CAN_GetRxMessage
  - >> osMessageQueuePut
  - >> BSP_CAN_GetHandle
  [Address Reference Count : 1]
  - can_use.o(i.CAN_Init)

  CAN_DJIMotor_Decode (Thumb, 120 bytes, Stack size 12 bytes, can_use.o(i.CAN_DJIMotor_Decode))
  [Stack]

  - Max Depth = 12
  - Call Chain = CAN_DJIMotor_Decode
  [Called By]
  - >> CAN_StoreMsg

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

  - >> CAN_StoreMsg

  CAN_VescMotor_Decode_1 (Thumb, 84 bytes, Stack size 12 bytes, can_use.o(i.CAN_VescMotor_Decode_1))
  [Stack]

  - Max Depth = 12
  - Call Chain = CAN_VescMotor_Decode_1
  [Called By]
  - >> CAN_StoreMsg

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

  - >> CMD_ParseRc

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

  - >> CMD_ParseRc

  NUC_IdleCallback (Thumb, 22 bytes, Stack size 8 bytes, nuc.o(i.NUC_IdleCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = NUC_IdleCallback ⇒ osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> osThreadFlagsSet
  - >> detect_hook
  [Address Reference Count : 1]
  - nuc.o(i.NUC_Init)

  ACTION_IdleCallback (Thumb, 16 bytes, Stack size 8 bytes, action.o(i.ACTION_IdleCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = ACTION_IdleCallback ⇒ osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> osThreadFlagsSet
  [Address Reference Count : 1]
  - action.o(i.ACTIONRECV_Init)

  Ops10msTimerCallback (Thumb, 18 bytes, Stack size 8 bytes, action.o(i.Ops10msTimerCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = Ops10msTimerCallback ⇒ osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> osThreadFlagsSet
  [Address Reference Count : 1]
  - action.o(i.ACTIONRECV_Init)

  REMOTE_RxCpltCallback (Thumb, 16 bytes, Stack size 8 bytes, remote_control.o(i.REMOTE_RxCpltCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = REMOTE_RxCpltCallback ⇒ osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> osThreadFlagsSet
  [Address Reference Count : 1]
  - remote_control.o(i.REMOTE_Init)

  Get_SerialNum (Thumb, 42 bytes, Stack size 16 bytes, usbd_desc.o(i.Get_SerialNum))
  [Stack]

  - Max Depth = 28
  - Call Chain = Get_SerialNum ⇒ IntToUnicode
  [Calls]
  - >> IntToUnicode
  [Called By]
  - >> USBD_FS_SerialStrDescriptor

  IntToUnicode (Thumb, 62 bytes, Stack size 12 bytes, usbd_desc.o(i.IntToUnicode))
  [Stack]

  - Max Depth = 12
  - Call Chain = IntToUnicode
  [Called By]
  - >> Get_SerialNum

  CDC_Control_FS (Thumb, 68 bytes, Stack size 0 bytes, usbd_cdc_if.o(i.CDC_Control_FS))
  [Address Reference Count : 1]

  - usbd_cdc_if.o(.data)

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

  - usbd_cdc_if.o(.data)

  CDC_Init_FS (Thumb, 24 bytes, Stack size 8 bytes, usbd_cdc_if.o(i.CDC_Init_FS))
  [Stack]

  - Max Depth = 20
  - Call Chain = CDC_Init_FS ⇒ USBD_CDC_SetTxBuffer
  [Calls]
  - >> USBD_CDC_SetTxBuffer
  - >> USBD_CDC_SetRxBuffer
  [Address Reference Count : 1]
  - usbd_cdc_if.o(.data)

  CDC_Receive_FS (Thumb, 24 bytes, Stack size 16 bytes, usbd_cdc_if.o(i.CDC_Receive_FS))
  [Stack]

  - Max Depth = 148
  - Call Chain = CDC_Receive_FS ⇒ USBD_CDC_ReceivePacket ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CDC_SetRxBuffer
  - >> USBD_CDC_ReceivePacket
  [Address Reference Count : 1]
  - usbd_cdc_if.o(.data)

  CDC_TransmitCplt_FS (Thumb, 12 bytes, Stack size 8 bytes, usbd_cdc_if.o(i.CDC_TransmitCplt_FS))
  [Stack]

  - Max Depth = 8
  - Call Chain = CDC_TransmitCplt_FS
  [Address Reference Count : 1]
  - usbd_cdc_if.o(.data)

  SWAPBYTE (Thumb, 18 bytes, Stack size 12 bytes, usbd_ctlreq.o(i.SWAPBYTE))
  [Stack]

  - Max Depth = 12
  - Call Chain = SWAPBYTE
  [Called By]
  - >> USBD_ParseSetupRequest

  USBD_ClrFeature (Thumb, 62 bytes, Stack size 16 bytes, usbd_ctlreq.o(i.USBD_ClrFeature))
  [Stack]

  - Max Depth = 140
  - Call Chain = USBD_ClrFeature ⇒ USBD_CtlSendStatus ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlError
  - >> USBD_CtlSendStatus
  [Called By]
  - >> USBD_StdDevReq

  USBD_GetConfig (Thumb, 86 bytes, Stack size 16 bytes, usbd_ctlreq.o(i.USBD_GetConfig))
  [Stack]

  - Max Depth = 148
  - Call Chain = USBD_GetConfig ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlSendData
  - >> USBD_CtlError
  [Called By]
  - >> USBD_StdDevReq

  USBD_GetDescriptor (Thumb, 508 bytes, Stack size 24 bytes, usbd_ctlreq.o(i.USBD_GetDescriptor))
  [Stack]

  - Max Depth = 156
  - Call Chain = USBD_GetDescriptor ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlSendData
  - >> USBD_CtlError
  - >> USBD_CtlSendStatus
  [Called By]
  - >> USBD_StdDevReq

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

  - >> USBD_GetString

  USBD_GetStatus (Thumb, 90 bytes, Stack size 16 bytes, usbd_ctlreq.o(i.USBD_GetStatus))
  [Stack]

  - Max Depth = 148
  - Call Chain = USBD_GetStatus ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlSendData
  - >> USBD_CtlError
  [Called By]
  - >> USBD_StdDevReq

  USBD_SetAddress (Thumb, 90 bytes, Stack size 16 bytes, usbd_ctlreq.o(i.USBD_SetAddress))
  [Stack]

  - Max Depth = 140
  - Call Chain = USBD_SetAddress ⇒ USBD_CtlSendStatus ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlError
  - >> USBD_CtlSendStatus
  - >> USBD_LL_SetUSBAddress
  [Called By]
  - >> USBD_StdDevReq

  USBD_SetConfig (Thumb, 254 bytes, Stack size 16 bytes, usbd_ctlreq.o(i.USBD_SetConfig))
  [Stack]

  - Max Depth = 140
  - Call Chain = USBD_SetConfig ⇒ USBD_CtlSendStatus ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlError
  - >> USBD_CtlSendStatus
  - >> USBD_SetClassConfig
  - >> USBD_ClrClassConfig
  [Called By]
  - >> USBD_StdDevReq

  USBD_SetFeature (Thumb, 56 bytes, Stack size 16 bytes, usbd_ctlreq.o(i.USBD_SetFeature))
  [Stack]

  - Max Depth = 140
  - Call Chain = USBD_SetFeature ⇒ USBD_CtlSendStatus ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlError
  - >> USBD_CtlSendStatus
  [Called By]
  - >> USBD_StdDevReq

  USBD_CDC_DataIn (Thumb, 196 bytes, Stack size 24 bytes, usbd_cdc.o(i.USBD_CDC_DataIn))
  [Stack]

  - Max Depth = 140
  - Call Chain = USBD_CDC_DataIn ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_LL_Transmit
  [Address Reference Count : 1]
  - usbd_cdc.o(.data)

  USBD_CDC_DataOut (Thumb, 72 bytes, Stack size 16 bytes, usbd_cdc.o(i.USBD_CDC_DataOut))
  [Stack]

  - Max Depth = 32
  - Call Chain = USBD_CDC_DataOut ⇒ USBD_LL_GetRxDataSize
  [Calls]
  - >> USBD_LL_GetRxDataSize
  [Address Reference Count : 1]
  - usbd_cdc.o(.data)

  USBD_CDC_DeInit (Thumb, 200 bytes, Stack size 16 bytes, usbd_cdc.o(i.USBD_CDC_DeInit))
  [Stack]

  - Max Depth = 72
  - Call Chain = USBD_CDC_DeInit ⇒ USBD_LL_CloseEP ⇒ HAL_PCD_EP_Close ⇒ USB_DeactivateEndpoint
  [Calls]
  - >> USBD_static_free
  - >> USBD_LL_CloseEP
  [Address Reference Count : 1]
  - usbd_cdc.o(.data)

  USBD_CDC_EP0_RxReady (Thumb, 80 bytes, Stack size 16 bytes, usbd_cdc.o(i.USBD_CDC_EP0_RxReady))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_CDC_EP0_RxReady
  [Address Reference Count : 1]
  - usbd_cdc.o(.data)

  USBD_CDC_GetFSCfgDesc (Thumb, 64 bytes, Stack size 24 bytes, usbd_cdc.o(i.USBD_CDC_GetFSCfgDesc))
  [Stack]

  - Max Depth = 60
  - Call Chain = USBD_CDC_GetFSCfgDesc ⇒ USBD_GetEpDesc ⇒ USBD_GetNextDesc
  [Calls]
  - >> USBD_GetEpDesc
  [Address Reference Count : 1]
  - usbd_cdc.o(.data)

  USBD_CDC_GetHSCfgDesc (Thumb, 68 bytes, Stack size 24 bytes, usbd_cdc.o(i.USBD_CDC_GetHSCfgDesc))
  [Stack]

  - Max Depth = 60
  - Call Chain = USBD_CDC_GetHSCfgDesc ⇒ USBD_GetEpDesc ⇒ USBD_GetNextDesc
  [Calls]
  - >> USBD_GetEpDesc
  [Address Reference Count : 1]
  - usbd_cdc.o(.data)

  USBD_CDC_GetOtherSpeedCfgDesc (Thumb, 64 bytes, Stack size 24 bytes, usbd_cdc.o(i.USBD_CDC_GetOtherSpeedCfgDesc))
  [Stack]

  - Max Depth = 60
  - Call Chain = USBD_CDC_GetOtherSpeedCfgDesc ⇒ USBD_GetEpDesc ⇒ USBD_GetNextDesc
  [Calls]
  - >> USBD_GetEpDesc
  [Address Reference Count : 1]
  - usbd_cdc.o(.data)

  USBD_CDC_Init (Thumb, 404 bytes, Stack size 16 bytes, usbd_cdc.o(i.USBD_CDC_Init))
  [Stack]

  - Max Depth = 132
  - Call Chain = USBD_CDC_Init ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> __aeabi_memclr4
  - >> USBD_static_malloc
  - >> USBD_LL_PrepareReceive
  - >> USBD_LL_OpenEP
  [Address Reference Count : 1]
  - usbd_cdc.o(.data)

  USBD_CDC_Setup (Thumb, 320 bytes, Stack size 32 bytes, usbd_cdc.o(i.USBD_CDC_Setup))
  [Stack]

  - Max Depth = 164
  - Call Chain = USBD_CDC_Setup ⇒ USBD_CtlPrepareRx ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer ⇒ USB_WritePacket
  [Calls]
  - >> USBD_CtlPrepareRx
  - >> USBD_CtlSendData
  - >> USBD_CtlError
  [Address Reference Count : 1]
  - usbd_cdc.o(.data)

  _dadd1 (Thumb, 0 bytes, Stack size unknown bytes, daddsub_clz.o(x$fpl$dadd), UNUSED)
  [Called By]

  - >> _dsub
  - >> _drsb

  _dsub1 (Thumb, 0 bytes, Stack size unknown bytes, daddsub_clz.o(x$fpl$dsub), UNUSED)
  [Called By]

  - >> _drsb
  - >> _dadd

  ### Undefined Global Symbols