# Static Call Graph - [.\DevC\DevC.axf]

# Static Call Graph for image .\DevC\DevC.axf

#<CALLGRAPH># ARM Linker, 6160001: Last Updated: Mon Sep 29 09:29:15 2025

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

### Call chain for Maximum Stack Depth:

Task_atti_esti ⇒ DM_IMU_AutoUpdateAll ⇒ DM_IMU_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick

### Functions with no stack information

- __user_initial_stackheap

### Mutually Recursive functions

- ADC_IRQHandler ⇒ ADC_IRQHandler
- BusFault_Handler ⇒ BusFault_Handler
- HardFault_Handler ⇒ HardFault_Handler
- MemManage_Handler ⇒ MemManage_Handler
- NMI_Handler ⇒ NMI_Handler
- UsageFault_Handler ⇒ UsageFault_Handler

  ### Function Pointers

  - ADC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - BSP_CAN_DefaultIdParser from can_1.o(.text.BSP_CAN_DefaultIdParser) referenced 2 times from can_1.o(.text.BSP_CAN_Init)
  - BSP_CAN_RxFifo0Callback from can_1.o(.text.BSP_CAN_RxFifo0Callback) referenced 2 times from can_1.o(.text.BSP_CAN_Init)
  - BSP_CAN_RxFifo1Callback from can_1.o(.text.BSP_CAN_RxFifo1Callback) referenced 2 times from can_1.o(.text.BSP_CAN_Init)
  - BusFault_Handler from stm32f4xx_it.o(.text.BusFault_Handler) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_RX0_IRQHandler from stm32f4xx_it.o(.text.CAN1_RX0_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_RX1_IRQHandler from stm32f4xx_it.o(.text.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(.text.CAN2_RX0_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - CAN2_RX1_IRQHandler from stm32f4xx_it.o(.text.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)
  - CDC_Control_FS from usbd_cdc_if.o(.text.CDC_Control_FS) referenced 2 times from usbd_cdc_if.o(.data.USBD_Interface_fops_FS)
  - CDC_DeInit_FS from usbd_cdc_if.o(.text.CDC_DeInit_FS) referenced 2 times from usbd_cdc_if.o(.data.USBD_Interface_fops_FS)
  - CDC_Init_FS from usbd_cdc_if.o(.text.CDC_Init_FS) referenced 2 times from usbd_cdc_if.o(.data.USBD_Interface_fops_FS)
  - CDC_Receive_FS from usbd_cdc_if.o(.text.CDC_Receive_FS) referenced 2 times from usbd_cdc_if.o(.data.USBD_Interface_fops_FS)
  - CDC_TransmitCplt_FS from usbd_cdc_if.o(.text.CDC_TransmitCplt_FS) referenced 2 times from usbd_cdc_if.o(.data.USBD_Interface_fops_FS)
  - 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(.text.DMA1_Stream1_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream2_IRQHandler from stm32f4xx_it.o(.text.DMA1_Stream2_IRQHandler) 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 stm32f4xx_it.o(.text.DMA1_Stream7_IRQHandler) 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(.text.DMA2_Stream1_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream2_IRQHandler from stm32f4xx_it.o(.text.DMA2_Stream2_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream3_IRQHandler from stm32f4xx_it.o(.text.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(.text.DMA2_Stream5_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream6_IRQHandler from stm32f4xx_it.o(.text.DMA2_Stream6_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream7_IRQHandler from stm32f4xx_it.o(.text.DMA2_Stream7_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - DR16_RxCpltCallback from dr16.o(.text.DR16_RxCpltCallback) referenced 2 times from dr16.o(.text.DR16_Init)
  - DebugMon_Handler from stm32f4xx_it.o(.text.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(.text.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 stm32f4xx_it.o(.text.EXTI3_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - EXTI4_IRQHandler from stm32f4xx_it.o(.text.EXTI4_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - EXTI9_5_IRQHandler from stm32f4xx_it.o(.text.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(.text.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)
  - MOTOR_LZ_IdParser from motor_lz.o(.text.MOTOR_LZ_IdParser) referenced 2 times from motor_lz.o(.text.MOTOR_LZ_Init)
  - MemManage_Handler from stm32f4xx_it.o(.text.MemManage_Handler) referenced from startup_stm32f407xx.o(RESET)
  - NMI_Handler from stm32f4xx_it.o(.text.NMI_Handler) referenced from startup_stm32f407xx.o(RESET)
  - OTG_FS_IRQHandler from stm32f4xx_it.o(.text.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)
  - PVD_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - PendSV_Handler from port.o(.text.PendSV_Handler) referenced from startup_stm32f407xx.o(RESET)
  - RCC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - 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)
  - SVC_Handler from port.o(.text.SVC_Handler) referenced from startup_stm32f407xx.o(RESET)
  - StartDefaultTask from freertos.o(.text.StartDefaultTask) referenced 2 times from freertos.o(.text.MX_FREERTOS_Init)
  - SysTick_Handler from stm32f4xx_it.o(.text.SysTick_Handler) referenced from startup_stm32f407xx.o(RESET)
  - SystemInit from system_stm32f4xx.o(.text.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 stm32f4xx_it.o(.text.TIM1_BRK_TIM9_IRQHandler) 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 startup_stm32f407xx.o(.text) 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(.text.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_Init from init.o(.text.Task_Init) referenced 2 times from freertos.o(.text.MX_FREERTOS_Init)
  - Task_atti_esti from atti_esti.o(.text.Task_atti_esti) referenced 2 times from init.o(.text.Task_Init)
  - Task_blink from blink.o(.text.Task_blink) referenced 2 times from init.o(.text.Task_Init)
  - Task_ctrl_chassis from ctrl_chassis.o(.text.Task_ctrl_chassis) referenced 2 times from init.o(.text.Task_Init)
  - Task_ctrl_gimbal from ctrl_gimbal.o(.text.Task_ctrl_gimbal) referenced 2 times from init.o(.text.Task_Init)
  - Task_rc from rc.o(.text.Task_rc) referenced 2 times from init.o(.text.Task_Init)
  - 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(.text.UART_DMAAbortOnError) referenced 2 times from stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler)
  - UART_DMAError from stm32f4xx_hal_uart.o(.text.UART_DMAError) referenced 2 times from stm32f4xx_hal_uart.o(.text.HAL_UART_Receive_DMA)
  - UART_DMAReceiveCplt from stm32f4xx_hal_uart.o(.text.UART_DMAReceiveCplt) referenced 2 times from stm32f4xx_hal_uart.o(.text.HAL_UART_Receive_DMA)
  - UART_DMARxHalfCplt from stm32f4xx_hal_uart.o(.text.UART_DMARxHalfCplt) referenced 2 times from stm32f4xx_hal_uart.o(.text.HAL_UART_Receive_DMA)
  - USART1_IRQHandler from stm32f4xx_it.o(.text.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(.text.USART6_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - USBD_CDC_DataIn from usbd_cdc.o(.text.USBD_CDC_DataIn) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_CDC_DataOut from usbd_cdc.o(.text.USBD_CDC_DataOut) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_CDC_DeInit from usbd_cdc.o(.text.USBD_CDC_DeInit) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_CDC_EP0_RxReady from usbd_cdc.o(.text.USBD_CDC_EP0_RxReady) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_CDC_GetDeviceQualifierDescriptor from usbd_cdc.o(.text.USBD_CDC_GetDeviceQualifierDescriptor) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_CDC_GetFSCfgDesc from usbd_cdc.o(.text.USBD_CDC_GetFSCfgDesc) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_CDC_GetHSCfgDesc from usbd_cdc.o(.text.USBD_CDC_GetHSCfgDesc) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_CDC_GetOtherSpeedCfgDesc from usbd_cdc.o(.text.USBD_CDC_GetOtherSpeedCfgDesc) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_CDC_Init from usbd_cdc.o(.text.USBD_CDC_Init) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_CDC_Setup from usbd_cdc.o(.text.USBD_CDC_Setup) referenced 2 times from usbd_cdc.o(.data.USBD_CDC)
  - USBD_FS_ConfigStrDescriptor from usbd_desc.o(.text.USBD_FS_ConfigStrDescriptor) referenced 2 times from usbd_desc.o(.data.FS_Desc)
  - USBD_FS_DeviceDescriptor from usbd_desc.o(.text.USBD_FS_DeviceDescriptor) referenced 2 times from usbd_desc.o(.data.FS_Desc)
  - USBD_FS_InterfaceStrDescriptor from usbd_desc.o(.text.USBD_FS_InterfaceStrDescriptor) referenced 2 times from usbd_desc.o(.data.FS_Desc)
  - USBD_FS_LangIDStrDescriptor from usbd_desc.o(.text.USBD_FS_LangIDStrDescriptor) referenced 2 times from usbd_desc.o(.data.FS_Desc)
  - USBD_FS_ManufacturerStrDescriptor from usbd_desc.o(.text.USBD_FS_ManufacturerStrDescriptor) referenced 2 times from usbd_desc.o(.data.FS_Desc)
  - USBD_FS_ProductStrDescriptor from usbd_desc.o(.text.USBD_FS_ProductStrDescriptor) referenced 2 times from usbd_desc.o(.data.FS_Desc)
  - USBD_FS_SerialStrDescriptor from usbd_desc.o(.text.USBD_FS_SerialStrDescriptor) referenced 2 times from usbd_desc.o(.data.FS_Desc)
  - UsageFault_Handler from stm32f4xx_it.o(.text.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(.text.prvIdleTask) referenced 2 times from tasks.o(.text.vTaskStartScheduler)
  - prvTaskExitError from port.o(.text.prvTaskExitError) referenced 2 times from port.o(.text.pxPortInitialiseStack)
  - prvTimerTask from timers.o(.text.prvTimerTask) referenced 2 times from timers.o(.text.xTimerCreateTimerTask)

  ### Global Symbols

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

  - >> __rt_entry
  - >> __scatterload
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(.text)

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

  _printf_percent (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000))

  _printf_u (Thumb, 0 bytes, Stack size unknown bytes, _printf_u.o(.ARM.Collect$$_printf_percent$$0000000A))
  [Stack]

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = _printf_u ⇒ _printf_int_dec ⇒ _printf_int_common
  [Calls]
  - >> _printf_int_dec

  _printf_c (Thumb, 0 bytes, Stack size unknown bytes, _printf_c.o(.ARM.Collect$$_printf_percent$$00000013))
  [Stack]

  - Max Depth = 24 + Unknown Stack Size
  - Call Chain = _printf_c ⇒ _printf_char ⇒ _printf_cs_common ⇒ _printf_str
  [Calls]
  - >> _printf_char

  _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017))

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

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

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

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

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

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

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

  __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_TIM8_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [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

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

  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)

  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)

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

  TIM1_UP_TIM10_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]
  - >> HAL_RCC_GetSysClockFreq
  - >> UART_SetConfig

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

  _printf_str (Thumb, 82 bytes, Stack size 16 bytes, _printf_str.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = _printf_str
  [Called By]
  - >> _printf_cs_common

  _printf_int_dec (Thumb, 104 bytes, Stack size 24 bytes, _printf_dec.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = _printf_int_dec ⇒ _printf_int_common
  [Calls]
  - >> _printf_int_common
  [Called By]
  - >> _printf_u

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

  - >> BSP_CAN_RxFifo1Callback
  - >> BSP_CAN_RxFifo0Callback
  - >> xQueueReceiveFromISR
  - >> xQueueReceive
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend

  __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_memset4 (Thumb, 16 bytes, Stack size 0 bytes, aeabi_memset4.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = __aeabi_memset4 ⇒ _memset_w
  [Calls]
  - >> _memset_w
  [Called By]
  - >> prvInitialiseNewTask

  __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, aeabi_memset4.o(.text), UNUSED)

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

  - >> BSP_CAN_Init
  - >> USBD_CDC_Init
  - >> MOTOR_LZ_Register
  - >> MOTOR_LK_Register
  - >> DR16_Offline
  - >> VMC_Init
  - >> LQR_Reset
  - >> LQR_Init

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

  - >> MOTOR_LZ_Register
  - >> MOTOR_LK_Register
  - >> DM_IMU_Init

  __rt_memclr_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED)

  _memset_w (Thumb, 74 bytes, Stack size 4 bytes, rt_memclr_w.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = _memset_w
  [Called By]
  - >> __aeabi_memset4

  __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
  - >> __hardfp_sqrtf
  - >> __hardfp_sinf
  - >> __hardfp_cosf
  - >> __hardfp_atan2f

  _printf_int_common (Thumb, 178 bytes, Stack size 32 bytes, _printf_intcommon.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = _printf_int_common
  [Called By]
  - >> _printf_int_dec

  _printf_cs_common (Thumb, 20 bytes, Stack size 8 bytes, _printf_char.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = _printf_cs_common ⇒ _printf_str
  [Calls]
  - >> _printf_str
  [Called By]
  - >> _printf_string
  - >> _printf_char

  _printf_char (Thumb, 16 bytes, Stack size 0 bytes, _printf_char.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = _printf_char ⇒ _printf_cs_common ⇒ _printf_str
  [Calls]
  - >> _printf_cs_common
  [Called By]
  - >> _printf_c

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

  - >> _printf_cs_common

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

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

  AbsClip (Thumb, 34 bytes, Stack size 0 bytes, user_math.o(.text.AbsClip))
  [Called By]

  - >> PID_Calc

  BSP_CAN_GetMessage (Thumb, 182 bytes, Stack size 24 bytes, can_1.o(.text.BSP_CAN_GetMessage))
  [Stack]

  - Max Depth = 152
  - Call Chain = BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osMutexRelease
  - >> osMutexAcquire
  - >> osMessageQueueGet
  [Called By]
  - >> MOTOR_LZ_Update
  - >> MOTOR_LK_Update
  - >> DM_IMU_Update

  BSP_CAN_Init (Thumb, 212 bytes, Stack size 64 bytes, can_1.o(.text.BSP_CAN_Init))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = BSP_CAN_Init ⇒ osMutexNew ⇒ xQueueCreateMutexStatic ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_CAN_Start
  - >> HAL_CAN_ConfigFilter
  - >> HAL_CAN_ActivateNotification
  - >> osMutexNew
  - >> __aeabi_memclr4
  [Called By]
  - >> Task_ctrl_gimbal
  - >> Task_atti_esti
  - >> Chassis_Init

  BSP_CAN_RegisterId (Thumb, 226 bytes, Stack size 24 bytes, can_1.o(.text.BSP_CAN_RegisterId))
  [Stack]

  - Max Depth = 152
  - Call Chain = BSP_CAN_RegisterId ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_Malloc
  - >> BSP_Free
  - >> osMutexRelease
  - >> osMutexAcquire
  - >> osMessageQueueNew
  [Called By]
  - >> MOTOR_LZ_Register
  - >> MOTOR_LK_Register
  - >> DM_IMU_Init

  BSP_CAN_RegisterIdParser (Thumb, 34 bytes, Stack size 0 bytes, can_1.o(.text.BSP_CAN_RegisterIdParser))
  [Called By]

  - >> MOTOR_LZ_Init

  BSP_CAN_TransmitExtDataFrame (Thumb, 144 bytes, Stack size 40 bytes, can_1.o(.text.BSP_CAN_TransmitExtDataFrame))
  [Stack]

  - Max Depth = 72
  - Call Chain = BSP_CAN_TransmitExtDataFrame ⇒ HAL_CAN_AddTxMessage
  [Calls]
  - >> HAL_CAN_AddTxMessage
  [Called By]
  - >> MOTOR_LZ_MotionControl
  - >> MOTOR_LZ_Enable

  BSP_CAN_TransmitStdDataFrame (Thumb, 136 bytes, Stack size 40 bytes, can_1.o(.text.BSP_CAN_TransmitStdDataFrame))
  [Stack]

  - Max Depth = 72
  - Call Chain = BSP_CAN_TransmitStdDataFrame ⇒ HAL_CAN_AddTxMessage
  [Calls]
  - >> HAL_CAN_AddTxMessage
  [Called By]
  - >> MOTOR_LK_SetOutput
  - >> MOTOR_LK_MotorOn
  - >> DM_IMU_AutoUpdateAll

  BSP_CAN_WaitTxMailboxEmpty (Thumb, 178 bytes, Stack size 16 bytes, can_1.o(.text.BSP_CAN_WaitTxMailboxEmpty))
  [Stack]

  - Max Depth = 96
  - Call Chain = BSP_CAN_WaitTxMailboxEmpty ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_GetTick
  - >> HAL_CAN_GetTxMailboxesFreeLevel
  - >> osDelay
  [Called By]
  - >> MOTOR_LZ_MotionControl
  - >> MOTOR_LZ_Enable
  - >> MOTOR_LK_SetOutput
  - >> MOTOR_LK_MotorOn
  - >> DM_IMU_AutoUpdateAll

  BSP_Free (Thumb, 4 bytes, Stack size 0 bytes, mm.o(.text.BSP_Free))
  [Stack]

  - Max Depth = 72
  - Call Chain = BSP_Free ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortFree
  [Called By]
  - >> BSP_CAN_RegisterId
  - >> MOTOR_LZ_Register
  - >> MOTOR_LK_Register

  BSP_Malloc (Thumb, 4 bytes, Stack size 0 bytes, mm.o(.text.BSP_Malloc))
  [Stack]

  - Max Depth = 80
  - Call Chain = BSP_Malloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> pvPortMalloc
  [Called By]
  - >> BSP_CAN_RegisterId
  - >> MOTOR_LZ_Register
  - >> MOTOR_LK_Register

  BSP_PWM_SetComp (Thumb, 160 bytes, Stack size 0 bytes, pwm.o(.text.BSP_PWM_SetComp))
  [Called By]

  - >> Task_blink

  BSP_PWM_Start (Thumb, 44 bytes, Stack size 8 bytes, pwm.o(.text.BSP_PWM_Start))
  [Stack]

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

  BSP_PWM_Stop (Thumb, 44 bytes, Stack size 8 bytes, pwm.o(.text.BSP_PWM_Stop))
  [Stack]

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

  BSP_TIME_Delay_us (Thumb, 168 bytes, Stack size 40 bytes, time.o(.text.BSP_TIME_Delay_us))
  [Stack]

  - Max Depth = 40
  - Call Chain = BSP_TIME_Delay_us
  [Calls]
  - >> osKernelGetTickFreq
  - >> xTaskGetTickCount
  [Called By]
  - >> Chassis_Output
  - >> Chassis_Control

  BSP_TIME_Get_ms (Thumb, 4 bytes, Stack size 0 bytes, time.o(.text.BSP_TIME_Get_ms))
  [Calls]

  - >> xTaskGetTickCount
  [Called By]
  - >> DM_IMU_Update

  BSP_TIME_Get (Thumb, 80 bytes, Stack size 24 bytes, time.o(.text.BSP_TIME_Get_us))
  [Stack]

  - Max Depth = 24
  - Call Chain = BSP_TIME_Get
  [Calls]
  - >> osKernelGetTickFreq
  - >> xTaskGetTickCount
  [Called By]
  - >> MOTOR_LZ_Update
  - >> MOTOR_LK_Update

  BSP_TIME_Get_us (Thumb, 80 bytes, Stack size 24 bytes, time.o(.text.BSP_TIME_Get_us))
  [Stack]

  - Max Depth = 24
  - Call Chain = BSP_TIME_Get_us
  [Called By]
  - >> Chassis_Control
  - >> DR16_ParseData

  BSP_UART_GetHandle (Thumb, 18 bytes, Stack size 0 bytes, uart.o(.text.BSP_UART_GetHandle))
  [Called By]

  - >> DR16_StartDmaRecv

  BSP_UART_IRQHandler (Thumb, 60 bytes, Stack size 4 bytes, uart.o(.text.BSP_UART_IRQHandler))
  [Stack]

  - Max Depth = 4
  - Call Chain = BSP_UART_IRQHandler
  [Called By]
  - >> USART6_IRQHandler

  BSP_UART_RegisterCallback (Thumb, 38 bytes, Stack size 0 bytes, uart.o(.text.BSP_UART_RegisterCallback))
  [Called By]

  - >> DR16_Init

  BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.BusFault_Handler))
  [Calls]

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

  CAN1_RX0_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.CAN1_RX0_IRQHandler))
  [Stack]

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

  CAN1_RX1_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.CAN1_RX1_IRQHandler))
  [Stack]

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

  CAN2_RX0_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.CAN2_RX0_IRQHandler))
  [Stack]

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

  CAN2_RX1_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.CAN2_RX1_IRQHandler))
  [Stack]

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

  Chassis_Control (Thumb, 696 bytes, Stack size 40 bytes, balance_chassis.o(.text.Chassis_Control))
  [Stack]

  - Max Depth = 292 + Unknown Stack Size
  - Call Chain = Chassis_Control ⇒ Chassis_LQRControl ⇒ VMC_InverseSolve ⇒ VMC_ComputeJacobian ⇒ __hardfp_sinf ⇒ __mathlib_rredf2
  [Calls]
  - >> __aeabi_ul2f
  - >> Chassis_Output
  - >> Chassis_LQRControl
  - >> MOTOR_LZ_Relax
  - >> MOTOR_LZ_Enable
  - >> MOTOR_LK_Relax
  - >> MOTOR_LK_MotorOn
  - >> VMC_InverseSolve
  - >> VMC_GetJointTorques
  - >> VMC_ForwardSolve
  - >> LQR_Reset
  - >> PID_Reset
  - >> BSP_TIME_Get_us
  - >> BSP_TIME_Delay_us
  [Called By]
  - >> Task_ctrl_chassis

  Chassis_Init (Thumb, 338 bytes, Stack size 32 bytes, balance_chassis.o(.text.Chassis_Init))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = Chassis_Init ⇒ BSP_CAN_Init ⇒ osMutexNew ⇒ xQueueCreateMutexStatic ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_Init
  - >> MOTOR_LZ_Register
  - >> MOTOR_LZ_Init
  - >> MOTOR_LK_Register
  - >> VMC_Init
  - >> LQR_SetGainMatrix
  - >> LQR_Init
  - >> PID_Init
  [Called By]
  - >> Task_ctrl_chassis

  Chassis_LQRControl (Thumb, 1264 bytes, Stack size 184 bytes, balance_chassis.o(.text.Chassis_LQRControl))
  [Stack]

  - Max Depth = 252
  - Call Chain = Chassis_LQRControl ⇒ VMC_InverseSolve ⇒ VMC_ComputeJacobian ⇒ __hardfp_sinf ⇒ __mathlib_rredf2
  [Calls]
  - >> __hardfp_sinf
  - >> VMC_InverseSolve
  - >> VMC_GroundContactDetection
  - >> VMC_GetVirtualLegState
  - >> VMC_GetJointTorques
  - >> LQR_UpdateState
  - >> LQR_SetTargetState
  - >> LQR_GetOutput
  - >> LQR_Control
  - >> LQR_CalculateGainMatrix
  - >> PID_Calc
  [Called By]
  - >> Chassis_Control

  Chassis_Output (Thumb, 152 bytes, Stack size 40 bytes, balance_chassis.o(.text.Chassis_Output))
  [Stack]

  - Max Depth = 184
  - Call Chain = Chassis_Output ⇒ MOTOR_LZ_MotionControl ⇒ BSP_CAN_WaitTxMailboxEmpty ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> MOTOR_LZ_MotionControl
  - >> MOTOR_LK_SetOutput
  - >> BSP_TIME_Delay_us
  [Called By]
  - >> Chassis_Control

  Chassis_UpdateFeedback (Thumb, 496 bytes, Stack size 16 bytes, balance_chassis.o(.text.Chassis_UpdateFeedback))
  [Stack]

  - Max Depth = 296
  - Call Chain = Chassis_UpdateFeedback ⇒ MOTOR_LZ_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> MOTOR_LZ_Update
  - >> MOTOR_LZ_GetMotor
  - >> MOTOR_LK_Update
  - >> MOTOR_LK_GetMotor
  [Called By]
  - >> Task_ctrl_chassis

  CircleError (Thumb, 60 bytes, Stack size 0 bytes, user_math.o(.text.CircleError))
  [Called By]

  - >> PID_Calc

  Config_GetRobotParam (Thumb, 10 bytes, Stack size 0 bytes, config.o(.text.Config_GetRobotParam))
  [Called By]

  - >> Task_ctrl_chassis
  - >> Task_atti_esti

  DMA1_Stream1_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.DMA1_Stream1_IRQHandler))
  [Stack]

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

  DMA1_Stream2_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.DMA1_Stream2_IRQHandler))
  [Stack]

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

  DMA1_Stream7_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.DMA1_Stream7_IRQHandler))
  [Stack]

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

  DMA2_Stream1_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.DMA2_Stream1_IRQHandler))
  [Stack]

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

  DMA2_Stream2_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.DMA2_Stream2_IRQHandler))
  [Stack]

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

  DMA2_Stream3_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.DMA2_Stream3_IRQHandler))
  [Stack]

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

  DMA2_Stream5_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.DMA2_Stream5_IRQHandler))
  [Stack]

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

  DMA2_Stream6_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.DMA2_Stream6_IRQHandler))
  [Stack]

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

  DMA2_Stream7_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.DMA2_Stream7_IRQHandler))
  [Stack]

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

  DM_IMU_AutoUpdateAll (Thumb, 224 bytes, Stack size 32 bytes, dm_imu.o(.text.DM_IMU_AutoUpdateAll))
  [Stack]

  - Max Depth = 304
  - Call Chain = DM_IMU_AutoUpdateAll ⇒ DM_IMU_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_WaitTxMailboxEmpty
  - >> BSP_CAN_TransmitStdDataFrame
  - >> DM_IMU_Update
  [Called By]
  - >> Task_atti_esti

  DM_IMU_Init (Thumb, 78 bytes, Stack size 16 bytes, dm_imu.o(.text.DM_IMU_Init))
  [Stack]

  - Max Depth = 168 + Unknown Stack Size
  - Call Chain = DM_IMU_Init ⇒ BSP_CAN_RegisterId ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_RegisterId
  - >> __aeabi_memclr8
  [Called By]
  - >> Task_atti_esti

  DM_IMU_Update (Thumb, 680 bytes, Stack size 120 bytes, dm_imu.o(.text.DM_IMU_Update))
  [Stack]

  - Max Depth = 272
  - Call Chain = DM_IMU_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_GetMessage
  - >> BSP_TIME_Get_ms
  [Called By]
  - >> DM_IMU_AutoUpdateAll

  DR16_Init (Thumb, 66 bytes, Stack size 16 bytes, dr16.o(.text.DR16_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = DR16_Init
  [Calls]
  - >> osThreadGetId
  - >> BSP_UART_RegisterCallback
  [Called By]
  - >> Task_rc

  DR16_Offline (Thumb, 26 bytes, Stack size 8 bytes, dr16.o(.text.DR16_Offline))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = DR16_Offline
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> Task_rc

  DR16_ParseData (Thumb, 492 bytes, Stack size 16 bytes, dr16.o(.text.DR16_ParseData))
  [Stack]

  - Max Depth = 40
  - Call Chain = DR16_ParseData ⇒ BSP_TIME_Get_us
  [Calls]
  - >> BSP_TIME_Get_us
  [Called By]
  - >> Task_rc

  DR16_StartDmaRecv (Thumb, 30 bytes, Stack size 8 bytes, dr16.o(.text.DR16_StartDmaRecv))
  [Stack]

  - Max Depth = 56
  - Call Chain = DR16_StartDmaRecv ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT
  [Calls]
  - >> HAL_UART_Receive_DMA
  - >> BSP_UART_GetHandle
  [Called By]
  - >> Task_rc

  DR16_WaitDmaCplt (Thumb, 22 bytes, Stack size 8 bytes, dr16.o(.text.DR16_WaitDmaCplt))
  [Stack]

  - Max Depth = 80
  - Call Chain = DR16_WaitDmaCplt ⇒ osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ vListInsert
  [Calls]
  - >> osThreadFlagsWait
  [Called By]
  - >> Task_rc

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

  - startup_stm32f407xx.o(RESET)

  EXTI0_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.EXTI0_IRQHandler))
  [Stack]

  - Max Depth = 16
  - 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)

  EXTI3_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.EXTI3_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = EXTI3_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, 6 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.EXTI4_IRQHandler))
  [Stack]

  - Max Depth = 16
  - 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, 6 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.EXTI9_5_IRQHandler))
  [Stack]

  - Max Depth = 16
  - 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, 6 bytes, Stack size 0 bytes, main.o(.text.Error_Handler))
  [Called By]

  - >> USBD_LL_Init
  - >> HAL_PCD_ResetCallback
  - >> HAL_UART_MspInit
  - >> HAL_SPI_MspInit
  - >> HAL_I2C_MspInit
  - >> MX_USB_DEVICE_Init
  - >> MX_USART6_UART_Init
  - >> MX_USART3_UART_Init
  - >> MX_USART1_UART_Init
  - >> MX_TIM8_Init
  - >> MX_TIM7_Init
  - >> MX_TIM5_Init
  - >> MX_TIM4_Init
  - >> MX_TIM3_Init
  - >> MX_TIM1_Init
  - >> MX_TIM10_Init
  - >> MX_SPI2_Init
  - >> MX_SPI1_Init
  - >> MX_RNG_Init
  - >> MX_I2C3_Init
  - >> MX_I2C2_Init
  - >> MX_I2C1_Init
  - >> MX_CRC_Init
  - >> MX_CAN2_Init
  - >> MX_CAN1_Init
  - >> MX_ADC3_Init
  - >> MX_ADC1_Init

  HAL_ADC_ConfigChannel (Thumb, 412 bytes, Stack size 24 bytes, stm32f4xx_hal_adc.o(.text.HAL_ADC_ConfigChannel))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_ADC_ConfigChannel
  [Calls]
  - >> assert_failed
  [Called By]
  - >> MX_ADC3_Init
  - >> MX_ADC1_Init

  HAL_ADC_Init (Thumb, 926 bytes, Stack size 24 bytes, stm32f4xx_hal_adc.o(.text.HAL_ADC_Init))
  [Stack]

  - Max Depth = 104
  - Call Chain = HAL_ADC_Init ⇒ HAL_ADC_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_ADC_MspInit
  - >> assert_failed
  [Called By]
  - >> MX_ADC3_Init
  - >> MX_ADC1_Init

  HAL_ADC_MspInit (Thumb, 156 bytes, Stack size 32 bytes, adc.o(.text.HAL_ADC_MspInit))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_ADC_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GPIO_Init
  [Called By]
  - >> HAL_ADC_Init

  HAL_CAN_ActivateNotification (Thumb, 78 bytes, Stack size 16 bytes, stm32f4xx_hal_can.o(.text.HAL_CAN_ActivateNotification))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_CAN_ActivateNotification
  [Calls]
  - >> assert_failed
  [Called By]
  - >> BSP_CAN_Init

  HAL_CAN_AddTxMessage (Thumb, 330 bytes, Stack size 32 bytes, stm32f4xx_hal_can.o(.text.HAL_CAN_AddTxMessage))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_CAN_AddTxMessage
  [Calls]
  - >> assert_failed
  [Called By]
  - >> BSP_CAN_TransmitStdDataFrame
  - >> BSP_CAN_TransmitExtDataFrame

  HAL_CAN_ConfigFilter (Thumb, 528 bytes, Stack size 24 bytes, stm32f4xx_hal_can.o(.text.HAL_CAN_ConfigFilter))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_CAN_ConfigFilter
  [Calls]
  - >> assert_failed
  [Called By]
  - >> BSP_CAN_Init

  HAL_CAN_ErrorCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_ErrorCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_GetRxFifoFillLevel (Thumb, 58 bytes, Stack size 16 bytes, stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxFifoFillLevel))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_CAN_GetRxFifoFillLevel
  [Calls]
  - >> assert_failed
  [Called By]
  - >> BSP_CAN_RxFifo1Callback
  - >> BSP_CAN_RxFifo0Callback

  HAL_CAN_GetRxMessage (Thumb, 348 bytes, Stack size 24 bytes, stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxMessage))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_CAN_GetRxMessage
  [Calls]
  - >> assert_failed
  [Called By]
  - >> BSP_CAN_RxFifo1Callback
  - >> BSP_CAN_RxFifo0Callback

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

  - >> BSP_CAN_WaitTxMailboxEmpty

  HAL_CAN_IRQHandler (Thumb, 606 bytes, Stack size 40 bytes, stm32f4xx_hal_can.o(.text.HAL_CAN_IRQHandler))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_CAN_IRQHandler
  [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_RxFifo1MsgPendingCallback
  - >> HAL_CAN_RxFifo1FullCallback
  - >> HAL_CAN_RxFifo0MsgPendingCallback
  - >> HAL_CAN_RxFifo0FullCallback
  - >> HAL_CAN_ErrorCallback
  [Called By]
  - >> CAN2_RX1_IRQHandler
  - >> CAN2_RX0_IRQHandler
  - >> CAN1_RX1_IRQHandler
  - >> CAN1_RX0_IRQHandler

  HAL_CAN_Init (Thumb, 612 bytes, Stack size 16 bytes, stm32f4xx_hal_can.o(.text.HAL_CAN_Init))
  [Stack]

  - Max Depth = 104
  - Call Chain = HAL_CAN_Init ⇒ HAL_CAN_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GetTick
  - >> HAL_CAN_MspInit
  - >> assert_failed
  [Called By]
  - >> MX_CAN2_Init
  - >> MX_CAN1_Init

  HAL_CAN_MspInit (Thumb, 308 bytes, Stack size 40 bytes, can.o(.text.HAL_CAN_MspInit))
  [Stack]

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

  HAL_CAN_RxFifo0FullCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_RxFifo0FullCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_RxFifo0MsgPendingCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_RxFifo0MsgPendingCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_RxFifo1FullCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_RxFifo1FullCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_RxFifo1MsgPendingCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_RxFifo1MsgPendingCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_SleepCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_SleepCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_Start (Thumb, 90 bytes, Stack size 16 bytes, stm32f4xx_hal_can.o(.text.HAL_CAN_Start))
  [Stack]

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

  HAL_CAN_TxMailbox0AbortCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_TxMailbox0AbortCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_TxMailbox0CompleteCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_TxMailbox0CompleteCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_TxMailbox1AbortCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_TxMailbox1AbortCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_TxMailbox1CompleteCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_TxMailbox1CompleteCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_TxMailbox2AbortCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_TxMailbox2AbortCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_TxMailbox2CompleteCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_TxMailbox2CompleteCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CAN_WakeUpFromRxMsgCallback (Thumb, 62 bytes, Stack size 0 bytes, can_1.o(.text.HAL_CAN_WakeUpFromRxMsgCallback))
  [Called By]

  - >> HAL_CAN_IRQHandler

  HAL_CRC_Init (Thumb, 70 bytes, Stack size 8 bytes, stm32f4xx_hal_crc.o(.text.HAL_CRC_Init))
  [Stack]

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

  HAL_CRC_MspInit (Thumb, 50 bytes, Stack size 4 bytes, crc.o(.text.HAL_CRC_MspInit))
  [Stack]

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

  HAL_DMA_Abort (Thumb, 146 bytes, Stack size 16 bytes, stm32f4xx_hal_dma.o(.text.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, 36 bytes, Stack size 0 bytes, stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort_IT))
  [Called By]

  - >> HAL_UART_IRQHandler

  HAL_DMA_IRQHandler (Thumb, 448 bytes, Stack size 24 bytes, stm32f4xx_hal_dma.o(.text.HAL_DMA_IRQHandler))
  [Stack]

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

  HAL_DMA_Init (Thumb, 1066 bytes, Stack size 24 bytes, stm32f4xx_hal_dma.o(.text.HAL_DMA_Init))
  [Stack]

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

  HAL_DMA_Start_IT (Thumb, 160 bytes, Stack size 24 bytes, stm32f4xx_hal_dma.o(.text.HAL_DMA_Start_IT))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_DMA_Start_IT
  [Calls]
  - >> assert_failed
  [Called By]
  - >> HAL_UART_Receive_DMA

  HAL_Delay (Thumb, 40 bytes, Stack size 16 bytes, stm32f4xx_hal.o(.text.HAL_Delay))
  [Stack]

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

  HAL_GPIO_EXTI_Callback (Thumb, 182 bytes, Stack size 16 bytes, gpio_1.o(.text.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, 22 bytes, Stack size 0 bytes, stm32f4xx_hal_gpio.o(.text.HAL_GPIO_EXTI_IRQHandler))
  [Stack]

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

  HAL_GPIO_Init (Thumb, 704 bytes, Stack size 48 bytes, stm32f4xx_hal_gpio.o(.text.HAL_GPIO_Init))
  [Stack]

  - Max Depth = 48
  - Call Chain = HAL_GPIO_Init
  [Calls]
  - >> assert_failed
  [Called By]
  - >> HAL_PCD_MspInit
  - >> HAL_UART_MspInit
  - >> HAL_TIM_MspPostInit
  - >> HAL_SPI_MspInit
  - >> HAL_I2C_MspInit
  - >> HAL_CAN_MspInit
  - >> HAL_ADC_MspInit
  - >> MX_GPIO_Init

  HAL_GPIO_WritePin (Thumb, 68 bytes, Stack size 16 bytes, stm32f4xx_hal_gpio.o(.text.HAL_GPIO_WritePin))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_GPIO_WritePin
  [Calls]
  - >> assert_failed
  [Called By]
  - >> MX_GPIO_Init

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

  - >> HAL_DMA_Abort
  - >> HAL_Delay
  - >> HAL_DMA_Init
  - >> HAL_CAN_Init
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> HAL_CAN_Start
  - >> BSP_CAN_WaitTxMailboxEmpty
  - >> BSP_CAN_RxFifo1Callback
  - >> BSP_CAN_RxFifo0Callback

  HAL_I2C_Init (Thumb, 734 bytes, Stack size 16 bytes, stm32f4xx_hal_i2c.o(.text.HAL_I2C_Init))
  [Stack]

  - Max Depth = 128
  - Call Chain = HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_RCC_GetPCLK1Freq
  - >> HAL_I2C_MspInit
  - >> assert_failed
  [Called By]
  - >> MX_I2C3_Init
  - >> MX_I2C2_Init
  - >> MX_I2C1_Init

  HAL_I2C_MspInit (Thumb, 528 bytes, Stack size 64 bytes, i2c.o(.text.HAL_I2C_MspInit))
  [Stack]

  - Max Depth = 112
  - Call Chain = HAL_I2C_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_DMA_Init
  - >> HAL_GPIO_Init
  - >> Error_Handler
  [Called By]
  - >> HAL_I2C_Init

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

  - >> SysTick_Handler

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

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

  HAL_InitTick (Thumb, 72 bytes, Stack size 16 bytes, stm32f4xx_hal.o(.text.HAL_InitTick))
  [Stack]

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

  HAL_MspInit (Thumb, 66 bytes, Stack size 8 bytes, stm32f4xx_hal_msp.o(.text.HAL_MspInit))
  [Stack]

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

  HAL_NVIC_EnableIRQ (Thumb, 54 bytes, Stack size 0 bytes, stm32f4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ))
  [Calls]

  - >> assert_failed
  [Called By]
  - >> HAL_PCD_MspInit
  - >> HAL_UART_MspInit
  - >> HAL_TIM_Base_MspInit
  - >> HAL_CAN_MspInit
  - >> MX_GPIO_Init
  - >> MX_DMA_Init

  HAL_NVIC_SetPriority (Thumb, 128 bytes, Stack size 16 bytes, stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_NVIC_SetPriority
  [Calls]
  - >> assert_failed
  [Called By]
  - >> HAL_InitTick
  - >> HAL_PCD_MspInit
  - >> HAL_MspInit
  - >> HAL_UART_MspInit
  - >> HAL_TIM_Base_MspInit
  - >> HAL_CAN_MspInit
  - >> MX_GPIO_Init
  - >> MX_DMA_Init

  HAL_NVIC_SetPriorityGrouping (Thumb, 56 bytes, Stack size 8 bytes, stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_NVIC_SetPriorityGrouping
  [Calls]
  - >> assert_failed
  [Called By]
  - >> HAL_Init

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

  - >> HAL_PCD_IRQHandler

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

  - >> USBD_LL_Init

  HAL_PCDEx_SetTxFiFo (Thumb, 148 bytes, Stack size 8 bytes, stm32f4xx_hal_pcd_ex.o(.text.HAL_PCDEx_SetTxFiFo))
  [Stack]

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

  HAL_PCD_ConnectCallback (Thumb, 8 bytes, Stack size 0 bytes, usbd_conf.o(.text.HAL_PCD_ConnectCallback))
  [Calls]

  - >> USBD_LL_DevConnected
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_DataInStageCallback (Thumb, 20 bytes, Stack size 0 bytes, usbd_conf.o(.text.HAL_PCD_DataInStageCallback))
  [Stack]

  - Max Depth = 60
  - Call Chain = HAL_PCD_DataInStageCallback ⇒ USBD_LL_DataInStage ⇒ USBD_CtlReceiveStatus ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_LL_DataInStage
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_DataOutStageCallback (Thumb, 22 bytes, Stack size 0 bytes, usbd_conf.o(.text.HAL_PCD_DataOutStageCallback))
  [Stack]

  - Max Depth = 52
  - Call Chain = HAL_PCD_DataOutStageCallback ⇒ USBD_LL_DataOutStage ⇒ USBD_CtlSendStatus ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_LL_DataOutStage
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_DisconnectCallback (Thumb, 8 bytes, Stack size 0 bytes, usbd_conf.o(.text.HAL_PCD_DisconnectCallback))
  [Stack]

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

  HAL_PCD_EP_Close (Thumb, 74 bytes, Stack size 8 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_EP_Close))
  [Stack]

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

  HAL_PCD_EP_ClrStall (Thumb, 98 bytes, Stack size 16 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_EP_ClrStall))
  [Stack]

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

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

  - >> USBD_LL_GetRxDataSize

  HAL_PCD_EP_Open (Thumb, 100 bytes, Stack size 16 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_EP_Open))
  [Stack]

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

  HAL_PCD_EP_Receive (Thumb, 68 bytes, Stack size 8 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_EP_Receive))
  [Stack]

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

  HAL_PCD_EP_SetStall (Thumb, 120 bytes, Stack size 16 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_EP_SetStall))
  [Stack]

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

  HAL_PCD_EP_Transmit (Thumb, 66 bytes, Stack size 8 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_EP_Transmit))
  [Stack]

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

  HAL_PCD_IRQHandler (Thumb, 2408 bytes, Stack size 80 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_IRQHandler))
  [Stack]

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

  HAL_PCD_ISOINIncompleteCallback (Thumb, 8 bytes, Stack size 0 bytes, usbd_conf.o(.text.HAL_PCD_ISOINIncompleteCallback))
  [Stack]

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

  HAL_PCD_ISOOUTIncompleteCallback (Thumb, 8 bytes, Stack size 0 bytes, usbd_conf.o(.text.HAL_PCD_ISOOUTIncompleteCallback))
  [Stack]

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

  HAL_PCD_Init (Thumb, 656 bytes, Stack size 24 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_Init))
  [Stack]

  - Max Depth = 112
  - Call Chain = HAL_PCD_Init ⇒ HAL_PCD_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> USB_SetCurrentMode
  - >> USB_DisableGlobalInt
  - >> USB_DevInit
  - >> USB_DevDisconnect
  - >> USB_CoreInit
  - >> HAL_PCD_MspInit
  - >> assert_failed
  [Called By]
  - >> USBD_LL_Init

  HAL_PCD_MspInit (Thumb, 126 bytes, Stack size 40 bytes, usbd_conf.o(.text.HAL_PCD_MspInit))
  [Stack]

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

  HAL_PCD_ResetCallback (Thumb, 42 bytes, Stack size 8 bytes, usbd_conf.o(.text.HAL_PCD_ResetCallback))
  [Stack]

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

  HAL_PCD_ResumeCallback (Thumb, 8 bytes, Stack size 0 bytes, usbd_conf.o(.text.HAL_PCD_ResumeCallback))
  [Calls]

  - >> USBD_LL_Resume
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_SOFCallback (Thumb, 8 bytes, Stack size 0 bytes, usbd_conf.o(.text.HAL_PCD_SOFCallback))
  [Stack]

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

  HAL_PCD_SetAddress (Thumb, 38 bytes, Stack size 8 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_SetAddress))
  [Stack]

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

  HAL_PCD_SetupStageCallback (Thumb, 14 bytes, Stack size 0 bytes, usbd_conf.o(.text.HAL_PCD_SetupStageCallback))
  [Stack]

  - Max Depth = 84
  - Call Chain = HAL_PCD_SetupStageCallback ⇒ USBD_LL_SetupStage ⇒ USBD_StdDevReq ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_LL_SetupStage
  [Called By]
  - >> HAL_PCD_IRQHandler

  HAL_PCD_Start (Thumb, 62 bytes, Stack size 8 bytes, stm32f4xx_hal_pcd.o(.text.HAL_PCD_Start))
  [Stack]

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

  HAL_PCD_SuspendCallback (Thumb, 52 bytes, Stack size 8 bytes, usbd_conf.o(.text.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, 548 bytes, Stack size 24 bytes, stm32f4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig))
  [Stack]

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

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

  - >> HAL_PCD_IRQHandler

  HAL_RCC_GetPCLK1Freq (Thumb, 38 bytes, Stack size 0 bytes, stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq))
  [Called By]

  - >> HAL_I2C_Init
  - >> UART_SetConfig

  HAL_RCC_GetPCLK2Freq (Thumb, 38 bytes, Stack size 0 bytes, stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq))
  [Called By]

  - >> UART_SetConfig

  HAL_RCC_GetSysClockFreq (Thumb, 106 bytes, Stack size 8 bytes, stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq))
  [Stack]

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

  HAL_RCC_OscConfig (Thumb, 1306 bytes, Stack size 32 bytes, stm32f4xx_hal_rcc.o(.text.HAL_RCC_OscConfig))
  [Stack]

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

  HAL_RNG_Init (Thumb, 72 bytes, Stack size 8 bytes, stm32f4xx_hal_rng.o(.text.HAL_RNG_Init))
  [Stack]

  - Max Depth = 12
  - Call Chain = HAL_RNG_Init ⇒ HAL_RNG_MspInit
  [Calls]
  - >> HAL_RNG_MspInit
  - >> assert_failed
  [Called By]
  - >> MX_RNG_Init

  HAL_RNG_MspInit (Thumb, 54 bytes, Stack size 4 bytes, rng.o(.text.HAL_RNG_MspInit))
  [Stack]

  - Max Depth = 4
  - Call Chain = HAL_RNG_MspInit
  [Called By]
  - >> HAL_RNG_Init

  HAL_SPI_Init (Thumb, 594 bytes, Stack size 16 bytes, stm32f4xx_hal_spi.o(.text.HAL_SPI_Init))
  [Stack]

  - Max Depth = 128
  - Call Chain = HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_SPI_MspInit
  - >> assert_failed
  [Called By]
  - >> MX_SPI2_Init
  - >> MX_SPI1_Init

  HAL_SPI_MspInit (Thumb, 418 bytes, Stack size 64 bytes, spi.o(.text.HAL_SPI_MspInit))
  [Stack]

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

  HAL_SYSTICK_Config (Thumb, 44 bytes, Stack size 0 bytes, stm32f4xx_hal_cortex.o(.text.HAL_SYSTICK_Config))
  [Called By]

  - >> HAL_InitTick

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

  HAL_TIMEx_ConfigBreakDeadTime (Thumb, 390 bytes, Stack size 24 bytes, stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_ConfigBreakDeadTime))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_TIMEx_ConfigBreakDeadTime
  [Calls]
  - >> assert_failed
  [Called By]
  - >> MX_TIM8_Init
  - >> MX_TIM1_Init

  HAL_TIMEx_MasterConfigSynchronization (Thumb, 398 bytes, Stack size 16 bytes, stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_TIMEx_MasterConfigSynchronization
  [Calls]
  - >> assert_failed
  [Called By]
  - >> MX_TIM8_Init
  - >> MX_TIM7_Init
  - >> MX_TIM5_Init
  - >> MX_TIM4_Init
  - >> MX_TIM3_Init
  - >> MX_TIM1_Init

  HAL_TIM_Base_Init (Thumb, 498 bytes, Stack size 16 bytes, stm32f4xx_hal_tim.o(.text.HAL_TIM_Base_Init))
  [Stack]

  - Max Depth = 48
  - Call Chain = HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority
  [Calls]
  - >> HAL_TIM_Base_MspInit
  - >> assert_failed
  - >> TIM_Base_SetConfig
  [Called By]
  - >> MX_TIM8_Init
  - >> MX_TIM7_Init
  - >> MX_TIM5_Init
  - >> MX_TIM4_Init
  - >> MX_TIM3_Init
  - >> MX_TIM1_Init
  - >> MX_TIM10_Init

  HAL_TIM_Base_MspInit (Thumb, 398 bytes, Stack size 16 bytes, tim.o(.text.HAL_TIM_Base_MspInit))
  [Stack]

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

  HAL_TIM_ConfigClockSource (Thumb, 1948 bytes, Stack size 16 bytes, stm32f4xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_TIM_ConfigClockSource
  [Calls]
  - >> assert_failed
  [Called By]
  - >> MX_TIM8_Init
  - >> MX_TIM5_Init
  - >> MX_TIM4_Init
  - >> MX_TIM3_Init
  - >> MX_TIM1_Init

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

  - >> HAL_TIM_IRQHandler

  HAL_TIM_IRQHandler (Thumb, 316 bytes, Stack size 16 bytes, stm32f4xx_hal_tim.o(.text.HAL_TIM_IRQHandler))
  [Stack]

  - Max Depth = 16
  - 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_BRK_TIM9_IRQHandler

  HAL_TIM_MspPostInit (Thumb, 534 bytes, Stack size 48 bytes, tim.o(.text.HAL_TIM_MspPostInit))
  [Stack]

  - Max Depth = 96
  - Call Chain = HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GPIO_Init
  [Called By]
  - >> MX_TIM8_Init
  - >> MX_TIM5_Init
  - >> MX_TIM4_Init
  - >> MX_TIM3_Init
  - >> MX_TIM1_Init
  - >> MX_TIM10_Init

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

  - >> HAL_TIM_IRQHandler

  HAL_TIM_PWM_ConfigChannel (Thumb, 976 bytes, Stack size 40 bytes, stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_TIM_PWM_ConfigChannel ⇒ TIM_OC2_SetConfig
  [Calls]
  - >> assert_failed
  - >> TIM_OC2_SetConfig
  - >> TIM_OC3_SetConfig
  - >> TIM_OC1_SetConfig
  [Called By]
  - >> MX_TIM8_Init
  - >> MX_TIM5_Init
  - >> MX_TIM4_Init
  - >> MX_TIM3_Init
  - >> MX_TIM1_Init
  - >> MX_TIM10_Init

  HAL_TIM_PWM_Init (Thumb, 498 bytes, Stack size 16 bytes, stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Init))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig
  [Calls]
  - >> assert_failed
  - >> TIM_Base_SetConfig
  - >> HAL_TIM_PWM_MspInit
  [Called By]
  - >> MX_TIM8_Init
  - >> MX_TIM5_Init
  - >> MX_TIM4_Init
  - >> MX_TIM3_Init
  - >> MX_TIM1_Init
  - >> MX_TIM10_Init

  HAL_TIM_PWM_MspInit (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_hal_tim.o(.text.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(.text.HAL_TIM_PWM_PulseFinishedCallback))
  [Called By]

  - >> HAL_TIM_IRQHandler

  HAL_TIM_PWM_Start (Thumb, 482 bytes, Stack size 16 bytes, stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Start))
  [Stack]

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

  HAL_TIM_PWM_Stop (Thumb, 390 bytes, Stack size 24 bytes, stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Stop))
  [Stack]

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

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

  HAL_UARTEx_RxEventCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback))
  [Called By]

  - >> HAL_UART_IRQHandler
  - >> UART_Receive_IT
  - >> UART_DMARxHalfCplt
  - >> UART_DMAReceiveCplt

  HAL_UART_ErrorCallback (Thumb, 34 bytes, Stack size 0 bytes, uart.o(.text.HAL_UART_ErrorCallback))
  [Called By]

  - >> HAL_UART_IRQHandler
  - >> UART_DMAError
  - >> UART_DMAAbortOnError

  HAL_UART_IRQHandler (Thumb, 1430 bytes, Stack size 24 bytes, stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_UART_IRQHandler ⇒ HAL_DMA_Abort
  [Calls]
  - >> HAL_DMA_Abort_IT
  - >> HAL_DMA_Abort
  - >> UART_Receive_IT
  - >> HAL_UARTEx_RxEventCallback
  - >> HAL_UART_TxCpltCallback
  - >> HAL_UART_ErrorCallback
  [Called By]
  - >> USART6_IRQHandler
  - >> USART1_IRQHandler

  HAL_UART_Init (Thumb, 390 bytes, Stack size 8 bytes, stm32f4xx_hal_uart.o(.text.HAL_UART_Init))
  [Stack]

  - Max Depth = 120
  - Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_UART_MspInit
  - >> assert_failed
  - >> UART_SetConfig
  [Called By]
  - >> MX_USART6_UART_Init
  - >> MX_USART3_UART_Init
  - >> MX_USART1_UART_Init

  HAL_UART_MspInit (Thumb, 736 bytes, Stack size 64 bytes, usart.o(.text.HAL_UART_MspInit))
  [Stack]

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

  HAL_UART_Receive_DMA (Thumb, 380 bytes, Stack size 24 bytes, stm32f4xx_hal_uart.o(.text.HAL_UART_Receive_DMA))
  [Stack]

  - Max Depth = 48
  - Call Chain = HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT
  [Calls]
  - >> HAL_DMA_Start_IT
  [Called By]
  - >> DR16_StartDmaRecv

  HAL_UART_RxCpltCallback (Thumb, 34 bytes, Stack size 0 bytes, uart.o(.text.HAL_UART_RxCpltCallback))
  [Called By]

  - >> UART_Receive_IT
  - >> UART_DMAReceiveCplt

  HAL_UART_RxHalfCpltCallback (Thumb, 34 bytes, Stack size 0 bytes, uart.o(.text.HAL_UART_RxHalfCpltCallback))
  [Called By]

  - >> UART_DMARxHalfCplt

  HAL_UART_TxCpltCallback (Thumb, 34 bytes, Stack size 0 bytes, uart.o(.text.HAL_UART_TxCpltCallback))
  [Called By]

  - >> HAL_UART_IRQHandler

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

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

  LQR_CalculateGainMatrix (Thumb, 668 bytes, Stack size 0 bytes, lqr.o(.text.LQR_CalculateGainMatrix))
  [Called By]

  - >> Chassis_LQRControl
  - >> LQR_SetGainMatrix
  - >> LQR_Init

  LQR_Control (Thumb, 326 bytes, Stack size 0 bytes, lqr.o(.text.LQR_Control))
  [Called By]

  - >> Chassis_LQRControl

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

  - >> Chassis_LQRControl

  LQR_Init (Thumb, 178 bytes, Stack size 32 bytes, lqr.o(.text.LQR_Init))
  [Stack]

  - Max Depth = 32 + Unknown Stack Size
  - Call Chain = LQR_Init
  [Calls]
  - >> __aeabi_memclr4
  - >> LQR_CalculateGainMatrix
  [Called By]
  - >> Chassis_Init

  LQR_Reset (Thumb, 46 bytes, Stack size 8 bytes, lqr.o(.text.LQR_Reset))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = LQR_Reset
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> Chassis_Control

  LQR_SetGainMatrix (Thumb, 22 bytes, Stack size 0 bytes, lqr.o(.text.LQR_SetGainMatrix))
  [Calls]

  - >> LQR_CalculateGainMatrix
  [Called By]
  - >> Chassis_Init

  LQR_SetTargetState (Thumb, 148 bytes, Stack size 8 bytes, lqr.o(.text.LQR_SetTargetState))
  [Stack]

  - Max Depth = 8
  - Call Chain = LQR_SetTargetState
  [Called By]
  - >> Chassis_LQRControl

  LQR_UpdateState (Thumb, 148 bytes, Stack size 8 bytes, lqr.o(.text.LQR_UpdateState))
  [Stack]

  - Max Depth = 8
  - Call Chain = LQR_UpdateState
  [Called By]
  - >> Chassis_LQRControl

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

  - >> PID_Calc

  LowPassFilter2p_Init (Thumb, 172 bytes, Stack size 8 bytes, filter.o(.text.LowPassFilter2p_Init))
  [Stack]

  - Max Depth = 44
  - Call Chain = LowPassFilter2p_Init ⇒ __hardfp_tanf ⇒ __mathlib_rredf2
  [Calls]
  - >> __hardfp_tanf
  [Called By]
  - >> PID_Init

  LowPassFilter2p_Reset (Thumb, 128 bytes, Stack size 0 bytes, filter.o(.text.LowPassFilter2p_Reset))
  [Called By]

  - >> PID_Reset
  - >> PID_Init

  MOTOR_LK_GetMotor (Thumb, 138 bytes, Stack size 16 bytes, motor_lk.o(.text.MOTOR_LK_GetMotor))
  [Stack]

  - Max Depth = 16
  - Call Chain = MOTOR_LK_GetMotor
  [Called By]
  - >> Chassis_UpdateFeedback

  MOTOR_LK_MotorOn (Thumb, 70 bytes, Stack size 24 bytes, motor_lk.o(.text.MOTOR_LK_MotorOn))
  [Stack]

  - Max Depth = 120
  - Call Chain = MOTOR_LK_MotorOn ⇒ BSP_CAN_WaitTxMailboxEmpty ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_WaitTxMailboxEmpty
  - >> BSP_CAN_TransmitStdDataFrame
  [Called By]
  - >> Chassis_Control

  MOTOR_LK_Register (Thumb, 272 bytes, Stack size 24 bytes, motor_lk.o(.text.MOTOR_LK_Register))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = MOTOR_LK_Register ⇒ BSP_CAN_RegisterId ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_Malloc
  - >> BSP_Free
  - >> BSP_CAN_RegisterId
  - >> __aeabi_memclr8
  - >> __aeabi_memclr4
  [Called By]
  - >> Chassis_Init

  MOTOR_LK_Relax (Thumb, 12 bytes, Stack size 0 bytes, motor_lk.o(.text.MOTOR_LK_Relax))
  [Stack]

  - Max Depth = 136
  - Call Chain = MOTOR_LK_Relax ⇒ MOTOR_LK_SetOutput ⇒ BSP_CAN_WaitTxMailboxEmpty ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> MOTOR_LK_SetOutput
  [Called By]
  - >> Chassis_Control

  MOTOR_LK_SetOutput (Thumb, 304 bytes, Stack size 40 bytes, motor_lk.o(.text.MOTOR_LK_SetOutput))
  [Stack]

  - Max Depth = 136
  - Call Chain = MOTOR_LK_SetOutput ⇒ BSP_CAN_WaitTxMailboxEmpty ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_WaitTxMailboxEmpty
  - >> BSP_CAN_TransmitStdDataFrame
  [Called By]
  - >> Chassis_Output
  - >> MOTOR_LK_Relax

  MOTOR_LK_Update (Thumb, 352 bytes, Stack size 48 bytes, motor_lk.o(.text.MOTOR_LK_Update))
  [Stack]

  - Max Depth = 200
  - Call Chain = MOTOR_LK_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_GetMessage
  - >> BSP_TIME_Get
  [Called By]
  - >> Chassis_UpdateFeedback

  MOTOR_LZ_Enable (Thumb, 74 bytes, Stack size 24 bytes, motor_lz.o(.text.MOTOR_LZ_Enable))
  [Stack]

  - Max Depth = 120
  - Call Chain = MOTOR_LZ_Enable ⇒ BSP_CAN_WaitTxMailboxEmpty ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_WaitTxMailboxEmpty
  - >> BSP_CAN_TransmitExtDataFrame
  [Called By]
  - >> Chassis_Control

  MOTOR_LZ_GetMotor (Thumb, 138 bytes, Stack size 16 bytes, motor_lz.o(.text.MOTOR_LZ_GetMotor))
  [Stack]

  - Max Depth = 16
  - Call Chain = MOTOR_LZ_GetMotor
  [Called By]
  - >> Chassis_UpdateFeedback

  MOTOR_LZ_Init (Thumb, 24 bytes, Stack size 8 bytes, motor_lz.o(.text.MOTOR_LZ_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = MOTOR_LZ_Init
  [Calls]
  - >> BSP_CAN_RegisterIdParser
  [Called By]
  - >> Chassis_Init

  MOTOR_LZ_MotionControl (Thumb, 676 bytes, Stack size 48 bytes, motor_lz.o(.text.MOTOR_LZ_MotionControl))
  [Stack]

  - Max Depth = 144
  - Call Chain = MOTOR_LZ_MotionControl ⇒ BSP_CAN_WaitTxMailboxEmpty ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_WaitTxMailboxEmpty
  - >> BSP_CAN_TransmitExtDataFrame
  [Called By]
  - >> Chassis_Output
  - >> MOTOR_LZ_Relax

  MOTOR_LZ_Register (Thumb, 280 bytes, Stack size 24 bytes, motor_lz.o(.text.MOTOR_LZ_Register))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = MOTOR_LZ_Register ⇒ BSP_CAN_RegisterId ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_Malloc
  - >> BSP_Free
  - >> BSP_CAN_RegisterId
  - >> __aeabi_memclr8
  - >> __aeabi_memclr4
  [Called By]
  - >> Chassis_Init

  MOTOR_LZ_Relax (Thumb, 12 bytes, Stack size 0 bytes, motor_lz.o(.text.MOTOR_LZ_Relax))
  [Stack]

  - Max Depth = 144
  - Call Chain = MOTOR_LZ_Relax ⇒ MOTOR_LZ_MotionControl ⇒ BSP_CAN_WaitTxMailboxEmpty ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> MOTOR_LZ_MotionControl
  [Called By]
  - >> Chassis_Control

  MOTOR_LZ_Update (Thumb, 724 bytes, Stack size 128 bytes, motor_lz.o(.text.MOTOR_LZ_Update))
  [Stack]

  - Max Depth = 280
  - Call Chain = MOTOR_LZ_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_GetMessage
  - >> BSP_TIME_Get
  [Called By]
  - >> Chassis_UpdateFeedback

  MX_ADC1_Init (Thumb, 108 bytes, Stack size 32 bytes, adc.o(.text.MX_ADC1_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = MX_ADC1_Init ⇒ HAL_ADC_Init ⇒ HAL_ADC_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_ADC_Init
  - >> HAL_ADC_ConfigChannel
  - >> Error_Handler
  [Called By]
  - >> main

  MX_ADC3_Init (Thumb, 108 bytes, Stack size 32 bytes, adc.o(.text.MX_ADC3_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = MX_ADC3_Init ⇒ HAL_ADC_Init ⇒ HAL_ADC_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_ADC_Init
  - >> HAL_ADC_ConfigChannel
  - >> Error_Handler
  [Called By]
  - >> main

  MX_CAN1_Init (Thumb, 68 bytes, Stack size 8 bytes, can.o(.text.MX_CAN1_Init))
  [Stack]

  - Max Depth = 112
  - Call Chain = MX_CAN1_Init ⇒ HAL_CAN_Init ⇒ HAL_CAN_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_CAN_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_CAN2_Init (Thumb, 68 bytes, Stack size 8 bytes, can.o(.text.MX_CAN2_Init))
  [Stack]

  - Max Depth = 112
  - Call Chain = MX_CAN2_Init ⇒ HAL_CAN_Init ⇒ HAL_CAN_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_CAN_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_CRC_Init (Thumb, 38 bytes, Stack size 8 bytes, crc.o(.text.MX_CRC_Init))
  [Stack]

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

  MX_DMA_Init (Thumb, 204 bytes, Stack size 16 bytes, dma.o(.text.MX_DMA_Init))
  [Stack]

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

  MX_FREERTOS_Init (Thumb, 64 bytes, Stack size 8 bytes, freertos.o(.text.MX_FREERTOS_Init))
  [Stack]

  - Max Depth = 168
  - Call Chain = MX_FREERTOS_Init ⇒ osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osThreadNew
  [Called By]
  - >> main

  MX_GPIO_Init (Thumb, 448 bytes, Stack size 64 bytes, gpio.o(.text.MX_GPIO_Init))
  [Stack]

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

  MX_I2C1_Init (Thumb, 66 bytes, Stack size 8 bytes, i2c.o(.text.MX_I2C1_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = MX_I2C1_Init ⇒ HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_I2C_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_I2C2_Init (Thumb, 66 bytes, Stack size 8 bytes, i2c.o(.text.MX_I2C2_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = MX_I2C2_Init ⇒ HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_I2C_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_I2C3_Init (Thumb, 66 bytes, Stack size 8 bytes, i2c.o(.text.MX_I2C3_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = MX_I2C3_Init ⇒ HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_I2C_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_RNG_Init (Thumb, 38 bytes, Stack size 8 bytes, rng.o(.text.MX_RNG_Init))
  [Stack]

  - Max Depth = 20
  - Call Chain = MX_RNG_Init ⇒ HAL_RNG_Init ⇒ HAL_RNG_MspInit
  [Calls]
  - >> HAL_RNG_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_SPI1_Init (Thumb, 82 bytes, Stack size 16 bytes, spi.o(.text.MX_SPI1_Init))
  [Stack]

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

  MX_SPI2_Init (Thumb, 76 bytes, Stack size 8 bytes, spi.o(.text.MX_SPI2_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = MX_SPI2_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_SPI_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_TIM10_Init (Thumb, 130 bytes, Stack size 40 bytes, tim.o(.text.MX_TIM10_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = MX_TIM10_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_PWM_ConfigChannel
  - >> HAL_TIM_MspPostInit
  - >> HAL_TIM_Base_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_TIM1_Init (Thumb, 344 bytes, Stack size 96 bytes, tim.o(.text.MX_TIM1_Init))
  [Stack]

  - Max Depth = 192
  - Call Chain = MX_TIM1_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_PWM_ConfigChannel
  - >> HAL_TIM_MspPostInit
  - >> HAL_TIM_ConfigClockSource
  - >> HAL_TIM_Base_Init
  - >> HAL_TIMEx_MasterConfigSynchronization
  - >> HAL_TIMEx_ConfigBreakDeadTime
  - >> Error_Handler
  [Called By]
  - >> main

  MX_TIM3_Init (Thumb, 200 bytes, Stack size 64 bytes, tim.o(.text.MX_TIM3_Init))
  [Stack]

  - Max Depth = 160
  - Call Chain = MX_TIM3_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_PWM_ConfigChannel
  - >> HAL_TIM_MspPostInit
  - >> HAL_TIM_ConfigClockSource
  - >> HAL_TIM_Base_Init
  - >> HAL_TIMEx_MasterConfigSynchronization
  - >> Error_Handler
  [Called By]
  - >> main

  MX_TIM4_Init (Thumb, 202 bytes, Stack size 64 bytes, tim.o(.text.MX_TIM4_Init))
  [Stack]

  - Max Depth = 160
  - Call Chain = MX_TIM4_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_PWM_ConfigChannel
  - >> HAL_TIM_MspPostInit
  - >> HAL_TIM_ConfigClockSource
  - >> HAL_TIM_Base_Init
  - >> HAL_TIMEx_MasterConfigSynchronization
  - >> Error_Handler
  [Called By]
  - >> main

  MX_TIM5_Init (Thumb, 248 bytes, Stack size 64 bytes, tim.o(.text.MX_TIM5_Init))
  [Stack]

  - Max Depth = 160
  - Call Chain = MX_TIM5_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_PWM_ConfigChannel
  - >> HAL_TIM_MspPostInit
  - >> HAL_TIM_ConfigClockSource
  - >> HAL_TIM_Base_Init
  - >> HAL_TIMEx_MasterConfigSynchronization
  - >> Error_Handler
  [Called By]
  - >> main

  MX_TIM7_Init (Thumb, 80 bytes, Stack size 16 bytes, tim.o(.text.MX_TIM7_Init))
  [Stack]

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

  MX_TIM8_Init (Thumb, 296 bytes, Stack size 96 bytes, tim.o(.text.MX_TIM8_Init))
  [Stack]

  - Max Depth = 192
  - Call Chain = MX_TIM8_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_PWM_ConfigChannel
  - >> HAL_TIM_MspPostInit
  - >> HAL_TIM_ConfigClockSource
  - >> HAL_TIM_Base_Init
  - >> HAL_TIMEx_MasterConfigSynchronization
  - >> HAL_TIMEx_ConfigBreakDeadTime
  - >> Error_Handler
  [Called By]
  - >> main

  MX_USART1_UART_Init (Thumb, 60 bytes, Stack size 8 bytes, usart.o(.text.MX_USART1_UART_Init))
  [Stack]

  - Max Depth = 128
  - Call Chain = MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_UART_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_USART3_UART_Init (Thumb, 70 bytes, Stack size 8 bytes, usart.o(.text.MX_USART3_UART_Init))
  [Stack]

  - Max Depth = 128
  - Call Chain = MX_USART3_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_UART_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_USART6_UART_Init (Thumb, 60 bytes, Stack size 8 bytes, usart.o(.text.MX_USART6_UART_Init))
  [Stack]

  - Max Depth = 128
  - Call Chain = MX_USART6_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_UART_Init
  - >> Error_Handler
  [Called By]
  - >> main

  MX_USB_DEVICE_Init (Thumb, 114 bytes, Stack size 8 bytes, usb_device.o(.text.MX_USB_DEVICE_Init))
  [Stack]

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

  MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.MemManage_Handler))
  [Calls]

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

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

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

  OTG_FS_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.OTG_FS_IRQHandler))
  [Stack]

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

  PID_Calc (Thumb, 372 bytes, Stack size 48 bytes, pid.o(.text.PID_Calc))
  [Stack]

  - Max Depth = 48
  - Call Chain = PID_Calc
  [Calls]
  - >> CircleError
  - >> AbsClip
  - >> LowPassFilter2p_Apply
  [Called By]
  - >> Chassis_LQRControl

  PID_Init (Thumb, 148 bytes, Stack size 16 bytes, pid.o(.text.PID_Init))
  [Stack]

  - Max Depth = 60
  - Call Chain = PID_Init ⇒ LowPassFilter2p_Init ⇒ __hardfp_tanf ⇒ __mathlib_rredf2
  [Calls]
  - >> LowPassFilter2p_Reset
  - >> LowPassFilter2p_Init
  [Called By]
  - >> Chassis_Init

  PID_Reset (Thumb, 44 bytes, Stack size 8 bytes, pid.o(.text.PID_Reset))
  [Stack]

  - Max Depth = 8
  - Call Chain = PID_Reset
  [Calls]
  - >> LowPassFilter2p_Reset
  [Called By]
  - >> Chassis_Control

  PendSV_Handler (Thumb, 100 bytes, Stack size 0 bytes, port.o(.text.PendSV_Handler))
  [Stack]

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

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

  - startup_stm32f407xx.o(RESET)

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

  - Max Depth = 136
  - Call Chain = StartDefaultTask ⇒ MX_USB_DEVICE_Init ⇒ USBD_Init ⇒ USBD_LL_Init ⇒ HAL_PCD_Init ⇒ HAL_PCD_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> osThreadTerminate
  - >> osThreadGetId
  - >> MX_USB_DEVICE_Init
  [Address Reference Count : 1]
  - freertos.o(.text.MX_FREERTOS_Init)

  SysTick_Handler (Thumb, 24 bytes, Stack size 8 bytes, stm32f4xx_it.o(.text.SysTick_Handler))
  [Stack]

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

  SystemClock_Config (Thumb, 168 bytes, Stack size 88 bytes, main.o(.text.SystemClock_Config))
  [Stack]

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

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

  - startup_stm32f407xx.o(.text)

  TIM1_BRK_TIM9_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.TIM1_BRK_TIM9_IRQHandler))
  [Stack]

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

  TIM7_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.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, 322 bytes, Stack size 16 bytes, stm32f4xx_hal_tim.o(.text.TIM_Base_SetConfig))
  [Stack]

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

  TIM_CCxChannelCmd (Thumb, 258 bytes, Stack size 16 bytes, stm32f4xx_hal_tim.o(.text.TIM_CCxChannelCmd))
  [Stack]

  - Max Depth = 16
  - Call Chain = TIM_CCxChannelCmd
  [Calls]
  - >> assert_failed
  [Called By]
  - >> HAL_TIM_PWM_Stop
  - >> HAL_TIM_PWM_Start

  TIM_OC2_SetConfig (Thumb, 220 bytes, Stack size 40 bytes, stm32f4xx_hal_tim.o(.text.TIM_OC2_SetConfig))
  [Stack]

  - Max Depth = 40
  - Call Chain = TIM_OC2_SetConfig
  [Calls]
  - >> assert_failed
  [Called By]
  - >> HAL_TIM_PWM_ConfigChannel

  Task_Init (Thumb, 186 bytes, Stack size 8 bytes, init.o(.text.Task_Init))
  [Stack]

  - Max Depth = 168
  - Call Chain = Task_Init ⇒ osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osThreadTerminate
  - >> osThreadNew
  - >> osThreadGetId
  - >> osMessageQueueNew
  - >> osKernelUnlock
  - >> osKernelLock
  [Address Reference Count : 1]
  - freertos.o(.text.MX_FREERTOS_Init)

  Task_atti_esti (Thumb, 152 bytes, Stack size 0 bytes, atti_esti.o(.text.Task_atti_esti))
  [Stack]

  - Max Depth = 304 + Unknown Stack Size
  - Call Chain = Task_atti_esti ⇒ DM_IMU_AutoUpdateAll ⇒ DM_IMU_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_Init
  - >> osMessageQueueReset
  - >> osMessageQueuePut
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> osDelay
  - >> __aeabi_ui2d
  - >> __aeabi_d2uiz
  - >> __aeabi_ddiv
  - >> Config_GetRobotParam
  - >> DM_IMU_Init
  - >> DM_IMU_AutoUpdateAll
  [Address Reference Count : 1]
  - init.o(.text.Task_Init)

  Task_blink (Thumb, 136 bytes, Stack size 0 bytes, blink.o(.text.Task_blink))
  [Stack]

  - Max Depth = 88
  - Call Chain = Task_blink ⇒ osDelayUntil ⇒ vTaskDelayUntil ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_PWM_Start
  - >> BSP_PWM_SetComp
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> osDelay
  - >> __hardfp_sinf
  - >> __aeabi_ui2d
  - >> __aeabi_d2uiz
  - >> __aeabi_ddiv
  - >> BSP_PWM_Stop
  [Address Reference Count : 1]
  - init.o(.text.Task_Init)

  Task_ctrl_chassis (Thumb, 204 bytes, Stack size 0 bytes, ctrl_chassis.o(.text.Task_ctrl_chassis))
  [Stack]

  - Max Depth = 296 + Unknown Stack Size
  - Call Chain = Task_ctrl_chassis ⇒ Chassis_UpdateFeedback ⇒ MOTOR_LZ_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osMessageQueueGet
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> osDelay
  - >> __aeabi_ui2d
  - >> __aeabi_d2uiz
  - >> __aeabi_ddiv
  - >> Chassis_UpdateFeedback
  - >> Chassis_Init
  - >> Chassis_Control
  - >> Config_GetRobotParam
  [Address Reference Count : 1]
  - init.o(.text.Task_Init)

  Task_ctrl_gimbal (Thumb, 64 bytes, Stack size 0 bytes, ctrl_gimbal.o(.text.Task_ctrl_gimbal))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = Task_ctrl_gimbal ⇒ BSP_CAN_Init ⇒ osMutexNew ⇒ xQueueCreateMutexStatic ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> BSP_CAN_Init
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> osDelay
  - >> __aeabi_ui2d
  - >> __aeabi_d2uiz
  - >> __aeabi_ddiv
  [Address Reference Count : 1]
  - init.o(.text.Task_Init)

  Task_rc (Thumb, 184 bytes, Stack size 0 bytes, rc.o(.text.Task_rc))
  [Stack]

  - Max Depth = 128 + Unknown Stack Size
  - Call Chain = Task_rc ⇒ osMessageQueuePut ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osMessageQueuePut
  - >> osKernelGetTickFreq
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> osDelay
  - >> __aeabi_ui2d
  - >> __aeabi_d2uiz
  - >> __aeabi_ddiv
  - >> DR16_WaitDmaCplt
  - >> DR16_StartDmaRecv
  - >> DR16_ParseData
  - >> DR16_Offline
  - >> DR16_Init
  [Address Reference Count : 1]
  - init.o(.text.Task_Init)

  USART1_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.USART1_IRQHandler))
  [Stack]

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

  USART6_IRQHandler (Thumb, 26 bytes, Stack size 8 bytes, stm32f4xx_it.o(.text.USART6_IRQHandler))
  [Stack]

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

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

  - usbd_cdc.o(.data.USBD_CDC)

  USBD_CDC_ReceivePacket (Thumb, 52 bytes, Stack size 8 bytes, usbd_cdc.o(.text.USBD_CDC_ReceivePacket))
  [Stack]

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

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

  - >> MX_USB_DEVICE_Init

  USBD_CDC_SetRxBuffer (Thumb, 26 bytes, Stack size 0 bytes, usbd_cdc.o(.text.USBD_CDC_SetRxBuffer))
  [Called By]

  - >> CDC_Receive_FS
  - >> CDC_Init_FS

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

  - >> CDC_Init_FS

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

  - Max Depth = 8
  - Call Chain = USBD_ClrClassConfig
  [Called By]
  - >> USBD_StdDevReq

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

  - >> USBD_StdEPReq

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

  - >> USBD_StdItfReq

  USBD_CtlContinueRx (Thumb, 16 bytes, Stack size 8 bytes, usbd_ioreq.o(.text.USBD_CtlContinueRx))
  [Stack]

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

  USBD_CtlContinueSendData (Thumb, 16 bytes, Stack size 8 bytes, usbd_ioreq.o(.text.USBD_CtlContinueSendData))
  [Stack]

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

  USBD_CtlError (Thumb, 22 bytes, Stack size 8 bytes, usbd_ctlreq.o(.text.USBD_CtlError))
  [Stack]

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

  USBD_CtlPrepareRx (Thumb, 30 bytes, Stack size 8 bytes, usbd_ioreq.o(.text.USBD_CtlPrepareRx))
  [Stack]

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

  USBD_CtlReceiveStatus (Thumb, 22 bytes, Stack size 8 bytes, usbd_ioreq.o(.text.USBD_CtlReceiveStatus))
  [Stack]

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

  USBD_CtlSendData (Thumb, 28 bytes, Stack size 8 bytes, usbd_ioreq.o(.text.USBD_CtlSendData))
  [Stack]

  - Max Depth = 44
  - Call Chain = USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_LL_Transmit
  [Called By]
  - >> USBD_CDC_Setup
  - >> USBD_StdEPReq
  - >> USBD_StdDevReq

  USBD_CtlSendStatus (Thumb, 22 bytes, Stack size 8 bytes, usbd_ioreq.o(.text.USBD_CtlSendStatus))
  [Stack]

  - Max Depth = 44
  - Call Chain = USBD_CtlSendStatus ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_LL_Transmit
  [Called By]
  - >> USBD_LL_DataOutStage
  - >> USBD_StdItfReq
  - >> USBD_StdEPReq
  - >> USBD_StdDevReq

  USBD_FS_ConfigStrDescriptor (Thumb, 24 bytes, Stack size 8 bytes, usbd_desc.o(.text.USBD_FS_ConfigStrDescriptor))
  [Stack]

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

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

  - usbd_desc.o(.data.FS_Desc)

  USBD_FS_InterfaceStrDescriptor (Thumb, 24 bytes, Stack size 8 bytes, usbd_desc.o(.text.USBD_FS_InterfaceStrDescriptor))
  [Stack]

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

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

  - usbd_desc.o(.data.FS_Desc)

  USBD_FS_ManufacturerStrDescriptor (Thumb, 24 bytes, Stack size 8 bytes, usbd_desc.o(.text.USBD_FS_ManufacturerStrDescriptor))
  [Stack]

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

  USBD_FS_ProductStrDescriptor (Thumb, 24 bytes, Stack size 8 bytes, usbd_desc.o(.text.USBD_FS_ProductStrDescriptor))
  [Stack]

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

  USBD_FS_SerialStrDescriptor (Thumb, 364 bytes, Stack size 16 bytes, usbd_desc.o(.text.USBD_FS_SerialStrDescriptor))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_FS_SerialStrDescriptor
  [Address Reference Count : 1]
  - usbd_desc.o(.data.FS_Desc)

  USBD_GetEpDesc (Thumb, 64 bytes, Stack size 8 bytes, usbd_core.o(.text.USBD_GetEpDesc))
  [Stack]

  - Max Depth = 8
  - Call Chain = USBD_GetEpDesc
  [Called By]
  - >> USBD_CDC_GetOtherSpeedCfgDesc
  - >> USBD_CDC_GetHSCfgDesc
  - >> USBD_CDC_GetFSCfgDesc

  USBD_GetString (Thumb, 250 bytes, Stack size 8 bytes, usbd_ctlreq.o(.text.USBD_GetString))
  [Stack]

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

  USBD_Init (Thumb, 42 bytes, Stack size 0 bytes, usbd_core.o(.text.USBD_Init))
  [Stack]

  - Max Depth = 120
  - Call Chain = USBD_Init ⇒ USBD_LL_Init ⇒ HAL_PCD_Init ⇒ HAL_PCD_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> USBD_LL_Init
  [Called By]
  - >> MX_USB_DEVICE_Init

  USBD_LL_ClearStallEP (Thumb, 36 bytes, Stack size 8 bytes, usbd_conf.o(.text.USBD_LL_ClearStallEP))
  [Stack]

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

  USBD_LL_CloseEP (Thumb, 36 bytes, Stack size 8 bytes, usbd_conf.o(.text.USBD_LL_CloseEP))
  [Stack]

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

  USBD_LL_DataInStage (Thumb, 186 bytes, Stack size 16 bytes, usbd_core.o(.text.USBD_LL_DataInStage))
  [Stack]

  - Max Depth = 60
  - Call Chain = USBD_LL_DataInStage ⇒ USBD_CtlReceiveStatus ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_LL_StallEP
  - >> USBD_LL_PrepareReceive
  - >> USBD_CtlReceiveStatus
  - >> USBD_CtlContinueSendData
  [Called By]
  - >> HAL_PCD_DataInStageCallback

  USBD_LL_DataOutStage (Thumb, 128 bytes, Stack size 8 bytes, usbd_core.o(.text.USBD_LL_DataOutStage))
  [Stack]

  - Max Depth = 52
  - Call Chain = USBD_LL_DataOutStage ⇒ USBD_CtlSendStatus ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_CtlSendStatus
  - >> USBD_CtlContinueRx
  [Called By]
  - >> HAL_PCD_DataOutStageCallback

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

  - >> HAL_PCD_ConnectCallback

  USBD_LL_DevDisconnected (Thumb, 32 bytes, Stack size 8 bytes, usbd_core.o(.text.USBD_LL_DevDisconnected))
  [Stack]

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

  USBD_LL_GetRxDataSize (Thumb, 8 bytes, Stack size 0 bytes, usbd_conf.o(.text.USBD_LL_GetRxDataSize))
  [Calls]

  - >> HAL_PCD_EP_GetRxCount
  [Called By]
  - >> USBD_CDC_DataOut

  USBD_LL_Init (Thumb, 108 bytes, Stack size 8 bytes, usbd_conf.o(.text.USBD_LL_Init))
  [Stack]

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

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

  - >> USBD_StdEPReq

  USBD_LL_IsoINIncomplete (Thumb, 40 bytes, Stack size 8 bytes, usbd_core.o(.text.USBD_LL_IsoINIncomplete))
  [Stack]

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

  USBD_LL_IsoOUTIncomplete (Thumb, 40 bytes, Stack size 8 bytes, usbd_core.o(.text.USBD_LL_IsoOUTIncomplete))
  [Stack]

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

  USBD_LL_OpenEP (Thumb, 42 bytes, Stack size 8 bytes, usbd_conf.o(.text.USBD_LL_OpenEP))
  [Stack]

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

  USBD_LL_PrepareReceive (Thumb, 36 bytes, Stack size 8 bytes, usbd_conf.o(.text.USBD_LL_PrepareReceive))
  [Stack]

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

  USBD_LL_Reset (Thumb, 104 bytes, Stack size 24 bytes, usbd_core.o(.text.USBD_LL_Reset))
  [Stack]

  - Max Depth = 56
  - 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, 20 bytes, Stack size 0 bytes, usbd_core.o(.text.USBD_LL_Resume))
  [Called By]

  - >> HAL_PCD_ResumeCallback

  USBD_LL_SOF (Thumb, 28 bytes, Stack size 8 bytes, usbd_core.o(.text.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(.text.USBD_LL_SetSpeed))
  [Called By]

  - >> HAL_PCD_ResetCallback

  USBD_LL_SetUSBAddress (Thumb, 36 bytes, Stack size 8 bytes, usbd_conf.o(.text.USBD_LL_SetUSBAddress))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_LL_SetUSBAddress ⇒ HAL_PCD_SetAddress
  [Calls]
  - >> HAL_PCD_SetAddress
  [Called By]
  - >> USBD_StdDevReq

  USBD_LL_SetupStage (Thumb, 98 bytes, Stack size 16 bytes, usbd_core.o(.text.USBD_LL_SetupStage))
  [Stack]

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

  USBD_LL_StallEP (Thumb, 36 bytes, Stack size 8 bytes, usbd_conf.o(.text.USBD_LL_StallEP))
  [Stack]

  - Max Depth = 24
  - Call Chain = USBD_LL_StallEP ⇒ HAL_PCD_EP_SetStall
  [Calls]
  - >> HAL_PCD_EP_SetStall
  [Called By]
  - >> USBD_LL_SetupStage
  - >> USBD_LL_DataInStage
  - >> USBD_CtlError
  - >> USBD_StdItfReq
  - >> USBD_StdEPReq
  - >> USBD_StdDevReq

  USBD_LL_Start (Thumb, 36 bytes, Stack size 8 bytes, usbd_conf.o(.text.USBD_LL_Start))
  [Stack]

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

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

  - >> HAL_PCD_SuspendCallback

  USBD_LL_Transmit (Thumb, 36 bytes, Stack size 8 bytes, usbd_conf.o(.text.USBD_LL_Transmit))
  [Stack]

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

  USBD_ParseSetupRequest (Thumb, 22 bytes, Stack size 0 bytes, usbd_ctlreq.o(.text.USBD_ParseSetupRequest))
  [Called By]

  - >> USBD_LL_SetupStage

  USBD_RegisterClass (Thumb, 66 bytes, Stack size 16 bytes, usbd_core.o(.text.USBD_RegisterClass))
  [Stack]

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

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

  - >> USBD_StdDevReq

  USBD_Start (Thumb, 4 bytes, Stack size 0 bytes, usbd_core.o(.text.USBD_Start))
  [Stack]

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

  USBD_StdDevReq (Thumb, 884 bytes, Stack size 24 bytes, usbd_ctlreq.o(.text.USBD_StdDevReq))
  [Stack]

  - Max Depth = 68
  - Call Chain = USBD_StdDevReq ⇒ USBD_CtlSendData ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_LL_StallEP
  - >> USBD_LL_SetUSBAddress
  - >> USBD_CtlSendData
  - >> USBD_SetClassConfig
  - >> USBD_CtlSendStatus
  - >> USBD_ClrClassConfig
  [Called By]
  - >> USBD_LL_SetupStage

  USBD_StdEPReq (Thumb, 408 bytes, Stack size 16 bytes, usbd_ctlreq.o(.text.USBD_StdEPReq))
  [Stack]

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

  USBD_StdItfReq (Thumb, 150 bytes, Stack size 16 bytes, usbd_ctlreq.o(.text.USBD_StdItfReq))
  [Stack]

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

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

  - >> USBD_CDC_DeInit

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

  - >> USBD_CDC_Init

  USB_ActivateEndpoint (Thumb, 152 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(.text.USB_ActivateEndpoint))
  [Stack]

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

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

  - >> HAL_PCD_IRQHandler

  USB_CoreInit (Thumb, 630 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(.text.USB_CoreInit))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_CoreInit
  [Called By]
  - >> HAL_PCD_Init

  USB_DeactivateEndpoint (Thumb, 148 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(.text.USB_DeactivateEndpoint))
  [Stack]

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

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

  - >> HAL_PCD_Start

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

  - >> HAL_PCD_Init

  USB_DevInit (Thumb, 822 bytes, Stack size 44 bytes, stm32f4xx_ll_usb.o(.text.USB_DevInit))
  [Stack]

  - Max Depth = 44
  - Call Chain = USB_DevInit
  [Called By]
  - >> HAL_PCD_Init

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

  - >> HAL_PCD_Init

  USB_EP0_OutStart (Thumb, 90 bytes, Stack size 0 bytes, stm32f4xx_ll_usb.o(.text.USB_EP0_OutStart))
  [Called By]

  - >> HAL_PCD_EP_SetStall
  - >> HAL_PCD_IRQHandler

  USB_EPClearStall (Thumb, 80 bytes, Stack size 0 bytes, stm32f4xx_ll_usb.o(.text.USB_EPClearStall))
  [Called By]

  - >> HAL_PCD_EP_ClrStall

  USB_EPSetStall (Thumb, 80 bytes, Stack size 0 bytes, stm32f4xx_ll_usb.o(.text.USB_EPSetStall))
  [Called By]

  - >> HAL_PCD_EP_SetStall

  USB_EPStartXfer (Thumb, 574 bytes, Stack size 20 bytes, stm32f4xx_ll_usb.o(.text.USB_EPStartXfer))
  [Stack]

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

  USB_EPStopXfer (Thumb, 274 bytes, Stack size 4 bytes, stm32f4xx_ll_usb.o(.text.USB_EPStopXfer))
  [Stack]

  - Max Depth = 4
  - Call Chain = USB_EPStopXfer
  [Called By]
  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_Start

  USB_FlushTxFifo (Thumb, 194 bytes, Stack size 4 bytes, stm32f4xx_ll_usb.o(.text.USB_FlushTxFifo))
  [Stack]

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

  USB_GetDevSpeed (Thumb, 26 bytes, Stack size 0 bytes, stm32f4xx_ll_usb.o(.text.USB_GetDevSpeed))
  [Called By]

  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_IRQHandler

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

  - >> HAL_PCD_IRQHandler

  USB_ReadPacket (Thumb, 190 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(.text.USB_ReadPacket))
  [Stack]

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

  USB_SetCurrentMode (Thumb, 108 bytes, Stack size 16 bytes, stm32f4xx_ll_usb.o(.text.USB_SetCurrentMode))
  [Stack]

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

  USB_SetDevAddress (Thumb, 34 bytes, Stack size 0 bytes, stm32f4xx_ll_usb.o(.text.USB_SetDevAddress))
  [Called By]

  - >> HAL_PCD_SetAddress

  USB_SetTurnaroundTime (Thumb, 288 bytes, Stack size 0 bytes, stm32f4xx_ll_usb.o(.text.USB_SetTurnaroundTime))
  [Called By]

  - >> HAL_PCD_IRQHandler

  USB_WritePacket (Thumb, 118 bytes, Stack size 8 bytes, stm32f4xx_ll_usb.o(.text.USB_WritePacket))
  [Stack]

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

  UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.UsageFault_Handler))
  [Calls]

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

  VMC_ComputeJacobian (Thumb, 304 bytes, Stack size 24 bytes, vmc.o(.text.VMC_ComputeJacobian))
  [Stack]

  - Max Depth = 60
  - Call Chain = VMC_ComputeJacobian ⇒ __hardfp_sinf ⇒ __mathlib_rredf2
  [Calls]
  - >> __hardfp_sinf
  - >> __hardfp_cosf
  [Called By]
  - >> VMC_InverseSolve

  VMC_ForwardSolve (Thumb, 1204 bytes, Stack size 56 bytes, vmc.o(.text.VMC_ForwardSolve))
  [Stack]

  - Max Depth = 96
  - Call Chain = VMC_ForwardSolve ⇒ __hardfp_atan2f ⇒ __set_errno
  [Calls]
  - >> __hardfp_sqrtf
  - >> __hardfp_sinf
  - >> __hardfp_cosf
  - >> __hardfp_atan2f
  [Called By]
  - >> Chassis_Control

  VMC_GetJointTorques (Thumb, 58 bytes, Stack size 0 bytes, vmc.o(.text.VMC_GetJointTorques))
  [Called By]

  - >> Chassis_LQRControl
  - >> Chassis_Control

  VMC_GetVirtualLegState (Thumb, 62 bytes, Stack size 0 bytes, vmc.o(.text.VMC_GetVirtualLegState))
  [Called By]

  - >> Chassis_LQRControl

  VMC_GroundContactDetection (Thumb, 124 bytes, Stack size 24 bytes, vmc.o(.text.VMC_GroundContactDetection))
  [Stack]

  - Max Depth = 60
  - Call Chain = VMC_GroundContactDetection ⇒ __hardfp_sinf ⇒ __mathlib_rredf2
  [Calls]
  - >> __hardfp_sinf
  - >> __hardfp_cosf
  [Called By]
  - >> Chassis_LQRControl

  VMC_Init (Thumb, 104 bytes, Stack size 16 bytes, vmc.o(.text.VMC_Init))
  [Stack]

  - Max Depth = 16 + Unknown Stack Size
  - Call Chain = VMC_Init
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> Chassis_Init

  VMC_InverseSolve (Thumb, 102 bytes, Stack size 8 bytes, vmc.o(.text.VMC_InverseSolve))
  [Stack]

  - Max Depth = 68
  - Call Chain = VMC_InverseSolve ⇒ VMC_ComputeJacobian ⇒ __hardfp_sinf ⇒ __mathlib_rredf2
  [Calls]
  - >> VMC_ComputeJacobian
  [Called By]
  - >> Chassis_LQRControl
  - >> Chassis_Control

  assert_failed (Thumb, 2 bytes, Stack size 0 bytes, main.o(.text.assert_failed))
  [Called By]

  - >> HAL_DMA_Start_IT
  - >> HAL_PCD_Init
  - >> HAL_UART_Init
  - >> HAL_TIM_PWM_Init
  - >> HAL_TIM_PWM_ConfigChannel
  - >> HAL_TIM_ConfigClockSource
  - >> HAL_TIM_Base_Init
  - >> HAL_TIMEx_MasterConfigSynchronization
  - >> HAL_TIMEx_ConfigBreakDeadTime
  - >> HAL_SPI_Init
  - >> HAL_RNG_Init
  - >> HAL_I2C_Init
  - >> HAL_DMA_Init
  - >> HAL_CRC_Init
  - >> HAL_CAN_Init
  - >> HAL_ADC_Init
  - >> HAL_ADC_ConfigChannel
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_GPIO_WritePin
  - >> HAL_GPIO_Init
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> UART_SetConfig
  - >> TIM_OC2_SetConfig
  - >> TIM_CCxChannelCmd
  - >> HAL_TIM_PWM_Stop
  - >> HAL_TIM_PWM_Start
  - >> TIM_OC3_SetConfig
  - >> TIM_OC1_SetConfig
  - >> HAL_CAN_GetRxMessage
  - >> HAL_CAN_GetRxFifoFillLevel
  - >> HAL_CAN_ConfigFilter
  - >> HAL_CAN_AddTxMessage
  - >> HAL_CAN_ActivateNotification
  - >> HAL_NVIC_SetPriorityGrouping

  configureTimerForRunTimeStats (Thumb, 2 bytes, Stack size 0 bytes, freertos.o(.text.configureTimerForRunTimeStats))
  [Called By]

  - >> vTaskStartScheduler

  eTaskGetState (Thumb, 144 bytes, Stack size 24 bytes, tasks.o(.text.eTaskGetState))
  [Stack]

  - Max Depth = 24
  - Call Chain = eTaskGetState
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> osThreadTerminate

  getRunTimeCounterValue (Thumb, 4 bytes, Stack size 0 bytes, freertos.o(.text.getRunTimeCounterValue))
  [Called By]

  - >> vTaskSwitchContext

  main (Thumb, 114 bytes, Stack size 0 bytes, main.o(.text.main))
  [Stack]

  - Max Depth = 192
  - Call Chain = main ⇒ MX_TIM8_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> osKernelStart
  - >> osKernelInitialize
  - >> SystemClock_Config
  - >> MX_USART6_UART_Init
  - >> MX_USART3_UART_Init
  - >> MX_USART1_UART_Init
  - >> MX_TIM8_Init
  - >> MX_TIM7_Init
  - >> MX_TIM5_Init
  - >> MX_TIM4_Init
  - >> MX_TIM3_Init
  - >> MX_TIM1_Init
  - >> MX_TIM10_Init
  - >> MX_SPI2_Init
  - >> MX_SPI1_Init
  - >> MX_RNG_Init
  - >> MX_I2C3_Init
  - >> MX_I2C2_Init
  - >> MX_I2C1_Init
  - >> MX_GPIO_Init
  - >> MX_FREERTOS_Init
  - >> MX_DMA_Init
  - >> MX_CRC_Init
  - >> MX_CAN2_Init
  - >> MX_CAN1_Init
  - >> MX_ADC3_Init
  - >> MX_ADC1_Init
  - >> HAL_Init
  [Called By]
  - >> __rt_entry_main

  osDelay (Thumb, 32 bytes, Stack size 8 bytes, cmsis_os2.o(.text.osDelay))
  [Stack]

  - Max Depth = 80
  - Call Chain = osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskDelay
  [Called By]
  - >> BSP_CAN_WaitTxMailboxEmpty
  - >> Task_rc
  - >> Task_ctrl_gimbal
  - >> Task_ctrl_chassis
  - >> Task_atti_esti
  - >> Task_blink

  osDelayUntil (Thumb, 56 bytes, Stack size 16 bytes, cmsis_os2.o(.text.osDelayUntil))
  [Stack]

  - Max Depth = 88
  - Call Chain = osDelayUntil ⇒ vTaskDelayUntil ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetTickCount
  - >> vTaskDelayUntil
  [Called By]
  - >> Task_rc
  - >> Task_ctrl_gimbal
  - >> Task_ctrl_chassis
  - >> Task_atti_esti
  - >> Task_blink

  osKernelGetTickCount (Thumb, 16 bytes, Stack size 0 bytes, cmsis_os2.o(.text.osKernelGetTickCount))
  [Stack]

  - Max Depth = 8
  - Call Chain = osKernelGetTickCount ⇒ xTaskGetTickCountFromISR
  [Calls]
  - >> xTaskGetTickCountFromISR
  - >> xTaskGetTickCount
  [Called By]
  - >> Task_rc
  - >> Task_ctrl_gimbal
  - >> Task_ctrl_chassis
  - >> Task_atti_esti
  - >> Task_blink

  osKernelGetTickFreq (Thumb, 6 bytes, Stack size 0 bytes, cmsis_os2.o(.text.osKernelGetTickFreq))
  [Called By]

  - >> Task_rc
  - >> Task_ctrl_gimbal
  - >> Task_ctrl_chassis
  - >> Task_atti_esti
  - >> Task_blink
  - >> BSP_TIME_Get
  - >> BSP_TIME_Delay_us

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

  - >> main

  osKernelLock (Thumb, 46 bytes, Stack size 8 bytes, cmsis_os2.o(.text.osKernelLock))
  [Stack]

  - Max Depth = 8
  - Call Chain = osKernelLock
  [Calls]
  - >> xTaskGetSchedulerState
  - >> vTaskSuspendAll
  [Called By]
  - >> Task_Init

  osKernelStart (Thumb, 64 bytes, Stack size 8 bytes, cmsis_os2.o(.text.osKernelStart))
  [Stack]

  - Max Depth = 164
  - Call Chain = osKernelStart ⇒ vTaskStartScheduler ⇒ xTimerCreateTimerTask ⇒ xTaskCreateStatic ⇒ prvInitialiseNewTask ⇒ __aeabi_memset4 ⇒ _memset_w
  [Calls]
  - >> vTaskStartScheduler
  [Called By]
  - >> main

  osKernelUnlock (Thumb, 72 bytes, Stack size 8 bytes, cmsis_os2.o(.text.osKernelUnlock))
  [Stack]

  - Max Depth = 64
  - Call Chain = osKernelUnlock ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetSchedulerState
  - >> xTaskResumeAll
  [Called By]
  - >> Task_Init

  osMessageQueueGet (Thumb, 136 bytes, Stack size 16 bytes, cmsis_os2.o(.text.osMessageQueueGet))
  [Stack]

  - Max Depth = 120
  - Call Chain = osMessageQueueGet ⇒ xQueueReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueReceiveFromISR
  - >> xQueueReceive
  [Called By]
  - >> BSP_CAN_GetMessage
  - >> Task_ctrl_chassis

  osMessageQueueNew (Thumb, 148 bytes, Stack size 24 bytes, cmsis_os2.o(.text.osMessageQueueNew))
  [Stack]

  - Max Depth = 128
  - Call Chain = osMessageQueueNew ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueGenericCreateStatic
  - >> xQueueGenericCreate
  - >> vQueueAddToRegistry
  [Called By]
  - >> Task_Init
  - >> BSP_CAN_RegisterId

  osMessageQueuePut (Thumb, 168 bytes, Stack size 24 bytes, cmsis_os2.o(.text.osMessageQueuePut))
  [Stack]

  - Max Depth = 128
  - Call Chain = osMessageQueuePut ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend
  [Called By]
  - >> BSP_CAN_RxFifo1Callback
  - >> BSP_CAN_RxFifo0Callback
  - >> Task_rc
  - >> Task_atti_esti

  osMessageQueueReset (Thumb, 36 bytes, Stack size 8 bytes, cmsis_os2.o(.text.osMessageQueueReset))
  [Stack]

  - Max Depth = 40
  - Call Chain = osMessageQueueReset ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xQueueGenericReset
  [Called By]
  - >> Task_atti_esti

  osMutexAcquire (Thumb, 84 bytes, Stack size 8 bytes, cmsis_os2.o(.text.osMutexAcquire))
  [Stack]

  - Max Depth = 128
  - Call Chain = osMutexAcquire ⇒ xQueueTakeMutexRecursive ⇒ xQueueSemaphoreTake ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueTakeMutexRecursive
  - >> xQueueSemaphoreTake
  [Called By]
  - >> BSP_CAN_RegisterId
  - >> BSP_CAN_GetMessage

  osMutexNew (Thumb, 124 bytes, Stack size 16 bytes, cmsis_os2.o(.text.osMutexNew))
  [Stack]

  - Max Depth = 144
  - Call Chain = osMutexNew ⇒ xQueueCreateMutexStatic ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueCreateMutexStatic
  - >> xQueueCreateMutex
  - >> vQueueAddToRegistry
  [Called By]
  - >> BSP_CAN_Init

  osMutexRelease (Thumb, 74 bytes, Stack size 8 bytes, cmsis_os2.o(.text.osMutexRelease))
  [Stack]

  - Max Depth = 128
  - Call Chain = osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueGiveMutexRecursive
  - >> xQueueGenericSend
  [Called By]
  - >> BSP_CAN_RegisterId
  - >> BSP_CAN_GetMessage

  osThreadFlagsSet (Thumb, 136 bytes, Stack size 32 bytes, cmsis_os2.o(.text.osThreadFlagsSet))
  [Stack]

  - Max Depth = 56
  - Call Chain = osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR
  [Calls]
  - >> xTaskGenericNotifyFromISR
  - >> xTaskGenericNotify
  [Called By]
  - >> DR16_RxCpltCallback

  osThreadFlagsWait (Thumb, 354 bytes, Stack size 40 bytes, cmsis_os2.o(.text.osThreadFlagsWait))
  [Stack]

  - Max Depth = 72
  - Call Chain = osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ vListInsert
  [Calls]
  - >> xTaskGetTickCount
  - >> xTaskNotifyWait
  [Called By]
  - >> DR16_WaitDmaCplt

  osThreadGetId (Thumb, 4 bytes, Stack size 0 bytes, cmsis_os2.o(.text.osThreadGetId))
  [Calls]

  - >> xTaskGetCurrentTaskHandle
  [Called By]
  - >> Task_Init
  - >> StartDefaultTask
  - >> DR16_Init

  osThreadNew (Thumb, 160 bytes, Stack size 40 bytes, cmsis_os2.o(.text.osThreadNew))
  [Stack]

  - Max Depth = 160
  - Call Chain = osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskCreateStatic
  - >> xTaskCreate
  [Called By]
  - >> Task_Init
  - >> MX_FREERTOS_Init

  osThreadTerminate (Thumb, 54 bytes, Stack size 8 bytes, cmsis_os2.o(.text.osThreadTerminate))
  [Stack]

  - Max Depth = 96
  - Call Chain = osThreadTerminate ⇒ vTaskDelete ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskDelete
  - >> eTaskGetState
  [Called By]
  - >> Task_Init
  - >> StartDefaultTask

  pvPortMalloc (Thumb, 542 bytes, Stack size 24 bytes, heap_4.o(.text.pvPortMalloc))
  [Stack]

  - Max Depth = 80
  - Call Chain = pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  [Called By]
  - >> BSP_Malloc
  - >> xTaskCreate
  - >> xQueueGenericCreate
  - >> xQueueCreateMutex

  pvTaskIncrementMutexHeldCount (Thumb, 24 bytes, Stack size 0 bytes, tasks.o(.text.pvTaskIncrementMutexHeldCount))
  [Called By]

  - >> xQueueSemaphoreTake

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

  - >> prvInitialiseNewTask

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

  - >> prvTimerTask
  - >> prvSampleTimeNow
  - >> xTaskIncrementTick
  - >> vTaskDelete
  - >> vTaskDelayUntil
  - >> vTaskDelay
  - >> prvIdleTask
  - >> xTaskNotifyWait
  - >> xTaskGenericNotifyFromISR
  - >> xTaskGenericNotify
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityInherit
  - >> xTaskPriorityDisinherit
  - >> vTaskPriorityDisinheritAfterTimeout
  - >> vTaskPlaceOnEventListRestricted
  - >> vTaskPlaceOnEventList
  - >> xTaskResumeAll

  vApplicationGetIdleTaskMemory (Thumb, 26 bytes, Stack size 0 bytes, cmsis_os2.o(.text.vApplicationGetIdleTaskMemory))
  [Called By]

  - >> vTaskStartScheduler

  vApplicationGetTimerTaskMemory (Thumb, 28 bytes, Stack size 0 bytes, cmsis_os2.o(.text.vApplicationGetTimerTaskMemory))
  [Called By]

  - >> xTimerCreateTimerTask

  vApplicationStackOverflowHook (Thumb, 2 bytes, Stack size 0 bytes, freertos.o(.text.vApplicationStackOverflowHook))
  [Called By]

  - >> vTaskSwitchContext

  vListInitialise (Thumb, 22 bytes, Stack size 0 bytes, list.o(.text.vListInitialise))
  [Called By]

  - >> xTimerCreateTimerTask
  - >> prvAddNewTaskToReadyList
  - >> xQueueGenericReset
  - >> xQueueGenericCreateStatic
  - >> xQueueGenericCreate
  - >> xQueueCreateMutexStatic
  - >> xQueueCreateMutex

  vListInitialiseItem (Thumb, 6 bytes, Stack size 0 bytes, list.o(.text.vListInitialiseItem))
  [Called By]

  - >> prvInitialiseNewTask

  vListInsert (Thumb, 98 bytes, Stack size 8 bytes, list.o(.text.vListInsert))
  [Stack]

  - Max Depth = 8
  - Call Chain = vListInsert
  [Called By]
  - >> prvTimerTask
  - >> prvSampleTimeNow
  - >> vTaskDelayUntil
  - >> vTaskDelay
  - >> xTaskNotifyWait
  - >> vTaskPlaceOnEventListRestricted
  - >> vTaskPlaceOnEventList

  vListInsertEnd (Thumb, 28 bytes, Stack size 0 bytes, list.o(.text.vListInsertEnd))
  [Called By]

  - >> xTaskIncrementTick
  - >> vTaskDelete
  - >> prvAddNewTaskToReadyList
  - >> xTaskNotifyWait
  - >> xTaskGenericNotifyFromISR
  - >> xTaskGenericNotify
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityInherit
  - >> xTaskPriorityDisinherit
  - >> vTaskPriorityDisinheritAfterTimeout
  - >> vTaskPlaceOnEventListRestricted
  - >> vTaskPlaceOnEventList
  - >> xTaskResumeAll

  vPortEnterCritical (Thumb, 70 bytes, Stack size 0 bytes, port.o(.text.vPortEnterCritical))
  [Called By]

  - >> xTimerCreateTimerTask
  - >> vTaskDelete
  - >> eTaskGetState
  - >> prvIdleTask
  - >> prvAddNewTaskToReadyList
  - >> xTaskNotifyWait
  - >> xTaskGenericNotify
  - >> xTaskCheckForTimeOut
  - >> xQueueSemaphoreTake
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> xQueueGenericCreateStatic
  - >> xQueueGenericCreate
  - >> xQueueCreateMutexStatic
  - >> xQueueCreateMutex
  - >> vQueueWaitForMessageRestricted
  - >> prvUnlockQueue
  - >> xTaskResumeAll

  vPortExitCritical (Thumb, 46 bytes, Stack size 0 bytes, port.o(.text.vPortExitCritical))
  [Called By]

  - >> xTimerCreateTimerTask
  - >> vTaskDelete
  - >> eTaskGetState
  - >> prvIdleTask
  - >> prvAddNewTaskToReadyList
  - >> xTaskNotifyWait
  - >> xTaskGenericNotify
  - >> xTaskCheckForTimeOut
  - >> xQueueSemaphoreTake
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> xQueueGenericCreateStatic
  - >> xQueueGenericCreate
  - >> xQueueCreateMutexStatic
  - >> xQueueCreateMutex
  - >> vQueueWaitForMessageRestricted
  - >> prvUnlockQueue
  - >> xTaskResumeAll

  vPortFree (Thumb, 212 bytes, Stack size 16 bytes, heap_4.o(.text.vPortFree))
  [Stack]

  - Max Depth = 72
  - Call Chain = vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  [Called By]
  - >> BSP_Free
  - >> prvTimerTask
  - >> xTaskCreate
  - >> vTaskDelete
  - >> prvIdleTask

  vPortSetupTimerInterrupt (Thumb, 52 bytes, Stack size 0 bytes, port.o(.text.vPortSetupTimerInterrupt))
  [Called By]

  - >> xPortStartScheduler

  vPortValidateInterruptPriority (Thumb, 94 bytes, Stack size 0 bytes, port.o(.text.vPortValidateInterruptPriority))
  [Called By]

  - >> xTaskGetTickCountFromISR
  - >> xTaskGenericNotifyFromISR
  - >> xQueueReceiveFromISR
  - >> xQueueGenericSendFromISR

  vQueueAddToRegistry (Thumb, 176 bytes, Stack size 0 bytes, queue.o(.text.vQueueAddToRegistry))
  [Called By]

  - >> osMutexNew
  - >> osMessageQueueNew
  - >> xTimerCreateTimerTask

  vQueueWaitForMessageRestricted (Thumb, 82 bytes, Stack size 16 bytes, queue.o(.text.vQueueWaitForMessageRestricted))
  [Stack]

  - Max Depth = 56
  - Call Chain = vQueueWaitForMessageRestricted ⇒ prvUnlockQueue ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vTaskPlaceOnEventListRestricted
  - >> prvUnlockQueue
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> prvTimerTask

  vTaskDelay (Thumb, 136 bytes, Stack size 16 bytes, tasks.o(.text.vTaskDelay))
  [Stack]

  - Max Depth = 72
  - Call Chain = vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vListInsert
  - >> uxListRemove
  - >> xTaskResumeAll
  [Called By]
  - >> osDelay

  vTaskDelayUntil (Thumb, 212 bytes, Stack size 16 bytes, tasks.o(.text.vTaskDelayUntil))
  [Stack]

  - Max Depth = 72
  - Call Chain = vTaskDelayUntil ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vListInsert
  - >> uxListRemove
  - >> xTaskResumeAll
  [Called By]
  - >> osDelayUntil

  vTaskDelete (Thumb, 226 bytes, Stack size 16 bytes, tasks.o(.text.vTaskDelete))
  [Stack]

  - Max Depth = 88
  - Call Chain = vTaskDelete ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  - >> vPortFree
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> osThreadTerminate

  vTaskInternalSetTimeOutState (Thumb, 18 bytes, Stack size 0 bytes, tasks.o(.text.vTaskInternalSetTimeOutState))
  [Called By]

  - >> xQueueSemaphoreTake
  - >> xQueueReceive
  - >> xQueueGenericSend

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

  - >> prvUnlockQueue

  vTaskPlaceOnEventList (Thumb, 124 bytes, Stack size 16 bytes, tasks.o(.text.vTaskPlaceOnEventList))
  [Stack]

  - Max Depth = 24
  - Call Chain = vTaskPlaceOnEventList ⇒ vListInsert
  [Calls]
  - >> vListInsertEnd
  - >> vListInsert
  - >> uxListRemove
  [Called By]
  - >> xQueueSemaphoreTake
  - >> xQueueReceive
  - >> xQueueGenericSend

  vTaskPlaceOnEventListRestricted (Thumb, 130 bytes, Stack size 24 bytes, tasks.o(.text.vTaskPlaceOnEventListRestricted))
  [Stack]

  - Max Depth = 32
  - Call Chain = vTaskPlaceOnEventListRestricted ⇒ vListInsert
  [Calls]
  - >> vListInsertEnd
  - >> vListInsert
  - >> uxListRemove
  [Called By]
  - >> vQueueWaitForMessageRestricted

  vTaskPriorityDisinheritAfterTimeout (Thumb, 162 bytes, Stack size 24 bytes, tasks.o(.text.vTaskPriorityDisinheritAfterTimeout))
  [Stack]

  - Max Depth = 24
  - Call Chain = vTaskPriorityDisinheritAfterTimeout
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xQueueSemaphoreTake

  vTaskStartScheduler (Thumb, 236 bytes, Stack size 40 bytes, tasks.o(.text.vTaskStartScheduler))
  [Stack]

  - Max Depth = 156
  - Call Chain = vTaskStartScheduler ⇒ xTimerCreateTimerTask ⇒ xTaskCreateStatic ⇒ prvInitialiseNewTask ⇒ __aeabi_memset4 ⇒ _memset_w
  [Calls]
  - >> configureTimerForRunTimeStats
  - >> xTimerCreateTimerTask
  - >> xPortStartScheduler
  - >> vApplicationGetIdleTaskMemory
  - >> prvInitialiseNewTask
  - >> prvAddNewTaskToReadyList
  [Called By]
  - >> osKernelStart

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

  - >> osKernelLock
  - >> prvTimerTask
  - >> xQueueSemaphoreTake
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> vPortFree
  - >> pvPortMalloc

  vTaskSwitchContext (Thumb, 240 bytes, Stack size 8 bytes, tasks.o(.text.vTaskSwitchContext))
  [Stack]

  - Max Depth = 8
  - Call Chain = vTaskSwitchContext
  [Calls]
  - >> vApplicationStackOverflowHook
  - >> getRunTimeCounterValue
  [Called By]
  - >> PendSV_Handler
  - >> xPortStartScheduler

  xPortStartScheduler (Thumb, 390 bytes, Stack size 32 bytes, port.o(.text.xPortStartScheduler))
  [Stack]

  - Max Depth = 40
  - Call Chain = xPortStartScheduler ⇒ vTaskSwitchContext
  [Calls]
  - >> vPortSetupTimerInterrupt
  - >> vPortEnableVFP
  - >> prvPortStartFirstTask
  - >> vTaskSwitchContext
  [Called By]
  - >> vTaskStartScheduler

  xPortSysTickHandler (Thumb, 46 bytes, Stack size 8 bytes, port.o(.text.xPortSysTickHandler))
  [Stack]

  - Max Depth = 40
  - Call Chain = xPortSysTickHandler ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskIncrementTick
  [Called By]
  - >> SysTick_Handler

  xQueueCreateMutex (Thumb, 112 bytes, Stack size 16 bytes, queue.o(.text.xQueueCreateMutex))
  [Stack]

  - Max Depth = 120
  - Call Chain = xQueueCreateMutex ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueGenericSend
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  - >> pvPortMalloc
  [Called By]
  - >> osMutexNew

  xQueueCreateMutexStatic (Thumb, 162 bytes, Stack size 24 bytes, queue.o(.text.xQueueCreateMutexStatic))
  [Stack]

  - Max Depth = 128
  - Call Chain = xQueueCreateMutexStatic ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueGenericSend
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  [Called By]
  - >> osMutexNew

  xQueueGenericCreate (Thumb, 134 bytes, Stack size 24 bytes, queue.o(.text.xQueueGenericCreate))
  [Stack]

  - Max Depth = 104
  - Call Chain = xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  - >> pvPortMalloc
  [Called By]
  - >> osMessageQueueNew

  xQueueGenericCreateStatic (Thumb, 222 bytes, Stack size 24 bytes, queue.o(.text.xQueueGenericCreateStatic))
  [Stack]

  - Max Depth = 24
  - Call Chain = xQueueGenericCreateStatic
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  [Called By]
  - >> osMessageQueueNew
  - >> xTimerCreateTimerTask

  xQueueGenericReset (Thumb, 140 bytes, Stack size 16 bytes, queue.o(.text.xQueueGenericReset))
  [Stack]

  - Max Depth = 32
  - Call Chain = xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  [Called By]
  - >> osMessageQueueReset

  xQueueGenericSend (Thumb, 554 bytes, Stack size 48 bytes, queue.o(.text.xQueueGenericSend))
  [Stack]

  - Max Depth = 104
  - Call Chain = xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetSchedulerState
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityDisinherit
  - >> xTaskCheckForTimeOut
  - >> vTaskPlaceOnEventList
  - >> vTaskInternalSetTimeOutState
  - >> prvUnlockQueue
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> __aeabi_memcpy
  [Called By]
  - >> osMutexRelease
  - >> osMessageQueuePut
  - >> prvTimerTask
  - >> prvSampleTimeNow
  - >> xQueueGiveMutexRecursive
  - >> xQueueCreateMutexStatic
  - >> xQueueCreateMutex

  xQueueGenericSendFromISR (Thumb, 344 bytes, Stack size 32 bytes, queue.o(.text.xQueueGenericSendFromISR))
  [Stack]

  - Max Depth = 48
  - Call Chain = xQueueGenericSendFromISR ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityDisinherit
  - >> vPortValidateInterruptPriority
  - >> __aeabi_memcpy
  [Called By]
  - >> osMessageQueuePut

  xQueueGiveMutexRecursive (Thumb, 66 bytes, Stack size 16 bytes, queue.o(.text.xQueueGiveMutexRecursive))
  [Stack]

  - Max Depth = 120
  - Call Chain = xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetCurrentTaskHandle
  - >> xQueueGenericSend
  [Called By]
  - >> osMutexRelease

  xQueueReceive (Thumb, 426 bytes, Stack size 48 bytes, queue.o(.text.xQueueReceive))
  [Stack]

  - Max Depth = 104
  - Call Chain = xQueueReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetSchedulerState
  - >> xTaskRemoveFromEventList
  - >> xTaskCheckForTimeOut
  - >> vTaskPlaceOnEventList
  - >> vTaskInternalSetTimeOutState
  - >> prvUnlockQueue
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> __aeabi_memcpy
  [Called By]
  - >> osMessageQueueGet
  - >> prvTimerTask

  xQueueReceiveFromISR (Thumb, 228 bytes, Stack size 32 bytes, queue.o(.text.xQueueReceiveFromISR))
  [Stack]

  - Max Depth = 48
  - Call Chain = xQueueReceiveFromISR ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> vPortValidateInterruptPriority
  - >> __aeabi_memcpy
  [Called By]
  - >> osMessageQueueGet

  xQueueSemaphoreTake (Thumb, 470 bytes, Stack size 48 bytes, queue.o(.text.xQueueSemaphoreTake))
  [Stack]

  - Max Depth = 104
  - Call Chain = xQueueSemaphoreTake ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetSchedulerState
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityInherit
  - >> xTaskCheckForTimeOut
  - >> vTaskPriorityDisinheritAfterTimeout
  - >> vTaskPlaceOnEventList
  - >> vTaskInternalSetTimeOutState
  - >> pvTaskIncrementMutexHeldCount
  - >> prvUnlockQueue
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> osMutexAcquire
  - >> xQueueTakeMutexRecursive

  xQueueTakeMutexRecursive (Thumb, 72 bytes, Stack size 16 bytes, queue.o(.text.xQueueTakeMutexRecursive))
  [Stack]

  - Max Depth = 120
  - Call Chain = xQueueTakeMutexRecursive ⇒ xQueueSemaphoreTake ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetCurrentTaskHandle
  - >> xQueueSemaphoreTake
  [Called By]
  - >> osMutexAcquire

  xTaskCheckForTimeOut (Thumb, 186 bytes, Stack size 16 bytes, tasks.o(.text.xTaskCheckForTimeOut))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskCheckForTimeOut
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueSemaphoreTake
  - >> xQueueReceive
  - >> xQueueGenericSend

  xTaskCreate (Thumb, 96 bytes, Stack size 40 bytes, tasks.o(.text.xTaskCreate))
  [Stack]

  - Max Depth = 120
  - Call Chain = xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvInitialiseNewTask
  - >> prvAddNewTaskToReadyList
  - >> vPortFree
  - >> pvPortMalloc
  [Called By]
  - >> osThreadNew

  xTaskCreateStatic (Thumb, 118 bytes, Stack size 40 bytes, tasks.o(.text.xTaskCreateStatic))
  [Stack]

  - Max Depth = 76
  - Call Chain = xTaskCreateStatic ⇒ prvInitialiseNewTask ⇒ __aeabi_memset4 ⇒ _memset_w
  [Calls]
  - >> prvInitialiseNewTask
  - >> prvAddNewTaskToReadyList
  [Called By]
  - >> osThreadNew
  - >> xTimerCreateTimerTask

  xTaskGenericNotify (Thumb, 282 bytes, Stack size 24 bytes, tasks.o(.text.xTaskGenericNotify))
  [Stack]

  - Max Depth = 24
  - Call Chain = xTaskGenericNotify
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> osThreadFlagsSet

  xTaskGenericNotifyFromISR (Thumb, 310 bytes, Stack size 24 bytes, tasks.o(.text.xTaskGenericNotifyFromISR))
  [Stack]

  - Max Depth = 24
  - Call Chain = xTaskGenericNotifyFromISR
  [Calls]
  - >> vPortValidateInterruptPriority
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> osThreadFlagsSet

  xTaskGetCurrentTaskHandle (Thumb, 12 bytes, Stack size 0 bytes, tasks.o(.text.xTaskGetCurrentTaskHandle))
  [Called By]

  - >> osThreadGetId
  - >> xQueueTakeMutexRecursive
  - >> xQueueGiveMutexRecursive

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

  - >> SysTick_Handler
  - >> osKernelUnlock
  - >> osKernelLock
  - >> prvTimerTask
  - >> prvSampleTimeNow
  - >> xQueueSemaphoreTake
  - >> xQueueReceive
  - >> xQueueGenericSend

  xTaskGetTickCount (Thumb, 12 bytes, Stack size 0 bytes, tasks.o(.text.xTaskGetTickCount))
  [Called By]

  - >> osThreadFlagsWait
  - >> osKernelGetTickCount
  - >> osDelayUntil
  - >> prvSampleTimeNow
  - >> BSP_TIME_Get_ms
  - >> BSP_TIME_Get
  - >> BSP_TIME_Delay_us

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

  - Max Depth = 8
  - Call Chain = xTaskGetTickCountFromISR
  [Calls]
  - >> vPortValidateInterruptPriority
  [Called By]
  - >> osKernelGetTickCount

  xTaskIncrementTick (Thumb, 260 bytes, Stack size 32 bytes, tasks.o(.text.xTaskIncrementTick))
  [Stack]

  - Max Depth = 32
  - Call Chain = xTaskIncrementTick
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xPortSysTickHandler
  - >> xTaskResumeAll

  xTaskNotifyWait (Thumb, 214 bytes, Stack size 24 bytes, tasks.o(.text.xTaskNotifyWait))
  [Stack]

  - Max Depth = 32
  - Call Chain = xTaskNotifyWait ⇒ vListInsert
  [Calls]
  - >> vListInsertEnd
  - >> vListInsert
  - >> uxListRemove
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> osThreadFlagsWait

  xTaskPriorityDisinherit (Thumb, 138 bytes, Stack size 16 bytes, tasks.o(.text.xTaskPriorityDisinherit))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskPriorityDisinherit
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend

  xTaskPriorityInherit (Thumb, 146 bytes, Stack size 24 bytes, tasks.o(.text.xTaskPriorityInherit))
  [Stack]

  - Max Depth = 24
  - Call Chain = xTaskPriorityInherit
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xQueueSemaphoreTake

  xTaskRemoveFromEventList (Thumb, 114 bytes, Stack size 16 bytes, tasks.o(.text.xTaskRemoveFromEventList))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskRemoveFromEventList
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xQueueSemaphoreTake
  - >> xQueueReceiveFromISR
  - >> xQueueReceive
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> prvUnlockQueue

  xTaskResumeAll (Thumb, 238 bytes, Stack size 24 bytes, tasks.o(.text.xTaskResumeAll))
  [Stack]

  - Max Depth = 56
  - Call Chain = xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskIncrementTick
  - >> vListInsertEnd
  - >> uxListRemove
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> osKernelUnlock
  - >> prvTimerTask
  - >> vTaskDelayUntil
  - >> vTaskDelay
  - >> xQueueSemaphoreTake
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> vPortFree
  - >> pvPortMalloc

  xTimerCreateTimerTask (Thumb, 172 bytes, Stack size 40 bytes, timers.o(.text.xTimerCreateTimerTask))
  [Stack]

  - Max Depth = 116
  - Call Chain = xTimerCreateTimerTask ⇒ xTaskCreateStatic ⇒ prvInitialiseNewTask ⇒ __aeabi_memset4 ⇒ _memset_w
  [Calls]
  - >> vApplicationGetTimerTaskMemory
  - >> xTaskCreateStatic
  - >> xQueueGenericCreateStatic
  - >> vQueueAddToRegistry
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  [Called By]
  - >> vTaskStartScheduler

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

  - >> __hardfp_tanf
  - >> __hardfp_sinf
  - >> __hardfp_atan2f

  __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]
  - >> __ARM_fpclassifyf
  - >> __set_errno
  - >> __mathlib_flt_underflow
  - >> __mathlib_flt_infnan2
  [Called By]
  - >> VMC_ForwardSolve

  __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]
  - >> __set_errno
  - >> __mathlib_rredf2
  - >> __mathlib_flt_invalid
  - >> __mathlib_flt_infnan
  [Called By]
  - >> VMC_GroundContactDetection
  - >> VMC_ForwardSolve
  - >> VMC_ComputeJacobian

  __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]
  - >> __ARM_fpclassifyf
  - >> __set_errno
  - >> __mathlib_rredf2
  - >> __mathlib_flt_underflow
  - >> __mathlib_flt_invalid
  - >> __mathlib_flt_infnan
  [Called By]
  - >> Task_blink
  - >> Chassis_LQRControl
  - >> VMC_GroundContactDetection
  - >> VMC_ForwardSolve
  - >> VMC_ComputeJacobian

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

  __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]
  - >> __ARM_fpclassifyf
  - >> __set_errno
  - >> __mathlib_rredf2
  - >> __mathlib_flt_underflow
  - >> __mathlib_flt_invalid
  - >> __mathlib_flt_infnan
  [Called By]
  - >> LowPassFilter2p_Init

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

  - >> __hardfp_tanf
  - >> __hardfp_sinf
  - >> __hardfp_cosf

  __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

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

  - >> __hardfp_tanf
  - >> __hardfp_sinf
  - >> __hardfp_atan2f

  __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

  __aeabi_ddiv (Thumb, 0 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_ddiv
  [Called By]
  - >> Task_rc
  - >> Task_ctrl_gimbal
  - >> Task_ctrl_chassis
  - >> Task_atti_esti
  - >> Task_blink

  _ddiv (Thumb, 556 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv), UNUSED)
  [Calls]

  - >> __fpl_dretinf
  - >> __fpl_dnaninf

  __aeabi_d2uiz (Thumb, 0 bytes, Stack size 32 bytes, dfixu.o(x$fpl$dfixu))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_d2uiz
  [Called By]
  - >> Task_rc
  - >> Task_ctrl_gimbal
  - >> Task_ctrl_chassis
  - >> Task_atti_esti
  - >> Task_blink

  _dfixu (Thumb, 90 bytes, Stack size 32 bytes, dfixu.o(x$fpl$dfixu), UNUSED)
  [Calls]

  - >> __fpl_dnaninf

  __aeabi_ui2d (Thumb, 0 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dfltu))
  [Called By]

  - >> Task_rc
  - >> Task_ctrl_gimbal
  - >> Task_ctrl_chassis
  - >> Task_atti_esti
  - >> Task_blink

  _dfltu (Thumb, 38 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dfltu), UNUSED)

  __fpl_dnaninf (Thumb, 156 bytes, Stack size 16 bytes, dnaninf.o(x$fpl$dnaninf), UNUSED)
  [Called By]

  - >> _dfixu
  - >> _ddiv

  __fpl_dretinf (Thumb, 12 bytes, Stack size 0 bytes, dretinf.o(x$fpl$dretinf), UNUSED)
  [Called By]

  - >> _ddiv

  __aeabi_ul2f (Thumb, 0 bytes, Stack size 0 bytes, ffltll_clz.o(x$fpl$ffltll))
  [Called By]

  - >> Chassis_Control

  _ll_uto_f (Thumb, 6 bytes, Stack size 0 bytes, ffltll_clz.o(x$fpl$ffltll), UNUSED)

  __aeabi_l2f (Thumb, 0 bytes, Stack size 0 bytes, ffltll_clz.o(x$fpl$ffltll), UNUSED)

  _ll_sto_f (Thumb, 90 bytes, Stack size 0 bytes, ffltll_clz.o(x$fpl$ffltll), UNUSED)

  _fp_init (Thumb, 26 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)

  ### Local Symbols

  CDC_Control_FS (Thumb, 4 bytes, Stack size 0 bytes, usbd_cdc_if.o(.text.CDC_Control_FS))
  [Address Reference Count : 1]

  - usbd_cdc_if.o(.data.USBD_Interface_fops_FS)

  CDC_DeInit_FS (Thumb, 4 bytes, Stack size 0 bytes, usbd_cdc_if.o(.text.CDC_DeInit_FS))
  [Address Reference Count : 1]

  - usbd_cdc_if.o(.data.USBD_Interface_fops_FS)

  CDC_Init_FS (Thumb, 44 bytes, Stack size 8 bytes, usbd_cdc_if.o(.text.CDC_Init_FS))
  [Stack]

  - Max Depth = 8
  - Call Chain = CDC_Init_FS
  [Calls]
  - >> USBD_CDC_SetTxBuffer
  - >> USBD_CDC_SetRxBuffer
  [Address Reference Count : 1]
  - usbd_cdc_if.o(.data.USBD_Interface_fops_FS)

  CDC_Receive_FS (Thumb, 28 bytes, Stack size 8 bytes, usbd_cdc_if.o(.text.CDC_Receive_FS))
  [Stack]

  - Max Depth = 52
  - Call Chain = CDC_Receive_FS ⇒ USBD_CDC_ReceivePacket ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_CDC_SetRxBuffer
  - >> USBD_CDC_ReceivePacket
  [Address Reference Count : 1]
  - usbd_cdc_if.o(.data.USBD_Interface_fops_FS)

  CDC_TransmitCplt_FS (Thumb, 4 bytes, Stack size 0 bytes, usbd_cdc_if.o(.text.CDC_TransmitCplt_FS))
  [Address Reference Count : 1]

  - usbd_cdc_if.o(.data.USBD_Interface_fops_FS)

  TIM_OC1_SetConfig (Thumb, 212 bytes, Stack size 40 bytes, stm32f4xx_hal_tim.o(.text.TIM_OC1_SetConfig))
  [Stack]

  - Max Depth = 40
  - Call Chain = TIM_OC1_SetConfig
  [Calls]
  - >> assert_failed
  [Called By]
  - >> HAL_TIM_PWM_ConfigChannel

  TIM_OC3_SetConfig (Thumb, 220 bytes, Stack size 40 bytes, stm32f4xx_hal_tim.o(.text.TIM_OC3_SetConfig))
  [Stack]

  - Max Depth = 40
  - Call Chain = TIM_OC3_SetConfig
  [Calls]
  - >> assert_failed
  [Called By]
  - >> HAL_TIM_PWM_ConfigChannel

  UART_DMAAbortOnError (Thumb, 10 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(.text.UART_DMAAbortOnError))
  [Calls]

  - >> HAL_UART_ErrorCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler)

  UART_DMAError (Thumb, 380 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(.text.UART_DMAError))
  [Calls]

  - >> HAL_UART_ErrorCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_uart.o(.text.HAL_UART_Receive_DMA)

  UART_DMAReceiveCplt (Thumb, 350 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(.text.UART_DMAReceiveCplt))
  [Calls]

  - >> HAL_UARTEx_RxEventCallback
  - >> HAL_UART_RxCpltCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_uart.o(.text.HAL_UART_Receive_DMA)

  UART_DMARxHalfCplt (Thumb, 24 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(.text.UART_DMARxHalfCplt))
  [Calls]

  - >> HAL_UARTEx_RxEventCallback
  - >> HAL_UART_RxHalfCpltCallback
  [Address Reference Count : 1]
  - stm32f4xx_hal_uart.o(.text.HAL_UART_Receive_DMA)

  UART_Receive_IT (Thumb, 258 bytes, Stack size 4 bytes, stm32f4xx_hal_uart.o(.text.UART_Receive_IT))
  [Stack]

  - Max Depth = 4
  - Call Chain = UART_Receive_IT
  [Calls]
  - >> HAL_UARTEx_RxEventCallback
  - >> HAL_UART_RxCpltCallback
  [Called By]
  - >> HAL_UART_IRQHandler

  UART_SetConfig (Thumb, 350 bytes, Stack size 8 bytes, stm32f4xx_hal_uart.o(.text.UART_SetConfig))
  [Stack]

  - Max Depth = 56
  - Call Chain = UART_SetConfig ⇒ __aeabi_uldivmod
  [Calls]
  - >> HAL_RCC_GetPCLK2Freq
  - >> HAL_RCC_GetPCLK1Freq
  - >> assert_failed
  - >> __aeabi_uldivmod
  [Called By]
  - >> HAL_UART_Init

  prvUnlockQueue (Thumb, 116 bytes, Stack size 24 bytes, queue.o(.text.prvUnlockQueue))
  [Stack]

  - Max Depth = 40
  - Call Chain = prvUnlockQueue ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> vTaskMissedYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueSemaphoreTake
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> vQueueWaitForMessageRestricted

  prvAddNewTaskToReadyList (Thumb, 650 bytes, Stack size 24 bytes, tasks.o(.text.prvAddNewTaskToReadyList))
  [Stack]

  - Max Depth = 24
  - Call Chain = prvAddNewTaskToReadyList
  [Calls]
  - >> vListInsertEnd
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  [Called By]
  - >> xTaskCreateStatic
  - >> xTaskCreate
  - >> vTaskStartScheduler

  prvIdleTask (Thumb, 134 bytes, Stack size 0 bytes, tasks.o(.text.prvIdleTask))
  [Stack]

  - Max Depth = 72
  - Call Chain = prvIdleTask ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> uxListRemove
  - >> vPortFree
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Address Reference Count : 1]
  - tasks.o(.text.vTaskStartScheduler)

  prvInitialiseNewTask (Thumb, 302 bytes, Stack size 32 bytes, tasks.o(.text.prvInitialiseNewTask))
  [Stack]

  - Max Depth = 36
  - Call Chain = prvInitialiseNewTask ⇒ __aeabi_memset4 ⇒ _memset_w
  [Calls]
  - >> pxPortInitialiseStack
  - >> vListInitialiseItem
  - >> __aeabi_memset4
  [Called By]
  - >> xTaskCreateStatic
  - >> xTaskCreate
  - >> vTaskStartScheduler

  prvSampleTimeNow (Thumb, 180 bytes, Stack size 56 bytes, timers.o(.text.prvSampleTimeNow))
  [Stack]

  - Max Depth = 160
  - Call Chain = prvSampleTimeNow ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetSchedulerState
  - >> xTaskGetTickCount
  - >> xQueueGenericSend
  - >> vListInsert
  - >> uxListRemove
  [Called By]
  - >> prvTimerTask

  prvTimerTask (Thumb, 582 bytes, Stack size 40 bytes, timers.o(.text.prvTimerTask))
  [Stack]

  - Max Depth = 200
  - Call Chain = prvTimerTask ⇒ prvSampleTimeNow ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetSchedulerState
  - >> prvSampleTimeNow
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> vQueueWaitForMessageRestricted
  - >> vListInsert
  - >> uxListRemove
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vPortFree
  [Address Reference Count : 1]
  - timers.o(.text.xTimerCreateTimerTask)

  prvPortStartFirstTask (Thumb, 34 bytes, Stack size 0 bytes, port.o(.text.prvPortStartFirstTask))
  [Called By]

  - >> xPortStartScheduler

  prvTaskExitError (Thumb, 62 bytes, Stack size 4 bytes, port.o(.text.prvTaskExitError))
  [Stack]

  - Max Depth = 4
  - Call Chain = prvTaskExitError
  [Address Reference Count : 1]
  - port.o(.text.pxPortInitialiseStack)

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

  - >> xPortStartScheduler

  USBD_CDC_DataIn (Thumb, 118 bytes, Stack size 16 bytes, usbd_cdc.o(.text.USBD_CDC_DataIn))
  [Stack]

  - Max Depth = 52
  - Call Chain = USBD_CDC_DataIn ⇒ USBD_LL_Transmit ⇒ HAL_PCD_EP_Transmit ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_LL_Transmit
  [Address Reference Count : 1]
  - usbd_cdc.o(.data.USBD_CDC)

  USBD_CDC_DataOut (Thumb, 60 bytes, Stack size 16 bytes, usbd_cdc.o(.text.USBD_CDC_DataOut))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBD_CDC_DataOut
  [Calls]
  - >> USBD_LL_GetRxDataSize
  [Address Reference Count : 1]
  - usbd_cdc.o(.data.USBD_CDC)

  USBD_CDC_DeInit (Thumb, 96 bytes, Stack size 16 bytes, usbd_cdc.o(.text.USBD_CDC_DeInit))
  [Stack]

  - Max Depth = 40
  - 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)

  USBD_CDC_EP0_RxReady (Thumb, 60 bytes, Stack size 8 bytes, usbd_cdc.o(.text.USBD_CDC_EP0_RxReady))
  [Stack]

  - Max Depth = 8
  - Call Chain = USBD_CDC_EP0_RxReady
  [Address Reference Count : 1]
  - usbd_cdc.o(.data.USBD_CDC)

  USBD_CDC_GetFSCfgDesc (Thumb, 82 bytes, Stack size 24 bytes, usbd_cdc.o(.text.USBD_CDC_GetFSCfgDesc))
  [Stack]

  - Max Depth = 32
  - Call Chain = USBD_CDC_GetFSCfgDesc ⇒ USBD_GetEpDesc
  [Calls]
  - >> USBD_GetEpDesc
  [Address Reference Count : 1]
  - usbd_cdc.o(.data.USBD_CDC)

  USBD_CDC_GetHSCfgDesc (Thumb, 86 bytes, Stack size 24 bytes, usbd_cdc.o(.text.USBD_CDC_GetHSCfgDesc))
  [Stack]

  - Max Depth = 32
  - Call Chain = USBD_CDC_GetHSCfgDesc ⇒ USBD_GetEpDesc
  [Calls]
  - >> USBD_GetEpDesc
  [Address Reference Count : 1]
  - usbd_cdc.o(.data.USBD_CDC)

  USBD_CDC_GetOtherSpeedCfgDesc (Thumb, 82 bytes, Stack size 24 bytes, usbd_cdc.o(.text.USBD_CDC_GetOtherSpeedCfgDesc))
  [Stack]

  - Max Depth = 32
  - Call Chain = USBD_CDC_GetOtherSpeedCfgDesc ⇒ USBD_GetEpDesc
  [Calls]
  - >> USBD_GetEpDesc
  [Address Reference Count : 1]
  - usbd_cdc.o(.data.USBD_CDC)

  USBD_CDC_Init (Thumb, 210 bytes, Stack size 24 bytes, usbd_cdc.o(.text.USBD_CDC_Init))
  [Stack]

  - Max Depth = 60 + Unknown Stack Size
  - Call Chain = USBD_CDC_Init ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_static_malloc
  - >> USBD_LL_PrepareReceive
  - >> USBD_LL_OpenEP
  - >> __aeabi_memclr4
  [Address Reference Count : 1]
  - usbd_cdc.o(.data.USBD_CDC)

  USBD_CDC_Setup (Thumb, 252 bytes, Stack size 24 bytes, usbd_cdc.o(.text.USBD_CDC_Setup))
  [Stack]

  - Max Depth = 68
  - Call Chain = USBD_CDC_Setup ⇒ USBD_CtlPrepareRx ⇒ USBD_LL_PrepareReceive ⇒ HAL_PCD_EP_Receive ⇒ USB_EPStartXfer
  [Calls]
  - >> USBD_CtlPrepareRx
  - >> USBD_CtlSendData
  - >> USBD_CtlError
  [Address Reference Count : 1]
  - usbd_cdc.o(.data.USBD_CDC)

  BSP_CAN_DefaultIdParser (Thumb, 2 bytes, Stack size 0 bytes, can_1.o(.text.BSP_CAN_DefaultIdParser))
  [Address Reference Count : 1]

  - can_1.o(.text.BSP_CAN_Init)

  BSP_CAN_RxFifo0Callback (Thumb, 550 bytes, Stack size 104 bytes, can_1.o(.text.BSP_CAN_RxFifo0Callback))
  [Stack]

  - Max Depth = 232
  - Call Chain = BSP_CAN_RxFifo0Callback ⇒ osMessageQueuePut ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_GetTick
  - >> HAL_CAN_GetRxMessage
  - >> HAL_CAN_GetRxFifoFillLevel
  - >> osMessageQueuePut
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - can_1.o(.text.BSP_CAN_Init)

  BSP_CAN_RxFifo1Callback (Thumb, 550 bytes, Stack size 104 bytes, can_1.o(.text.BSP_CAN_RxFifo1Callback))
  [Stack]

  - Max Depth = 232
  - Call Chain = BSP_CAN_RxFifo1Callback ⇒ osMessageQueuePut ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_GetTick
  - >> HAL_CAN_GetRxMessage
  - >> HAL_CAN_GetRxFifoFillLevel
  - >> osMessageQueuePut
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - can_1.o(.text.BSP_CAN_Init)

  DR16_RxCpltCallback (Thumb, 16 bytes, Stack size 0 bytes, dr16.o(.text.DR16_RxCpltCallback))
  [Stack]

  - Max Depth = 56
  - Call Chain = DR16_RxCpltCallback ⇒ osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR
  [Calls]
  - >> osThreadFlagsSet
  [Address Reference Count : 1]
  - dr16.o(.text.DR16_Init)

  MOTOR_LZ_IdParser (Thumb, 32 bytes, Stack size 0 bytes, motor_lz.o(.text.MOTOR_LZ_IdParser))
  [Address Reference Count : 1]

  - motor_lz.o(.text.MOTOR_LZ_Init)

  ### Undefined Global Symbols