Static Call Graph - [.\Objects\Module 1.axf]

# Static Call Graph for image .\Objects\Module 1.axf

#<CALLGRAPH># ARM Linker, 5060422: Last Updated: Sun Nov 04 09:44:01 2018

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

### Call chain for Maximum Stack Depth:

main ⇒ BOS_Init ⇒ Module_Init ⇒ Vl53l0xInit ⇒ VL53L0X_StaticInit ⇒ VL53L0X_perform_ref_spad_management ⇒ perform_ref_signal_measurement ⇒ VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- ADC1_COMP_IRQHandler ⇒ ADC1_COMP_IRQHandler
- SendMessageFromPort ⇒ SendMessageFromPort

  ### Function Pointers

  - ADC1_COMP_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - CEC_CAN_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - DMA1_Ch1_IRQHandler from h08r6_it.o(i.DMA1_Ch1_IRQHandler) referenced from startup_stm32f091xc.o(RESET)
  - DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler from h08r6_it.o(i.DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler) referenced from startup_stm32f091xc.o(RESET)
  - DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler from h08r6_it.o(i.DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler) referenced from startup_stm32f091xc.o(RESET)
  - EXTI0_1_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - EXTI2_3_IRQHandler from h08r6_it.o(i.EXTI2_3_IRQHandler) referenced from startup_stm32f091xc.o(RESET)
  - EXTI4_15_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - FLASH_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - FrontEndTask from main.o(i.FrontEndTask) referenced from bos_freertos.o(i.MX_FREERTOS_Init)
  - HandleTimeout from h08r6.o(i.HandleTimeout) referenced from h08r6.o(i.SettingMeasurementMode)
  - HardFault_Handler from h08r6_it.o(i.HardFault_Handler) referenced from startup_stm32f091xc.o(RESET)
  - I2C1_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - I2C2_IRQHandler from h08r6_it.o(i.I2C2_IRQHandler) referenced from startup_stm32f091xc.o(RESET)
  - NMI_Handler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - PVD_VDDIO2_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - PendSV_Handler from port.o(.emb_text) referenced from startup_stm32f091xc.o(RESET)
  - PxMessagingTask from bos.o(i.PxMessagingTask) referenced from bos_freertos.o(i.MX_FREERTOS_Init)
  - RCC_CRS_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - RTC_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - Reset_Handler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - SPI1_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - SPI2_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - SVC_Handler from port.o(i.SVC_Handler) referenced from startup_stm32f091xc.o(RESET)
  - StartDefaultTask from bos_freertos.o(i.StartDefaultTask) referenced from bos_freertos.o(i.MX_FREERTOS_Init)
  - StreamTimerCallback from bos.o(i.StreamTimerCallback) referenced from bos.o(i.SetupDMAStreamsFromMessage)
  - StreamTimerCallback from bos.o(i.StreamTimerCallback) referenced from bos.o(i.StartScastDMAStream)
  - SysTick_Handler from h08r6_it.o(i.SysTick_Handler) referenced from startup_stm32f091xc.o(RESET)
  - SystemInit from system_stm32f0xx.o(i.SystemInit) referenced from startup_stm32f091xc.o(.text)
  - TIM14_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TIM15_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TIM16_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TIM17_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TIM1_BRK_UP_TRG_COM_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TIM1_CC_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TIM2_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TIM3_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TIM6_DAC_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TIM7_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - TSC_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - ToFTask from h08r6.o(i.ToFTask) referenced from h08r6.o(i.Module_Init)
  - UART_DMAError from stm32f0xx_hal_uart.o(i.UART_DMAError) referenced from stm32f0xx_hal_uart.o(i.HAL_UART_Receive_DMA)
  - UART_DMAReceiveCplt from stm32f0xx_hal_uart.o(i.UART_DMAReceiveCplt) referenced from stm32f0xx_hal_uart.o(i.HAL_UART_Receive_DMA)
  - UART_DMARxHalfCplt from stm32f0xx_hal_uart.o(i.UART_DMARxHalfCplt) referenced from stm32f0xx_hal_uart.o(i.HAL_UART_Receive_DMA)
  - USART1_IRQHandler from h08r6_it.o(i.USART1_IRQHandler) referenced from startup_stm32f091xc.o(RESET)
  - USART2_IRQHandler from h08r6_it.o(i.USART2_IRQHandler) referenced from startup_stm32f091xc.o(RESET)
  - USART3_8_IRQHandler from h08r6_it.o(i.USART3_8_IRQHandler) referenced from startup_stm32f091xc.o(RESET)
  - Vl53l0xMaxCommand from h08r6.o(i.Vl53l0xMaxCommand) referenced from h08r6.o(.constdata)
  - Vl53l0xSampleCommand from h08r6.o(i.Vl53l0xSampleCommand) referenced from h08r6.o(.constdata)
  - Vl53l0xStopCommand from h08r6.o(i.Vl53l0xStopCommand) referenced from h08r6.o(.constdata)
  - Vl53l0xStreamCommand from h08r6.o(i.Vl53l0xStreamCommand) referenced from h08r6.o(.constdata)
  - Vl53l0xUnitsCommand from h08r6.o(i.Vl53l0xUnitsCommand) referenced from h08r6.o(.constdata)
  - WWDG_IRQHandler from startup_stm32f091xc.o(.text) referenced from startup_stm32f091xc.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f091xc.o(.text)
  - _sputc from printfa.o(i._sputc) referenced from printfa.o(i.__0sprintf)
  - addbuttonCommand from bos.o(i.addbuttonCommand) referenced from bos.o(.constdata)
  - bootloaderUpdateCommand from bos.o(i.bootloaderUpdateCommand) referenced from bos.o(.constdata)
  - dateCommand from bos.o(i.dateCommand) referenced from bos.o(.constdata)
  - defaultCommand from bos.o(i.defaultCommand) referenced from bos.o(.constdata)
  - demoCommand from h08r6.o(i.demoCommand) referenced from h08r6.o(.constdata)
  - exploreCommand from bos.o(i.exploreCommand) referenced from bos.o(.constdata)
  - flashsizeCommand from bos.o(i.flashsizeCommand) referenced from bos.o(.constdata)
  - getCommand from bos.o(i.getCommand) referenced from bos.o(.constdata)
  - groupCommand from bos.o(i.groupCommand) referenced from bos.o(.constdata)
  - idcodeCommand from bos.o(i.idcodeCommand) referenced from bos.o(.constdata)
  - infoCommand from bos.o(i.infoCommand) referenced from bos.o(.constdata)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - nameCommand from bos.o(i.nameCommand) referenced from bos.o(.constdata)
  - pingCommand from bos.o(i.pingCommand) referenced from bos.o(.constdata)
  - prvHelpCommand from freertos_cli.o(i.prvHelpCommand) referenced from freertos_cli.o(.constdata)
  - prvIdleTask from tasks.o(i.prvIdleTask) referenced from tasks.o(privileged_functions)
  - prvRunTimeStatsCommand from bos.o(i.prvRunTimeStatsCommand) referenced from bos.o(.constdata)
  - prvTaskExitError from port.o(i.prvTaskExitError) referenced from port.o(privileged_functions)
  - prvTaskStatsCommand from bos.o(i.prvTaskStatsCommand) referenced from bos.o(.constdata)
  - prvTimerTask from timers.o(privileged_functions) referenced from timers.o(privileged_functions)
  - prvUARTCommandConsoleTask from bos_cli.o(i.prvUARTCommandConsoleTask) referenced from bos_freertos.o(i.MX_FREERTOS_Init)
  - removebuttonCommand from bos.o(i.removebuttonCommand) referenced from bos.o(.constdata)
  - resetCommand from bos.o(i.resetCommand) referenced from bos.o(.constdata)
  - scastCommand from bos.o(i.scastCommand) referenced from bos.o(.constdata)
  - setBaudrateCommand from bos.o(i.setBaudrateCommand) referenced from bos.o(.constdata)
  - setCommand from bos.o(i.setCommand) referenced from bos.o(.constdata)
  - statusCommand from bos.o(i.statusCommand) referenced from bos.o(.constdata)
  - timeCommand from bos.o(i.timeCommand) referenced from bos.o(.constdata)
  - uuidCommand from bos.o(i.uuidCommand) referenced from bos.o(.constdata)
  - vEventGroupSetBitsCallback from event_groups.o(i.vEventGroupSetBitsCallback) referenced from event_groups.o(i.xEventGroupSetBitsFromISR)

  ### Global Symbols

  __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
  [Address Reference Count : 1]

  - startup_stm32f091xc.o(.text)

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

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

  - >> __scatterload

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

  - >> __scatterload

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

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

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

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

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

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

  - >> xPortStartScheduler

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

  - >> xQueueGiveFromISR
  - >> xPortSysTickHandler
  - >> xTaskResumeFromISR
  - >> uxTaskPriorityGetFromISR
  - >> xQueuePeekFromISR
  - >> xQueueReceiveFromISR
  - >> xQueueGenericSendFromISR
  - >> vTaskNotifyGiveFromISR

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

  - >> xQueueGiveFromISR
  - >> xPortSysTickHandler
  - >> xTaskResumeFromISR
  - >> uxTaskPriorityGetFromISR
  - >> xQueuePeekFromISR
  - >> xQueueReceiveFromISR
  - >> xQueueGenericSendFromISR
  - >> vTaskNotifyGiveFromISR

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

  - Max Depth = 44
  - Call Chain = PendSV_Handler ⇒ vTaskSwitchContext ⇒ ulMainGetRunTimeCounterValue ⇒ __aeabi_uidivmod
  [Calls]
  - >> vTaskSwitchContext
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

  Reset_Handler (Thumb, 20 bytes, Stack size 0 bytes, startup_stm32f091xc.o(.text))
  [Calls]

  - >> Reboot_Loader
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

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

  - >> Reset_Handler

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

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

  ADC1_COMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f091xc.o(.text))
  [Calls]

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

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

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

  - startup_stm32f091xc.o(RESET)

  __aeabi_uidiv (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)

  __aeabi_uidivmod (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = __aeabi_uidivmod
  [Called By]
  - >> HAL_InitTick
  - >> SystemClock_Config
  - >> HAL_RCC_GetSysClockFreq
  - >> UART_SetConfig
  - >> VL53L0X_GetRangingMeasurementData
  - >> prvSetupTimerInterrupt
  - >> SettingMeasurementMode
  - >> vMainConfigureTimerForRunTimeStats
  - >> ulMainGetRunTimeCounterValue
  - >> vTaskGetRunTimeStats
  - >> StartScastDMAStream
  - >> StartMilliDelay
  - >> StartMicroDelay
  - >> SetupDMAStreamsFromMessage
  - >> MX_TIM_USEC_Init
  - >> __aeabi_idivmod
  - >> VL53L0X_calc_timeout_us
  - >> VL53L0X_calc_timeout_mclks
  - >> VL53L0X_calc_sigma_estimate
  - >> VL53L0X_calc_dmax
  - >> get_next_good_spad
  - >> enable_spad_bit
  - >> VL53L0X_get_pal_range_status
  - >> VL53L0X_GetInterMeasurementPeriodMilliSeconds
  - >> _printf_core

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

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

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

  __aeabi_lmul (Thumb, 122 bytes, Stack size 64 bytes, llmul.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> __aeabi_llsl
  [Called By]
  - >> VL53L0X_calc_macro_period_ps

  _ll_mul (Thumb, 0 bytes, Stack size 64 bytes, llmul.o(.text), UNUSED)

  __aeabi_llsr (Thumb, 34 bytes, Stack size 8 bytes, llushr.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_llsr
  [Called By]
  - >> HAL_FLASH_Program
  - >> _double_epilogue
  - >> __aeabi_uldivmod
  - >> __aeabi_d2ulz

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

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

  - >> prvUARTCommandConsoleTask
  - >> strtol

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

  - >> StringToLowerCase

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

  - >> VL53L0X_write_multi
  - >> prvCopyDataFromQueue
  - >> prvCopyDataToQueue
  - >> SendMeasurementResult
  - >> Module_MessagingTask
  - >> SendMessageFromPort
  - >> PxMessagingTask
  - >> ForwardReceivedMessage
  - >> Explore
  - >> BroadcastReceivedMessage

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

  - >> defaultCommand
  - >> VL53L0X_StaticInit
  - >> VL53L0X_GetRangingMeasurementData
  - >> VL53L0X_DataInit
  - >> VL53L0X_perform_ref_spad_management

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

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

  - >> prvAllocateTCBAndStack
  - >> _memset$wrapper
  - >> __aeabi_memclr

  __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

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

  __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))
  [Calls]

  - >> __aeabi_memset
  [Called By]
  - >> Vl53l0xStreamCommand
  - >> Vl53l0xStopCommand
  - >> Vl53l0xSampleCommand
  - >> Vl53l0xMaxCommand
  - >> SendMeasurementResult
  - >> prvUARTCommandConsoleTask
  - >> ExecuteSnippet
  - >> PxMessagingTask
  - >> GetDateString
  - >> FindRoute
  - >> Explore
  - >> ClearROtopology
  - >> ClearEEportsDir

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

  - >> SendMessageToModule
  - >> groupCommand
  - >> VL53L0X_StaticInit
  - >> SendMessageFromPort
  - >> PxMessagingTask
  - >> FindRoute
  - >> BroadcastReceivedMessage
  - >> BroadcastMessage

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

  _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memset

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

  - >> uuidCommand
  - >> setCommand
  - >> groupCommand
  - >> bootloaderUpdateCommand
  - >> prvUARTCommandConsoleTask
  - >> remoteBootloaderUpdate
  - >> DisplayModuleStatus

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

  - Max Depth = 8
  - Call Chain = strncpy
  [Called By]
  - >> scastCommand
  - >> groupCommand
  - >> prvHelpCommand
  - >> prvUARTCommandConsoleTask
  - >> FreeRTOS_CLIProcessCommand
  - >> DisplayTopology

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

  - >> prvUARTCommandConsoleTask

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

  - >> prvTaskStatsCommand
  - >> prvRunTimeStatsCommand
  - >> infoCommand
  - >> exploreCommand
  - >> bootloaderUpdateCommand
  - >> prvWriteNameToBuffer
  - >> demoCommand
  - >> Vl53l0xStreamCommand
  - >> Vl53l0xStopCommand
  - >> Vl53l0xMaxCommand
  - >> SendMeasurementResult
  - >> prvUARTCommandConsoleTask
  - >> ExecuteSnippet
  - >> AddSnippet
  - >> vTaskList
  - >> vTaskGetRunTimeStats
  - >> FreeRTOS_CLIProcessCommand
  - >> remoteBootloaderUpdate
  - >> PxMessagingTask
  - >> NameModule
  - >> DisplayTopology
  - >> DisplayPortsDir
  - >> DisplayModuleStatus
  - >> AddModuleToGroup

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

  - Max Depth = 8
  - Call Chain = strcmp
  [Called By]
  - >> groupCommand
  - >> getCommand
  - >> RTC_CalendarConfig
  - >> NameModule
  - >> GetID
  - >> AddModuleToGroup

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

  - Max Depth = 12
  - Call Chain = memcmp
  [Called By]
  - >> vTaskSwitchContext

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

  - >> setCommand
  - >> setBaudrateCommand
  - >> prvTaskStatsCommand
  - >> prvRunTimeStatsCommand
  - >> groupCommand
  - >> getCommand
  - >> exploreCommand
  - >> defaultCommand
  - >> bootloaderUpdateCommand
  - >> prvWriteNameToBuffer
  - >> demoCommand
  - >> Vl53l0xUnitsCommand
  - >> SendMeasurementResult
  - >> prvUARTCommandConsoleTask
  - >> AddSnippet
  - >> NameModule
  - >> AddModuleToGroup
  - >> VL53L0X_get_info_from_device

  strncmp (Thumb, 30 bytes, Stack size 12 bytes, strncmp.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = strncmp
  [Called By]
  - >> setCommand
  - >> scastCommand
  - >> getCommand
  - >> defaultCommand
  - >> bootloaderUpdateCommand
  - >> addbuttonCommand
  - >> prvHelpCommand
  - >> Vl53l0xUnitsCommand
  - >> Vl53l0xStreamCommand
  - >> prvUARTCommandConsoleTask
  - >> ProcessSnippet
  - >> ActivateButtonSnippet
  - >> FreeRTOS_CLIProcessCommand
  - >> NameModule
  - >> AddModuleToGroup

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

  - Max Depth = 88
  - Call Chain = atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> strtol
  - >> __aeabi_errno_addr
  [Called By]
  - >> setCommand
  - >> Vl53l0xStreamCommand
  - >> ProcessSnippet
  - >> ActivateButtonSnippet
  - >> RTC_CalendarConfig

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

  - Max Depth = 88
  - Call Chain = atol ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> strtol
  - >> __aeabi_errno_addr
  [Called By]
  - >> setBaudrateCommand
  - >> scastCommand
  - >> removebuttonCommand
  - >> bootloaderUpdateCommand
  - >> addbuttonCommand
  - >> Vl53l0xStreamCommand
  - >> GetID

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

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

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

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

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

  - >> __aeabi_fadd

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

  - Max Depth = 16
  - Call Chain = __aeabi_fdiv
  [Calls]
  - >> _float_round
  [Called By]
  - >> FrontEndTask
  - >> Vl53l0xMaxCommand
  - >> ConvertCurrentUnit

  __aeabi_ddiv (Thumb, 234 bytes, Stack size 40 bytes, ddiv.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = __aeabi_ddiv ⇒ _double_round
  [Calls]
  - >> _double_round
  [Called By]
  - >> ConvertCurrentUnit
  - >> _fp_digits

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

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

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

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

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

  - >> HorizontalSweepToColor
  - >> FrontEndTask

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

  - >> Vl53l0xMaxCommand
  - >> SendMeasurementResult
  - >> ConvertCurrentUnit

  __aeabi_d2f (Thumb, 56 bytes, Stack size 8 bytes, d2f.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_d2f
  [Calls]
  - >> _float_round
  [Called By]
  - >> ConvertCurrentUnit

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

  - >> HorizontalSweepToColor
  - >> DetectedHorizontalSweep

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

  - >> FrontEndTask
  - >> DetectedHorizontalSweep
  - >> AbsDistanceToColor

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

  - >> FrontEndTask
  - >> DetectedHorizontalSweep
  - >> SendMeasurementResult

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

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

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

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

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

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

  - Max Depth = 72
  - Call Chain = strtol ⇒ _strtoul
  [Calls]
  - >> _strtoul
  - >> __aeabi_errno_addr
  - >> __rt_ctype_table
  [Called By]
  - >> atol
  - >> atoi

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

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

  - >> __aeabi_fdiv
  - >> __aeabi_fadd
  - >> __aeabi_d2f

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

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

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

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

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

  - >> __aeabi_llsr
  - >> __ARM_clz
  - >> __aeabi_llsl
  - >> _double_round
  [Called By]
  - >> __aeabi_dmul
  - >> __aeabi_dadd

  __aeabi_dadd (Thumb, 328 bytes, Stack size 48 bytes, dadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_lasr
  - >> _double_epilogue
  - >> __aeabi_llsl
  - >> _double_round
  [Called By]
  - >> __aeabi_drsub
  - >> __aeabi_dsub
  - >> _fp_digits

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

  - >> __aeabi_dadd

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

  - >> __aeabi_dadd

  __aeabi_dmul (Thumb, 202 bytes, Stack size 72 bytes, dmul.o(.text), UNUSED)
  [Calls]

  - >> _double_epilogue
  [Called By]
  - >> _fp_digits

  __aeabi_d2ulz (Thumb, 54 bytes, Stack size 8 bytes, dfixul.o(.text), UNUSED)
  [Calls]

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

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

  - >> _fp_digits

  __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
  [Calls]

  - >> __main_after_scatterload
  [Called By]
  - >> _main_scatterload

  __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)

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

  - >> __aeabi_dadd

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

  _strtoul (Thumb, 166 bytes, Stack size 40 bytes, _strtoul.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _strtoul
  [Calls]
  - >> _chval
  - >> __aeabi_errno_addr
  [Called By]
  - >> strtol

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

  - >> _strtoul

  __decompress (Thumb, 0 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)

  __decompress1 (Thumb, 86 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)

  AbsDistanceToColor (Thumb, 92 bytes, Stack size 8 bytes, main.o(i.AbsDistanceToColor))
  [Stack]

  - Max Depth = 8
  - Call Chain = AbsDistanceToColor
  [Calls]
  - >> __aeabi_cfcmple
  [Called By]
  - >> FrontEndTask

  ActivateButtonSnippet (Thumb, 614 bytes, Stack size 16 bytes, bos_cli.o(i.ActivateButtonSnippet))
  [Stack]

  - Max Depth = 104
  - Call Chain = ActivateButtonSnippet ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> atoi
  - >> strncmp
  [Called By]
  - >> AddSnippet

  AddBOSvar (Thumb, 58 bytes, Stack size 12 bytes, bos.o(i.AddBOSvar))
  [Stack]

  - Max Depth = 12
  - Call Chain = AddBOSvar
  [Called By]
  - >> FrontEndTask

  AddModuleToGroup (Thumb, 266 bytes, Stack size 40 bytes, bos.o(i.AddModuleToGroup))
  [Stack]

  - Max Depth = 52
  - Call Chain = AddModuleToGroup ⇒ strncmp
  [Calls]
  - >> strncmp
  - >> strcpy
  - >> strcmp
  - >> strlen
  [Called By]
  - >> groupCommand

  AddPortButton (Thumb, 364 bytes, Stack size 72 bytes, bos.o(i.AddPortButton))
  [Stack]

  - Max Depth = 248
  - Call Chain = AddPortButton ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> HAL_GPIO_Init
  - >> HAL_UART_DeInit
  - >> osSemaphoreRelease
  - >> EE_WriteVariable
  - >> EE_ReadVariable
  - >> GetUart
  - >> GetPortGPIOs
  [Called By]
  - >> addbuttonCommand
  - >> LoadEEbuttons

  AddSnippet (Thumb, 228 bytes, Stack size 24 bytes, bos_cli.o(i.AddSnippet))
  [Stack]

  - Max Depth = 128
  - Call Chain = AddSnippet ⇒ ActivateButtonSnippet ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> ActivateButtonSnippet
  - >> strcpy
  - >> strlen
  [Called By]
  - >> prvUARTCommandConsoleTask

  BOS_CalendarConfig (Thumb, 184 bytes, Stack size 48 bytes, bos.o(i.BOS_CalendarConfig))
  [Stack]

  - Max Depth = 224
  - Call Chain = BOS_CalendarConfig ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> HAL_RTCEx_BKUPWrite
  - >> HAL_RTC_SetTime
  - >> HAL_RTC_SetDate
  - >> EE_WriteVariable
  [Called By]
  - >> setCommand

  BOS_Init (Thumb, 272 bytes, Stack size 8 bytes, bos.o(i.BOS_Init))
  [Stack]

  - Max Depth = 960
  - Call Chain = BOS_Init ⇒ Module_Init ⇒ Vl53l0xInit ⇒ VL53L0X_StaticInit ⇒ VL53L0X_perform_ref_spad_management ⇒ perform_ref_signal_measurement ⇒ VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> NVIC_SystemReset
  - >> UpdateBaudrate
  - >> Module_Init
  - >> MX_GPIO_Init
  - >> MX_DMA_Init
  - >> EE_Init
  - >> UpdateMyPortsDir
  - >> StartMilliDelay
  - >> RTC_Init
  - >> MX_TIM_USEC_Init
  - >> LoadEEvars
  - >> IsLowerCLIbaud
  - >> IsFactoryReset
  - >> GetTimeDate
  - >> EE_FormatForFactoryReset
  [Called By]
  - >> main

  BroadcastMessage (Thumb, 298 bytes, Stack size 48 bytes, bos.o(i.BroadcastMessage))
  [Stack]

  - Max Depth = 296
  - Call Chain = BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageFromPort
  - >> FindBroadcastRoutes
  - >> __aeabi_memclr4
  [Called By]
  - >> SendMessageToModule
  - >> prvUARTCommandConsoleTask

  BroadcastReceivedMessage (Thumb, 192 bytes, Stack size 40 bytes, bos.o(i.BroadcastReceivedMessage))
  [Stack]

  - Max Depth = 288
  - Call Chain = BroadcastReceivedMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageFromPort
  - >> FindBroadcastRoutes
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> PxMessagingTask

  CheckAttachedButtons (Thumb, 1218 bytes, Stack size 40 bytes, bos.o(i.CheckAttachedButtons))
  [Stack]

  - Max Depth = 132
  - Call Chain = CheckAttachedButtons ⇒ StartMicroDelay ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> __ARM_common_switch8
  - >> HAL_GPIO_WritePin
  - >> HAL_GPIO_ReadPin
  - >> buttonReleasedForYCallback
  - >> buttonReleasedCallback
  - >> buttonPressedForXCallback
  - >> buttonPressedCallback
  - >> buttonDblClickedCallback
  - >> buttonClickedCallback
  - >> StartMicroDelay
  - >> GetPortGPIOs
  - >> CheckForTimedButtonRelease
  - >> CheckForTimedButtonPress
  [Called By]
  - >> StartDefaultTask

  CheckForTimedButtonPress (Thumb, 108 bytes, Stack size 20 bytes, bos.o(i.CheckForTimedButtonPress))
  [Stack]

  - Max Depth = 20
  - Call Chain = CheckForTimedButtonPress
  [Called By]
  - >> CheckAttachedButtons

  CheckForTimedButtonRelease (Thumb, 108 bytes, Stack size 20 bytes, bos.o(i.CheckForTimedButtonRelease))
  [Stack]

  - Max Depth = 20
  - Call Chain = CheckForTimedButtonRelease
  [Called By]
  - >> CheckAttachedButtons

  ClearEEportsDir (Thumb, 72 bytes, Stack size 16 bytes, bos.o(i.ClearEEportsDir))
  [Stack]

  - Max Depth = 192
  - Call Chain = ClearEEportsDir ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> EE_WriteVariable
  - >> __aeabi_memclr
  [Called By]
  - >> defaultCommand
  - >> PxMessagingTask

  ClearROtopology (Thumb, 76 bytes, Stack size 16 bytes, bos.o(i.ClearROtopology))
  [Stack]

  - Max Depth = 32
  - Call Chain = ClearROtopology ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_PageErase
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Lock
  - >> FLASH_WaitForLastOperation
  - >> __aeabi_memclr
  [Called By]
  - >> defaultCommand
  - >> PxMessagingTask

  DMA1_Ch1_IRQHandler (Thumb, 44 bytes, Stack size 8 bytes, h08r6_it.o(i.DMA1_Ch1_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = DMA1_Ch1_IRQHandler ⇒ StopPortPortDMA1 ⇒ HAL_DMA_Abort
  [Calls]
  - >> HAL_DMA_IRQHandler
  - >> StopPortPortDMA1
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

  DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler (Thumb, 82 bytes, Stack size 8 bytes, h08r6_it.o(i.DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler ⇒ StopPortPortDMA2 ⇒ HAL_DMA_Abort
  [Calls]
  - >> HAL_DMA_IRQHandler
  - >> StopPortPortDMA2
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

  DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler (Thumb, 108 bytes, Stack size 8 bytes, h08r6_it.o(i.DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler ⇒ StopPortPortDMA3 ⇒ HAL_DMA_Abort
  [Calls]
  - >> HAL_DMA_IRQHandler
  - >> StopPortPortDMA3
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

  DetectedHorizontalSweep (Thumb, 78 bytes, Stack size 8 bytes, main.o(i.DetectedHorizontalSweep))
  [Stack]

  - Max Depth = 8
  - Call Chain = DetectedHorizontalSweep
  [Calls]
  - >> __aeabi_cfrcmple
  - >> __aeabi_cfcmple
  - >> __aeabi_cfcmpeq
  [Called By]
  - >> HorizontalSweepToColor
  - >> FrontEndTask

  DisplayModuleStatus (Thumb, 578 bytes, Stack size 24 bytes, bos.o(i.DisplayModuleStatus))
  [Stack]

  - Max Depth = 176
  - Call Chain = DisplayModuleStatus ⇒ writePxMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> __ARM_common_switch8
  - >> writePxMutex
  - >> GetPort
  - >> FreeRTOS_CLIGetOutputBuffer
  - >> __2sprintf
  - >> strlen
  - >> strcat
  [Called By]
  - >> statusCommand

  DisplayPortsDir (Thumb, 162 bytes, Stack size 24 bytes, bos.o(i.DisplayPortsDir))
  [Stack]

  - Max Depth = 176
  - Call Chain = DisplayPortsDir ⇒ writePxMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> writePxMutex
  - >> __2sprintf
  - >> strlen
  [Called By]
  - >> infoCommand
  - >> exploreCommand

  DisplayTopology (Thumb, 358 bytes, Stack size 24 bytes, bos.o(i.DisplayTopology))
  [Stack]

  - Max Depth = 176
  - Call Chain = DisplayTopology ⇒ writePxMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> writePxMutex
  - >> __2sprintf
  - >> strlen
  - >> strncpy
  [Called By]
  - >> infoCommand
  - >> exploreCommand

  EE_Format (Thumb, 188 bytes, Stack size 8 bytes, bos_eeprom.o(i.EE_Format))
  [Stack]

  - Max Depth = 88
  - Call Chain = EE_Format ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_PageErase
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Program
  - >> HAL_FLASH_Lock
  - >> FLASH_WaitForLastOperation
  [Called By]
  - >> EE_Init
  - >> EE_FormatForFactoryReset

  EE_FormatForFactoryReset (Thumb, 28 bytes, Stack size 8 bytes, bos.o(i.EE_FormatForFactoryReset))
  [Stack]

  - Max Depth = 96
  - Call Chain = EE_FormatForFactoryReset ⇒ EE_Format ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> EE_Format
  [Called By]
  - >> BOS_Init

  EE_Init (Thumb, 980 bytes, Stack size 32 bytes, bos_eeprom.o(i.EE_Init))
  [Stack]

  - Max Depth = 144
  - Call Chain = EE_Init ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_PageErase
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Program
  - >> HAL_FLASH_Lock
  - >> FLASH_WaitForLastOperation
  - >> EE_VerifyPageFullWriteVariable
  - >> EE_ReadVariable
  - >> EE_Format
  [Called By]
  - >> BOS_Init

  EE_ReadVariable (Thumb, 92 bytes, Stack size 32 bytes, bos_eeprom.o(i.EE_ReadVariable))
  [Stack]

  - Max Depth = 32
  - Call Chain = EE_ReadVariable
  [Calls]
  - >> EE_FindValidPage
  [Called By]
  - >> EE_PageTransfer
  - >> EE_Init
  - >> SetButtonEvents
  - >> RemovePortButton
  - >> LoadEEstreams
  - >> LoadEEportsDir
  - >> LoadEEparams
  - >> LoadEEgroup
  - >> LoadEEbuttons
  - >> LoadEEalias
  - >> AddPortButton

  EE_WriteVariable (Thumb, 44 bytes, Stack size 16 bytes, bos_eeprom.o(i.EE_WriteVariable))
  [Stack]

  - Max Depth = 176
  - Call Chain = EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Lock
  - >> EE_VerifyPageFullWriteVariable
  - >> EE_PageTransfer
  [Called By]
  - >> setCommand
  - >> SetButtonEvents
  - >> SaveEEportsDir
  - >> SaveEEparams
  - >> SaveEEalias
  - >> RemovePortButton
  - >> PxMessagingTask
  - >> ClearEEportsDir
  - >> BOS_CalendarConfig
  - >> AddPortButton

  EXTI2_3_IRQHandler (Thumb, 40 bytes, Stack size 8 bytes, h08r6_it.o(i.EXTI2_3_IRQHandler))
  [Stack]

  - Max Depth = 160
  - Call Chain = EXTI2_3_IRQHandler ⇒ xEventGroupSetBitsFromISR ⇒ xTimerPendFunctionCallFromISR ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> HAL_GPIO_EXTI_IRQHandler
  - >> xEventGroupSetBitsFromISR
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

  ExecuteSnippet (Thumb, 154 bytes, Stack size 32 bytes, bos_cli.o(i.ExecuteSnippet))
  [Stack]

  - Max Depth = 136
  - Call Chain = ExecuteSnippet ⇒ ProcessSnippet ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> ProcessSnippet
  - >> FreeRTOS_CLIProcessCommand
  - >> FreeRTOS_CLIGetOutputBuffer
  - >> strlen
  - >> __aeabi_memclr
  [Called By]
  - >> StartDefaultTask

  Explore (Thumb, 1396 bytes, Stack size 56 bytes, bos.o(i.Explore))
  [Stack]

  - Max Depth = 384
  - Call Chain = Explore ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageToModule
  - >> osDelay
  - >> SwapUartPins
  - >> SendMessageFromPort
  - >> SaveROtopology
  - >> SaveEEportsDir
  - >> GetUart
  - >> FindRoute
  - >> ExploreNeighbors
  - >> __aeabi_memclr
  - >> __aeabi_memcpy
  [Called By]
  - >> exploreCommand

  ExploreNeighbors (Thumb, 68 bytes, Stack size 24 bytes, bos.o(i.ExploreNeighbors))
  [Stack]

  - Max Depth = 272
  - Call Chain = ExploreNeighbors ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> osDelay
  - >> SendMessageFromPort
  [Called By]
  - >> PxMessagingTask
  - >> Explore

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

  - >> HAL_FLASHEx_Erase
  - >> EE_PageTransfer
  - >> EE_Init
  - >> EE_Format
  - >> SaveROtopology
  - >> ClearROtopology

  FLASH_WaitForLastOperation (Thumb, 100 bytes, Stack size 16 bytes, stm32f0xx_hal_flash.o(i.FLASH_WaitForLastOperation))
  [Stack]

  - Max Depth = 16
  - Call Chain = FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_SetErrorCode
  - >> HAL_GetTick
  [Called By]
  - >> HAL_FLASH_Program
  - >> HAL_FLASHEx_Erase
  - >> EE_VerifyPageFullWriteVariable
  - >> EE_PageTransfer
  - >> EE_Init
  - >> EE_Format
  - >> SaveROtopology
  - >> ClearROtopology

  FindBroadcastRoutes (Thumb, 308 bytes, Stack size 40 bytes, bos.o(i.FindBroadcastRoutes))
  [Stack]

  - Max Depth = 60
  - Call Chain = FindBroadcastRoutes ⇒ malloc
  [Calls]
  - >> malloc
  - >> free
  [Called By]
  - >> BroadcastReceivedMessage
  - >> BroadcastMessage

  FindRoute (Thumb, 376 bytes, Stack size 80 bytes, bos.o(i.FindRoute))
  [Stack]

  - Max Depth = 92
  - Call Chain = FindRoute ⇒ minArr
  [Calls]
  - >> minArr
  - >> QnotEmpty
  - >> __aeabi_memclr4
  - >> __aeabi_memclr
  [Called By]
  - >> SendMessageToModule
  - >> remoteBootloaderUpdate
  - >> StartScastDMAStream
  - >> ForwardReceivedMessage
  - >> Explore

  ForwardReceivedMessage (Thumb, 132 bytes, Stack size 32 bytes, bos.o(i.ForwardReceivedMessage))
  [Stack]

  - Max Depth = 280
  - Call Chain = ForwardReceivedMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageFromPort
  - >> FindRoute
  - >> __aeabi_memcpy
  [Called By]
  - >> PxMessagingTask

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

  - >> SendMeasurementResult
  - >> CheckPressingEnterKey
  - >> prvUARTCommandConsoleTask
  - >> ExecuteSnippet
  - >> remoteBootloaderUpdate
  - >> PxMessagingTask
  - >> DisplayModuleStatus

  FreeRTOS_CLIGetParameter (Thumb, 102 bytes, Stack size 12 bytes, freertos_cli.o(i.FreeRTOS_CLIGetParameter))
  [Stack]

  - Max Depth = 12
  - Call Chain = FreeRTOS_CLIGetParameter
  [Called By]
  - >> setCommand
  - >> setBaudrateCommand
  - >> scastCommand
  - >> removebuttonCommand
  - >> nameCommand
  - >> groupCommand
  - >> getCommand
  - >> defaultCommand
  - >> bootloaderUpdateCommand
  - >> addbuttonCommand
  - >> prvHelpCommand
  - >> Vl53l0xUnitsCommand
  - >> Vl53l0xStreamCommand

  FreeRTOS_CLIProcessCommand (Thumb, 204 bytes, Stack size 32 bytes, freertos_cli.o(i.FreeRTOS_CLIProcessCommand))
  [Stack]

  - Max Depth = 44
  - Call Chain = FreeRTOS_CLIProcessCommand ⇒ strncmp
  [Calls]
  - >> prvGetNumberOfParameters
  - >> strncmp
  - >> strlen
  - >> strncpy
  [Called By]
  - >> prvUARTCommandConsoleTask
  - >> ExecuteSnippet
  - >> PxMessagingTask

  FreeRTOS_CLIRegisterCommand (Thumb, 68 bytes, Stack size 16 bytes, freertos_cli.o(i.FreeRTOS_CLIRegisterCommand))
  [Stack]

  - Max Depth = 80
  - Call Chain = FreeRTOS_CLIRegisterCommand ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> pvPortMalloc
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> RegisterModuleCLICommands
  - >> vRegisterCLICommands

  FrontEndTask (Thumb, 266 bytes, Stack size 16 bytes, main.o(i.FrontEndTask))
  [Stack]

  - Max Depth = 344
  - Call Chain = FrontEndTask ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> __aeabi_fsub
  - >> __aeabi_fdiv
  - >> __aeabi_f2uiz
  - >> __aeabi_cfrcmple
  - >> __aeabi_cfcmple
  - >> Stream_ToF_Memory
  - >> SetRangeUnit
  - >> SendMessageToModule
  - >> HAL_Delay
  - >> AddBOSvar
  - >> __ARM_common_switch8
  - >> HorizontalSweepToColor
  - >> DetectedHorizontalSweep
  - >> AbsDistanceToColor
  [Address Reference Count : 1]
  - bos_freertos.o(i.MX_FREERTOS_Init)

  GetDateString (Thumb, 56 bytes, Stack size 16 bytes, bos.o(i.GetDateString))
  [Stack]

  - Max Depth = 40
  - Call Chain = GetDateString ⇒ __2sprintf
  [Calls]
  - >> malloc
  - >> __2sprintf
  - >> __aeabi_memclr
  [Called By]
  - >> dateCommand

  GetID (Thumb, 182 bytes, Stack size 16 bytes, bos.o(i.GetID))
  [Stack]

  - Max Depth = 104
  - Call Chain = GetID ⇒ atol ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> atol
  - >> strcmp
  [Called By]
  - >> scastCommand
  - >> groupCommand
  - >> prvUARTCommandConsoleTask

  GetPort (Thumb, 78 bytes, Stack size 0 bytes, h08r6.o(i.GetPort))
  [Called By]

  - >> HAL_UART_TxCpltCallback
  - >> HAL_UART_RxCpltCallback
  - >> PortMemDMA1_Setup
  - >> StopPortPortDMA3
  - >> StopPortPortDMA2
  - >> StopPortPortDMA1
  - >> PortPortDMA3_Setup
  - >> PortPortDMA2_Setup
  - >> PortPortDMA1_Setup
  - >> SwapUartPins
  - >> DisplayModuleStatus

  GetPortGPIOs (Thumb, 200 bytes, Stack size 40 bytes, bos.o(i.GetPortGPIOs))
  [Stack]

  - Max Depth = 52
  - Call Chain = GetPortGPIOs ⇒ GetUart ⇒ __ARM_common_switch8
  [Calls]
  - >> GetUart
  [Called By]
  - >> IsLowerCLIbaud
  - >> IsFactoryReset
  - >> CheckAttachedButtons
  - >> AddPortButton

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

  - >> Module_MessagingTask

  GetTimeDate (Thumb, 110 bytes, Stack size 32 bytes, bos.o(i.GetTimeDate))
  [Stack]

  - Max Depth = 52
  - Call Chain = GetTimeDate ⇒ HAL_RTC_GetTime
  [Calls]
  - >> HAL_RTC_GetTime
  - >> HAL_RTC_GetDate
  [Called By]
  - >> BOS_Init
  - >> timeCommand
  - >> setCommand
  - >> dateCommand

  GetUart (Thumb, 48 bytes, Stack size 4 bytes, bos.o(i.GetUart))
  [Stack]

  - Max Depth = 12
  - Call Chain = GetUart ⇒ __ARM_common_switch8
  [Calls]
  - >> __ARM_common_switch8
  [Called By]
  - >> readPxITMutex
  - >> readPxMutex
  - >> writePxMutex
  - >> writePxITMutex
  - >> UpdateBaudrate
  - >> remoteBootloaderUpdate
  - >> UpdateMyPortsDir
  - >> StartScastDMAStream
  - >> SetupPortForRemoteBootloaderUpdate
  - >> SetupDMAStreamsFromMessage
  - >> SendMessageFromPort
  - >> RemovePortButton
  - >> ReadPortsDir
  - >> PxMessagingTask
  - >> GetPortGPIOs
  - >> Explore
  - >> AddPortButton

  HAL_DMA_Abort (Thumb, 100 bytes, Stack size 16 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_Abort))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_DMA_Abort
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> StopPortPortDMA3
  - >> StopPortPortDMA2
  - >> StopPortPortDMA1

  HAL_DMA_IRQHandler (Thumb, 2324 bytes, Stack size 8 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_DMA_IRQHandler
  [Called By]
  - >> DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler
  - >> DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler
  - >> DMA1_Ch1_IRQHandler

  HAL_DMA_Init (Thumb, 86 bytes, Stack size 0 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_Init))
  [Called By]

  - >> PortPortDMA3_Init
  - >> PortPortDMA2_Init
  - >> PortPortDMA1_Init
  - >> PortMemDMA3_Init
  - >> PortMemDMA2_Init
  - >> PortMemDMA1_Init

  HAL_DMA_Start_IT (Thumb, 114 bytes, Stack size 24 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_Start_IT))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> DMA_SetConfig
  [Called By]
  - >> HAL_UART_Receive_DMA

  HAL_Delay (Thumb, 26 bytes, Stack size 16 bytes, stm32f0xx_hal.o(i.HAL_Delay))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_Delay
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> FrontEndTask
  - >> remoteBootloaderUpdate
  - >> PxMessagingTask

  HAL_FLASHEx_Erase (Thumb, 160 bytes, Stack size 24 bytes, stm32f0xx_hal_flash_ex.o(i.HAL_FLASHEx_Erase))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_FLASHEx_Erase ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_MassErase
  - >> FLASH_PageErase
  - >> FLASH_WaitForLastOperation
  [Called By]
  - >> PxMessagingTask

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

  - >> EE_VerifyPageFullWriteVariable
  - >> EE_PageTransfer
  - >> EE_WriteVariable
  - >> EE_Init
  - >> EE_Format
  - >> SaveROtopology
  - >> PxMessagingTask
  - >> ClearROtopology

  HAL_FLASH_Program (Thumb, 174 bytes, Stack size 64 bytes, stm32f0xx_hal_flash.o(i.HAL_FLASH_Program))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_WaitForLastOperation
  - >> FLASH_Program_HalfWord
  - >> __aeabi_llsr
  [Called By]
  - >> EE_VerifyPageFullWriteVariable
  - >> EE_PageTransfer
  - >> EE_Init
  - >> EE_Format
  - >> SaveROtopology
  - >> PxMessagingTask

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

  - >> EE_VerifyPageFullWriteVariable
  - >> EE_PageTransfer
  - >> EE_WriteVariable
  - >> EE_Init
  - >> EE_Format
  - >> SaveROtopology
  - >> PxMessagingTask
  - >> ClearROtopology

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

  - >> HAL_GPIO_EXTI_IRQHandler

  HAL_GPIO_EXTI_IRQHandler (Thumb, 26 bytes, Stack size 8 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_GPIO_EXTI_IRQHandler
  [Calls]
  - >> HAL_GPIO_EXTI_Callback
  [Called By]
  - >> EXTI2_3_IRQHandler

  HAL_GPIO_Init (Thumb, 480 bytes, Stack size 20 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_GPIO_Init
  [Called By]
  - >> HAL_UART_MspInit
  - >> IND_ToF_Init
  - >> IND_LED_Init
  - >> IsLowerCLIbaud
  - >> IsFactoryReset
  - >> AddPortButton

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

  - >> IsLowerCLIbaud
  - >> IsFactoryReset
  - >> CheckAttachedButtons

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

  - >> PxMessagingTask

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

  - >> BOS_Init
  - >> pingCommand
  - >> IND_ToF_Init
  - >> Vl53l0xInit
  - >> StartDefaultTask
  - >> PxMessagingTask
  - >> IsLowerCLIbaud
  - >> IsFactoryReset
  - >> CheckAttachedButtons

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

  - >> idcodeCommand

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

  - >> idcodeCommand

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

  - >> FLASH_WaitForLastOperation
  - >> HAL_DMA_Abort
  - >> HAL_Delay
  - >> HAL_RCCEx_PeriphCLKConfig
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> I2C_WaitOnTXISFlagUntilTimeout
  - >> I2C_WaitOnSTOPFlagUntilTimeout
  - >> I2C_WaitOnFlagUntilTimeout
  - >> I2C_IsAcknowledgeFailed
  - >> RTC_EnterInitMode
  - >> HAL_RTC_WaitForSynchro
  - >> UART_WaitOnFlagUntilTimeout

  HAL_I2CEx_ConfigAnalogFilter (Thumb, 142 bytes, Stack size 0 bytes, stm32f0xx_hal_i2c_ex.o(i.HAL_I2CEx_ConfigAnalogFilter))
  [Called By]

  - >> MX_I2C2_Init

  HAL_I2CEx_ConfigDigitalFilter (Thumb, 146 bytes, Stack size 8 bytes, stm32f0xx_hal_i2c_ex.o(i.HAL_I2CEx_ConfigDigitalFilter))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_I2CEx_ConfigDigitalFilter
  [Called By]
  - >> MX_I2C2_Init

  HAL_I2C_ER_IRQHandler (Thumb, 160 bytes, Stack size 8 bytes, stm32f0xx_hal_i2c.o(i.HAL_I2C_ER_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_I2C_ER_IRQHandler
  [Calls]
  - >> HAL_I2C_ErrorCallback
  [Called By]
  - >> I2C2_IRQHandler

  HAL_I2C_EV_IRQHandler (Thumb, 474 bytes, Stack size 8 bytes, stm32f0xx_hal_i2c.o(i.HAL_I2C_EV_IRQHandler))
  [Stack]

  - Max Depth = 44
  - Call Chain = HAL_I2C_EV_IRQHandler ⇒ I2C_MasterTransmit_ISR ⇒ I2C_TransferConfig
  [Calls]
  - >> I2C_SlaveTransmit_ISR
  - >> I2C_SlaveReceive_ISR
  - >> I2C_MasterTransmit_ISR
  - >> I2C_MasterReceive_ISR
  [Called By]
  - >> I2C2_IRQHandler

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

  - >> HAL_I2C_ER_IRQHandler
  - >> I2C_SlaveTransmit_ISR
  - >> I2C_SlaveReceive_ISR
  - >> I2C_MasterTransmit_ISR
  - >> I2C_MasterReceive_ISR

  HAL_I2C_Init (Thumb, 190 bytes, Stack size 8 bytes, stm32f0xx_hal_i2c.o(i.HAL_I2C_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_I2C_Init
  [Calls]
  - >> HAL_I2C_MspInit
  [Called By]
  - >> MX_I2C2_Init

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

  - >> I2C_MasterReceive_ISR

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

  - >> I2C_MasterTransmit_ISR

  HAL_I2C_Master_Receive (Thumb, 320 bytes, Stack size 40 bytes, stm32f0xx_hal_i2c.o(i.HAL_I2C_Master_Receive))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_I2C_Master_Receive ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> I2C_WaitOnSTOPFlagUntilTimeout
  - >> I2C_WaitOnFlagUntilTimeout
  - >> I2C_TransferConfig
  [Called By]
  - >> VL53L0X_read_word
  - >> VL53L0X_read_multi
  - >> VL53L0X_read_dword
  - >> VL53L0X_read_byte

  HAL_I2C_Master_Transmit (Thumb, 338 bytes, Stack size 48 bytes, stm32f0xx_hal_i2c.o(i.HAL_I2C_Master_Transmit))
  [Stack]

  - Max Depth = 88
  - Call Chain = HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> I2C_WaitOnTXISFlagUntilTimeout
  - >> I2C_WaitOnSTOPFlagUntilTimeout
  - >> I2C_WaitOnFlagUntilTimeout
  - >> I2C_TransferConfig
  [Called By]
  - >> VL53L0X_write_word
  - >> VL53L0X_write_multi
  - >> VL53L0X_write_dword
  - >> VL53L0X_write_byte
  - >> VL53L0X_read_word
  - >> VL53L0X_read_multi
  - >> VL53L0X_read_dword
  - >> VL53L0X_read_byte

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

  - >> I2C_MasterReceive_ISR

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

  - >> I2C_MasterTransmit_ISR

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

  - >> HAL_I2C_Init

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

  - >> I2C_SlaveReceive_ISR

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

  - >> I2C_SlaveTransmit_ISR

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

  - >> SysTick_Handler

  HAL_Init (Thumb, 28 bytes, Stack size 8 bytes, stm32f0xx_hal.o(i.HAL_Init))
  [Stack]

  - Max Depth = 100
  - Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_MspInit
  - >> HAL_InitTick
  [Called By]
  - >> main

  HAL_InitTick (Thumb, 38 bytes, Stack size 16 bytes, stm32f0xx_hal.o(i.HAL_InitTick))
  [Stack]

  - Max Depth = 92
  - Call Chain = HAL_InitTick ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_SYSTICK_Config
  - >> HAL_RCC_GetHCLKFreq
  - >> HAL_NVIC_SetPriority
  - >> __aeabi_uidivmod
  [Called By]
  - >> HAL_Init
  - >> HAL_RCC_ClockConfig

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

  - >> HAL_Init

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

  - >> HAL_UART_MspInit
  - >> IND_ToF_Init
  - >> PortMemDMA1_Setup
  - >> PortPortDMA3_Setup
  - >> PortPortDMA2_Setup
  - >> PortPortDMA1_Setup

  HAL_NVIC_SetPriority (Thumb, 18 bytes, Stack size 16 bytes, stm32f0xx_hal_cortex.o(i.HAL_NVIC_SetPriority))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_NVIC_SetPriority ⇒ NVIC_SetPriority
  [Calls]
  - >> NVIC_SetPriority
  [Called By]
  - >> HAL_InitTick
  - >> SystemClock_Config
  - >> HAL_UART_MspInit
  - >> IND_ToF_Init
  - >> PortMemDMA1_Setup
  - >> PortPortDMA3_Setup
  - >> PortPortDMA2_Setup
  - >> PortPortDMA1_Setup

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

  - >> SystemClock_Config

  HAL_RCCEx_PeriphCLKConfig (Thumb, 368 bytes, Stack size 24 bytes, stm32f0xx_hal_rcc_ex.o(i.HAL_RCCEx_PeriphCLKConfig))
  [Stack]

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

  HAL_RCC_ClockConfig (Thumb, 702 bytes, Stack size 16 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_ClockConfig))
  [Stack]

  - Max Depth = 108
  - Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_InitTick
  - >> HAL_GetTick
  [Called By]
  - >> SystemClock_Config

  HAL_RCC_GetHCLKFreq (Thumb, 32 bytes, Stack size 8 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq))
  [Stack]

  - Max Depth = 76
  - Call Chain = HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_RCC_GetSysClockFreq
  [Called By]
  - >> HAL_InitTick
  - >> SystemClock_Config
  - >> HAL_RCC_GetPCLK1Freq
  - >> StartMilliDelay
  - >> StartMicroDelay
  - >> MX_TIM_USEC_Init

  HAL_RCC_GetPCLK1Freq (Thumb, 26 bytes, Stack size 8 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq))
  [Stack]

  - Max Depth = 84
  - Call Chain = HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_RCC_GetHCLKFreq
  [Called By]
  - >> UART_SetConfig

  HAL_RCC_GetSysClockFreq (Thumb, 194 bytes, Stack size 56 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq))
  [Stack]

  - Max Depth = 68
  - Call Chain = HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> HAL_RCC_GetHCLKFreq
  - >> UART_SetConfig

  HAL_RCC_OscConfig (Thumb, 1622 bytes, Stack size 16 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_OscConfig))
  [Stack]

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

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

  - >> RTC_Init

  HAL_RTCEx_BKUPWrite (Thumb, 18 bytes, Stack size 8 bytes, stm32f0xx_hal_rtc_ex.o(i.HAL_RTCEx_BKUPWrite))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_RTCEx_BKUPWrite
  [Called By]
  - >> RTC_CalendarConfig
  - >> BOS_CalendarConfig

  HAL_RTC_GetDate (Thumb, 88 bytes, Stack size 20 bytes, stm32f0xx_hal_rtc.o(i.HAL_RTC_GetDate))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_RTC_GetDate
  [Calls]
  - >> RTC_Bcd2ToByte
  [Called By]
  - >> GetTimeDate

  HAL_RTC_GetTime (Thumb, 94 bytes, Stack size 20 bytes, stm32f0xx_hal_rtc.o(i.HAL_RTC_GetTime))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_RTC_GetTime
  [Calls]
  - >> RTC_Bcd2ToByte
  [Called By]
  - >> GetTimeDate

  HAL_RTC_Init (Thumb, 182 bytes, Stack size 8 bytes, stm32f0xx_hal_rtc.o(i.HAL_RTC_Init))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_RTC_Init ⇒ RTC_EnterInitMode
  [Calls]
  - >> HAL_RTC_MspInit
  - >> RTC_EnterInitMode
  [Called By]
  - >> RTC_Init

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

  - >> HAL_RTC_Init

  HAL_RTC_SetDate (Thumb, 280 bytes, Stack size 24 bytes, stm32f0xx_hal_rtc.o(i.HAL_RTC_SetDate))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_RTC_SetDate ⇒ RTC_EnterInitMode
  [Calls]
  - >> RTC_EnterInitMode
  - >> RTC_ByteToBcd2
  - >> RTC_Bcd2ToByte
  - >> HAL_RTC_WaitForSynchro
  [Called By]
  - >> RTC_CalendarConfig
  - >> BOS_CalendarConfig

  HAL_RTC_SetTime (Thumb, 318 bytes, Stack size 24 bytes, stm32f0xx_hal_rtc.o(i.HAL_RTC_SetTime))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_RTC_SetTime ⇒ RTC_EnterInitMode
  [Calls]
  - >> RTC_EnterInitMode
  - >> RTC_ByteToBcd2
  - >> RTC_Bcd2ToByte
  - >> HAL_RTC_WaitForSynchro
  [Called By]
  - >> RTC_CalendarConfig
  - >> BOS_CalendarConfig

  HAL_RTC_WaitForSynchro (Thumb, 60 bytes, Stack size 16 bytes, stm32f0xx_hal_rtc.o(i.HAL_RTC_WaitForSynchro))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_RTC_WaitForSynchro
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> HAL_RTC_SetTime
  - >> HAL_RTC_SetDate

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

  - >> SystemClock_Config

  HAL_SYSTICK_Config (Thumb, 46 bytes, Stack size 16 bytes, stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Config))
  [Stack]

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

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

  - >> MX_TIM_USEC_Init

  HAL_TIM_Base_Init (Thumb, 56 bytes, Stack size 8 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_TIM_Base_Init ⇒ TIM_Base_SetConfig
  [Calls]
  - >> HAL_TIM_Base_MspInit
  - >> TIM_Base_SetConfig
  [Called By]
  - >> StartMilliDelay
  - >> StartMicroDelay
  - >> MX_TIM_USEC_Init

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

  - >> HAL_TIM_Base_Init

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

  - >> StartMilliDelay
  - >> StartMicroDelay

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

  - >> StartMilliDelay
  - >> StartMicroDelay

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

  - >> HAL_UART_IRQHandler

  HAL_UART_DeInit (Thumb, 72 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_DeInit))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_UART_DeInit
  [Calls]
  - >> HAL_UART_MspDeInit
  [Called By]
  - >> AddPortButton

  HAL_UART_ErrorCallback (Thumb, 22 bytes, Stack size 8 bytes, h08r6_it.o(i.HAL_UART_ErrorCallback))
  [Stack]

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

  HAL_UART_IRQHandler (Thumb, 334 bytes, Stack size 8 bytes, stm32f0xx_hal_uart_ex.o(i.HAL_UART_IRQHandler))
  [Stack]

  - Max Depth = 128
  - Call Chain = HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ PortMemDMA1_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UARTEx_WakeupCallback
  - >> UART_Transmit_IT
  - >> UART_Receive_IT
  - >> UART_EndTransmit_IT
  - >> HAL_UART_ErrorCallback
  [Called By]
  - >> USART3_8_IRQHandler
  - >> USART2_IRQHandler
  - >> USART1_IRQHandler

  HAL_UART_Init (Thumb, 130 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Init))
  [Stack]

  - Max Depth = 124
  - Call Chain = HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> UART_SetConfig
  - >> UART_CheckIdleState
  - >> UART_AdvFeatureConfig
  - >> HAL_UART_MspInit
  [Called By]
  - >> UpdateBaudrate
  - >> MX_USART6_UART_Init
  - >> MX_USART5_UART_Init
  - >> MX_USART4_UART_Init
  - >> MX_USART3_UART_Init
  - >> MX_USART2_UART_Init
  - >> MX_USART1_UART_Init
  - >> SwapUartPins
  - >> SetupPortForRemoteBootloaderUpdate

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

  - >> HAL_UART_DeInit

  HAL_UART_MspInit (Thumb, 706 bytes, Stack size 32 bytes, h08r6_uart.o(i.HAL_UART_MspInit))
  [Stack]

  - Max Depth = 56
  - Call Chain = HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_NVIC_SetPriority
  - >> HAL_GPIO_Init
  [Called By]
  - >> HAL_UART_Init

  HAL_UART_Receive (Thumb, 326 bytes, Stack size 40 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Receive))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_UART_Receive ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> UART_WaitOnFlagUntilTimeout
  [Called By]
  - >> readPxMutex

  HAL_UART_Receive_DMA (Thumb, 158 bytes, Stack size 32 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Receive_DMA))
  [Stack]

  - Max Depth = 64
  - Call Chain = HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_DMA_Start_IT
  [Called By]
  - >> PortMemDMA1_Setup
  - >> PortPortDMA3_Setup
  - >> PortPortDMA2_Setup
  - >> PortPortDMA1_Setup

  HAL_UART_Receive_IT (Thumb, 238 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Receive_IT))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_UART_Receive_IT
  [Called By]
  - >> HAL_UART_RxCpltCallback
  - >> HAL_UART_ErrorCallback
  - >> readPxITMutex
  - >> StopPortPortDMA3
  - >> StopPortPortDMA2
  - >> StopPortPortDMA1
  - >> SendMessageFromPort
  - >> RemovePortButton
  - >> PxMessagingTask

  HAL_UART_RxCpltCallback (Thumb, 186 bytes, Stack size 24 bytes, h08r6_it.o(i.HAL_UART_RxCpltCallback))
  [Stack]

  - Max Depth = 104
  - Call Chain = HAL_UART_RxCpltCallback ⇒ PortMemDMA1_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UART_Receive_IT
  - >> xQueueGiveFromISR
  - >> PortMemDMA1_Setup
  - >> vTaskNotifyGiveFromISR
  - >> GetPort
  - >> NotifyMessagingTaskFromISR
  [Called By]
  - >> UART_Receive_IT
  - >> UART_DMAReceiveCplt

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

  - >> UART_DMARxHalfCplt

  HAL_UART_Transmit (Thumb, 238 bytes, Stack size 40 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Transmit))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> UART_WaitOnFlagUntilTimeout
  [Called By]
  - >> writePxMutex

  HAL_UART_Transmit_IT (Thumb, 132 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Transmit_IT))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_UART_Transmit_IT
  [Called By]
  - >> writePxITMutex

  HAL_UART_TxCpltCallback (Thumb, 36 bytes, Stack size 16 bytes, h08r6_it.o(i.HAL_UART_TxCpltCallback))
  [Stack]

  - Max Depth = 56
  - Call Chain = HAL_UART_TxCpltCallback ⇒ xQueueGiveFromISR ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xQueueGiveFromISR
  - >> GetPort
  [Called By]
  - >> UART_EndTransmit_IT

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

  - startup_stm32f091xc.o(RESET)

  HorizontalSweepToColor (Thumb, 186 bytes, Stack size 16 bytes, main.o(i.HorizontalSweepToColor))
  [Stack]

  - Max Depth = 36
  - Call Chain = HorizontalSweepToColor ⇒ __aeabi_ui2f ⇒ _float_epilogue
  [Calls]
  - >> __aeabi_ui2f
  - >> __aeabi_f2uiz
  - >> __aeabi_cfcmpeq
  - >> DetectedHorizontalSweep
  [Called By]
  - >> FrontEndTask

  I2C2_IRQHandler (Thumb, 48 bytes, Stack size 8 bytes, h08r6_it.o(i.I2C2_IRQHandler))
  [Stack]

  - Max Depth = 52
  - Call Chain = I2C2_IRQHandler ⇒ HAL_I2C_EV_IRQHandler ⇒ I2C_MasterTransmit_ISR ⇒ I2C_TransferConfig
  [Calls]
  - >> HAL_I2C_EV_IRQHandler
  - >> HAL_I2C_ER_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

  IND_LED_Init (Thumb, 36 bytes, Stack size 24 bytes, h08r6_gpio.o(i.IND_LED_Init))
  [Stack]

  - Max Depth = 44
  - Call Chain = IND_LED_Init ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GPIO_Init
  [Called By]
  - >> MX_GPIO_Init

  IND_ToF_Init (Thumb, 172 bytes, Stack size 32 bytes, h08r6_gpio.o(i.IND_ToF_Init))
  [Stack]

  - Max Depth = 56
  - Call Chain = IND_ToF_Init ⇒ HAL_NVIC_SetPriority ⇒ NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_NVIC_SetPriority
  - >> HAL_GPIO_WritePin
  - >> HAL_GPIO_Init
  [Called By]
  - >> MX_GPIO_Init

  IsFactoryReset (Thumb, 282 bytes, Stack size 64 bytes, bos.o(i.IsFactoryReset))
  [Stack]

  - Max Depth = 156
  - Call Chain = IsFactoryReset ⇒ StartMilliDelay ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> HAL_GPIO_ReadPin
  - >> HAL_GPIO_Init
  - >> StartMilliDelay
  - >> GetPortGPIOs
  [Called By]
  - >> BOS_Init

  IsLowerCLIbaud (Thumb, 152 bytes, Stack size 64 bytes, bos.o(i.IsLowerCLIbaud))
  [Stack]

  - Max Depth = 156
  - Call Chain = IsLowerCLIbaud ⇒ StartMilliDelay ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> HAL_GPIO_ReadPin
  - >> HAL_GPIO_Init
  - >> StartMilliDelay
  - >> GetPortGPIOs
  [Called By]
  - >> BOS_Init

  LoadEEalias (Thumb, 106 bytes, Stack size 24 bytes, bos.o(i.LoadEEalias))
  [Stack]

  - Max Depth = 56
  - Call Chain = LoadEEalias ⇒ EE_ReadVariable
  [Calls]
  - >> EE_ReadVariable
  [Called By]
  - >> LoadEEvars

  LoadEEbuttons (Thumb, 416 bytes, Stack size 56 bytes, bos.o(i.LoadEEbuttons))
  [Stack]

  - Max Depth = 304
  - Call Chain = LoadEEbuttons ⇒ AddPortButton ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> EE_ReadVariable
  - >> SetButtonEvents
  - >> AddPortButton
  [Called By]
  - >> LoadEEvars

  LoadEEgroup (Thumb, 144 bytes, Stack size 24 bytes, bos.o(i.LoadEEgroup))
  [Stack]

  - Max Depth = 56
  - Call Chain = LoadEEgroup ⇒ EE_ReadVariable
  [Calls]
  - >> EE_ReadVariable
  [Called By]
  - >> LoadEEvars

  LoadEEparams (Thumb, 284 bytes, Stack size 24 bytes, bos.o(i.LoadEEparams))
  [Stack]

  - Max Depth = 56
  - Call Chain = LoadEEparams ⇒ EE_ReadVariable
  [Calls]
  - >> EE_ReadVariable
  [Called By]
  - >> LoadEEvars

  LoadEEportsDir (Thumb, 52 bytes, Stack size 16 bytes, bos.o(i.LoadEEportsDir))
  [Stack]

  - Max Depth = 48
  - Call Chain = LoadEEportsDir ⇒ EE_ReadVariable
  [Calls]
  - >> EE_ReadVariable
  [Called By]
  - >> LoadEEvars

  LoadEEstreams (Thumb, 290 bytes, Stack size 56 bytes, bos.o(i.LoadEEstreams))
  [Stack]

  - Max Depth = 256
  - Call Chain = LoadEEstreams ⇒ SetupDMAStreamsFromMessage ⇒ xTimerCreate ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> EE_ReadVariable
  - >> SetupDMAStreamsFromMessage
  [Called By]
  - >> LoadEEvars

  LoadEEvars (Thumb, 32 bytes, Stack size 8 bytes, bos.o(i.LoadEEvars))
  [Stack]

  - Max Depth = 312
  - Call Chain = LoadEEvars ⇒ LoadEEbuttons ⇒ AddPortButton ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> LoadROtopology
  - >> LoadEEstreams
  - >> LoadEEportsDir
  - >> LoadEEparams
  - >> LoadEEgroup
  - >> LoadEEbuttons
  - >> LoadEEalias
  [Called By]
  - >> BOS_Init

  LoadROtopology (Thumb, 112 bytes, Stack size 20 bytes, bos.o(i.LoadROtopology))
  [Stack]

  - Max Depth = 20
  - Call Chain = LoadROtopology
  [Called By]
  - >> LoadEEvars

  MX_DMA_Init (Thumb, 84 bytes, Stack size 8 bytes, h08r6_dma.o(i.MX_DMA_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = MX_DMA_Init ⇒ PortPortDMA3_Init
  [Calls]
  - >> PortPortDMA3_Init
  - >> PortPortDMA2_Init
  - >> PortPortDMA1_Init
  - >> PortMemDMA3_Init
  - >> PortMemDMA2_Init
  - >> PortMemDMA1_Init
  [Called By]
  - >> BOS_Init

  MX_FREERTOS_Init (Thumb, 436 bytes, Stack size 72 bytes, bos_freertos.o(i.MX_FREERTOS_Init))
  [Stack]

  - Max Depth = 208
  - Call Chain = MX_FREERTOS_Init ⇒ xTaskGenericCreate ⇒ prvAllocateTCBAndStack ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGenericCreate
  - >> osSemaphoreCreate
  - >> vRegisterCLICommands
  [Called By]
  - >> main

  MX_GPIO_Init (Thumb, 164 bytes, Stack size 8 bytes, h08r6_gpio.o(i.MX_GPIO_Init))
  [Stack]

  - Max Depth = 64
  - Call Chain = MX_GPIO_Init ⇒ IND_ToF_Init ⇒ HAL_NVIC_SetPriority ⇒ NVIC_SetPriority
  [Calls]
  - >> IND_ToF_Init
  - >> IND_LED_Init
  [Called By]
  - >> BOS_Init

  MX_I2C2_Init (Thumb, 56 bytes, Stack size 8 bytes, h08r6_i2c.o(i.MX_I2C2_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = MX_I2C2_Init ⇒ HAL_I2CEx_ConfigDigitalFilter
  [Calls]
  - >> HAL_I2CEx_ConfigDigitalFilter
  - >> HAL_I2CEx_ConfigAnalogFilter
  - >> HAL_I2C_Init
  [Called By]
  - >> MX_I2C_Init

  MX_I2C_Init (Thumb, 160 bytes, Stack size 8 bytes, h08r6_i2c.o(i.MX_I2C_Init))
  [Stack]

  - Max Depth = 24
  - Call Chain = MX_I2C_Init ⇒ MX_I2C2_Init ⇒ HAL_I2CEx_ConfigDigitalFilter
  [Calls]
  - >> MX_I2C2_Init
  [Called By]
  - >> Module_Init

  MX_TIM_USEC_Init (Thumb, 84 bytes, Stack size 24 bytes, bos.o(i.MX_TIM_USEC_Init))
  [Stack]

  - Max Depth = 100
  - Call Chain = MX_TIM_USEC_Init ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_RCC_GetHCLKFreq
  - >> HAL_TIMEx_MasterConfigSynchronization
  - >> HAL_TIM_Base_Init
  - >> __aeabi_uidivmod
  [Called By]
  - >> BOS_Init

  MX_USART1_UART_Init (Thumb, 50 bytes, Stack size 8 bytes, h08r6_uart.o(i.MX_USART1_UART_Init))
  [Stack]

  - Max Depth = 132
  - Call Chain = MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_UART_Init
  [Called By]
  - >> Module_Init
  - >> RemovePortButton

  MX_USART2_UART_Init (Thumb, 50 bytes, Stack size 8 bytes, h08r6_uart.o(i.MX_USART2_UART_Init))
  [Stack]

  - Max Depth = 132
  - Call Chain = MX_USART2_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_UART_Init
  [Called By]
  - >> Module_Init
  - >> RemovePortButton

  MX_USART3_UART_Init (Thumb, 50 bytes, Stack size 8 bytes, h08r6_uart.o(i.MX_USART3_UART_Init))
  [Stack]

  - Max Depth = 132
  - Call Chain = MX_USART3_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_UART_Init
  [Called By]
  - >> Module_Init
  - >> RemovePortButton

  MX_USART4_UART_Init (Thumb, 50 bytes, Stack size 8 bytes, h08r6_uart.o(i.MX_USART4_UART_Init))
  [Stack]

  - Max Depth = 132
  - Call Chain = MX_USART4_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_UART_Init
  [Called By]
  - >> Module_Init
  - >> RemovePortButton

  MX_USART5_UART_Init (Thumb, 50 bytes, Stack size 8 bytes, h08r6_uart.o(i.MX_USART5_UART_Init))
  [Stack]

  - Max Depth = 132
  - Call Chain = MX_USART5_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_UART_Init
  [Called By]
  - >> Module_Init
  - >> RemovePortButton

  MX_USART6_UART_Init (Thumb, 50 bytes, Stack size 8 bytes, h08r6_uart.o(i.MX_USART6_UART_Init))
  [Stack]

  - Max Depth = 132
  - Call Chain = MX_USART6_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_UART_Init
  [Called By]
  - >> Module_Init
  - >> RemovePortButton

  Module_Init (Thumb, 70 bytes, Stack size 24 bytes, h08r6.o(i.Module_Init))
  [Stack]

  - Max Depth = 952
  - Call Chain = Module_Init ⇒ Vl53l0xInit ⇒ VL53L0X_StaticInit ⇒ VL53L0X_perform_ref_spad_management ⇒ perform_ref_signal_measurement ⇒ VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> xEventGroupCreate
  - >> MX_I2C_Init
  - >> Vl53l0xInit
  - >> xTaskGenericCreate
  - >> MX_USART6_UART_Init
  - >> MX_USART5_UART_Init
  - >> MX_USART4_UART_Init
  - >> MX_USART3_UART_Init
  - >> MX_USART2_UART_Init
  - >> MX_USART1_UART_Init
  [Called By]
  - >> BOS_Init

  Module_MessagingTask (Thumb, 180 bytes, Stack size 32 bytes, h08r6.o(i.Module_MessagingTask))
  [Stack]

  - Max Depth = 672
  - Call Chain = Module_MessagingTask ⇒ Sample_ToF ⇒ GetMeasurementResult ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> Stream_ToF_Memory
  - >> SetRangeUnit
  - >> __ARM_common_switch8
  - >> Stream_ToF_Port
  - >> Stop_ToF
  - >> Sample_ToF
  - >> GetRangeUnit
  - >> SendMessageFromPort
  - >> __aeabi_memcpy
  [Called By]
  - >> PxMessagingTask

  NameModule (Thumb, 194 bytes, Stack size 32 bytes, bos.o(i.NameModule))
  [Stack]

  - Max Depth = 232
  - Call Chain = NameModule ⇒ SaveEEalias ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> SaveEEalias
  - >> strncmp
  - >> strcpy
  - >> strcmp
  - >> strlen
  [Called By]
  - >> nameCommand

  NotifyMessagingTaskFromISR (Thumb, 102 bytes, Stack size 16 bytes, bos.o(i.NotifyMessagingTaskFromISR))
  [Stack]

  - Max Depth = 40
  - Call Chain = NotifyMessagingTaskFromISR ⇒ vTaskNotifyGiveFromISR
  [Calls]
  - >> __ARM_common_switch8
  - >> vTaskNotifyGiveFromISR
  [Called By]
  - >> HAL_UART_RxCpltCallback

  PortMemDMA1_Init (Thumb, 42 bytes, Stack size 8 bytes, h08r6_dma.o(i.PortMemDMA1_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = PortMemDMA1_Init
  [Calls]
  - >> HAL_DMA_Init
  [Called By]
  - >> MX_DMA_Init

  PortMemDMA1_Setup (Thumb, 380 bytes, Stack size 16 bytes, h08r6_dma.o(i.PortMemDMA1_Setup))
  [Stack]

  - Max Depth = 80
  - Call Chain = PortMemDMA1_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_NVIC_SetPriority
  - >> HAL_UART_Receive_DMA
  - >> GetPort
  [Called By]
  - >> HAL_UART_RxCpltCallback

  PortMemDMA2_Init (Thumb, 42 bytes, Stack size 8 bytes, h08r6_dma.o(i.PortMemDMA2_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = PortMemDMA2_Init
  [Calls]
  - >> HAL_DMA_Init
  [Called By]
  - >> MX_DMA_Init

  PortMemDMA3_Init (Thumb, 42 bytes, Stack size 8 bytes, h08r6_dma.o(i.PortMemDMA3_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = PortMemDMA3_Init
  [Calls]
  - >> HAL_DMA_Init
  [Called By]
  - >> MX_DMA_Init

  PortPortDMA1_Init (Thumb, 38 bytes, Stack size 8 bytes, h08r6_dma.o(i.PortPortDMA1_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = PortPortDMA1_Init
  [Calls]
  - >> HAL_DMA_Init
  [Called By]
  - >> MX_DMA_Init

  PortPortDMA1_Setup (Thumb, 378 bytes, Stack size 16 bytes, h08r6_dma.o(i.PortPortDMA1_Setup))
  [Stack]

  - Max Depth = 80
  - Call Chain = PortPortDMA1_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_NVIC_SetPriority
  - >> HAL_UART_Receive_DMA
  - >> GetPort
  [Called By]
  - >> StartScastDMAStream
  - >> SetupDMAStreamsFromMessage

  PortPortDMA2_Init (Thumb, 38 bytes, Stack size 8 bytes, h08r6_dma.o(i.PortPortDMA2_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = PortPortDMA2_Init
  [Calls]
  - >> HAL_DMA_Init
  [Called By]
  - >> MX_DMA_Init

  PortPortDMA2_Setup (Thumb, 408 bytes, Stack size 16 bytes, h08r6_dma.o(i.PortPortDMA2_Setup))
  [Stack]

  - Max Depth = 80
  - Call Chain = PortPortDMA2_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_NVIC_SetPriority
  - >> HAL_UART_Receive_DMA
  - >> GetPort
  [Called By]
  - >> StartScastDMAStream
  - >> SetupDMAStreamsFromMessage

  PortPortDMA3_Init (Thumb, 38 bytes, Stack size 8 bytes, h08r6_dma.o(i.PortPortDMA3_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = PortPortDMA3_Init
  [Calls]
  - >> HAL_DMA_Init
  [Called By]
  - >> MX_DMA_Init

  PortPortDMA3_Setup (Thumb, 408 bytes, Stack size 16 bytes, h08r6_dma.o(i.PortPortDMA3_Setup))
  [Stack]

  - Max Depth = 80
  - Call Chain = PortPortDMA3_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_NVIC_SetPriority
  - >> HAL_UART_Receive_DMA
  - >> GetPort
  [Called By]
  - >> SetupDMAStreamsFromMessage

  ProcessSnippet (Thumb, 412 bytes, Stack size 16 bytes, bos_cli.o(i.ProcessSnippet))
  [Stack]

  - Max Depth = 104
  - Call Chain = ProcessSnippet ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> atoi
  - >> strncmp
  [Called By]
  - >> ExecuteSnippet

  PxMessagingTask (Thumb, 9038 bytes, Stack size 112 bytes, bos.o(i.PxMessagingTask))
  [Stack]

  - Max Depth = 784
  - Call Chain = PxMessagingTask ⇒ Module_MessagingTask ⇒ Sample_ToF ⇒ GetMeasurementResult ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Program
  - >> HAL_FLASH_Lock
  - >> SendMessageToModule
  - >> HAL_Delay
  - >> __ARM_common_switch8
  - >> HAL_GPIO_WritePin
  - >> HAL_GPIO_TogglePin
  - >> HAL_FLASHEx_Erase
  - >> NVIC_SystemReset
  - >> HAL_UART_Receive_IT
  - >> writePxMutex
  - >> vPortYield
  - >> ulTaskNotifyTake
  - >> osDelay
  - >> UpdateBaudrate
  - >> Module_MessagingTask
  - >> FreeRTOS_CLIProcessCommand
  - >> FreeRTOS_CLIGetOutputBuffer
  - >> EE_WriteVariable
  - >> remoteBootloaderUpdate
  - >> SwapUartPins
  - >> StartScastDMAStream
  - >> SetupDMAStreamsFromMessage
  - >> SendMessageFromPort
  - >> SaveROtopology
  - >> SaveEEportsDir
  - >> GetUart
  - >> ForwardReceivedMessage
  - >> ExploreNeighbors
  - >> ClearROtopology
  - >> ClearEEportsDir
  - >> BroadcastReceivedMessage
  - >> __aeabi_idivmod
  - >> malloc
  - >> __2sprintf
  - >> strlen
  - >> __aeabi_memclr4
  - >> __aeabi_memclr
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - bos_freertos.o(i.MX_FREERTOS_Init)

  QnotEmpty (Thumb, 26 bytes, Stack size 0 bytes, bos.o(i.QnotEmpty))
  [Called By]

  - >> FindRoute

  RTC_Bcd2ToByte (Thumb, 26 bytes, Stack size 0 bytes, stm32f0xx_hal_rtc.o(i.RTC_Bcd2ToByte))
  [Called By]

  - >> HAL_RTC_SetTime
  - >> HAL_RTC_SetDate
  - >> HAL_RTC_GetTime
  - >> HAL_RTC_GetDate

  RTC_ByteToBcd2 (Thumb, 26 bytes, Stack size 0 bytes, stm32f0xx_hal_rtc.o(i.RTC_ByteToBcd2))
  [Called By]

  - >> HAL_RTC_SetTime
  - >> HAL_RTC_SetDate

  RTC_CalendarConfig (Thumb, 224 bytes, Stack size 80 bytes, bos.o(i.RTC_CalendarConfig))
  [Stack]

  - Max Depth = 168
  - Call Chain = RTC_CalendarConfig ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> HAL_RTCEx_BKUPWrite
  - >> HAL_RTC_SetTime
  - >> HAL_RTC_SetDate
  - >> atoi
  - >> strcmp
  [Called By]
  - >> RTC_Init

  RTC_EnterInitMode (Thumb, 66 bytes, Stack size 16 bytes, stm32f0xx_hal_rtc.o(i.RTC_EnterInitMode))
  [Stack]

  - Max Depth = 16
  - Call Chain = RTC_EnterInitMode
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> HAL_RTC_SetTime
  - >> HAL_RTC_SetDate
  - >> HAL_RTC_Init

  RTC_Init (Thumb, 134 bytes, Stack size 8 bytes, bos.o(i.RTC_Init))
  [Stack]

  - Max Depth = 176
  - Call Chain = RTC_Init ⇒ RTC_CalendarConfig ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> HAL_RTCEx_BKUPRead
  - >> HAL_RTC_Init
  - >> RTC_CalendarConfig
  [Called By]
  - >> BOS_Init

  ReadPortsDir (Thumb, 122 bytes, Stack size 16 bytes, bos.o(i.ReadPortsDir))
  [Stack]

  - Max Depth = 344
  - Call Chain = ReadPortsDir ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageToModule
  - >> StartMilliDelay
  - >> GetUart
  [Called By]
  - >> infoCommand

  RegisterModuleCLICommands (Thumb, 40 bytes, Stack size 8 bytes, h08r6.o(i.RegisterModuleCLICommands))
  [Stack]

  - Max Depth = 88
  - Call Chain = RegisterModuleCLICommands ⇒ FreeRTOS_CLIRegisterCommand ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> FreeRTOS_CLIRegisterCommand
  [Called By]
  - >> vRegisterCLICommands

  RemovePortButton (Thumb, 306 bytes, Stack size 24 bytes, bos.o(i.RemovePortButton))
  [Stack]

  - Max Depth = 200
  - Call Chain = RemovePortButton ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> HAL_UART_Receive_IT
  - >> MX_USART6_UART_Init
  - >> MX_USART5_UART_Init
  - >> MX_USART4_UART_Init
  - >> MX_USART3_UART_Init
  - >> MX_USART2_UART_Init
  - >> MX_USART1_UART_Init
  - >> EE_WriteVariable
  - >> EE_ReadVariable
  - >> GetUart
  [Called By]
  - >> removebuttonCommand

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

  - startup_stm32f091xc.o(RESET)

  Sample_ToF (Thumb, 60 bytes, Stack size 16 bytes, h08r6.o(i.Sample_ToF))
  [Stack]

  - Max Depth = 640
  - Call Chain = Sample_ToF ⇒ GetMeasurementResult ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> WaitForMeasurement
  - >> SettingMeasurementMode
  - >> SendMeasurementResult
  - >> GetMeasurementResult
  [Called By]
  - >> Module_MessagingTask

  SaveEEalias (Thumb, 102 bytes, Stack size 24 bytes, bos.o(i.SaveEEalias))
  [Stack]

  - Max Depth = 200
  - Call Chain = SaveEEalias ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> EE_WriteVariable
  [Called By]
  - >> NameModule

  SaveEEparams (Thumb, 126 bytes, Stack size 8 bytes, bos.o(i.SaveEEparams))
  [Stack]

  - Max Depth = 184
  - Call Chain = SaveEEparams ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> EE_WriteVariable
  [Called By]
  - >> defaultCommand

  SaveEEportsDir (Thumb, 64 bytes, Stack size 16 bytes, bos.o(i.SaveEEportsDir))
  [Stack]

  - Max Depth = 192
  - Call Chain = SaveEEportsDir ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> EE_WriteVariable
  [Called By]
  - >> PxMessagingTask
  - >> Explore

  SaveROtopology (Thumb, 200 bytes, Stack size 32 bytes, bos.o(i.SaveROtopology))
  [Stack]

  - Max Depth = 112
  - Call Chain = SaveROtopology ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_PageErase
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Program
  - >> HAL_FLASH_Lock
  - >> FLASH_WaitForLastOperation
  [Called By]
  - >> PxMessagingTask
  - >> Explore

  SendMessageFromPort (Thumb, 344 bytes, Stack size 96 bytes, bos.o(i.SendMessageFromPort))
  [Stack]

  - Max Depth = 248 + In Cycle
  - Call Chain = SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> HAL_UART_Receive_IT
  - >> writePxMutex
  - >> vTaskPrioritySet
  - >> osSemaphoreRelease
  - >> osDelay
  - >> StartMicroDelay
  - >> SendMessageFromPort
  - >> GetUart
  - >> __aeabi_idivmod
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> SendMessageToModule
  - >> bootloaderUpdateCommand
  - >> SendMeasurementResult
  - >> Module_MessagingTask
  - >> SendMessageFromPort
  - >> PxMessagingTask
  - >> ForwardReceivedMessage
  - >> ExploreNeighbors
  - >> Explore
  - >> BroadcastReceivedMessage
  - >> BroadcastMessage

  SendMessageToModule (Thumb, 74 bytes, Stack size 32 bytes, bos.o(i.SendMessageToModule))
  [Stack]

  - Max Depth = 328
  - Call Chain = SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageFromPort
  - >> FindRoute
  - >> BroadcastMessage
  - >> __aeabi_memclr4
  [Called By]
  - >> FrontEndTask
  - >> defaultCommand
  - >> bootloaderUpdateCommand
  - >> prvUARTCommandConsoleTask
  - >> StartScastDMAStream
  - >> ReadPortsDir
  - >> PxMessagingTask
  - >> Explore

  SetButtonEvents (Thumb, 806 bytes, Stack size 56 bytes, bos.o(i.SetButtonEvents))
  [Stack]

  - Max Depth = 232
  - Call Chain = SetButtonEvents ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> EE_WriteVariable
  - >> EE_ReadVariable
  [Called By]
  - >> LoadEEbuttons

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

  - >> FrontEndTask
  - >> Module_MessagingTask

  SetupDMAStreamsFromMessage (Thumb, 624 bytes, Stack size 48 bytes, bos.o(i.SetupDMAStreamsFromMessage))
  [Stack]

  - Max Depth = 200
  - Call Chain = SetupDMAStreamsFromMessage ⇒ xTimerCreate ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTimerGenericCommand
  - >> xTimerCreate
  - >> xTaskGetTickCount
  - >> PortPortDMA3_Setup
  - >> PortPortDMA2_Setup
  - >> PortPortDMA1_Setup
  - >> GetUart
  - >> __aeabi_uidivmod
  [Called By]
  - >> PxMessagingTask
  - >> LoadEEstreams

  SetupPortForRemoteBootloaderUpdate (Thumb, 48 bytes, Stack size 16 bytes, bos.o(i.SetupPortForRemoteBootloaderUpdate))
  [Stack]

  - Max Depth = 140
  - Call Chain = SetupPortForRemoteBootloaderUpdate ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_UART_Init
  - >> GetUart
  [Called By]
  - >> remoteBootloaderUpdate

  StartDefaultTask (Thumb, 196 bytes, Stack size 0 bytes, bos_freertos.o(i.StartDefaultTask))
  [Stack]

  - Max Depth = 144
  - Call Chain = StartDefaultTask ⇒ readPxITMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> readPxITMutex
  - >> ExecuteSnippet
  - >> vPortYield
  - >> osDelay
  - >> CheckAttachedButtons
  [Address Reference Count : 1]
  - bos_freertos.o(i.MX_FREERTOS_Init)

  StartMicroDelay (Thumb, 70 bytes, Stack size 16 bytes, bos.o(i.StartMicroDelay))
  [Stack]

  - Max Depth = 92
  - Call Chain = StartMicroDelay ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_RCC_GetHCLKFreq
  - >> HAL_TIM_Base_Stop
  - >> HAL_TIM_Base_Start
  - >> HAL_TIM_Base_Init
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> __aeabi_uidivmod
  [Called By]
  - >> Vl53l0xInit
  - >> SendMessageFromPort
  - >> CheckAttachedButtons

  StartMilliDelay (Thumb, 72 bytes, Stack size 16 bytes, bos.o(i.StartMilliDelay))
  [Stack]

  - Max Depth = 92
  - Call Chain = StartMilliDelay ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_RCC_GetHCLKFreq
  - >> HAL_TIM_Base_Stop
  - >> HAL_TIM_Base_Start
  - >> HAL_TIM_Base_Init
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> __aeabi_uidivmod
  [Called By]
  - >> BOS_Init
  - >> ReadPortsDir
  - >> IsLowerCLIbaud
  - >> IsFactoryReset

  StartScastDMAStream (Thumb, 588 bytes, Stack size 64 bytes, bos.o(i.StartScastDMAStream))
  [Stack]

  - Max Depth = 392
  - Call Chain = StartScastDMAStream ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageToModule
  - >> xTimerGenericCommand
  - >> xTimerCreate
  - >> xTaskGetTickCount
  - >> osDelay
  - >> PortPortDMA2_Setup
  - >> PortPortDMA1_Setup
  - >> GetUart
  - >> FindRoute
  - >> __aeabi_uidivmod
  [Called By]
  - >> scastCommand
  - >> remoteBootloaderUpdate
  - >> PxMessagingTask

  StopPortPortDMA1 (Thumb, 84 bytes, Stack size 8 bytes, h08r6_dma.o(i.StopPortPortDMA1))
  [Stack]

  - Max Depth = 24
  - Call Chain = StopPortPortDMA1 ⇒ HAL_DMA_Abort
  [Calls]
  - >> HAL_DMA_Abort
  - >> HAL_UART_Receive_IT
  - >> GetPort
  [Called By]
  - >> DMA1_Ch1_IRQHandler
  - >> StreamTimerCallback

  StopPortPortDMA2 (Thumb, 84 bytes, Stack size 8 bytes, h08r6_dma.o(i.StopPortPortDMA2))
  [Stack]

  - Max Depth = 24
  - Call Chain = StopPortPortDMA2 ⇒ HAL_DMA_Abort
  [Calls]
  - >> HAL_DMA_Abort
  - >> HAL_UART_Receive_IT
  - >> GetPort
  [Called By]
  - >> DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler
  - >> StreamTimerCallback

  StopPortPortDMA3 (Thumb, 84 bytes, Stack size 8 bytes, h08r6_dma.o(i.StopPortPortDMA3))
  [Stack]

  - Max Depth = 24
  - Call Chain = StopPortPortDMA3 ⇒ HAL_DMA_Abort
  [Calls]
  - >> HAL_DMA_Abort
  - >> HAL_UART_Receive_IT
  - >> GetPort
  [Called By]
  - >> DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler
  - >> StreamTimerCallback

  Stop_ToF (Thumb, 128 bytes, Stack size 48 bytes, h08r6.o(i.Stop_ToF))
  [Stack]

  - Max Depth = 632
  - Call Chain = Stop_ToF ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> xEventGroupClearBits
  - >> VL53L0X_StopMeasurement
  - >> VL53L0X_PollingDelay
  - >> VL53L0X_GetStopCompletedStatus
  - >> VL53L0X_GetRangingMeasurementData
  - >> VL53L0X_ClearInterruptMask
  [Called By]
  - >> Vl53l0xStopCommand
  - >> Module_MessagingTask

  StreamTimerCallback (Thumb, 66 bytes, Stack size 16 bytes, bos.o(i.StreamTimerCallback))
  [Stack]

  - Max Depth = 40
  - Call Chain = StreamTimerCallback ⇒ StopPortPortDMA3 ⇒ HAL_DMA_Abort
  [Calls]
  - >> pvTimerGetTimerID
  - >> StopPortPortDMA3
  - >> StopPortPortDMA2
  - >> StopPortPortDMA1
  [Address Reference Count : 2]
  - bos.o(i.SetupDMAStreamsFromMessage)
  - bos.o(i.StartScastDMAStream)

  Stream_ToF (Thumb, 116 bytes, Stack size 24 bytes, h08r6.o(i.Stream_ToF))
  [Stack]

  - Max Depth = 648
  - Call Chain = Stream_ToF ⇒ GetMeasurementResult ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> WaitForMeasurement
  - >> SettingMeasurementMode
  - >> SendMeasurementResult
  - >> GetMeasurementResult
  [Called By]
  - >> ToFTask

  Stream_ToF_Memory (Thumb, 22 bytes, Stack size 8 bytes, h08r6.o(i.Stream_ToF_Memory))
  [Stack]

  - Max Depth = 8
  - Call Chain = Stream_ToF_Memory
  [Called By]
  - >> FrontEndTask
  - >> Module_MessagingTask

  Stream_ToF_Port (Thumb, 42 bytes, Stack size 12 bytes, h08r6.o(i.Stream_ToF_Port))
  [Stack]

  - Max Depth = 12
  - Call Chain = Stream_ToF_Port
  [Called By]
  - >> Vl53l0xStreamCommand
  - >> Module_MessagingTask

  StringToLowerCase (Thumb, 26 bytes, Stack size 16 bytes, bos_cli.o(i.StringToLowerCase))
  [Stack]

  - Max Depth = 16
  - Call Chain = StringToLowerCase
  [Calls]
  - >> tolower
  [Called By]
  - >> prvUARTCommandConsoleTask

  SwapUartPins (Thumb, 124 bytes, Stack size 16 bytes, bos.o(i.SwapUartPins))
  [Stack]

  - Max Depth = 140
  - Call Chain = SwapUartPins ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_UART_Init
  - >> GetPort
  [Called By]
  - >> remoteBootloaderUpdate
  - >> UpdateMyPortsDir
  - >> PxMessagingTask
  - >> Explore

  SysTick_Handler (Thumb, 12 bytes, Stack size 8 bytes, h08r6_it.o(i.SysTick_Handler))
  [Stack]

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

  SystemClock_Config (Thumb, 198 bytes, Stack size 112 bytes, bos.o(i.SystemClock_Config))
  [Stack]

  - Max Depth = 220
  - Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_SYSTICK_CLKSourceConfig
  - >> HAL_SYSTICK_Config
  - >> HAL_RCC_GetHCLKFreq
  - >> HAL_NVIC_SetPriority
  - >> HAL_RCCEx_PeriphCLKConfig
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> HAL_PWR_EnableBkUpAccess
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

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

  - startup_stm32f091xc.o(.text)

  TIM_Base_SetConfig (Thumb, 140 bytes, Stack size 8 bytes, stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig))
  [Stack]

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

  ToFTask (Thumb, 82 bytes, Stack size 8 bytes, h08r6.o(i.ToFTask))
  [Stack]

  - Max Depth = 656
  - Call Chain = ToFTask ⇒ Stream_ToF ⇒ GetMeasurementResult ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> Stream_ToF
  - >> vPortYield
  [Address Reference Count : 1]
  - h08r6.o(i.Module_Init)

  UART_AdvFeatureConfig (Thumb, 240 bytes, Stack size 0 bytes, stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig))
  [Called By]

  - >> HAL_UART_Init

  UART_CheckIdleState (Thumb, 120 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.UART_CheckIdleState))
  [Stack]

  - Max Depth = 48
  - Call Chain = UART_CheckIdleState ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> UART_WaitOnFlagUntilTimeout
  [Called By]
  - >> HAL_UART_Init

  UART_EndTransmit_IT (Thumb, 60 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.UART_EndTransmit_IT))
  [Stack]

  - Max Depth = 64
  - Call Chain = UART_EndTransmit_IT ⇒ HAL_UART_TxCpltCallback ⇒ xQueueGiveFromISR ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> HAL_UART_TxCpltCallback
  [Called By]
  - >> HAL_UART_IRQHandler

  UART_Receive_IT (Thumb, 168 bytes, Stack size 16 bytes, stm32f0xx_hal_uart.o(i.UART_Receive_IT))
  [Stack]

  - Max Depth = 120
  - Call Chain = UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ PortMemDMA1_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UART_RxCpltCallback
  [Called By]
  - >> HAL_UART_IRQHandler

  UART_SetConfig (Thumb, 584 bytes, Stack size 32 bytes, stm32f0xx_hal_uart.o(i.UART_SetConfig))
  [Stack]

  - Max Depth = 116
  - Call Chain = UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_RCC_GetSysClockFreq
  - >> HAL_RCC_GetPCLK1Freq
  - >> __aeabi_uidivmod
  [Called By]
  - >> HAL_UART_Init

  UART_Transmit_IT (Thumb, 122 bytes, Stack size 0 bytes, stm32f0xx_hal_uart.o(i.UART_Transmit_IT))
  [Called By]

  - >> HAL_UART_IRQHandler

  UART_WaitOnFlagUntilTimeout (Thumb, 254 bytes, Stack size 40 bytes, stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout))
  [Stack]

  - Max Depth = 40
  - Call Chain = UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> UART_CheckIdleState
  - >> HAL_UART_Transmit
  - >> HAL_UART_Receive

  USART1_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, h08r6_it.o(i.USART1_IRQHandler))
  [Stack]

  - Max Depth = 136
  - Call Chain = USART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ PortMemDMA1_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UART_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

  USART2_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, h08r6_it.o(i.USART2_IRQHandler))
  [Stack]

  - Max Depth = 136
  - Call Chain = USART2_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ PortMemDMA1_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UART_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

  USART3_8_IRQHandler (Thumb, 42 bytes, Stack size 8 bytes, h08r6_it.o(i.USART3_8_IRQHandler))
  [Stack]

  - Max Depth = 136
  - Call Chain = USART3_8_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ PortMemDMA1_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UART_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f091xc.o(RESET)

  UpdateBaudrate (Thumb, 28 bytes, Stack size 24 bytes, h08r6_uart.o(i.UpdateBaudrate))
  [Stack]

  - Max Depth = 148
  - Call Chain = UpdateBaudrate ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_UART_Init
  - >> GetUart
  [Called By]
  - >> BOS_Init
  - >> setBaudrateCommand
  - >> prvUARTCommandConsoleTask
  - >> PxMessagingTask

  UpdateMyPortsDir (Thumb, 76 bytes, Stack size 16 bytes, bos.o(i.UpdateMyPortsDir))
  [Stack]

  - Max Depth = 156
  - Call Chain = UpdateMyPortsDir ⇒ SwapUartPins ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> SwapUartPins
  - >> GetUart
  [Called By]
  - >> BOS_Init

  VL53L0X_CheckAndLoadInterruptSettings (Thumb, 126 bytes, Stack size 32 bytes, vl53l0x_api.o(i.VL53L0X_CheckAndLoadInterruptSettings))
  [Stack]

  - Max Depth = 272
  - Call Chain = VL53L0X_CheckAndLoadInterruptSettings ⇒ VL53L0X_load_tuning_settings ⇒ VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_load_tuning_settings
  - >> VL53L0X_WrByte
  - >> VL53L0X_GetInterruptThresholds
  [Called By]
  - >> VL53L0X_StopMeasurement
  - >> VL53L0X_StartMeasurement

  VL53L0X_ClearInterruptMask (Thumb, 84 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_ClearInterruptMask))
  [Stack]

  - Max Depth = 176
  - Call Chain = VL53L0X_ClearInterruptMask ⇒ VL53L0X_WrByte ⇒ VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdByte
  [Called By]
  - >> VL53L0X_SetGpioConfig
  - >> Stop_ToF
  - >> Vl53l0xInit
  - >> GetMeasurementResult
  - >> VL53L0X_perform_single_ref_calibration
  - >> VL53L0X_PerformSingleRangingMeasurement

  VL53L0X_DataInit (Thumb, 462 bytes, Stack size 88 bytes, vl53l0x_api.o(i.VL53L0X_DataInit))
  [Stack]

  - Max Depth = 464
  - Call Chain = VL53L0X_DataInit ⇒ VL53L0X_GetDeviceParameters ⇒ VL53L0X_GetMeasurementTimingBudgetMicroSeconds ⇒ VL53L0X_get_measurement_timing_budget_micro_seconds ⇒ get_sequence_step_timeout ⇒ VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_SetLimitCheckValue
  - >> VL53L0X_SetLimitCheckEnable
  - >> VL53L0X_WrByte
  - >> VL53L0X_UpdateByte
  - >> VL53L0X_RdByte
  - >> VL53L0X_GetDeviceParameters
  - >> __aeabi_memcpy4
  [Called By]
  - >> Vl53l0xInit

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

  - >> VL53L0X_StartMeasurement
  - >> VL53L0X_PerformSingleMeasurement
  - >> VL53L0X_GetDeviceParameters

  VL53L0X_GetDeviceParameters (Thumb, 174 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_GetDeviceParameters))
  [Stack]

  - Max Depth = 376
  - Call Chain = VL53L0X_GetDeviceParameters ⇒ VL53L0X_GetMeasurementTimingBudgetMicroSeconds ⇒ VL53L0X_get_measurement_timing_budget_micro_seconds ⇒ get_sequence_step_timeout ⇒ VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_GetXTalkCompensationRateMegaCps
  - >> VL53L0X_GetWrapAroundCheckEnable
  - >> VL53L0X_GetOffsetCalibrationDataMicroMeter
  - >> VL53L0X_GetMeasurementTimingBudgetMicroSeconds
  - >> VL53L0X_GetLimitCheckValue
  - >> VL53L0X_GetLimitCheckEnable
  - >> VL53L0X_GetInterMeasurementPeriodMilliSeconds
  - >> VL53L0X_GetDeviceMode
  [Called By]
  - >> VL53L0X_StaticInit
  - >> VL53L0X_DataInit

  VL53L0X_GetFractionEnable (Thumb, 36 bytes, Stack size 16 bytes, vl53l0x_api.o(i.VL53L0X_GetFractionEnable))
  [Stack]

  - Max Depth = 168
  - Call Chain = VL53L0X_GetFractionEnable ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_RdByte
  [Called By]
  - >> VL53L0X_StaticInit

  VL53L0X_GetInterMeasurementPeriodMilliSeconds (Thumb, 68 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_GetInterMeasurementPeriodMilliSeconds))
  [Stack]

  - Max Depth = 184
  - Call Chain = VL53L0X_GetInterMeasurementPeriodMilliSeconds ⇒ VL53L0X_RdWord ⇒ VL53L0X_read_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> __aeabi_uidivmod
  - >> VL53L0X_RdWord
  - >> VL53L0X_RdDWord
  [Called By]
  - >> VL53L0X_GetDeviceParameters

  VL53L0X_GetInterruptMaskStatus (Thumb, 50 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_GetInterruptMaskStatus))
  [Stack]

  - Max Depth = 176
  - Call Chain = VL53L0X_GetInterruptMaskStatus ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_RdByte
  [Called By]
  - >> VL53L0X_GetMeasurementDataReady

  VL53L0X_GetInterruptThresholds (Thumb, 62 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_GetInterruptThresholds))
  [Stack]

  - Max Depth = 184
  - Call Chain = VL53L0X_GetInterruptThresholds ⇒ VL53L0X_RdWord ⇒ VL53L0X_read_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_RdWord
  [Called By]
  - >> VL53L0X_CheckAndLoadInterruptSettings

  VL53L0X_GetLimitCheckEnable (Thumb, 28 bytes, Stack size 12 bytes, vl53l0x_api.o(i.VL53L0X_GetLimitCheckEnable))
  [Stack]

  - Max Depth = 12
  - Call Chain = VL53L0X_GetLimitCheckEnable
  [Called By]
  - >> VL53L0X_get_pal_range_status
  - >> VL53L0X_GetDeviceParameters

  VL53L0X_GetLimitCheckValue (Thumb, 182 bytes, Stack size 32 bytes, vl53l0x_api.o(i.VL53L0X_GetLimitCheckValue))
  [Stack]

  - Max Depth = 192
  - Call Chain = VL53L0X_GetLimitCheckValue ⇒ VL53L0X_RdWord ⇒ VL53L0X_read_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> __ARM_common_switch8
  - >> VL53L0X_RdWord
  [Called By]
  - >> VL53L0X_get_pal_range_status
  - >> VL53L0X_GetDeviceParameters

  VL53L0X_GetMeasurementDataReady (Thumb, 86 bytes, Stack size 32 bytes, vl53l0x_api.o(i.VL53L0X_GetMeasurementDataReady))
  [Stack]

  - Max Depth = 208
  - Call Chain = VL53L0X_GetMeasurementDataReady ⇒ VL53L0X_GetInterruptMaskStatus ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_RdByte
  - >> VL53L0X_GetInterruptMaskStatus
  [Called By]
  - >> VL53L0X_measurement_poll_for_completion

  VL53L0X_GetMeasurementTimingBudgetMicroSeconds (Thumb, 22 bytes, Stack size 16 bytes, vl53l0x_api.o(i.VL53L0X_GetMeasurementTimingBudgetMicroSeconds))
  [Stack]

  - Max Depth = 352
  - Call Chain = VL53L0X_GetMeasurementTimingBudgetMicroSeconds ⇒ VL53L0X_get_measurement_timing_budget_micro_seconds ⇒ get_sequence_step_timeout ⇒ VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_get_measurement_timing_budget_micro_seconds
  [Called By]
  - >> VL53L0X_GetDeviceParameters

  VL53L0X_GetOffsetCalibrationDataMicroMeter (Thumb, 22 bytes, Stack size 16 bytes, vl53l0x_api.o(i.VL53L0X_GetOffsetCalibrationDataMicroMeter))
  [Stack]

  - Max Depth = 208
  - Call Chain = VL53L0X_GetOffsetCalibrationDataMicroMeter ⇒ VL53L0X_get_offset_calibration_data_micro_meter ⇒ VL53L0X_RdWord ⇒ VL53L0X_read_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_get_offset_calibration_data_micro_meter
  [Called By]
  - >> VL53L0X_GetDeviceParameters

  VL53L0X_GetRangingMeasurementData (Thumb, 378 bytes, Stack size 112 bytes, vl53l0x_api.o(i.VL53L0X_GetRangingMeasurementData))
  [Stack]

  - Max Depth = 584
  - Call Chain = VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> __aeabi_idivmod
  - >> __aeabi_uidivmod
  - >> VL53L0X_get_pal_range_status
  - >> VL53L0X_ReadMulti
  - >> __aeabi_memcpy4
  [Called By]
  - >> Stop_ToF
  - >> GetMeasurementResult
  - >> VL53L0X_PerformSingleRangingMeasurement

  VL53L0X_GetSequenceStepEnables (Thumb, 128 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_GetSequenceStepEnables))
  [Stack]

  - Max Depth = 176
  - Call Chain = VL53L0X_GetSequenceStepEnables ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_RdByte
  - >> sequence_step_enabled
  [Called By]
  - >> set_sequence_step_timeout
  - >> get_sequence_step_timeout
  - >> VL53L0X_set_measurement_timing_budget_micro_seconds
  - >> VL53L0X_get_measurement_timing_budget_micro_seconds

  VL53L0X_GetStopCompletedStatus (Thumb, 162 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_GetStopCompletedStatus))
  [Stack]

  - Max Depth = 176
  - Call Chain = VL53L0X_GetStopCompletedStatus ⇒ VL53L0X_WrByte ⇒ VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdByte
  [Called By]
  - >> Stop_ToF

  VL53L0X_GetVcselPulsePeriod (Thumb, 26 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_GetVcselPulsePeriod))
  [Stack]

  - Max Depth = 200
  - Call Chain = VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_get_vcsel_pulse_period
  [Called By]
  - >> VL53L0X_StaticInit
  - >> set_sequence_step_timeout
  - >> get_sequence_step_timeout

  VL53L0X_GetWrapAroundCheckEnable (Thumb, 70 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_GetWrapAroundCheckEnable))
  [Stack]

  - Max Depth = 176
  - Call Chain = VL53L0X_GetWrapAroundCheckEnable ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_RdByte
  [Called By]
  - >> VL53L0X_GetDeviceParameters

  VL53L0X_GetXTalkCompensationEnable (Thumb, 12 bytes, Stack size 8 bytes, vl53l0x_api.o(i.VL53L0X_GetXTalkCompensationEnable))
  [Stack]

  - Max Depth = 8
  - Call Chain = VL53L0X_GetXTalkCompensationEnable
  [Called By]
  - >> VL53L0X_get_total_xtalk_rate

  VL53L0X_GetXTalkCompensationRateMegaCps (Thumb, 60 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_GetXTalkCompensationRateMegaCps))
  [Stack]

  - Max Depth = 184
  - Call Chain = VL53L0X_GetXTalkCompensationRateMegaCps ⇒ VL53L0X_RdWord ⇒ VL53L0X_read_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_RdWord
  [Called By]
  - >> VL53L0X_GetDeviceParameters

  VL53L0X_PerformRefCalibration (Thumb, 28 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_PerformRefCalibration))
  [Stack]

  - Max Depth = 384
  - Call Chain = VL53L0X_PerformRefCalibration ⇒ VL53L0X_perform_ref_calibration ⇒ VL53L0X_perform_vhv_calibration ⇒ VL53L0X_perform_single_ref_calibration ⇒ VL53L0X_measurement_poll_for_completion ⇒ VL53L0X_GetMeasurementDataReady ⇒ VL53L0X_GetInterruptMaskStatus ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_perform_ref_calibration
  [Called By]
  - >> Vl53l0xInit

  VL53L0X_PerformRefSpadManagement (Thumb, 26 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_PerformRefSpadManagement))
  [Stack]

  - Max Depth = 800
  - Call Chain = VL53L0X_PerformRefSpadManagement ⇒ VL53L0X_perform_ref_spad_management ⇒ perform_ref_signal_measurement ⇒ VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> VL53L0X_perform_ref_spad_management
  [Called By]
  - >> Vl53l0xInit

  VL53L0X_PerformSingleMeasurement (Thumb, 72 bytes, Stack size 16 bytes, vl53l0x_api.o(i.VL53L0X_PerformSingleMeasurement))
  [Stack]

  - Max Depth = 320
  - Call Chain = VL53L0X_PerformSingleMeasurement ⇒ VL53L0X_StartMeasurement ⇒ VL53L0X_CheckAndLoadInterruptSettings ⇒ VL53L0X_load_tuning_settings ⇒ VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_StartMeasurement
  - >> VL53L0X_measurement_poll_for_completion
  - >> VL53L0X_GetDeviceMode
  [Called By]
  - >> VL53L0X_PerformSingleRangingMeasurement

  VL53L0X_PerformSingleRangingMeasurement (Thumb, 62 bytes, Stack size 16 bytes, vl53l0x_api.o(i.VL53L0X_PerformSingleRangingMeasurement))
  [Stack]

  - Max Depth = 600
  - Call Chain = VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> VL53L0X_SetDeviceMode
  - >> VL53L0X_GetRangingMeasurementData
  - >> VL53L0X_ClearInterruptMask
  - >> VL53L0X_PerformSingleMeasurement
  [Called By]
  - >> perform_ref_signal_measurement

  VL53L0X_PollingDelay (Thumb, 28 bytes, Stack size 8 bytes, vl53l0x_platform.o(i.VL53L0X_PollingDelay))
  [Stack]

  - Max Depth = 8
  - Call Chain = VL53L0X_PollingDelay
  [Called By]
  - >> Stop_ToF
  - >> VL53L0X_measurement_poll_for_completion
  - >> VL53L0X_get_info_from_device

  VL53L0X_RdByte (Thumb, 46 bytes, Stack size 32 bytes, vl53l0x_platform.o(i.VL53L0X_RdByte))
  [Stack]

  - Max Depth = 152
  - Call Chain = VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_read_byte
  [Called By]
  - >> VL53L0X_StaticInit
  - >> VL53L0X_StartMeasurement
  - >> VL53L0X_GetStopCompletedStatus
  - >> VL53L0X_DataInit
  - >> VL53L0X_ClearInterruptMask
  - >> VL53L0X_device_read_strobe
  - >> VL53L0X_ref_calibration_io
  - >> get_sequence_step_timeout
  - >> VL53L0X_get_vcsel_pulse_period
  - >> VL53L0X_get_info_from_device
  - >> VL53L0X_SetSequenceStepEnable
  - >> VL53L0X_GetWrapAroundCheckEnable
  - >> VL53L0X_GetSequenceStepEnables
  - >> VL53L0X_GetMeasurementDataReady
  - >> VL53L0X_GetInterruptMaskStatus
  - >> VL53L0X_GetFractionEnable

  VL53L0X_RdDWord (Thumb, 46 bytes, Stack size 32 bytes, vl53l0x_platform.o(i.VL53L0X_RdDWord))
  [Stack]

  - Max Depth = 160
  - Call Chain = VL53L0X_RdDWord ⇒ VL53L0X_read_dword ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_read_dword
  [Called By]
  - >> VL53L0X_get_info_from_device
  - >> VL53L0X_GetInterMeasurementPeriodMilliSeconds

  VL53L0X_RdWord (Thumb, 46 bytes, Stack size 32 bytes, vl53l0x_platform.o(i.VL53L0X_RdWord))
  [Stack]

  - Max Depth = 160
  - Call Chain = VL53L0X_RdWord ⇒ VL53L0X_read_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_read_word
  [Called By]
  - >> VL53L0X_StaticInit
  - >> VL53L0X_SetInterMeasurementPeriodMilliSeconds
  - >> perform_ref_signal_measurement
  - >> set_sequence_step_timeout
  - >> get_sequence_step_timeout
  - >> VL53L0X_get_pal_range_status
  - >> VL53L0X_get_offset_calibration_data_micro_meter
  - >> VL53L0X_GetXTalkCompensationRateMegaCps
  - >> VL53L0X_GetLimitCheckValue
  - >> VL53L0X_GetInterruptThresholds
  - >> VL53L0X_GetInterMeasurementPeriodMilliSeconds

  VL53L0X_ReadMulti (Thumb, 56 bytes, Stack size 40 bytes, vl53l0x_platform.o(i.VL53L0X_ReadMulti))
  [Stack]

  - Max Depth = 168
  - Call Chain = VL53L0X_ReadMulti ⇒ VL53L0X_read_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_read_multi
  [Called By]
  - >> VL53L0X_GetRangingMeasurementData
  - >> get_ref_spad_map

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

  - >> Vl53l0xInit
  - >> SettingMeasurementMode
  - >> VL53L0X_PerformSingleRangingMeasurement

  VL53L0X_SetGpioConfig (Thumb, 360 bytes, Stack size 40 bytes, vl53l0x_api.o(i.VL53L0X_SetGpioConfig))
  [Stack]

  - Max Depth = 216
  - Call Chain = VL53L0X_SetGpioConfig ⇒ VL53L0X_ClearInterruptMask ⇒ VL53L0X_WrByte ⇒ VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> __ARM_common_switch8
  - >> VL53L0X_ClearInterruptMask
  - >> VL53L0X_WrByte
  - >> VL53L0X_UpdateByte
  [Called By]
  - >> VL53L0X_StaticInit
  - >> Vl53l0xInit

  VL53L0X_SetInterMeasurementPeriodMilliSeconds (Thumb, 66 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_SetInterMeasurementPeriodMilliSeconds))
  [Stack]

  - Max Depth = 184
  - Call Chain = VL53L0X_SetInterMeasurementPeriodMilliSeconds ⇒ VL53L0X_RdWord ⇒ VL53L0X_read_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WrDWord
  - >> VL53L0X_RdWord
  [Called By]
  - >> SettingMeasurementMode

  VL53L0X_SetInterruptThresholds (Thumb, 54 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_SetInterruptThresholds))
  [Stack]

  - Max Depth = 176
  - Call Chain = VL53L0X_SetInterruptThresholds ⇒ VL53L0X_WrWord ⇒ VL53L0X_write_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WrWord
  [Called By]
  - >> Vl53l0xInit

  VL53L0X_SetLimitCheckEnable (Thumb, 204 bytes, Stack size 40 bytes, vl53l0x_api.o(i.VL53L0X_SetLimitCheckEnable))
  [Stack]

  - Max Depth = 208
  - Call Chain = VL53L0X_SetLimitCheckEnable ⇒ VL53L0X_UpdateByte ⇒ VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> __ARM_common_switch8
  - >> VL53L0X_WrWord
  - >> VL53L0X_UpdateByte
  [Called By]
  - >> VL53L0X_DataInit
  - >> Vl53l0xInit

  VL53L0X_SetLimitCheckValue (Thumb, 118 bytes, Stack size 24 bytes, vl53l0x_api.o(i.VL53L0X_SetLimitCheckValue))
  [Stack]

  - Max Depth = 176
  - Call Chain = VL53L0X_SetLimitCheckValue ⇒ VL53L0X_WrWord ⇒ VL53L0X_write_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> __ARM_common_switch8
  - >> VL53L0X_WrWord
  [Called By]
  - >> VL53L0X_DataInit
  - >> Vl53l0xInit

  VL53L0X_SetMeasurementTimingBudgetMicroSeconds (Thumb, 22 bytes, Stack size 16 bytes, vl53l0x_api.o(i.VL53L0X_SetMeasurementTimingBudgetMicroSeconds))
  [Stack]

  - Max Depth = 368
  - Call Chain = VL53L0X_SetMeasurementTimingBudgetMicroSeconds ⇒ VL53L0X_set_measurement_timing_budget_micro_seconds ⇒ get_sequence_step_timeout ⇒ VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_set_measurement_timing_budget_micro_seconds
  [Called By]
  - >> Vl53l0xInit
  - >> VL53L0X_SetSequenceStepEnable

  VL53L0X_SetSequenceStepEnable (Thumb, 202 bytes, Stack size 40 bytes, vl53l0x_api.o(i.VL53L0X_SetSequenceStepEnable))
  [Stack]

  - Max Depth = 408
  - Call Chain = VL53L0X_SetSequenceStepEnable ⇒ VL53L0X_SetMeasurementTimingBudgetMicroSeconds ⇒ VL53L0X_set_measurement_timing_budget_micro_seconds ⇒ get_sequence_step_timeout ⇒ VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> __ARM_common_switch8
  - >> VL53L0X_SetMeasurementTimingBudgetMicroSeconds
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdByte
  [Called By]
  - >> VL53L0X_StaticInit

  VL53L0X_StartMeasurement (Thumb, 290 bytes, Stack size 32 bytes, vl53l0x_api.o(i.VL53L0X_StartMeasurement))
  [Stack]

  - Max Depth = 304
  - Call Chain = VL53L0X_StartMeasurement ⇒ VL53L0X_CheckAndLoadInterruptSettings ⇒ VL53L0X_load_tuning_settings ⇒ VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdByte
  - >> VL53L0X_GetDeviceMode
  - >> VL53L0X_CheckAndLoadInterruptSettings
  [Called By]
  - >> Vl53l0xInit
  - >> SettingMeasurementMode
  - >> VL53L0X_PerformSingleMeasurement

  VL53L0X_StaticInit (Thumb, 470 bytes, Stack size 120 bytes, vl53l0x_api.o(i.VL53L0X_StaticInit))
  [Stack]

  - Max Depth = 896
  - Call Chain = VL53L0X_StaticInit ⇒ VL53L0X_perform_ref_spad_management ⇒ perform_ref_signal_measurement ⇒ VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> VL53L0X_SetGpioConfig
  - >> get_sequence_step_timeout
  - >> VL53L0X_set_reference_spads
  - >> VL53L0X_perform_ref_spad_management
  - >> VL53L0X_load_tuning_settings
  - >> VL53L0X_get_info_from_device
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdWord
  - >> VL53L0X_RdByte
  - >> VL53L0X_SetSequenceStepEnable
  - >> VL53L0X_GetVcselPulsePeriod
  - >> VL53L0X_GetFractionEnable
  - >> VL53L0X_GetDeviceParameters
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy4
  [Called By]
  - >> Vl53l0xInit

  VL53L0X_StopMeasurement (Thumb, 108 bytes, Stack size 16 bytes, vl53l0x_api.o(i.VL53L0X_StopMeasurement))
  [Stack]

  - Max Depth = 288
  - Call Chain = VL53L0X_StopMeasurement ⇒ VL53L0X_CheckAndLoadInterruptSettings ⇒ VL53L0X_load_tuning_settings ⇒ VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WrByte
  - >> VL53L0X_CheckAndLoadInterruptSettings
  [Called By]
  - >> Stop_ToF

  VL53L0X_UpdateByte (Thumb, 88 bytes, Stack size 48 bytes, vl53l0x_platform.o(i.VL53L0X_UpdateByte))
  [Stack]

  - Max Depth = 168
  - Call Chain = VL53L0X_UpdateByte ⇒ VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_write_byte
  - >> VL53L0X_read_byte
  [Called By]
  - >> VL53L0X_SetLimitCheckEnable
  - >> VL53L0X_SetGpioConfig
  - >> VL53L0X_DataInit
  - >> VL53L0X_ref_calibration_io

  VL53L0X_WrByte (Thumb, 46 bytes, Stack size 32 bytes, vl53l0x_platform.o(i.VL53L0X_WrByte))
  [Stack]

  - Max Depth = 152
  - Call Chain = VL53L0X_WrByte ⇒ VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_write_byte
  [Called By]
  - >> VL53L0X_StopMeasurement
  - >> VL53L0X_StaticInit
  - >> VL53L0X_StartMeasurement
  - >> VL53L0X_SetGpioConfig
  - >> VL53L0X_GetStopCompletedStatus
  - >> VL53L0X_DataInit
  - >> VL53L0X_ClearInterruptMask
  - >> VL53L0X_device_read_strobe
  - >> perform_ref_signal_measurement
  - >> VL53L0X_ref_calibration_io
  - >> VL53L0X_perform_vhv_calibration
  - >> VL53L0X_perform_single_ref_calibration
  - >> VL53L0X_perform_phase_calibration
  - >> set_sequence_step_timeout
  - >> VL53L0X_set_reference_spads
  - >> VL53L0X_perform_ref_spad_management
  - >> VL53L0X_perform_ref_calibration
  - >> VL53L0X_get_pal_range_status
  - >> VL53L0X_get_info_from_device
  - >> VL53L0X_SetSequenceStepEnable
  - >> VL53L0X_CheckAndLoadInterruptSettings

  VL53L0X_WrDWord (Thumb, 46 bytes, Stack size 32 bytes, vl53l0x_platform.o(i.VL53L0X_WrDWord))
  [Stack]

  - Max Depth = 152
  - Call Chain = VL53L0X_WrDWord ⇒ VL53L0X_write_dword ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_write_dword
  [Called By]
  - >> VL53L0X_SetInterMeasurementPeriodMilliSeconds

  VL53L0X_WrWord (Thumb, 46 bytes, Stack size 32 bytes, vl53l0x_platform.o(i.VL53L0X_WrWord))
  [Stack]

  - Max Depth = 152
  - Call Chain = VL53L0X_WrWord ⇒ VL53L0X_write_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_write_word
  [Called By]
  - >> VL53L0X_SetLimitCheckValue
  - >> VL53L0X_SetLimitCheckEnable
  - >> VL53L0X_SetInterruptThresholds
  - >> set_sequence_step_timeout

  VL53L0X_WriteMulti (Thumb, 62 bytes, Stack size 48 bytes, vl53l0x_platform.o(i.VL53L0X_WriteMulti))
  [Stack]

  - Max Depth = 184
  - Call Chain = VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_write_multi
  [Called By]
  - >> set_ref_spad_map
  - >> VL53L0X_load_tuning_settings

  VL53L0X_calc_dmax (Thumb, 444 bytes, Stack size 112 bytes, vl53l0x_api_core.o(i.VL53L0X_calc_dmax))
  [Stack]

  - Max Depth = 124
  - Call Chain = VL53L0X_calc_dmax ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  - >> VL53L0X_isqrt
  [Called By]
  - >> VL53L0X_calc_sigma_estimate

  VL53L0X_calc_macro_period_ps (Thumb, 50 bytes, Stack size 48 bytes, vl53l0x_api_core.o(i.VL53L0X_calc_macro_period_ps))
  [Stack]

  - Max Depth = 120
  - Call Chain = VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> __aeabi_lmul
  [Called By]
  - >> VL53L0X_calc_timeout_us
  - >> VL53L0X_calc_timeout_mclks

  VL53L0X_calc_sigma_estimate (Thumb, 828 bytes, Stack size 216 bytes, vl53l0x_api_core.o(i.VL53L0X_calc_sigma_estimate))
  [Stack]

  - Max Depth = 368
  - Call Chain = VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> __aeabi_uidivmod
  - >> VL53L0X_isqrt
  - >> VL53L0X_get_total_xtalk_rate
  - >> VL53L0X_calc_timeout_mclks
  - >> VL53L0X_calc_dmax
  - >> VL53L0X_get_total_signal_rate
  [Called By]
  - >> VL53L0X_get_pal_range_status

  VL53L0X_calc_timeout_mclks (Thumb, 58 bytes, Stack size 32 bytes, vl53l0x_api_core.o(i.VL53L0X_calc_timeout_mclks))
  [Stack]

  - Max Depth = 152
  - Call Chain = VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> __aeabi_uidivmod
  - >> VL53L0X_calc_macro_period_ps
  [Called By]
  - >> VL53L0X_calc_sigma_estimate
  - >> set_sequence_step_timeout

  VL53L0X_calc_timeout_us (Thumb, 64 bytes, Stack size 32 bytes, vl53l0x_api_core.o(i.VL53L0X_calc_timeout_us))
  [Stack]

  - Max Depth = 152
  - Call Chain = VL53L0X_calc_timeout_us ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> __aeabi_uidivmod
  - >> VL53L0X_calc_macro_period_ps
  [Called By]
  - >> get_sequence_step_timeout

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

  - >> set_sequence_step_timeout
  - >> get_sequence_step_timeout

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

  - >> VL53L0X_get_vcsel_pulse_period

  VL53L0X_device_read_strobe (Thumb, 92 bytes, Stack size 24 bytes, vl53l0x_api_core.o(i.VL53L0X_device_read_strobe))
  [Stack]

  - Max Depth = 176
  - Call Chain = VL53L0X_device_read_strobe ⇒ VL53L0X_WrByte ⇒ VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdByte
  [Called By]
  - >> VL53L0X_get_info_from_device

  VL53L0X_encode_timeout (Thumb, 42 bytes, Stack size 12 bytes, vl53l0x_api_core.o(i.VL53L0X_encode_timeout))
  [Stack]

  - Max Depth = 12
  - Call Chain = VL53L0X_encode_timeout
  [Called By]
  - >> set_sequence_step_timeout

  VL53L0X_get_info_from_device (Thumb, 1356 bytes, Stack size 112 bytes, vl53l0x_api_core.o(i.VL53L0X_get_info_from_device))
  [Stack]

  - Max Depth = 288
  - Call Chain = VL53L0X_get_info_from_device ⇒ VL53L0X_device_read_strobe ⇒ VL53L0X_WrByte ⇒ VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_PollingDelay
  - >> VL53L0X_device_read_strobe
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdDWord
  - >> VL53L0X_RdByte
  - >> strcpy
  [Called By]
  - >> VL53L0X_StaticInit

  VL53L0X_get_measurement_timing_budget_micro_seconds (Thumb, 270 bytes, Stack size 64 bytes, vl53l0x_api_core.o(i.VL53L0X_get_measurement_timing_budget_micro_seconds))
  [Stack]

  - Max Depth = 336
  - Call Chain = VL53L0X_get_measurement_timing_budget_micro_seconds ⇒ get_sequence_step_timeout ⇒ VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> get_sequence_step_timeout
  - >> VL53L0X_GetSequenceStepEnables
  [Called By]
  - >> VL53L0X_GetMeasurementTimingBudgetMicroSeconds

  VL53L0X_get_offset_calibration_data_micro_meter (Thumb, 80 bytes, Stack size 32 bytes, vl53l0x_api_calibration.o(i.VL53L0X_get_offset_calibration_data_micro_meter))
  [Stack]

  - Max Depth = 192
  - Call Chain = VL53L0X_get_offset_calibration_data_micro_meter ⇒ VL53L0X_RdWord ⇒ VL53L0X_read_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_RdWord
  [Called By]
  - >> VL53L0X_GetOffsetCalibrationDataMicroMeter

  VL53L0X_get_pal_range_status (Thumb, 620 bytes, Stack size 104 bytes, vl53l0x_api_core.o(i.VL53L0X_get_pal_range_status))
  [Stack]

  - Max Depth = 472
  - Call Chain = VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> __aeabi_uidivmod
  - >> VL53L0X_calc_sigma_estimate
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdWord
  - >> VL53L0X_GetLimitCheckValue
  - >> VL53L0X_GetLimitCheckEnable
  [Called By]
  - >> VL53L0X_GetRangingMeasurementData

  VL53L0X_get_total_signal_rate (Thumb, 42 bytes, Stack size 24 bytes, vl53l0x_api_core.o(i.VL53L0X_get_total_signal_rate))
  [Stack]

  - Max Depth = 64
  - Call Chain = VL53L0X_get_total_signal_rate ⇒ VL53L0X_get_total_xtalk_rate ⇒ VL53L0X_GetXTalkCompensationEnable
  [Calls]
  - >> VL53L0X_get_total_xtalk_rate
  [Called By]
  - >> VL53L0X_calc_sigma_estimate

  VL53L0X_get_total_xtalk_rate (Thumb, 60 bytes, Stack size 32 bytes, vl53l0x_api_core.o(i.VL53L0X_get_total_xtalk_rate))
  [Stack]

  - Max Depth = 40
  - Call Chain = VL53L0X_get_total_xtalk_rate ⇒ VL53L0X_GetXTalkCompensationEnable
  [Calls]
  - >> VL53L0X_GetXTalkCompensationEnable
  [Called By]
  - >> VL53L0X_calc_sigma_estimate
  - >> VL53L0X_get_total_signal_rate

  VL53L0X_get_vcsel_pulse_period (Thumb, 74 bytes, Stack size 24 bytes, vl53l0x_api_core.o(i.VL53L0X_get_vcsel_pulse_period))
  [Stack]

  - Max Depth = 176
  - Call Chain = VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_decode_vcsel_period
  - >> VL53L0X_RdByte
  [Called By]
  - >> VL53L0X_GetVcselPulsePeriod

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

  - >> VL53L0X_calc_sigma_estimate
  - >> VL53L0X_calc_dmax

  VL53L0X_load_tuning_settings (Thumb, 274 bytes, Stack size 56 bytes, vl53l0x_api_core.o(i.VL53L0X_load_tuning_settings))
  [Stack]

  - Max Depth = 240
  - Call Chain = VL53L0X_load_tuning_settings ⇒ VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WriteMulti
  [Called By]
  - >> VL53L0X_StaticInit
  - >> VL53L0X_CheckAndLoadInterruptSettings

  VL53L0X_measurement_poll_for_completion (Thumb, 70 bytes, Stack size 24 bytes, vl53l0x_api_core.o(i.VL53L0X_measurement_poll_for_completion))
  [Stack]

  - Max Depth = 232
  - Call Chain = VL53L0X_measurement_poll_for_completion ⇒ VL53L0X_GetMeasurementDataReady ⇒ VL53L0X_GetInterruptMaskStatus ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_PollingDelay
  - >> VL53L0X_GetMeasurementDataReady
  [Called By]
  - >> VL53L0X_perform_single_ref_calibration
  - >> VL53L0X_PerformSingleMeasurement

  VL53L0X_perform_phase_calibration (Thumb, 138 bytes, Stack size 72 bytes, vl53l0x_api_calibration.o(i.VL53L0X_perform_phase_calibration))
  [Stack]

  - Max Depth = 320
  - Call Chain = VL53L0X_perform_phase_calibration ⇒ VL53L0X_perform_single_ref_calibration ⇒ VL53L0X_measurement_poll_for_completion ⇒ VL53L0X_GetMeasurementDataReady ⇒ VL53L0X_GetInterruptMaskStatus ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_ref_calibration_io
  - >> VL53L0X_perform_single_ref_calibration
  - >> VL53L0X_WrByte
  [Called By]
  - >> VL53L0X_perform_ref_calibration

  VL53L0X_perform_ref_calibration (Thumb, 90 bytes, Stack size 40 bytes, vl53l0x_api_calibration.o(i.VL53L0X_perform_ref_calibration))
  [Stack]

  - Max Depth = 360
  - Call Chain = VL53L0X_perform_ref_calibration ⇒ VL53L0X_perform_vhv_calibration ⇒ VL53L0X_perform_single_ref_calibration ⇒ VL53L0X_measurement_poll_for_completion ⇒ VL53L0X_GetMeasurementDataReady ⇒ VL53L0X_GetInterruptMaskStatus ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_perform_vhv_calibration
  - >> VL53L0X_perform_phase_calibration
  - >> VL53L0X_WrByte
  [Called By]
  - >> VL53L0X_PerformRefCalibration
  - >> VL53L0X_perform_ref_spad_management

  VL53L0X_perform_ref_spad_management (Thumb, 752 bytes, Stack size 128 bytes, vl53l0x_api_calibration.o(i.VL53L0X_perform_ref_spad_management))
  [Stack]

  - Max Depth = 776
  - Call Chain = VL53L0X_perform_ref_spad_management ⇒ perform_ref_signal_measurement ⇒ VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> set_ref_spad_map
  - >> perform_ref_signal_measurement
  - >> is_aperture
  - >> get_next_good_spad
  - >> enable_spad_bit
  - >> enable_ref_spads
  - >> VL53L0X_perform_ref_calibration
  - >> VL53L0X_WrByte
  - >> __aeabi_memcpy4
  [Called By]
  - >> VL53L0X_StaticInit
  - >> VL53L0X_PerformRefSpadManagement

  VL53L0X_perform_single_ref_calibration (Thumb, 74 bytes, Stack size 16 bytes, vl53l0x_api_calibration.o(i.VL53L0X_perform_single_ref_calibration))
  [Stack]

  - Max Depth = 248
  - Call Chain = VL53L0X_perform_single_ref_calibration ⇒ VL53L0X_measurement_poll_for_completion ⇒ VL53L0X_GetMeasurementDataReady ⇒ VL53L0X_GetInterruptMaskStatus ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_ClearInterruptMask
  - >> VL53L0X_measurement_poll_for_completion
  - >> VL53L0X_WrByte
  [Called By]
  - >> VL53L0X_perform_vhv_calibration
  - >> VL53L0X_perform_phase_calibration

  VL53L0X_perform_vhv_calibration (Thumb, 140 bytes, Stack size 72 bytes, vl53l0x_api_calibration.o(i.VL53L0X_perform_vhv_calibration))
  [Stack]

  - Max Depth = 320
  - Call Chain = VL53L0X_perform_vhv_calibration ⇒ VL53L0X_perform_single_ref_calibration ⇒ VL53L0X_measurement_poll_for_completion ⇒ VL53L0X_GetMeasurementDataReady ⇒ VL53L0X_GetInterruptMaskStatus ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_ref_calibration_io
  - >> VL53L0X_perform_single_ref_calibration
  - >> VL53L0X_WrByte
  [Called By]
  - >> VL53L0X_perform_ref_calibration

  VL53L0X_read_byte (Thumb, 60 bytes, Stack size 32 bytes, h08r6_i2c.o(i.VL53L0X_read_byte))
  [Stack]

  - Max Depth = 120
  - Call Chain = VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_Master_Transmit
  - >> HAL_I2C_Master_Receive
  [Called By]
  - >> VL53L0X_UpdateByte
  - >> VL53L0X_RdByte

  VL53L0X_read_dword (Thumb, 114 bytes, Stack size 40 bytes, h08r6_i2c.o(i.VL53L0X_read_dword))
  [Stack]

  - Max Depth = 128
  - Call Chain = VL53L0X_read_dword ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_Master_Transmit
  - >> HAL_I2C_Master_Receive
  [Called By]
  - >> VL53L0X_RdDWord

  VL53L0X_read_multi (Thumb, 62 bytes, Stack size 40 bytes, h08r6_i2c.o(i.VL53L0X_read_multi))
  [Stack]

  - Max Depth = 128
  - Call Chain = VL53L0X_read_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_Master_Transmit
  - >> HAL_I2C_Master_Receive
  [Called By]
  - >> VL53L0X_ReadMulti

  VL53L0X_read_word (Thumb, 82 bytes, Stack size 40 bytes, h08r6_i2c.o(i.VL53L0X_read_word))
  [Stack]

  - Max Depth = 128
  - Call Chain = VL53L0X_read_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_Master_Transmit
  - >> HAL_I2C_Master_Receive
  [Called By]
  - >> VL53L0X_RdWord

  VL53L0X_ref_calibration_io (Thumb, 178 bytes, Stack size 40 bytes, vl53l0x_api_calibration.o(i.VL53L0X_ref_calibration_io))
  [Stack]

  - Max Depth = 208
  - Call Chain = VL53L0X_ref_calibration_io ⇒ VL53L0X_UpdateByte ⇒ VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WrByte
  - >> VL53L0X_UpdateByte
  - >> VL53L0X_RdByte
  [Called By]
  - >> VL53L0X_perform_vhv_calibration
  - >> VL53L0X_perform_phase_calibration

  VL53L0X_set_measurement_timing_budget_micro_seconds (Thumb, 314 bytes, Stack size 80 bytes, vl53l0x_api_core.o(i.VL53L0X_set_measurement_timing_budget_micro_seconds))
  [Stack]

  - Max Depth = 352
  - Call Chain = VL53L0X_set_measurement_timing_budget_micro_seconds ⇒ get_sequence_step_timeout ⇒ VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> set_sequence_step_timeout
  - >> get_sequence_step_timeout
  - >> VL53L0X_GetSequenceStepEnables
  [Called By]
  - >> VL53L0X_SetMeasurementTimingBudgetMicroSeconds

  VL53L0X_set_reference_spads (Thumb, 226 bytes, Stack size 72 bytes, vl53l0x_api_calibration.o(i.VL53L0X_set_reference_spads))
  [Stack]

  - Max Depth = 328
  - Call Chain = VL53L0X_set_reference_spads ⇒ enable_ref_spads ⇒ set_ref_spad_map ⇒ VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> is_aperture
  - >> enable_ref_spads
  - >> VL53L0X_WrByte
  [Called By]
  - >> VL53L0X_StaticInit

  VL53L0X_write_byte (Thumb, 42 bytes, Stack size 32 bytes, h08r6_i2c.o(i.VL53L0X_write_byte))
  [Stack]

  - Max Depth = 120
  - Call Chain = VL53L0X_write_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_Master_Transmit
  [Called By]
  - >> VL53L0X_WrByte
  - >> VL53L0X_UpdateByte

  VL53L0X_write_dword (Thumb, 62 bytes, Stack size 32 bytes, h08r6_i2c.o(i.VL53L0X_write_dword))
  [Stack]

  - Max Depth = 120
  - Call Chain = VL53L0X_write_dword ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_Master_Transmit
  [Called By]
  - >> VL53L0X_WrDWord

  VL53L0X_write_multi (Thumb, 72 bytes, Stack size 48 bytes, h08r6_i2c.o(i.VL53L0X_write_multi))
  [Stack]

  - Max Depth = 136
  - Call Chain = VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_Master_Transmit
  - >> malloc
  - >> free
  - >> __aeabi_memcpy
  [Called By]
  - >> VL53L0X_WriteMulti

  VL53L0X_write_word (Thumb, 46 bytes, Stack size 32 bytes, h08r6_i2c.o(i.VL53L0X_write_word))
  [Stack]

  - Max Depth = 120
  - Call Chain = VL53L0X_write_word ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_Master_Transmit
  [Called By]
  - >> VL53L0X_WrWord

  __0sprintf (Thumb, 36 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
  [Calls]

  - >> _sputc
  - >> _printf_core

  __1sprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)

  __2sprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf))
  [Stack]

  - Max Depth = 24
  - Call Chain = __2sprintf
  [Called By]
  - >> uuidCommand
  - >> timeCommand
  - >> setCommand
  - >> setBaudrateCommand
  - >> scastCommand
  - >> removebuttonCommand
  - >> pingCommand
  - >> nameCommand
  - >> infoCommand
  - >> idcodeCommand
  - >> groupCommand
  - >> getCommand
  - >> flashsizeCommand
  - >> exploreCommand
  - >> dateCommand
  - >> bootloaderUpdateCommand
  - >> addbuttonCommand
  - >> Vl53l0xStreamCommand
  - >> Vl53l0xStopCommand
  - >> Vl53l0xSampleCommand
  - >> Vl53l0xMaxCommand
  - >> SendMeasurementResult
  - >> prvUARTCommandConsoleTask
  - >> vTaskList
  - >> vTaskGetRunTimeStats
  - >> remoteBootloaderUpdate
  - >> PxMessagingTask
  - >> GetDateString
  - >> DisplayTopology
  - >> DisplayPortsDir
  - >> DisplayModuleStatus

  __c89sprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)

  sprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)

  __ARM_clz (Thumb, 46 bytes, Stack size 0 bytes, depilogue.o(i.__ARM_clz), UNUSED)
  [Called By]

  - >> _double_epilogue

  __ARM_common_switch8 (Thumb, 28 bytes, Stack size 8 bytes, main.o(i.__ARM_common_switch8))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_common_switch8
  [Called By]
  - >> FrontEndTask
  - >> idcodeCommand
  - >> VL53L0X_SetLimitCheckValue
  - >> VL53L0X_SetLimitCheckEnable
  - >> VL53L0X_SetGpioConfig
  - >> prvProcessReceivedCommands
  - >> SendMeasurementResult
  - >> Module_MessagingTask
  - >> PxMessagingTask
  - >> NotifyMessagingTaskFromISR
  - >> GetUart
  - >> DisplayModuleStatus
  - >> CheckAttachedButtons
  - >> sequence_step_enabled
  - >> VL53L0X_SetSequenceStepEnable
  - >> VL53L0X_GetLimitCheckValue

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

  - >> _strtoul
  - >> strtol
  - >> atol
  - >> atoi

  __rt_errno_addr (Thumb, 0 bytes, Stack size 0 bytes, errno.o(i.__aeabi_errno_addr), UNUSED)

  __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)

  __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)

  __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)

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

  - >> CheckAttachedButtons

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

  - >> CheckAttachedButtons

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

  - >> CheckAttachedButtons

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

  - >> CheckAttachedButtons

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

  - >> CheckAttachedButtons

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

  - >> CheckAttachedButtons

  enable_ref_spads (Thumb, 166 bytes, Stack size 56 bytes, vl53l0x_api_calibration.o(i.enable_ref_spads))
  [Stack]

  - Max Depth = 256
  - Call Chain = enable_ref_spads ⇒ set_ref_spad_map ⇒ VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> set_ref_spad_map
  - >> is_aperture
  - >> get_ref_spad_map
  - >> get_next_good_spad
  - >> enable_spad_bit
  [Called By]
  - >> VL53L0X_set_reference_spads
  - >> VL53L0X_perform_ref_spad_management

  enable_spad_bit (Thumb, 64 bytes, Stack size 32 bytes, vl53l0x_api_calibration.o(i.enable_spad_bit))
  [Stack]

  - Max Depth = 44
  - Call Chain = enable_spad_bit ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> enable_ref_spads
  - >> VL53L0X_perform_ref_spad_management

  free (Thumb, 80 bytes, Stack size 8 bytes, malloc.o(i.free))
  [Stack]

  - Max Depth = 8
  - Call Chain = free
  [Called By]
  - >> VL53L0X_write_multi
  - >> SendMeasurementResult
  - >> FindBroadcastRoutes

  get_next_good_spad (Thumb, 122 bytes, Stack size 56 bytes, vl53l0x_api_calibration.o(i.get_next_good_spad))
  [Stack]

  - Max Depth = 68
  - Call Chain = get_next_good_spad ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> enable_ref_spads
  - >> VL53L0X_perform_ref_spad_management

  get_ref_spad_map (Thumb, 24 bytes, Stack size 16 bytes, vl53l0x_api_calibration.o(i.get_ref_spad_map))
  [Stack]

  - Max Depth = 184
  - Call Chain = get_ref_spad_map ⇒ VL53L0X_ReadMulti ⇒ VL53L0X_read_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_ReadMulti
  [Called By]
  - >> enable_ref_spads

  get_sequence_step_timeout (Thumb, 300 bytes, Stack size 72 bytes, vl53l0x_api_core.o(i.get_sequence_step_timeout))
  [Stack]

  - Max Depth = 272
  - Call Chain = get_sequence_step_timeout ⇒ VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_decode_timeout
  - >> VL53L0X_calc_timeout_us
  - >> VL53L0X_RdWord
  - >> VL53L0X_RdByte
  - >> VL53L0X_GetVcselPulsePeriod
  - >> VL53L0X_GetSequenceStepEnables
  [Called By]
  - >> VL53L0X_StaticInit
  - >> VL53L0X_set_measurement_timing_budget_micro_seconds
  - >> VL53L0X_get_measurement_timing_budget_micro_seconds

  is_aperture (Thumb, 22 bytes, Stack size 8 bytes, vl53l0x_api_calibration.o(i.is_aperture))
  [Stack]

  - Max Depth = 8
  - Call Chain = is_aperture
  [Called By]
  - >> enable_ref_spads
  - >> VL53L0X_set_reference_spads
  - >> VL53L0X_perform_ref_spad_management

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

  - Max Depth = 960
  - Call Chain = main ⇒ BOS_Init ⇒ Module_Init ⇒ Vl53l0xInit ⇒ VL53L0X_StaticInit ⇒ VL53L0X_perform_ref_spad_management ⇒ perform_ref_signal_measurement ⇒ VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> osKernelStart
  - >> SystemClock_Config
  - >> MX_FREERTOS_Init
  - >> HAL_Init
  - >> BOS_Init
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  malloc (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
  [Stack]

  - Max Depth = 20
  - Call Chain = malloc
  [Called By]
  - >> VL53L0X_write_multi
  - >> SendMeasurementResult
  - >> PxMessagingTask
  - >> GetDateString
  - >> FindBroadcastRoutes

  minArr (Thumb, 50 bytes, Stack size 12 bytes, bos.o(i.minArr))
  [Stack]

  - Max Depth = 12
  - Call Chain = minArr
  [Called By]
  - >> FindRoute

  osDelay (Thumb, 26 bytes, Stack size 16 bytes, cmsis_os.o(i.osDelay))
  [Stack]

  - Max Depth = 72
  - Call Chain = osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskDelay
  [Called By]
  - >> pingCommand
  - >> defaultCommand
  - >> bootloaderUpdateCommand
  - >> StartDefaultTask
  - >> prvUARTCommandConsoleTask
  - >> StartScastDMAStream
  - >> SendMessageFromPort
  - >> PxMessagingTask
  - >> ExploreNeighbors
  - >> Explore

  osKernelStart (Thumb, 10 bytes, Stack size 8 bytes, cmsis_os.o(i.osKernelStart))
  [Stack]

  - Max Depth = 192
  - Call Chain = osKernelStart ⇒ vTaskStartScheduler ⇒ xTimerCreateTimerTask ⇒ xTaskGenericCreate ⇒ prvAllocateTCBAndStack ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskStartScheduler
  [Called By]
  - >> main

  osSemaphoreCreate (Thumb, 52 bytes, Stack size 16 bytes, cmsis_os.o(i.osSemaphoreCreate))
  [Stack]

  - Max Depth = 136
  - Call Chain = osSemaphoreCreate ⇒ xQueueCreateCountingSemaphore ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueCreateCountingSemaphore
  - >> xQueueGenericSend
  - >> xQueueGenericCreate
  [Called By]
  - >> MX_FREERTOS_Init

  osSemaphoreRelease (Thumb, 72 bytes, Stack size 16 bytes, cmsis_os.o(i.osSemaphoreRelease))
  [Stack]

  - Max Depth = 104
  - Call Chain = osSemaphoreRelease ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueGiveFromISR
  - >> inHandlerMode
  - >> xQueueGenericSend
  [Called By]
  - >> readPxMutex
  - >> writePxMutex
  - >> SendMessageFromPort
  - >> AddPortButton

  osSemaphoreWait (Thumb, 108 bytes, Stack size 24 bytes, cmsis_os.o(i.osSemaphoreWait))
  [Stack]

  - Max Depth = 112
  - Call Chain = osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> inHandlerMode
  - >> xQueueReceiveFromISR
  - >> xQueueGenericReceive
  [Called By]
  - >> readPxITMutex
  - >> readPxMutex
  - >> writePxMutex
  - >> writePxITMutex

  osSystickHandler (Thumb, 16 bytes, Stack size 8 bytes, cmsis_os.o(i.osSystickHandler))
  [Stack]

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

  perform_ref_signal_measurement (Thumb, 128 bytes, Stack size 48 bytes, vl53l0x_api_calibration.o(i.perform_ref_signal_measurement))
  [Stack]

  - Max Depth = 648
  - Call Chain = perform_ref_signal_measurement ⇒ VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdWord
  - >> VL53L0X_PerformSingleRangingMeasurement
  [Called By]
  - >> VL53L0X_perform_ref_spad_management

  prvUARTCommandConsoleTask (Thumb, 1436 bytes, Stack size 48 bytes, bos_cli.o(i.prvUARTCommandConsoleTask))
  [Stack]

  - Max Depth = 488
  - Call Chain = prvUARTCommandConsoleTask ⇒ remoteBootloaderUpdate ⇒ StartScastDMAStream ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageToModule
  - >> readPxMutex
  - >> StringToLowerCase
  - >> AddSnippet
  - >> writePxMutex
  - >> writePxITMutex
  - >> vPortYield
  - >> ulTaskNotifyTake
  - >> osDelay
  - >> UpdateBaudrate
  - >> FreeRTOS_CLIProcessCommand
  - >> FreeRTOS_CLIGetOutputBuffer
  - >> remoteBootloaderUpdate
  - >> GetID
  - >> BroadcastMessage
  - >> __2sprintf
  - >> strncmp
  - >> strcpy
  - >> strlen
  - >> strchr
  - >> strncpy
  - >> strcat
  - >> __aeabi_memclr
  - >> __rt_ctype_table
  [Address Reference Count : 1]
  - bos_freertos.o(i.MX_FREERTOS_Init)

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

  - >> xQueueGenericReceive

  readPxITMutex (Thumb, 62 bytes, Stack size 32 bytes, h08r6_uart.o(i.readPxITMutex))
  [Stack]

  - Max Depth = 144
  - Call Chain = readPxITMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_UART_Receive_IT
  - >> osSemaphoreWait
  - >> GetUart
  [Called By]
  - >> StartDefaultTask

  readPxMutex (Thumb, 84 bytes, Stack size 40 bytes, h08r6_uart.o(i.readPxMutex))
  [Stack]

  - Max Depth = 152
  - Call Chain = readPxMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_UART_Receive
  - >> osSemaphoreWait
  - >> osSemaphoreRelease
  - >> GetUart
  [Called By]
  - >> CheckPressingEnterKey
  - >> prvUARTCommandConsoleTask

  remoteBootloaderUpdate (Thumb, 240 bytes, Stack size 48 bytes, bos.o(i.remoteBootloaderUpdate))
  [Stack]

  - Max Depth = 440
  - Call Chain = remoteBootloaderUpdate ⇒ StartScastDMAStream ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> HAL_Delay
  - >> writePxITMutex
  - >> FreeRTOS_CLIGetOutputBuffer
  - >> SwapUartPins
  - >> StartScastDMAStream
  - >> SetupPortForRemoteBootloaderUpdate
  - >> GetUart
  - >> FindRoute
  - >> __2sprintf
  - >> strlen
  - >> strcat
  [Called By]
  - >> bootloaderUpdateCommand
  - >> prvUARTCommandConsoleTask
  - >> PxMessagingTask

  sequence_step_enabled (Thumb, 86 bytes, Stack size 12 bytes, vl53l0x_api.o(i.sequence_step_enabled))
  [Stack]

  - Max Depth = 20
  - Call Chain = sequence_step_enabled ⇒ __ARM_common_switch8
  [Calls]
  - >> __ARM_common_switch8
  [Called By]
  - >> VL53L0X_GetSequenceStepEnables

  set_ref_spad_map (Thumb, 24 bytes, Stack size 16 bytes, vl53l0x_api_calibration.o(i.set_ref_spad_map))
  [Stack]

  - Max Depth = 200
  - Call Chain = set_ref_spad_map ⇒ VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_WriteMulti
  [Called By]
  - >> enable_ref_spads
  - >> VL53L0X_perform_ref_spad_management

  set_sequence_step_timeout (Thumb, 334 bytes, Stack size 56 bytes, vl53l0x_api_core.o(i.set_sequence_step_timeout))
  [Stack]

  - Max Depth = 256
  - Call Chain = set_sequence_step_timeout ⇒ VL53L0X_GetVcselPulsePeriod ⇒ VL53L0X_get_vcsel_pulse_period ⇒ VL53L0X_RdByte ⇒ VL53L0X_read_byte ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_encode_timeout
  - >> VL53L0X_decode_timeout
  - >> VL53L0X_calc_timeout_mclks
  - >> VL53L0X_WrWord
  - >> VL53L0X_WrByte
  - >> VL53L0X_RdWord
  - >> VL53L0X_GetVcselPulsePeriod
  - >> VL53L0X_GetSequenceStepEnables
  [Called By]
  - >> VL53L0X_set_measurement_timing_budget_micro_seconds

  ulMainGetRunTimeCounterValue (Thumb, 78 bytes, Stack size 24 bytes, bos_freertos.o(i.ulMainGetRunTimeCounterValue))
  [Stack]

  - Max Depth = 36
  - Call Chain = ulMainGetRunTimeCounterValue ⇒ __aeabi_uidivmod
  [Calls]
  - >> xTaskGetTickCountFromISR
  - >> __aeabi_uidivmod
  [Called By]
  - >> vTaskSwitchContext
  - >> uxTaskGetSystemState

  ulTaskNotifyTake (Thumb, 144 bytes, Stack size 24 bytes, tasks.o(i.ulTaskNotifyTake))
  [Stack]

  - Max Depth = 40
  - Call Chain = ulTaskNotifyTake ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  - >> prvAddCurrentTaskToDelayedList
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> prvUARTCommandConsoleTask
  - >> PxMessagingTask

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

  - >> xTaskResumeAll
  - >> xTaskRemoveFromUnorderedEventList
  - >> vTaskPlaceOnUnorderedEventList
  - >> prvProcessExpiredTimer
  - >> prvProcessReceivedCommands
  - >> prvSwitchTimerLists
  - >> xTaskResumeFromISR
  - >> vTaskResume
  - >> vTaskSuspend
  - >> vTaskDelay
  - >> xTaskIncrementTick
  - >> vTaskDelete
  - >> prvCheckTasksWaitingTermination
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityDisinherit
  - >> vTaskPriorityInherit
  - >> vTaskPlaceOnEventListRestricted
  - >> vTaskPlaceOnEventList
  - >> vTaskPrioritySet
  - >> vTaskNotifyGiveFromISR
  - >> ulTaskNotifyTake

  uxTaskGetSystemState (Thumb, 130 bytes, Stack size 32 bytes, tasks.o(i.uxTaskGetSystemState))
  [Stack]

  - Max Depth = 72
  - Call Chain = uxTaskGetSystemState ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvListTaskWithinSingleList
  - >> ulMainGetRunTimeCounterValue
  [Called By]
  - >> vTaskList
  - >> vTaskGetRunTimeStats

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

  - >> pvPortMalloc

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

  - >> vTaskSwitchContext

  vEventGroupSetBitsCallback (Thumb, 16 bytes, Stack size 16 bytes, event_groups.o(i.vEventGroupSetBitsCallback))
  [Stack]

  - Max Depth = 112
  - Call Chain = vEventGroupSetBitsCallback ⇒ xEventGroupSetBits ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xEventGroupSetBits
  [Address Reference Count : 1]
  - event_groups.o(i.xEventGroupSetBitsFromISR)

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

  - >> xEventGroupCreate
  - >> prvCheckForValidListAndQueue
  - >> prvInitialiseTaskLists
  - >> xQueueCreateMutex
  - >> xQueueGenericReset

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

  - >> prvInitialiseTCBVariables
  - >> xTimerCreate

  vListInsert (Thumb, 54 bytes, Stack size 8 bytes, list.o(i.vListInsert))
  [Stack]

  - Max Depth = 8
  - Call Chain = vListInsert
  [Called By]
  - >> prvSwitchTimerLists
  - >> prvInsertTimerInActiveList
  - >> prvAddCurrentTaskToDelayedList
  - >> vTaskPlaceOnEventList

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

  - >> xTaskResumeAll
  - >> xTaskRemoveFromUnorderedEventList
  - >> vTaskPlaceOnUnorderedEventList
  - >> xTaskResumeFromISR
  - >> vTaskResume
  - >> vTaskSuspend
  - >> xTaskIncrementTick
  - >> vTaskDelete
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityDisinherit
  - >> vTaskPriorityInherit
  - >> vTaskPlaceOnEventListRestricted
  - >> vTaskPlaceOnEventList
  - >> xTaskGenericCreate
  - >> vTaskPrioritySet
  - >> vTaskNotifyGiveFromISR
  - >> ulTaskNotifyTake

  vMainConfigureTimerForRunTimeStats (Thumb, 18 bytes, Stack size 8 bytes, bos_freertos.o(i.vMainConfigureTimerForRunTimeStats))
  [Stack]

  - Max Depth = 20
  - Call Chain = vMainConfigureTimerForRunTimeStats ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> vTaskStartScheduler

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

  - >> xTaskResumeAll
  - >> xEventGroupSync
  - >> xEventGroupWaitBits
  - >> xEventGroupClearBits
  - >> vTimerSetTimerID
  - >> xTimerIsTimerActive
  - >> prvCheckForValidListAndQueue
  - >> vTaskResume
  - >> vTaskSuspend
  - >> uxTaskPriorityGet
  - >> vTaskDelete
  - >> prvCheckTasksWaitingTermination
  - >> xTaskCheckForTimeOut
  - >> vQueueWaitForMessageRestricted
  - >> uxQueueSpacesAvailable
  - >> uxQueueMessagesWaiting
  - >> xQueueGenericReceive
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> prvIsQueueEmpty
  - >> prvIsQueueFull
  - >> prvUnlockQueue
  - >> xTaskGenericCreate
  - >> vTaskPrioritySet
  - >> ulTaskNotifyTake
  - >> pvTimerGetTimerID
  - >> FreeRTOS_CLIRegisterCommand
  - >> StartMilliDelay
  - >> StartMicroDelay

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

  - >> xTaskResumeAll
  - >> xEventGroupSync
  - >> xEventGroupWaitBits
  - >> xEventGroupClearBits
  - >> vTimerSetTimerID
  - >> xTimerIsTimerActive
  - >> prvCheckForValidListAndQueue
  - >> vTaskResume
  - >> vTaskSuspend
  - >> uxTaskPriorityGet
  - >> vTaskDelete
  - >> prvCheckTasksWaitingTermination
  - >> xTaskCheckForTimeOut
  - >> vQueueWaitForMessageRestricted
  - >> uxQueueSpacesAvailable
  - >> uxQueueMessagesWaiting
  - >> xQueueGenericReceive
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> prvIsQueueEmpty
  - >> prvIsQueueFull
  - >> prvUnlockQueue
  - >> xTaskGenericCreate
  - >> vTaskPrioritySet
  - >> ulTaskNotifyTake
  - >> pvTimerGetTimerID
  - >> FreeRTOS_CLIRegisterCommand
  - >> StartMilliDelay
  - >> StartMicroDelay

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

  - >> xTaskResumeAll
  - >> xEventGroupSync
  - >> xEventGroupWaitBits
  - >> ToFTask
  - >> prvProcessTimerOrBlockTask
  - >> vTaskResume
  - >> vTaskSuspend
  - >> vTaskDelay
  - >> vTaskDelete
  - >> prvIdleTask
  - >> xQueueGenericReceive
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> xTaskGenericCreate
  - >> StartDefaultTask
  - >> prvUARTCommandConsoleTask
  - >> vTaskPrioritySet
  - >> ulTaskNotifyTake
  - >> PxMessagingTask

  vRegisterCLICommands (Thumb, 140 bytes, Stack size 8 bytes, bos.o(i.vRegisterCLICommands))
  [Stack]

  - Max Depth = 96
  - Call Chain = vRegisterCLICommands ⇒ RegisterModuleCLICommands ⇒ FreeRTOS_CLIRegisterCommand ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> RegisterModuleCLICommands
  - >> FreeRTOS_CLIRegisterCommand
  [Called By]
  - >> MX_FREERTOS_Init

  vTaskNotifyGiveFromISR (Thumb, 150 bytes, Stack size 24 bytes, tasks.o(i.vTaskNotifyGiveFromISR))
  [Stack]

  - Max Depth = 24
  - Call Chain = vTaskNotifyGiveFromISR
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR
  [Called By]
  - >> HAL_UART_RxCpltCallback
  - >> NotifyMessagingTaskFromISR

  writePxITMutex (Thumb, 62 bytes, Stack size 32 bytes, h08r6_uart.o(i.writePxITMutex))
  [Stack]

  - Max Depth = 144
  - Call Chain = writePxITMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_UART_Transmit_IT
  - >> osSemaphoreWait
  - >> GetUart
  [Called By]
  - >> prvUARTCommandConsoleTask
  - >> remoteBootloaderUpdate

  writePxMutex (Thumb, 84 bytes, Stack size 40 bytes, h08r6_uart.o(i.writePxMutex))
  [Stack]

  - Max Depth = 152
  - Call Chain = writePxMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_UART_Transmit
  - >> osSemaphoreWait
  - >> osSemaphoreRelease
  - >> GetUart
  [Called By]
  - >> infoCommand
  - >> exploreCommand
  - >> bootloaderUpdateCommand
  - >> demoCommand
  - >> Vl53l0xStreamCommand
  - >> Vl53l0xStopCommand
  - >> Vl53l0xMaxCommand
  - >> SendMeasurementResult
  - >> prvUARTCommandConsoleTask
  - >> SendMessageFromPort
  - >> PxMessagingTask
  - >> DisplayTopology
  - >> DisplayPortsDir
  - >> DisplayModuleStatus

  xEventGroupSetBitsFromISR (Thumb, 26 bytes, Stack size 24 bytes, event_groups.o(i.xEventGroupSetBitsFromISR))
  [Stack]

  - Max Depth = 152
  - Call Chain = xEventGroupSetBitsFromISR ⇒ xTimerPendFunctionCallFromISR ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xTimerPendFunctionCallFromISR
  [Called By]
  - >> EXTI2_3_IRQHandler

  xPortSysTickHandler (Thumb, 32 bytes, Stack size 8 bytes, port.o(i.xPortSysTickHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = xPortSysTickHandler ⇒ xTaskIncrementTick
  [Calls]
  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR
  - >> xTaskIncrementTick
  [Called By]
  - >> osSystickHandler

  xTimerPendFunctionCallFromISR (Thumb, 46 bytes, Stack size 40 bytes, timers.o(i.xTimerPendFunctionCallFromISR))
  [Stack]

  - Max Depth = 128
  - Call Chain = xTimerPendFunctionCallFromISR ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xQueueGenericSendFromISR
  [Called By]
  - >> xEventGroupSetBitsFromISR

  xEventGroupCreate (Thumb, 28 bytes, Stack size 8 bytes, event_groups.o(privileged_functions))
  [Stack]

  - Max Depth = 72
  - Call Chain = xEventGroupCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vListInitialise
  - >> pvPortMalloc
  [Called By]
  - >> Module_Init

  xEventGroupSetBits (Thumb, 200 bytes, Stack size 56 bytes, event_groups.o(privileged_functions))
  [Stack]

  - Max Depth = 96
  - Call Chain = xEventGroupSetBits ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> xTaskRemoveFromUnorderedEventList
  - >> vTaskSuspendAll
  [Called By]
  - >> xEventGroupSync
  - >> vEventGroupSetBitsCallback

  xEventGroupSync (Thumb, 234 bytes, Stack size 48 bytes, event_groups.o(privileged_functions), UNUSED)
  [Calls]

  - >> xTaskResumeAll
  - >> xTaskGetSchedulerState
  - >> vTaskSuspendAll
  - >> vTaskPlaceOnUnorderedEventList
  - >> uxTaskResetEventItemValue
  - >> xEventGroupSetBits
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical

  xEventGroupWaitBits (Thumb, 288 bytes, Stack size 56 bytes, event_groups.o(privileged_functions))
  [Stack]

  - Max Depth = 96
  - Call Chain = xEventGroupWaitBits ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> xTaskGetSchedulerState
  - >> vTaskSuspendAll
  - >> vTaskPlaceOnUnorderedEventList
  - >> uxTaskResetEventItemValue
  - >> prvTestWaitCondition
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> WaitForMeasurement

  xEventGroupClearBits (Thumb, 62 bytes, Stack size 24 bytes, event_groups.o(privileged_functions))
  [Stack]

  - Max Depth = 24
  - Call Chain = xEventGroupClearBits
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> Stop_ToF
  - >> WaitForMeasurement

  xQueueGenericReset (Thumb, 126 bytes, Stack size 16 bytes, queue.o(privileged_functions))
  [Stack]

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

  xQueueGenericCreate (Thumb, 120 bytes, Stack size 40 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 104
  - Call Chain = xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> pvPortMalloc
  - >> xQueueGenericReset
  [Called By]
  - >> prvCheckForValidListAndQueue
  - >> xQueueCreateCountingSemaphore
  - >> osSemaphoreCreate

  xQueueGenericSend (Thumb, 334 bytes, Stack size 48 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 88
  - Call Chain = xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> xTaskGetSchedulerState
  - >> vTaskSuspendAll
  - >> xTaskRemoveFromEventList
  - >> xTaskCheckForTimeOut
  - >> vTaskSetTimeOutState
  - >> vTaskPlaceOnEventList
  - >> prvCopyDataToQueue
  - >> prvIsQueueFull
  - >> prvUnlockQueue
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGiveMutexRecursive
  - >> xQueueCreateMutex
  - >> osSemaphoreCreate
  - >> xTimerGenericCommand
  - >> osSemaphoreRelease

  xQueueCreateMutex (Thumb, 88 bytes, Stack size 16 bytes, queue.o(privileged_functions), UNUSED)
  [Calls]

  - >> vListInitialise
  - >> pvPortMalloc
  - >> xQueueGenericSend

  xQueueGiveMutexRecursive (Thumb, 60 bytes, Stack size 16 bytes, queue.o(privileged_functions), UNUSED)
  [Calls]

  - >> xTaskGetCurrentTaskHandle
  - >> xQueueGenericSend

  xQueueGenericReceive (Thumb, 368 bytes, Stack size 48 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 88
  - Call Chain = xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> xTaskGetSchedulerState
  - >> vTaskSuspendAll
  - >> xTaskRemoveFromEventList
  - >> xTaskCheckForTimeOut
  - >> vTaskSetTimeOutState
  - >> vTaskPriorityInherit
  - >> vTaskPlaceOnEventList
  - >> pvTaskIncrementMutexHeldCount
  - >> prvCopyDataFromQueue
  - >> prvIsQueueEmpty
  - >> prvUnlockQueue
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> osSemaphoreWait
  - >> prvProcessReceivedCommands
  - >> xQueueTakeMutexRecursive

  xQueueTakeMutexRecursive (Thumb, 66 bytes, Stack size 24 bytes, queue.o(privileged_functions), UNUSED)
  [Calls]

  - >> xTaskGetCurrentTaskHandle
  - >> xQueueGenericReceive

  xQueueCreateCountingSemaphore (Thumb, 78 bytes, Stack size 16 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 120
  - Call Chain = xQueueCreateCountingSemaphore ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueGenericCreate
  [Called By]
  - >> osSemaphoreCreate

  xQueueGenericSendFromISR (Thumb, 178 bytes, Stack size 48 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 88
  - Call Chain = xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR
  - >> xTaskRemoveFromEventList
  - >> prvCopyDataToQueue
  [Called By]
  - >> xTimerPendFunctionCallFromISR
  - >> xTimerGenericCommand

  xQueueGiveFromISR (Thumb, 156 bytes, Stack size 24 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 40
  - Call Chain = xQueueGiveFromISR ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR
  - >> xTaskRemoveFromEventList
  [Called By]
  - >> HAL_UART_TxCpltCallback
  - >> HAL_UART_RxCpltCallback
  - >> osSemaphoreRelease

  xQueueReceiveFromISR (Thumb, 144 bytes, Stack size 40 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 56
  - Call Chain = xQueueReceiveFromISR ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR
  - >> xTaskRemoveFromEventList
  - >> prvCopyDataFromQueue
  [Called By]
  - >> osSemaphoreWait

  xQueuePeekFromISR (Thumb, 108 bytes, Stack size 32 bytes, queue.o(privileged_functions), UNUSED)
  [Calls]

  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR
  - >> prvCopyDataFromQueue

  uxQueueMessagesWaiting (Thumb, 28 bytes, Stack size 16 bytes, queue.o(privileged_functions), UNUSED)
  [Calls]

  - >> vPortExitCritical
  - >> vPortEnterCritical

  uxQueueSpacesAvailable (Thumb, 34 bytes, Stack size 16 bytes, queue.o(privileged_functions), UNUSED)
  [Calls]

  - >> vPortExitCritical
  - >> vPortEnterCritical

  uxQueueMessagesWaitingFromISR (Thumb, 16 bytes, Stack size 0 bytes, queue.o(privileged_functions), UNUSED)

  vQueueUnregisterQueue (Thumb, 40 bytes, Stack size 8 bytes, queue.o(privileged_functions), UNUSED)
  [Called By]

  - >> vQueueDelete

  vQueueDelete (Thumb, 30 bytes, Stack size 16 bytes, queue.o(privileged_functions), UNUSED)
  [Calls]

  - >> vPortFree
  - >> vQueueUnregisterQueue

  uxQueueGetQueueNumber (Thumb, 6 bytes, Stack size 0 bytes, queue.o(privileged_functions), UNUSED)

  vQueueSetQueueNumber (Thumb, 4 bytes, Stack size 0 bytes, queue.o(privileged_functions), UNUSED)

  ucQueueGetQueueType (Thumb, 8 bytes, Stack size 0 bytes, queue.o(privileged_functions), UNUSED)

  xQueueIsQueueEmptyFromISR (Thumb, 26 bytes, Stack size 0 bytes, queue.o(privileged_functions), UNUSED)

  xQueueIsQueueFullFromISR (Thumb, 28 bytes, Stack size 0 bytes, queue.o(privileged_functions), UNUSED)

  vQueueAddToRegistry (Thumb, 40 bytes, Stack size 8 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 8
  - Call Chain = vQueueAddToRegistry
  [Called By]
  - >> prvCheckForValidListAndQueue

  vQueueWaitForMessageRestricted (Thumb, 60 bytes, Stack size 16 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 48
  - Call Chain = vQueueWaitForMessageRestricted ⇒ vTaskPlaceOnEventListRestricted ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vTaskPlaceOnEventListRestricted
  - >> prvUnlockQueue
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> prvProcessTimerOrBlockTask

  xTaskGenericCreate (Thumb, 288 bytes, Stack size 48 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 136
  - Call Chain = xTaskGenericCreate ⇒ prvAllocateTCBAndStack ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vListInsertEnd
  - >> pxPortInitialiseStack
  - >> prvAllocateTCBAndStack
  - >> prvInitialiseTCBVariables
  - >> prvInitialiseTaskLists
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> MX_FREERTOS_Init
  - >> xTimerCreateTimerTask
  - >> vTaskStartScheduler
  - >> Module_Init

  vTaskDelete (Thumb, 134 bytes, Stack size 16 bytes, tasks.o(privileged_functions), UNUSED)
  [Calls]

  - >> vListInsertEnd
  - >> uxListRemove
  - >> prvResetNextTaskUnblockTime
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical

  xTaskIncrementTick (Thumb, 274 bytes, Stack size 24 bytes, tasks.o(privileged_functions))
  [Stack]

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

  xTaskResumeAll (Thumb, 284 bytes, Stack size 16 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 40
  - Call Chain = xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  - >> xTaskIncrementTick
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> vPortFree
  - >> pvPortMalloc
  - >> xEventGroupSync
  - >> xEventGroupSetBits
  - >> xEventGroupWaitBits
  - >> prvProcessTimerOrBlockTask
  - >> vTaskDelay
  - >> uxTaskGetSystemState
  - >> prvCheckTasksWaitingTermination
  - >> xQueueGenericReceive
  - >> xQueueGenericSend

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

  - >> vPortFree
  - >> pvPortMalloc
  - >> xEventGroupSync
  - >> xEventGroupSetBits
  - >> xEventGroupWaitBits
  - >> prvProcessTimerOrBlockTask
  - >> vTaskDelay
  - >> uxTaskGetSystemState
  - >> prvCheckTasksWaitingTermination
  - >> xQueueGenericReceive
  - >> xQueueGenericSend

  vTaskDelay (Thumb, 76 bytes, Stack size 16 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 56
  - Call Chain = vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> uxListRemove
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvAddCurrentTaskToDelayedList
  - >> vPortYield
  [Called By]
  - >> osDelay

  uxTaskPriorityGet (Thumb, 32 bytes, Stack size 16 bytes, tasks.o(privileged_functions), UNUSED)
  [Calls]

  - >> vPortExitCritical
  - >> vPortEnterCritical

  uxTaskPriorityGetFromISR (Thumb, 36 bytes, Stack size 24 bytes, tasks.o(privileged_functions), UNUSED)
  [Calls]

  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR

  vTaskPrioritySet (Thumb, 214 bytes, Stack size 32 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 32
  - Call Chain = vTaskPrioritySet
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> SendMessageFromPort

  vTaskSwitchContext (Thumb, 232 bytes, Stack size 8 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 44
  - Call Chain = vTaskSwitchContext ⇒ ulMainGetRunTimeCounterValue ⇒ __aeabi_uidivmod
  [Calls]
  - >> vApplicationStackOverflowHook
  - >> ulMainGetRunTimeCounterValue
  - >> memcmp
  [Called By]
  - >> PendSV_Handler
  - >> vTaskSuspend

  vTaskSuspend (Thumb, 148 bytes, Stack size 16 bytes, tasks.o(privileged_functions), UNUSED)
  [Calls]

  - >> vListInsertEnd
  - >> uxListRemove
  - >> vTaskSwitchContext
  - >> prvResetNextTaskUnblockTime
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical

  vTaskResume (Thumb, 172 bytes, Stack size 16 bytes, tasks.o(privileged_functions), UNUSED)
  [Calls]

  - >> vListInsertEnd
  - >> uxListRemove
  - >> prvTaskIsTaskSuspended
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical

  xTaskResumeFromISR (Thumb, 116 bytes, Stack size 24 bytes, tasks.o(privileged_functions), UNUSED)
  [Calls]

  - >> vListInsertEnd
  - >> uxListRemove
  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR
  - >> prvTaskIsTaskSuspended

  vTaskStartScheduler (Thumb, 76 bytes, Stack size 24 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 184
  - Call Chain = vTaskStartScheduler ⇒ xTimerCreateTimerTask ⇒ xTaskGenericCreate ⇒ prvAllocateTCBAndStack ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTimerCreateTimerTask
  - >> xPortStartScheduler
  - >> xTaskGenericCreate
  - >> vMainConfigureTimerForRunTimeStats
  [Called By]
  - >> osKernelStart

  vTaskEndScheduler (Thumb, 16 bytes, Stack size 8 bytes, tasks.o(privileged_functions), UNUSED)
  [Calls]

  - >> vPortEndScheduler

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

  - >> prvSampleTimeNow
  - >> SettingMeasurementMode
  - >> StartScastDMAStream
  - >> SetupDMAStreamsFromMessage

  xTaskGetTickCountFromISR (Thumb, 8 bytes, Stack size 0 bytes, tasks.o(privileged_functions))
  [Called By]

  - >> ulMainGetRunTimeCounterValue

  uxTaskGetNumberOfTasks (Thumb, 6 bytes, Stack size 0 bytes, tasks.o(privileged_functions), UNUSED)

  vTaskPlaceOnEventList (Thumb, 72 bytes, Stack size 16 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 32
  - Call Chain = vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vListInsertEnd
  - >> vListInsert
  - >> uxListRemove
  - >> prvAddCurrentTaskToDelayedList
  [Called By]
  - >> xQueueGenericReceive
  - >> xQueueGenericSend

  vTaskPlaceOnUnorderedEventList (Thumb, 110 bytes, Stack size 24 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 40
  - Call Chain = vTaskPlaceOnUnorderedEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  - >> prvAddCurrentTaskToDelayedList
  [Called By]
  - >> xEventGroupSync
  - >> xEventGroupWaitBits

  vTaskPlaceOnEventListRestricted (Thumb, 52 bytes, Stack size 16 bytes, tasks.o(privileged_functions))
  [Stack]

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

  xTaskRemoveFromEventList (Thumb, 112 bytes, Stack size 16 bytes, tasks.o(privileged_functions))
  [Stack]

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

  xTaskRemoveFromUnorderedEventList (Thumb, 182 bytes, Stack size 24 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 24
  - Call Chain = xTaskRemoveFromUnorderedEventList
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xEventGroupSetBits

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

  - >> xTaskCheckForTimeOut
  - >> xQueueGenericReceive
  - >> xQueueGenericSend

  xTaskCheckForTimeOut (Thumb, 106 bytes, Stack size 16 bytes, tasks.o(privileged_functions))
  [Stack]

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

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

  - >> prvUnlockQueue

  uxTaskGetTaskNumber (Thumb, 16 bytes, Stack size 0 bytes, tasks.o(privileged_functions), UNUSED)

  vTaskSetTaskNumber (Thumb, 10 bytes, Stack size 0 bytes, tasks.o(privileged_functions), UNUSED)

  uxTaskGetStackHighWaterMark (Thumb, 32 bytes, Stack size 24 bytes, tasks.o(privileged_functions), UNUSED)
  [Calls]

  - >> prvTaskCheckFreeStackSpace

  xTaskGetCurrentTaskHandle (Thumb, 6 bytes, Stack size 0 bytes, tasks.o(privileged_functions), UNUSED)
  [Called By]

  - >> xQueueTakeMutexRecursive
  - >> xQueueGiveMutexRecursive

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

  - >> xEventGroupSync
  - >> osSystickHandler
  - >> xEventGroupWaitBits
  - >> xQueueGenericReceive
  - >> xQueueGenericSend
  - >> xTimerGenericCommand

  vTaskPriorityInherit (Thumb, 128 bytes, Stack size 16 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 16
  - Call Chain = vTaskPriorityInherit
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xQueueGenericReceive

  xTaskPriorityDisinherit (Thumb, 124 bytes, Stack size 16 bytes, tasks.o(privileged_functions))
  [Stack]

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

  vTaskList (Thumb, 180 bytes, Stack size 32 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 104
  - Call Chain = vTaskList ⇒ uxTaskGetSystemState ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortFree
  - >> pvPortMalloc
  - >> uxTaskGetSystemState
  - >> prvWriteNameToBuffer
  - >> __2sprintf
  - >> strlen
  [Called By]
  - >> prvTaskStatsCommand

  vTaskGetRunTimeStats (Thumb, 166 bytes, Stack size 32 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 104
  - Call Chain = vTaskGetRunTimeStats ⇒ uxTaskGetSystemState ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortFree
  - >> pvPortMalloc
  - >> uxTaskGetSystemState
  - >> prvWriteNameToBuffer
  - >> __aeabi_uidivmod
  - >> __2sprintf
  - >> strlen
  [Called By]
  - >> prvRunTimeStatsCommand

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

  - >> xEventGroupSync
  - >> xEventGroupWaitBits

  xTimerGenericCommand (Thumb, 100 bytes, Stack size 40 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 128
  - Call Chain = xTimerGenericCommand ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xTaskGetSchedulerState
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend
  [Called By]
  - >> prvProcessExpiredTimer
  - >> prvProcessReceivedCommands
  - >> prvSwitchTimerLists
  - >> SettingMeasurementMode
  - >> StartScastDMAStream
  - >> SetupDMAStreamsFromMessage

  xTimerCreateTimerTask (Thumb, 58 bytes, Stack size 24 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 160
  - Call Chain = xTimerCreateTimerTask ⇒ xTaskGenericCreate ⇒ prvAllocateTCBAndStack ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvCheckForValidListAndQueue
  - >> xTaskGenericCreate
  [Called By]
  - >> vTaskStartScheduler

  xTimerCreate (Thumb, 126 bytes, Stack size 40 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 152
  - Call Chain = xTimerCreate ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vListInitialiseItem
  - >> pvPortMalloc
  - >> prvCheckForValidListAndQueue
  [Called By]
  - >> SettingMeasurementMode
  - >> StartScastDMAStream
  - >> SetupDMAStreamsFromMessage

  xTimerIsTimerActive (Thumb, 36 bytes, Stack size 16 bytes, timers.o(privileged_functions), UNUSED)
  [Calls]

  - >> vPortExitCritical
  - >> vPortEnterCritical

  pvTimerGetTimerID (Thumb, 30 bytes, Stack size 16 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 16
  - Call Chain = pvTimerGetTimerID
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> HandleTimeout
  - >> StreamTimerCallback

  vTimerSetTimerID (Thumb, 30 bytes, Stack size 16 bytes, timers.o(privileged_functions), UNUSED)
  [Calls]

  - >> vPortExitCritical
  - >> vPortEnterCritical

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

  - >> xTaskGenericCreate

  xPortStartScheduler (Thumb, 48 bytes, Stack size 8 bytes, port.o(privileged_functions))
  [Stack]

  - Max Depth = 28
  - Call Chain = xPortStartScheduler ⇒ prvSetupTimerInterrupt ⇒ __aeabi_uidivmod
  [Calls]
  - >> __asm___6_port_c_39a90d8d__prvPortStartFirstTask
  - >> prvSetupTimerInterrupt
  [Called By]
  - >> vTaskStartScheduler

  vPortEndScheduler (Thumb, 30 bytes, Stack size 0 bytes, port.o(privileged_functions), UNUSED)
  [Called By]

  - >> vTaskEndScheduler

  pvPortMalloc (Thumb, 274 bytes, Stack size 24 bytes, heap_4.o(privileged_functions))
  [Stack]

  - Max Depth = 64
  - Call Chain = pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vApplicationMallocFailedHook
  - >> prvInsertBlockIntoFreeList
  - >> prvHeapInit
  [Called By]
  - >> xEventGroupCreate
  - >> prvAllocateTCBAndStack
  - >> xQueueCreateMutex
  - >> xQueueGenericCreate
  - >> xTimerCreate
  - >> vTaskList
  - >> vTaskGetRunTimeStats
  - >> FreeRTOS_CLIRegisterCommand

  vPortFree (Thumb, 120 bytes, Stack size 16 bytes, heap_4.o(privileged_functions))
  [Stack]

  - Max Depth = 56
  - Call Chain = vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvInsertBlockIntoFreeList
  [Called By]
  - >> prvProcessReceivedCommands
  - >> prvDeleteTCB
  - >> prvAllocateTCBAndStack
  - >> vQueueDelete
  - >> vTaskList
  - >> vTaskGetRunTimeStats

  xPortGetFreeHeapSize (Thumb, 6 bytes, Stack size 0 bytes, heap_4.o(privileged_functions), UNUSED)

  xPortGetMinimumEverFreeHeapSize (Thumb, 6 bytes, Stack size 0 bytes, heap_4.o(privileged_functions), UNUSED)

  vPortInitialiseBlocks (Thumb, 2 bytes, Stack size 0 bytes, heap_4.o(privileged_functions), UNUSED)

  ### Local Symbols

  NVIC_SetPriority (Thumb, 110 bytes, Stack size 8 bytes, stm32f0xx_hal_cortex.o(i.NVIC_SetPriority))
  [Stack]

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

  DMA_SetConfig (Thumb, 32 bytes, Stack size 8 bytes, stm32f0xx_hal_dma.o(i.DMA_SetConfig))
  [Stack]

  - Max Depth = 8
  - Call Chain = DMA_SetConfig
  [Called By]
  - >> HAL_DMA_Start_IT

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

  - >> HAL_FLASH_Program

  FLASH_SetErrorCode (Thumb, 56 bytes, Stack size 0 bytes, stm32f0xx_hal_flash.o(i.FLASH_SetErrorCode))
  [Called By]

  - >> FLASH_WaitForLastOperation

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

  - >> HAL_FLASHEx_Erase

  UART_DMAError (Thumb, 38 bytes, Stack size 16 bytes, stm32f0xx_hal_uart.o(i.UART_DMAError))
  [Stack]

  - Max Depth = 32
  - Call Chain = UART_DMAError ⇒ HAL_UART_ErrorCallback ⇒ HAL_UART_Receive_IT
  [Calls]
  - >> HAL_UART_ErrorCallback
  [Address Reference Count : 1]
  - stm32f0xx_hal_uart.o(i.HAL_UART_Receive_DMA)

  UART_DMAReceiveCplt (Thumb, 66 bytes, Stack size 16 bytes, stm32f0xx_hal_uart.o(i.UART_DMAReceiveCplt))
  [Stack]

  - Max Depth = 120
  - Call Chain = UART_DMAReceiveCplt ⇒ HAL_UART_RxCpltCallback ⇒ PortMemDMA1_Setup ⇒ HAL_UART_Receive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig
  [Calls]
  - >> HAL_UART_RxCpltCallback
  [Address Reference Count : 1]
  - stm32f0xx_hal_uart.o(i.HAL_UART_Receive_DMA)

  UART_DMARxHalfCplt (Thumb, 14 bytes, Stack size 16 bytes, stm32f0xx_hal_uart.o(i.UART_DMARxHalfCplt))
  [Stack]

  - Max Depth = 16
  - Call Chain = UART_DMARxHalfCplt
  [Calls]
  - >> HAL_UART_RxHalfCpltCallback
  [Address Reference Count : 1]
  - stm32f0xx_hal_uart.o(i.HAL_UART_Receive_DMA)

  I2C_IsAcknowledgeFailed (Thumb, 186 bytes, Stack size 16 bytes, stm32f0xx_hal_i2c.o(i.I2C_IsAcknowledgeFailed))
  [Stack]

  - Max Depth = 16
  - Call Chain = I2C_IsAcknowledgeFailed
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> I2C_WaitOnTXISFlagUntilTimeout
  - >> I2C_WaitOnSTOPFlagUntilTimeout

  I2C_MasterReceive_ISR (Thumb, 384 bytes, Stack size 16 bytes, stm32f0xx_hal_i2c.o(i.I2C_MasterReceive_ISR))
  [Stack]

  - Max Depth = 36
  - Call Chain = I2C_MasterReceive_ISR ⇒ I2C_TransferConfig
  [Calls]
  - >> HAL_I2C_MemRxCpltCallback
  - >> HAL_I2C_ErrorCallback
  - >> I2C_TransferConfig
  - >> HAL_I2C_MasterRxCpltCallback
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

  I2C_MasterTransmit_ISR (Thumb, 382 bytes, Stack size 16 bytes, stm32f0xx_hal_i2c.o(i.I2C_MasterTransmit_ISR))
  [Stack]

  - Max Depth = 36
  - Call Chain = I2C_MasterTransmit_ISR ⇒ I2C_TransferConfig
  [Calls]
  - >> HAL_I2C_MemTxCpltCallback
  - >> HAL_I2C_MasterTxCpltCallback
  - >> HAL_I2C_ErrorCallback
  - >> I2C_TransferConfig
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

  I2C_SlaveReceive_ISR (Thumb, 218 bytes, Stack size 8 bytes, stm32f0xx_hal_i2c.o(i.I2C_SlaveReceive_ISR))
  [Stack]

  - Max Depth = 8
  - Call Chain = I2C_SlaveReceive_ISR
  [Calls]
  - >> HAL_I2C_SlaveRxCpltCallback
  - >> HAL_I2C_ErrorCallback
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

  I2C_SlaveTransmit_ISR (Thumb, 238 bytes, Stack size 8 bytes, stm32f0xx_hal_i2c.o(i.I2C_SlaveTransmit_ISR))
  [Stack]

  - Max Depth = 8
  - Call Chain = I2C_SlaveTransmit_ISR
  [Calls]
  - >> HAL_I2C_SlaveTxCpltCallback
  - >> HAL_I2C_ErrorCallback
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

  I2C_TransferConfig (Thumb, 42 bytes, Stack size 20 bytes, stm32f0xx_hal_i2c.o(i.I2C_TransferConfig))
  [Stack]

  - Max Depth = 20
  - Call Chain = I2C_TransferConfig
  [Called By]
  - >> HAL_I2C_Master_Transmit
  - >> HAL_I2C_Master_Receive
  - >> I2C_MasterTransmit_ISR
  - >> I2C_MasterReceive_ISR

  I2C_WaitOnFlagUntilTimeout (Thumb, 170 bytes, Stack size 40 bytes, stm32f0xx_hal_i2c.o(i.I2C_WaitOnFlagUntilTimeout))
  [Stack]

  - Max Depth = 40
  - Call Chain = I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> HAL_I2C_Master_Transmit
  - >> HAL_I2C_Master_Receive

  I2C_WaitOnSTOPFlagUntilTimeout (Thumb, 92 bytes, Stack size 16 bytes, stm32f0xx_hal_i2c.o(i.I2C_WaitOnSTOPFlagUntilTimeout))
  [Stack]

  - Max Depth = 32
  - Call Chain = I2C_WaitOnSTOPFlagUntilTimeout ⇒ I2C_IsAcknowledgeFailed
  [Calls]
  - >> HAL_GetTick
  - >> I2C_IsAcknowledgeFailed
  [Called By]
  - >> HAL_I2C_Master_Transmit
  - >> HAL_I2C_Master_Receive

  I2C_WaitOnTXISFlagUntilTimeout (Thumb, 96 bytes, Stack size 16 bytes, stm32f0xx_hal_i2c.o(i.I2C_WaitOnTXISFlagUntilTimeout))
  [Stack]

  - Max Depth = 32
  - Call Chain = I2C_WaitOnTXISFlagUntilTimeout ⇒ I2C_IsAcknowledgeFailed
  [Calls]
  - >> HAL_GetTick
  - >> I2C_IsAcknowledgeFailed
  [Called By]
  - >> HAL_I2C_Master_Transmit

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

  - >> BOS_Init
  - >> resetCommand
  - >> bootloaderUpdateCommand
  - >> PxMessagingTask

  addbuttonCommand (Thumb, 212 bytes, Stack size 40 bytes, bos.o(i.addbuttonCommand))
  [Stack]

  - Max Depth = 288
  - Call Chain = addbuttonCommand ⇒ AddPortButton ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FreeRTOS_CLIGetParameter
  - >> AddPortButton
  - >> atol
  - >> __2sprintf
  - >> strncmp
  [Address Reference Count : 1]
  - bos.o(.constdata)

  bootloaderUpdateCommand (Thumb, 338 bytes, Stack size 32 bytes, bos.o(i.bootloaderUpdateCommand))
  [Stack]

  - Max Depth = 472
  - Call Chain = bootloaderUpdateCommand ⇒ remoteBootloaderUpdate ⇒ StartScastDMAStream ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageToModule
  - >> NVIC_SystemReset
  - >> writePxMutex
  - >> osDelay
  - >> FreeRTOS_CLIGetParameter
  - >> remoteBootloaderUpdate
  - >> SendMessageFromPort
  - >> atol
  - >> __2sprintf
  - >> strncmp
  - >> strcpy
  - >> strlen
  - >> strcat
  [Address Reference Count : 1]
  - bos.o(.constdata)

  dateCommand (Thumb, 44 bytes, Stack size 24 bytes, bos.o(i.dateCommand))
  [Stack]

  - Max Depth = 76
  - Call Chain = dateCommand ⇒ GetTimeDate ⇒ HAL_RTC_GetTime
  [Calls]
  - >> GetTimeDate
  - >> GetDateString
  - >> __2sprintf
  [Address Reference Count : 1]
  - bos.o(.constdata)

  defaultCommand (Thumb, 164 bytes, Stack size 24 bytes, bos.o(i.defaultCommand))
  [Stack]

  - Max Depth = 352
  - Call Chain = defaultCommand ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> SendMessageToModule
  - >> osDelay
  - >> FreeRTOS_CLIGetParameter
  - >> SaveEEparams
  - >> ClearROtopology
  - >> ClearEEportsDir
  - >> strncmp
  - >> strcpy
  - >> __aeabi_memcpy4
  [Address Reference Count : 1]
  - bos.o(.constdata)

  exploreCommand (Thumb, 174 bytes, Stack size 24 bytes, bos.o(i.exploreCommand))
  [Stack]

  - Max Depth = 408
  - Call Chain = exploreCommand ⇒ Explore ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> writePxMutex
  - >> Explore
  - >> DisplayTopology
  - >> DisplayPortsDir
  - >> __2sprintf
  - >> strcpy
  - >> strlen
  [Address Reference Count : 1]
  - bos.o(.constdata)

  flashsizeCommand (Thumb, 38 bytes, Stack size 16 bytes, bos.o(i.flashsizeCommand))
  [Stack]

  - Max Depth = 40
  - Call Chain = flashsizeCommand ⇒ __2sprintf
  [Calls]
  - >> __2sprintf
  [Address Reference Count : 1]
  - bos.o(.constdata)

  getCommand (Thumb, 610 bytes, Stack size 40 bytes, bos.o(i.getCommand))
  [Stack]

  - Max Depth = 64
  - Call Chain = getCommand ⇒ __2sprintf
  [Calls]
  - >> FreeRTOS_CLIGetParameter
  - >> __2sprintf
  - >> strncmp
  - >> strcpy
  - >> strcmp
  [Address Reference Count : 1]
  - bos.o(.constdata)

  groupCommand (Thumb, 418 bytes, Stack size 88 bytes, bos.o(i.groupCommand))
  [Stack]

  - Max Depth = 192
  - Call Chain = groupCommand ⇒ GetID ⇒ atol ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> FreeRTOS_CLIGetParameter
  - >> GetID
  - >> AddModuleToGroup
  - >> __2sprintf
  - >> strcpy
  - >> strcmp
  - >> strncpy
  - >> strcat
  - >> __aeabi_memclr4
  [Address Reference Count : 1]
  - bos.o(.constdata)

  idcodeCommand (Thumb, 158 bytes, Stack size 24 bytes, bos.o(i.idcodeCommand))
  [Stack]

  - Max Depth = 48
  - Call Chain = idcodeCommand ⇒ __2sprintf
  [Calls]
  - >> HAL_GetREVID
  - >> HAL_GetDEVID
  - >> __ARM_common_switch8
  - >> __2sprintf
  [Address Reference Count : 1]
  - bos.o(.constdata)

  infoCommand (Thumb, 174 bytes, Stack size 24 bytes, bos.o(i.infoCommand))
  [Stack]

  - Max Depth = 368
  - Call Chain = infoCommand ⇒ ReadPortsDir ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> writePxMutex
  - >> ReadPortsDir
  - >> DisplayTopology
  - >> DisplayPortsDir
  - >> __2sprintf
  - >> strlen
  [Address Reference Count : 1]
  - bos.o(.constdata)

  nameCommand (Thumb, 148 bytes, Stack size 24 bytes, bos.o(i.nameCommand))
  [Stack]

  - Max Depth = 256
  - Call Chain = nameCommand ⇒ NameModule ⇒ SaveEEalias ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FreeRTOS_CLIGetParameter
  - >> NameModule
  - >> __2sprintf
  [Address Reference Count : 1]
  - bos.o(.constdata)

  pingCommand (Thumb, 112 bytes, Stack size 16 bytes, bos.o(i.pingCommand))
  [Stack]

  - Max Depth = 88
  - Call Chain = pingCommand ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> osDelay
  - >> __2sprintf
  [Address Reference Count : 1]
  - bos.o(.constdata)

  prvRunTimeStatsCommand (Thumb, 44 bytes, Stack size 24 bytes, bos.o(i.prvRunTimeStatsCommand))
  [Stack]

  - Max Depth = 128
  - Call Chain = prvRunTimeStatsCommand ⇒ vTaskGetRunTimeStats ⇒ uxTaskGetSystemState ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskGetRunTimeStats
  - >> strcpy
  - >> strlen
  [Address Reference Count : 1]
  - bos.o(.constdata)

  prvTaskStatsCommand (Thumb, 44 bytes, Stack size 24 bytes, bos.o(i.prvTaskStatsCommand))
  [Stack]

  - Max Depth = 128
  - Call Chain = prvTaskStatsCommand ⇒ vTaskList ⇒ uxTaskGetSystemState ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskList
  - >> strcpy
  - >> strlen
  [Address Reference Count : 1]
  - bos.o(.constdata)

  removebuttonCommand (Thumb, 90 bytes, Stack size 24 bytes, bos.o(i.removebuttonCommand))
  [Stack]

  - Max Depth = 224
  - Call Chain = removebuttonCommand ⇒ RemovePortButton ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FreeRTOS_CLIGetParameter
  - >> RemovePortButton
  - >> atol
  - >> __2sprintf
  [Address Reference Count : 1]
  - bos.o(.constdata)

  resetCommand (Thumb, 16 bytes, Stack size 0 bytes, bos.o(i.resetCommand))
  [Calls]

  - >> NVIC_SystemReset
  [Address Reference Count : 1]
  - bos.o(.constdata)

  scastCommand (Thumb, 410 bytes, Stack size 136 bytes, bos.o(i.scastCommand))
  [Stack]

  - Max Depth = 528
  - Call Chain = scastCommand ⇒ StartScastDMAStream ⇒ SendMessageToModule ⇒ BroadcastMessage ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> FreeRTOS_CLIGetParameter
  - >> StartScastDMAStream
  - >> GetID
  - >> atol
  - >> __2sprintf
  - >> strncmp
  - >> strncpy
  [Address Reference Count : 1]
  - bos.o(.constdata)

  setBaudrateCommand (Thumb, 124 bytes, Stack size 40 bytes, bos.o(i.setBaudrateCommand))
  [Stack]

  - Max Depth = 188
  - Call Chain = setBaudrateCommand ⇒ UpdateBaudrate ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> UpdateBaudrate
  - >> FreeRTOS_CLIGetParameter
  - >> atol
  - >> __2sprintf
  - >> strcpy
  [Address Reference Count : 1]
  - bos.o(.constdata)

  setCommand (Thumb, 2014 bytes, Stack size 96 bytes, bos.o(i.setCommand))
  [Stack]

  - Max Depth = 320
  - Call Chain = setCommand ⇒ BOS_CalendarConfig ⇒ EE_WriteVariable ⇒ EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FreeRTOS_CLIGetParameter
  - >> EE_WriteVariable
  - >> GetTimeDate
  - >> BOS_CalendarConfig
  - >> atoi
  - >> __2sprintf
  - >> strncmp
  - >> strcpy
  - >> strcat
  [Address Reference Count : 1]
  - bos.o(.constdata)

  statusCommand (Thumb, 28 bytes, Stack size 16 bytes, bos.o(i.statusCommand))
  [Stack]

  - Max Depth = 192
  - Call Chain = statusCommand ⇒ DisplayModuleStatus ⇒ writePxMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> DisplayModuleStatus
  [Address Reference Count : 1]
  - bos.o(.constdata)

  timeCommand (Thumb, 154 bytes, Stack size 32 bytes, bos.o(i.timeCommand))
  [Stack]

  - Max Depth = 84
  - Call Chain = timeCommand ⇒ GetTimeDate ⇒ HAL_RTC_GetTime
  [Calls]
  - >> GetTimeDate
  - >> __2sprintf
  [Address Reference Count : 1]
  - bos.o(.constdata)

  uuidCommand (Thumb, 72 bytes, Stack size 24 bytes, bos.o(i.uuidCommand))
  [Stack]

  - Max Depth = 48
  - Call Chain = uuidCommand ⇒ __2sprintf
  [Calls]
  - >> __2sprintf
  - >> strcat
  [Address Reference Count : 1]
  - bos.o(.constdata)

  EE_FindValidPage (Thumb, 86 bytes, Stack size 0 bytes, bos_eeprom.o(i.EE_FindValidPage))
  [Called By]

  - >> EE_VerifyPageFullWriteVariable
  - >> EE_PageTransfer
  - >> EE_ReadVariable

  EE_PageTransfer (Thumb, 326 bytes, Stack size 48 bytes, bos_eeprom.o(i.EE_PageTransfer))
  [Stack]

  - Max Depth = 160
  - Call Chain = EE_PageTransfer ⇒ EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_PageErase
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Program
  - >> HAL_FLASH_Lock
  - >> FLASH_WaitForLastOperation
  - >> EE_VerifyPageFullWriteVariable
  - >> EE_FindValidPage
  - >> EE_ReadVariable
  [Called By]
  - >> EE_WriteVariable

  EE_VerifyPageFullWriteVariable (Thumb, 176 bytes, Stack size 32 bytes, bos_eeprom.o(i.EE_VerifyPageFullWriteVariable))
  [Stack]

  - Max Depth = 112
  - Call Chain = EE_VerifyPageFullWriteVariable ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> HAL_FLASH_Unlock
  - >> HAL_FLASH_Program
  - >> HAL_FLASH_Lock
  - >> FLASH_WaitForLastOperation
  - >> EE_FindValidPage
  [Called By]
  - >> EE_PageTransfer
  - >> EE_WriteVariable
  - >> EE_Init

  CheckPressingEnterKey (Thumb, 42 bytes, Stack size 16 bytes, h08r6.o(i.CheckPressingEnterKey))
  [Stack]

  - Max Depth = 168
  - Call Chain = CheckPressingEnterKey ⇒ readPxMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> readPxMutex
  - >> FreeRTOS_CLIGetOutputBuffer
  [Called By]
  - >> demoCommand
  - >> Vl53l0xMaxCommand
  - >> SendMeasurementResult

  ConvertCurrentUnit (Thumb, 64 bytes, Stack size 32 bytes, h08r6.o(i.ConvertCurrentUnit))
  [Stack]

  - Max Depth = 80
  - Call Chain = ConvertCurrentUnit ⇒ __aeabi_ddiv ⇒ _double_round
  [Calls]
  - >> __aeabi_fdiv
  - >> __aeabi_f2d
  - >> __aeabi_ddiv
  - >> __aeabi_d2f
  [Called By]
  - >> SendMeasurementResult

  GetMeasurementResult (Thumb, 42 bytes, Stack size 40 bytes, h08r6.o(i.GetMeasurementResult))
  [Stack]

  - Max Depth = 624
  - Call Chain = GetMeasurementResult ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> __aeabi_ui2f
  - >> VL53L0X_GetRangingMeasurementData
  - >> VL53L0X_ClearInterruptMask
  [Called By]
  - >> Stream_ToF
  - >> Sample_ToF
  - >> demoCommand
  - >> Vl53l0xSampleCommand
  - >> Vl53l0xMaxCommand

  HandleTimeout (Thumb, 26 bytes, Stack size 16 bytes, h08r6.o(i.HandleTimeout))
  [Stack]

  - Max Depth = 32
  - Call Chain = HandleTimeout ⇒ pvTimerGetTimerID
  [Calls]
  - >> pvTimerGetTimerID
  [Address Reference Count : 1]
  - h08r6.o(i.SettingMeasurementMode)

  SendMeasurementResult (Thumb, 362 bytes, Stack size 72 bytes, h08r6.o(i.SendMeasurementResult))
  [Stack]

  - Max Depth = 320
  - Call Chain = SendMeasurementResult ⇒ SendMessageFromPort ⇒ SendMessageFromPort (Cycle)
  [Calls]
  - >> __aeabi_cfrcmple
  - >> __ARM_common_switch8
  - >> __aeabi_f2d
  - >> ConvertCurrentUnit
  - >> CheckPressingEnterKey
  - >> writePxMutex
  - >> FreeRTOS_CLIGetOutputBuffer
  - >> SendMessageFromPort
  - >> malloc
  - >> free
  - >> __2sprintf
  - >> strcpy
  - >> strlen
  - >> __aeabi_memclr
  - >> __aeabi_memcpy
  [Called By]
  - >> Stream_ToF
  - >> Sample_ToF
  - >> demoCommand
  - >> Vl53l0xSampleCommand

  SettingMeasurementMode (Thumb, 162 bytes, Stack size 40 bytes, h08r6.o(i.SettingMeasurementMode))
  [Stack]

  - Max Depth = 344
  - Call Chain = SettingMeasurementMode ⇒ VL53L0X_StartMeasurement ⇒ VL53L0X_CheckAndLoadInterruptSettings ⇒ VL53L0X_load_tuning_settings ⇒ VL53L0X_WriteMulti ⇒ VL53L0X_write_multi ⇒ HAL_I2C_Master_Transmit ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> VL53L0X_StartMeasurement
  - >> VL53L0X_SetInterMeasurementPeriodMilliSeconds
  - >> VL53L0X_SetDeviceMode
  - >> xTimerGenericCommand
  - >> xTimerCreate
  - >> xTaskGetTickCount
  - >> __aeabi_uidivmod
  [Called By]
  - >> Stream_ToF
  - >> Sample_ToF
  - >> demoCommand
  - >> Vl53l0xSampleCommand
  - >> Vl53l0xMaxCommand

  Vl53l0xInit (Thumb, 256 bytes, Stack size 32 bytes, h08r6.o(i.Vl53l0xInit))
  [Stack]

  - Max Depth = 928
  - Call Chain = Vl53l0xInit ⇒ VL53L0X_StaticInit ⇒ VL53L0X_perform_ref_spad_management ⇒ perform_ref_signal_measurement ⇒ VL53L0X_PerformSingleRangingMeasurement ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> VL53L0X_StaticInit
  - >> VL53L0X_StartMeasurement
  - >> VL53L0X_SetMeasurementTimingBudgetMicroSeconds
  - >> VL53L0X_SetLimitCheckValue
  - >> VL53L0X_SetLimitCheckEnable
  - >> VL53L0X_SetInterruptThresholds
  - >> VL53L0X_SetGpioConfig
  - >> VL53L0X_SetDeviceMode
  - >> VL53L0X_PerformRefSpadManagement
  - >> VL53L0X_PerformRefCalibration
  - >> VL53L0X_DataInit
  - >> VL53L0X_ClearInterruptMask
  - >> StartMicroDelay
  [Called By]
  - >> Module_Init

  Vl53l0xMaxCommand (Thumb, 180 bytes, Stack size 32 bytes, h08r6.o(i.Vl53l0xMaxCommand))
  [Stack]

  - Max Depth = 656
  - Call Chain = Vl53l0xMaxCommand ⇒ GetMeasurementResult ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> __aeabi_fdiv
  - >> __aeabi_i2f
  - >> __aeabi_fadd
  - >> __aeabi_f2d
  - >> WaitForMeasurement
  - >> SettingMeasurementMode
  - >> GetMeasurementResult
  - >> CheckPressingEnterKey
  - >> writePxMutex
  - >> __2sprintf
  - >> strlen
  - >> __aeabi_memclr
  [Address Reference Count : 1]
  - h08r6.o(.constdata)

  Vl53l0xSampleCommand (Thumb, 86 bytes, Stack size 24 bytes, h08r6.o(i.Vl53l0xSampleCommand))
  [Stack]

  - Max Depth = 648
  - Call Chain = Vl53l0xSampleCommand ⇒ GetMeasurementResult ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> WaitForMeasurement
  - >> SettingMeasurementMode
  - >> SendMeasurementResult
  - >> GetMeasurementResult
  - >> __2sprintf
  - >> __aeabi_memclr
  [Address Reference Count : 1]
  - h08r6.o(.constdata)

  Vl53l0xStopCommand (Thumb, 96 bytes, Stack size 24 bytes, h08r6.o(i.Vl53l0xStopCommand))
  [Stack]

  - Max Depth = 656
  - Call Chain = Vl53l0xStopCommand ⇒ Stop_ToF ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> Stop_ToF
  - >> writePxMutex
  - >> __2sprintf
  - >> strlen
  - >> __aeabi_memclr
  [Address Reference Count : 1]
  - h08r6.o(.constdata)

  Vl53l0xStreamCommand (Thumb, 270 bytes, Stack size 80 bytes, h08r6.o(i.Vl53l0xStreamCommand))
  [Stack]

  - Max Depth = 232
  - Call Chain = Vl53l0xStreamCommand ⇒ writePxMutex ⇒ osSemaphoreWait ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> Stream_ToF_Port
  - >> writePxMutex
  - >> FreeRTOS_CLIGetParameter
  - >> atol
  - >> atoi
  - >> __2sprintf
  - >> strncmp
  - >> strlen
  - >> __aeabi_memclr
  [Address Reference Count : 1]
  - h08r6.o(.constdata)

  Vl53l0xUnitsCommand (Thumb, 142 bytes, Stack size 24 bytes, h08r6.o(i.Vl53l0xUnitsCommand))
  [Stack]

  - Max Depth = 36
  - Call Chain = Vl53l0xUnitsCommand ⇒ FreeRTOS_CLIGetParameter
  [Calls]
  - >> FreeRTOS_CLIGetParameter
  - >> strncmp
  - >> strcpy
  [Address Reference Count : 1]
  - h08r6.o(.constdata)

  WaitForMeasurement (Thumb, 48 bytes, Stack size 16 bytes, h08r6.o(i.WaitForMeasurement))
  [Stack]

  - Max Depth = 112
  - Call Chain = WaitForMeasurement ⇒ xEventGroupWaitBits ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xEventGroupWaitBits
  - >> xEventGroupClearBits
  [Called By]
  - >> Stream_ToF
  - >> Sample_ToF
  - >> demoCommand
  - >> Vl53l0xSampleCommand
  - >> Vl53l0xMaxCommand

  demoCommand (Thumb, 132 bytes, Stack size 24 bytes, h08r6.o(i.demoCommand))
  [Stack]

  - Max Depth = 648
  - Call Chain = demoCommand ⇒ GetMeasurementResult ⇒ VL53L0X_GetRangingMeasurementData ⇒ VL53L0X_get_pal_range_status ⇒ VL53L0X_calc_sigma_estimate ⇒ VL53L0X_calc_timeout_mclks ⇒ VL53L0X_calc_macro_period_ps ⇒ __aeabi_lmul ⇒ __aeabi_llsl
  [Calls]
  - >> WaitForMeasurement
  - >> SettingMeasurementMode
  - >> SendMeasurementResult
  - >> GetMeasurementResult
  - >> CheckPressingEnterKey
  - >> writePxMutex
  - >> strcpy
  - >> strlen
  [Address Reference Count : 1]
  - h08r6.o(.constdata)

  prvTestWaitCondition (Thumb, 34 bytes, Stack size 8 bytes, event_groups.o(i.prvTestWaitCondition))
  [Stack]

  - Max Depth = 8
  - Call Chain = prvTestWaitCondition
  [Called By]
  - >> xEventGroupWaitBits

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

  - >> FreeRTOS_CLIProcessCommand

  prvHelpCommand (Thumb, 178 bytes, Stack size 24 bytes, freertos_cli.o(i.prvHelpCommand))
  [Stack]

  - Max Depth = 36
  - Call Chain = prvHelpCommand ⇒ FreeRTOS_CLIGetParameter
  [Calls]
  - >> FreeRTOS_CLIGetParameter
  - >> strncmp
  - >> strncpy
  [Address Reference Count : 1]
  - freertos_cli.o(.constdata)

  prvUnlockQueue (Thumb, 138 bytes, Stack size 8 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 24
  - Call Chain = prvUnlockQueue ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> vTaskMissedYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> vQueueWaitForMessageRestricted
  - >> xQueueGenericReceive
  - >> xQueueGenericSend

  prvIsQueueFull (Thumb, 30 bytes, Stack size 16 bytes, queue.o(privileged_functions))
  [Stack]

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

  prvCopyDataToQueue (Thumb, 132 bytes, Stack size 24 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 40
  - Call Chain = prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xTaskPriorityDisinherit
  - >> __aeabi_memcpy
  [Called By]
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend

  prvIsQueueEmpty (Thumb, 28 bytes, Stack size 16 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvIsQueueEmpty
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericReceive

  prvCopyDataFromQueue (Thumb, 44 bytes, Stack size 16 bytes, queue.o(privileged_functions))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvCopyDataFromQueue
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> xQueuePeekFromISR
  - >> xQueueReceiveFromISR
  - >> xQueueGenericReceive

  prvIdleTask (Thumb, 20 bytes, Stack size 0 bytes, tasks.o(i.prvIdleTask))
  [Stack]

  - Max Depth = 80
  - Call Chain = prvIdleTask ⇒ prvCheckTasksWaitingTermination ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvCheckTasksWaitingTermination
  - >> vPortYield
  [Address Reference Count : 1]
  - tasks.o(privileged_functions)

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

  - >> vTaskSuspend
  - >> xTaskIncrementTick
  - >> vTaskDelete

  prvWriteNameToBuffer (Thumb, 42 bytes, Stack size 16 bytes, tasks.o(i.prvWriteNameToBuffer))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvWriteNameToBuffer
  [Calls]
  - >> strcpy
  - >> strlen
  [Called By]
  - >> vTaskList
  - >> vTaskGetRunTimeStats

  prvInitialiseTaskLists (Thumb, 68 bytes, Stack size 8 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 8
  - Call Chain = prvInitialiseTaskLists
  [Calls]
  - >> vListInitialise
  [Called By]
  - >> xTaskGenericCreate

  prvInitialiseTCBVariables (Thumb, 94 bytes, Stack size 24 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 24
  - Call Chain = prvInitialiseTCBVariables
  [Calls]
  - >> vListInitialiseItem
  [Called By]
  - >> xTaskGenericCreate

  prvAllocateTCBAndStack (Thumb, 70 bytes, Stack size 24 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 88
  - Call Chain = prvAllocateTCBAndStack ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortFree
  - >> pvPortMalloc
  - >> __aeabi_memset
  [Called By]
  - >> xTaskGenericCreate

  prvAddCurrentTaskToDelayedList (Thumb, 62 bytes, Stack size 8 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vListInsert
  [Called By]
  - >> vTaskPlaceOnUnorderedEventList
  - >> vTaskDelay
  - >> vTaskPlaceOnEventListRestricted
  - >> vTaskPlaceOnEventList
  - >> ulTaskNotifyTake

  prvTaskIsTaskSuspended (Thumb, 74 bytes, Stack size 8 bytes, tasks.o(privileged_functions), UNUSED)
  [Called By]

  - >> xTaskResumeFromISR
  - >> vTaskResume

  prvDeleteTCB (Thumb, 18 bytes, Stack size 8 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 64
  - Call Chain = prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortFree
  [Called By]
  - >> prvCheckTasksWaitingTermination

  prvCheckTasksWaitingTermination (Thumb, 90 bytes, Stack size 16 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 80
  - Call Chain = prvCheckTasksWaitingTermination ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> uxListRemove
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvDeleteTCB
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> prvIdleTask

  prvTaskCheckFreeStackSpace (Thumb, 22 bytes, Stack size 0 bytes, tasks.o(privileged_functions))
  [Called By]

  - >> uxTaskGetStackHighWaterMark
  - >> prvListTaskWithinSingleList

  prvListTaskWithinSingleList (Thumb, 176 bytes, Stack size 40 bytes, tasks.o(privileged_functions))
  [Stack]

  - Max Depth = 40
  - Call Chain = prvListTaskWithinSingleList
  [Calls]
  - >> prvTaskCheckFreeStackSpace
  [Called By]
  - >> uxTaskGetSystemState

  prvInsertTimerInActiveList (Thumb, 76 bytes, Stack size 24 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 32
  - Call Chain = prvInsertTimerInActiveList ⇒ vListInsert
  [Calls]
  - >> vListInsert
  [Called By]
  - >> prvProcessExpiredTimer
  - >> prvProcessReceivedCommands

  prvSwitchTimerLists (Thumb, 134 bytes, Stack size 32 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 160
  - Call Chain = prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> vListInsert
  - >> uxListRemove
  - >> xTimerGenericCommand
  [Called By]
  - >> prvSampleTimeNow

  prvSampleTimeNow (Thumb, 40 bytes, Stack size 16 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 176
  - Call Chain = prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> prvSwitchTimerLists
  - >> xTaskGetTickCount
  [Called By]
  - >> prvProcessTimerOrBlockTask
  - >> prvProcessReceivedCommands

  prvProcessReceivedCommands (Thumb, 250 bytes, Stack size 48 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 224
  - Call Chain = prvProcessReceivedCommands ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> __ARM_common_switch8
  - >> uxListRemove
  - >> vPortFree
  - >> prvSampleTimeNow
  - >> prvInsertTimerInActiveList
  - >> xQueueGenericReceive
  - >> xTimerGenericCommand
  [Called By]
  - >> prvTimerTask

  prvProcessExpiredTimer (Thumb, 82 bytes, Stack size 24 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 152
  - Call Chain = prvProcessExpiredTimer ⇒ xTimerGenericCommand ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> uxListRemove
  - >> prvInsertTimerInActiveList
  - >> xTimerGenericCommand
  [Called By]
  - >> prvProcessTimerOrBlockTask

  prvProcessTimerOrBlockTask (Thumb, 76 bytes, Stack size 24 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 200
  - Call Chain = prvProcessTimerOrBlockTask ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvProcessExpiredTimer
  - >> prvSampleTimeNow
  - >> vQueueWaitForMessageRestricted
  - >> vPortYield
  [Called By]
  - >> prvTimerTask

  prvGetNextExpireTime (Thumb, 40 bytes, Stack size 0 bytes, timers.o(privileged_functions))
  [Called By]

  - >> prvTimerTask

  prvTimerTask (Thumb, 26 bytes, Stack size 8 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 232
  - Call Chain = prvTimerTask ⇒ prvProcessReceivedCommands ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> prvGetNextExpireTime
  - >> prvProcessTimerOrBlockTask
  - >> prvProcessReceivedCommands
  [Address Reference Count : 1]
  - timers.o(privileged_functions)

  prvCheckForValidListAndQueue (Thumb, 90 bytes, Stack size 8 bytes, timers.o(privileged_functions))
  [Stack]

  - Max Depth = 112
  - Call Chain = prvCheckForValidListAndQueue ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vListInitialise
  - >> vQueueAddToRegistry
  - >> xQueueGenericCreate
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xTimerCreateTimerTask
  - >> xTimerCreate

  prvSetupTimerInterrupt (Thumb, 26 bytes, Stack size 8 bytes, port.o(i.prvSetupTimerInterrupt))
  [Stack]

  - Max Depth = 20
  - Call Chain = prvSetupTimerInterrupt ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> xPortStartScheduler

  prvTaskExitError (Thumb, 32 bytes, Stack size 0 bytes, port.o(i.prvTaskExitError))
  [Address Reference Count : 1]

  - port.o(privileged_functions)

  prvHeapInit (Thumb, 98 bytes, Stack size 12 bytes, heap_4.o(i.prvHeapInit))
  [Stack]

  - Max Depth = 12
  - Call Chain = prvHeapInit
  [Called By]
  - >> pvPortMalloc

  prvInsertBlockIntoFreeList (Thumb, 96 bytes, Stack size 8 bytes, heap_4.o(i.prvInsertBlockIntoFreeList))
  [Stack]

  - Max Depth = 8
  - Call Chain = prvInsertBlockIntoFreeList
  [Called By]
  - >> vPortFree
  - >> pvPortMalloc

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

  - >> osSemaphoreWait
  - >> osSemaphoreRelease

  _fp_digits (Thumb, 344 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
  [Calls]

  - >> __aeabi_ddiv
  - >> __aeabi_uldivmod
  - >> __aeabi_dmul
  - >> __aeabi_dadd
  - >> __aeabi_d2ulz
  - >> __aeabi_cdrcmple
  [Called By]
  - >> _printf_core

  _printf_core (Thumb, 1754 bytes, Stack size 128 bytes, printfa.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  - >> __aeabi_uldivmod
  - >> _printf_pre_padding
  - >> _printf_post_padding
  - >> _fp_digits
  [Called By]
  - >> __0sprintf

  _printf_post_padding (Thumb, 32 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
  [Called By]

  - >> _printf_core

  _printf_pre_padding (Thumb, 44 bytes, Stack size 40 bytes, printfa.o(i._printf_pre_padding), UNUSED)
  [Called By]

  - >> _printf_core

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

  - >> __0sprintf
  [Address Reference Count : 1]
  - printfa.o(i.__0sprintf)

  ### Undefined Global Symbols