# Static Call Graph for image .\gateway485-stm32L31\gateway485-stm32L31.axf

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Wed Mar 26 20:26:58 2025

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

### Call chain for Maximum Stack Depth:

main ⇒ SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ __aeabi_uidivmod

### Mutually Recursive functions

- ADC1_COMP_IRQHandler ⇒ ADC1_COMP_IRQHandler
- HardFault_Handler ⇒ HardFault_Handler

  ### Function Pointers

  - ADC1_COMP_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - DMA1_Channel1_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - DMA1_Channel2_3_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - DMA1_Channel4_5_6_7_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - EXTI0_1_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - EXTI2_3_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - EXTI4_15_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - FLASH_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - HardFault_Handler from stm32l0xx_it.o(i.HardFault_Handler) referenced from startup_stm32l031xx.o(RESET)
  - I2C1_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - LPTIM1_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - LPUART1_IRQHandler from stm32l0xx_it.o(i.LPUART1_IRQHandler) referenced from startup_stm32l031xx.o(RESET)
  - NMI_Handler from stm32l0xx_it.o(i.NMI_Handler) referenced from startup_stm32l031xx.o(RESET)
  - PVD_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - PendSV_Handler from port.o(.emb_text) referenced from startup_stm32l031xx.o(RESET)
  - RCC_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - RTC_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - Reset_Handler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - SPI1_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - SVC_Handler from port.o(i.SVC_Handler) referenced from startup_stm32l031xx.o(RESET)
  - StartDefaultTask from main.o(i.StartDefaultTask) referenced from main.o(.constdata)
  - StartTaskUART1 from main.o(i.StartTaskUART1) referenced from main.o(.constdata)
  - StartTaskUART2 from main.o(i.StartTaskUART2) referenced from main.o(.constdata)
  - SysTick_Handler from stm32l0xx_it.o(i.SysTick_Handler) referenced from startup_stm32l031xx.o(RESET)
  - SystemInit from system_stm32l0xx.o(i.SystemInit) referenced from startup_stm32l031xx.o(.text)
  - TIM21_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - TIM22_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - TIM2_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - UART_DMAAbortOnError from stm32l0xx_hal_uart.o(i.UART_DMAAbortOnError) referenced from stm32l0xx_hal_uart.o(i.HAL_UART_IRQHandler)
  - USART2_IRQHandler from stm32l0xx_it.o(i.USART2_IRQHandler) referenced from startup_stm32l031xx.o(RESET)
  - WWDG_IRQHandler from startup_stm32l031xx.o(.text) referenced from startup_stm32l031xx.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32l031xx.o(.text)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - prvIdleTask from tasks.o(i.prvIdleTask) referenced from tasks.o(i.vTaskStartScheduler)
  - prvTaskExitError from port.o(i.prvTaskExitError) referenced from port.o(i.pxPortInitialiseStack)

  ### Global Symbols

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

  - startup_stm32l031xx.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_lib_shutdown_fini (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
  [Calls]

  - >> __arm_fini_ (Weak Reference)

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

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

  __asm___6_port_c_39a90d8d__prvPortStartFirstTask (Thumb, 36 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]

  - >> xQueueGenericSendFromISR
  - >> xPortSysTickHandler

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

  - >> xQueueGenericSendFromISR
  - >> xPortSysTickHandler

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

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

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

  - startup_stm32l031xx.o(RESET)

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

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

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.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]
  - >> SystemClock_Config
  - >> StartTaskUART1
  - >> HAL_InitTick
  - >> HAL_RCC_GetSysClockFreq
  - >> UART_SetConfig
  - >> vPortSetupTimerInterrupt

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

  - Max Depth = 56
  - Call Chain = __aeabi_uldivmod ⇒ __aeabi_llsr
  [Calls]
  - >> __aeabi_llsr
  - >> __aeabi_llsl
  [Called By]
  - >> UART_SetConfig

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

  - >> prvCopyDataToQueue
  - >> prvCopyDataFromQueue

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

  - >> main

  __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), UNUSED)
  [Called By]

  - >> _memset$wrapper
  - >> __aeabi_memclr

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

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

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

  - >> __aeabi_memset

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

  - >> StartTaskUART2
  - >> HAL_UART_RxCpltCallback

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

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

  - >> __aeabi_memset

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

  - Max Depth = 8
  - Call Chain = __aeabi_llsl
  [Called By]
  - >> __aeabi_uldivmod

  _ll_shift_l (Thumb, 0 bytes, Stack size 8 bytes, llshl.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]
  - >> __aeabi_uldivmod

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

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

  HAL_DMA_Abort_IT (Thumb, 148 bytes, Stack size 16 bytes, stm32l0xx_hal_dma.o(i.HAL_DMA_Abort_IT))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_DMA_Abort_IT
  [Called By]
  - >> HAL_UART_IRQHandler

  HAL_GPIO_Init (Thumb, 336 bytes, Stack size 24 bytes, stm32l0xx_hal_gpio.o(i.HAL_GPIO_Init))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_GPIO_Init
  [Called By]
  - >> HAL_UART_MspInit
  - >> MX_GPIO_Init

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

  - >> sendCommand1
  - >> main
  - >> StartDefaultTask
  - >> MX_GPIO_Init

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

  - >> HAL_UART_Transmit
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> HAL_RCCEx_PeriphCLKConfig
  - >> UART_WaitOnFlagUntilTimeout
  - >> UART_CheckIdleState

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

  - >> SysTick_Handler

  HAL_Init (Thumb, 26 bytes, Stack size 8 bytes, stm32l0xx_hal.o(i.HAL_Init))
  [Stack]

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

  HAL_InitTick (Thumb, 34 bytes, Stack size 8 bytes, stm32l0xx_hal.o(i.HAL_InitTick))
  [Stack]

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

  HAL_MspInit (Thumb, 52 bytes, Stack size 8 bytes, stm32l0xx_hal_msp.o(i.HAL_MspInit))
  [Stack]

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

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

  - >> main

  HAL_NVIC_SetPriority (Thumb, 8 bytes, Stack size 8 bytes, stm32l0xx_hal_cortex.o(i.HAL_NVIC_SetPriority))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_NVIC_SetPriority
  [Calls]
  - >> NVIC_SetPriority
  [Called By]
  - >> HAL_MspInit
  - >> main
  - >> SystemClock_Config
  - >> HAL_InitTick

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

  - >> SystemClock_Config

  HAL_RCCEx_GetPeriphCLKFreq (Thumb, 230 bytes, Stack size 24 bytes, stm32l0xx_hal_rcc_ex.o(i.HAL_RCCEx_GetPeriphCLKFreq))
  [Stack]

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

  HAL_RCCEx_PeriphCLKConfig (Thumb, 324 bytes, Stack size 24 bytes, stm32l0xx_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, 340 bytes, Stack size 24 bytes, stm32l0xx_hal_rcc.o(i.HAL_RCC_ClockConfig))
  [Stack]

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

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

  - >> SystemClock_Config

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

  - >> HAL_RCCEx_GetPeriphCLKFreq
  - >> UART_SetConfig

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

  - >> UART_SetConfig

  HAL_RCC_GetSysClockFreq (Thumb, 100 bytes, Stack size 8 bytes, stm32l0xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> HAL_RCC_ClockConfig
  - >> HAL_RCCEx_GetPeriphCLKFreq
  - >> UART_SetConfig

  HAL_RCC_OscConfig (Thumb, 976 bytes, Stack size 24 bytes, stm32l0xx_hal_rcc.o(i.HAL_RCC_OscConfig))
  [Stack]

  - Max Depth = 44
  - Call Chain = HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ __aeabi_uidivmod
  [Calls]
  - >> HAL_InitTick
  - >> HAL_GetTick
  - >> RCC_SetFlashLatencyFromMSIRange
  [Called By]
  - >> SystemClock_Config

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

  - >> SystemClock_Config

  HAL_SYSTICK_Config (Thumb, 38 bytes, Stack size 8 bytes, stm32l0xx_hal_cortex.o(i.HAL_SYSTICK_Config))
  [Stack]

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

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

  - >> HAL_UART_IRQHandler

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

  - >> UART_DMAAbortOnError
  - >> HAL_UART_IRQHandler

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

  - >> StartTaskUART2

  HAL_UART_IRQHandler (Thumb, 318 bytes, Stack size 24 bytes, stm32l0xx_hal_uart.o(i.HAL_UART_IRQHandler))
  [Stack]

  - Max Depth = 136
  - Call Chain = HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> UART_Transmit_IT
  - >> UART_Receive_IT
  - >> UART_EndRxTransfer
  - >> HAL_UART_TxCpltCallback
  - >> HAL_UART_ErrorCallback
  - >> HAL_UARTEx_WakeupCallback
  - >> HAL_DMA_Abort_IT
  [Called By]
  - >> USART2_IRQHandler
  - >> LPUART1_IRQHandler

  HAL_UART_Init (Thumb, 108 bytes, Stack size 16 bytes, stm32l0xx_hal_uart.o(i.HAL_UART_Init))
  [Stack]

  - Max Depth = 104
  - Call Chain = HAL_UART_Init ⇒ UART_SetConfig ⇒ __aeabi_uldivmod ⇒ __aeabi_llsr
  [Calls]
  - >> HAL_UART_MspInit
  - >> UART_SetConfig
  - >> UART_CheckIdleState
  - >> UART_AdvFeatureConfig
  [Called By]
  - >> MX_USART2_UART_Init
  - >> MX_LPUART1_UART_Init

  HAL_UART_MspInit (Thumb, 88 bytes, Stack size 40 bytes, stm32l0xx_hal_msp.o(i.HAL_UART_MspInit))
  [Stack]

  - Max Depth = 64
  - Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GPIO_Init
  [Called By]
  - >> HAL_UART_Init

  HAL_UART_Receive_IT (Thumb, 154 bytes, Stack size 20 bytes, stm32l0xx_hal_uart.o(i.HAL_UART_Receive_IT))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_UART_Receive_IT
  [Called By]
  - >> StartTaskUART2

  HAL_UART_RxCpltCallback (Thumb, 84 bytes, Stack size 16 bytes, main.o(i.HAL_UART_RxCpltCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = HAL_UART_RxCpltCallback ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xQueueGenericSendFromISR
  - >> __aeabi_memclr4
  [Called By]
  - >> UART_Receive_IT

  HAL_UART_Transmit (Thumb, 200 bytes, Stack size 48 bytes, stm32l0xx_hal_uart.o(i.HAL_UART_Transmit))
  [Stack]

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

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

  - >> HAL_UART_IRQHandler

  HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l0xx_it.o(i.HardFault_Handler))
  [Calls]

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

  LPUART1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32l0xx_it.o(i.LPUART1_IRQHandler))
  [Stack]

  - Max Depth = 144
  - Call Chain = LPUART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> HAL_UART_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - startup_stm32l031xx.o(RESET)

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

  - Max Depth = 64
  - Call Chain = StartDefaultTask ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> HAL_GPIO_WritePin
  [Address Reference Count : 1]
  - main.o(.constdata)

  StartTaskUART1 (Thumb, 146 bytes, Stack size 16 bytes, main.o(i.StartTaskUART1))
  [Stack]

  - Max Depth = 128
  - Call Chain = StartTaskUART1 ⇒ stopMotor1 ⇒ sendCommand1 ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> xQueueGenericReceive
  - >> osDelay
  - >> stopMotor1
  - >> setMotorTurn1
  - >> setMotorSpeed1
  - >> setModel
  - >> __aeabi_uidivmod
  [Address Reference Count : 1]
  - main.o(.constdata)

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

  - Max Depth = 64
  - Call Chain = StartTaskUART2 ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> HAL_UART_Receive_IT
  - >> HAL_UART_GetState
  - >> __aeabi_memclr4
  [Address Reference Count : 1]
  - main.o(.constdata)

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

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

  SystemClock_Config (Thumb, 150 bytes, Stack size 112 bytes, main.o(i.SystemClock_Config))
  [Stack]

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

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

  - startup_stm32l031xx.o(.text)

  UART_AdvFeatureConfig (Thumb, 202 bytes, Stack size 8 bytes, stm32l0xx_hal_uart.o(i.UART_AdvFeatureConfig))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_AdvFeatureConfig
  [Called By]
  - >> HAL_UART_Init

  UART_CheckIdleState (Thumb, 90 bytes, Stack size 24 bytes, stm32l0xx_hal_uart.o(i.UART_CheckIdleState))
  [Stack]

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

  UART_SetConfig (Thumb, 466 bytes, Stack size 32 bytes, stm32l0xx_hal_uart.o(i.UART_SetConfig))
  [Stack]

  - Max Depth = 88
  - Call Chain = UART_SetConfig ⇒ __aeabi_uldivmod ⇒ __aeabi_llsr
  [Calls]
  - >> HAL_RCC_GetSysClockFreq
  - >> HAL_RCC_GetPCLK2Freq
  - >> HAL_RCC_GetPCLK1Freq
  - >> HAL_RCCEx_GetPeriphCLKFreq
  - >> __ARM_common_switch8
  - >> __aeabi_uldivmod
  - >> __aeabi_uidivmod
  [Called By]
  - >> HAL_UART_Init

  UART_WaitOnFlagUntilTimeout (Thumb, 98 bytes, Stack size 40 bytes, stm32l0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout))
  [Stack]

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

  USART2_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32l0xx_it.o(i.USART2_IRQHandler))
  [Stack]

  - Max Depth = 144
  - Call Chain = USART2_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> HAL_UART_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32l031xx.o(RESET)

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

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

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

  crc_chk (Thumb, 48 bytes, Stack size 12 bytes, main.o(i.crc_chk))
  [Stack]

  - Max Depth = 12
  - Call Chain = crc_chk
  [Called By]
  - >> sendCommand1

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

  - >> main

  main (Thumb, 184 bytes, Stack size 64 bytes, main.o(i.main))
  [Stack]

  - Max Depth = 220
  - Call Chain = main ⇒ SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ __aeabi_uidivmod
  [Calls]
  - >> xQueueGenericCreate
  - >> osThreadCreate
  - >> osKernelStart
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_Init
  - >> HAL_GPIO_WritePin
  - >> setModel
  - >> delay_ms
  - >> SystemClock_Config
  - >> MX_USART2_UART_Init
  - >> MX_LPUART1_UART_Init
  - >> MX_GPIO_Init
  - >> __aeabi_memcpy4
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

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

  - Max Depth = 64
  - Call Chain = osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskDelay
  [Called By]
  - >> StartTaskUART2
  - >> StartTaskUART1
  - >> StartDefaultTask

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

  - Max Depth = 152
  - Call Chain = osKernelStart ⇒ vTaskStartScheduler ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskStartScheduler
  [Called By]
  - >> main

  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

  osThreadCreate (Thumb, 46 bytes, Stack size 24 bytes, cmsis_os.o(i.osThreadCreate))
  [Stack]

  - Max Depth = 152
  - Call Chain = osThreadCreate ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> makeFreeRtosPriority
  - >> xTaskCreate
  [Called By]
  - >> main

  pvPortMalloc (Thumb, 172 bytes, Stack size 24 bytes, heap_4.o(i.pvPortMalloc))
  [Stack]

  - Max Depth = 72
  - Call Chain = pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvInsertBlockIntoFreeList
  - >> prvHeapInit
  [Called By]
  - >> xQueueGenericCreate
  - >> xTaskCreate

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

  - >> xQueueGenericReceive

  pxPortInitialiseStack (Thumb, 28 bytes, Stack size 8 bytes, port.o(i.pxPortInitialiseStack))
  [Stack]

  - Max Depth = 8
  - Call Chain = pxPortInitialiseStack
  [Called By]
  - >> prvInitialiseNewTask

  sendCommand1 (Thumb, 66 bytes, Stack size 16 bytes, main.o(i.sendCommand1))
  [Stack]

  - Max Depth = 104
  - Call Chain = sendCommand1 ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_UART_Transmit
  - >> HAL_GPIO_WritePin
  - >> crc_chk
  [Called By]
  - >> stopMotor1
  - >> setMotorTurn1
  - >> setMotorSpeed1
  - >> setModel

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

  - Max Depth = 112
  - Call Chain = setModel ⇒ sendCommand1 ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> sendCommand1
  [Called By]
  - >> main
  - >> StartTaskUART1

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

  - Max Depth = 112
  - Call Chain = setMotorSpeed1 ⇒ sendCommand1 ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> sendCommand1
  [Called By]
  - >> StartTaskUART1

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

  - Max Depth = 112
  - Call Chain = setMotorTurn1 ⇒ sendCommand1 ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> sendCommand1
  [Called By]
  - >> StartTaskUART1

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

  - Max Depth = 112
  - Call Chain = stopMotor1 ⇒ sendCommand1 ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> sendCommand1
  [Called By]
  - >> StartTaskUART1

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

  - >> prvCheckTasksWaitingTermination
  - >> prvAddCurrentTaskToDelayedList
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityDisinherit
  - >> vTaskPriorityInherit
  - >> xTaskIncrementTick
  - >> xTaskResumeAll

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

  - >> prvAddNewTaskToReadyList
  - >> xQueueGenericReset

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

  - >> prvInitialiseNewTask

  vListInsert (Thumb, 48 bytes, Stack size 12 bytes, list.o(i.vListInsert))
  [Stack]

  - Max Depth = 12
  - Call Chain = vListInsert
  [Called By]
  - >> prvAddCurrentTaskToDelayedList
  - >> vTaskPlaceOnEventList

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

  - >> prvAddNewTaskToReadyList
  - >> prvAddCurrentTaskToDelayedList
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityDisinherit
  - >> vTaskPriorityInherit
  - >> xTaskIncrementTick
  - >> xTaskResumeAll

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

  - >> xQueueGenericReceive
  - >> prvCheckTasksWaitingTermination
  - >> prvAddNewTaskToReadyList
  - >> xTaskCheckForTimeOut
  - >> xQueueGenericReset
  - >> prvUnlockQueue
  - >> prvIsQueueEmpty
  - >> xTaskResumeAll

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

  - >> xQueueGenericReceive
  - >> prvCheckTasksWaitingTermination
  - >> prvAddNewTaskToReadyList
  - >> xTaskCheckForTimeOut
  - >> xQueueGenericReset
  - >> prvUnlockQueue
  - >> prvIsQueueEmpty
  - >> xTaskResumeAll

  vPortFree (Thumb, 62 bytes, Stack size 16 bytes, heap_4.o(i.vPortFree))
  [Stack]

  - Max Depth = 64
  - Call Chain = vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> prvInsertBlockIntoFreeList
  [Called By]
  - >> xTaskCreate
  - >> prvDeleteTCB

  vPortSetupTimerInterrupt (Thumb, 26 bytes, Stack size 8 bytes, port.o(i.vPortSetupTimerInterrupt))
  [Stack]

  - Max Depth = 20
  - Call Chain = vPortSetupTimerInterrupt ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> xPortStartScheduler

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

  - >> xQueueGenericReceive
  - >> vTaskDelay
  - >> prvIdleTask
  - >> prvAddNewTaskToReadyList
  - >> xQueueGenericReset
  - >> xTaskResumeAll

  vTaskDelay (Thumb, 44 bytes, Stack size 8 bytes, tasks.o(i.vTaskDelay))
  [Stack]

  - Max Depth = 56
  - Call Chain = vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvAddCurrentTaskToDelayedList
  - >> vPortYield
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  [Called By]
  - >> osDelay

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

  - >> prvUnlockQueue

  vTaskPlaceOnEventList (Thumb, 32 bytes, Stack size 8 bytes, tasks.o(i.vTaskPlaceOnEventList))
  [Stack]

  - Max Depth = 44
  - Call Chain = vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> prvAddCurrentTaskToDelayedList
  - >> vListInsert
  [Called By]
  - >> xQueueGenericReceive

  vTaskPriorityInherit (Thumb, 92 bytes, Stack size 16 bytes, tasks.o(i.vTaskPriorityInherit))
  [Stack]

  - Max Depth = 16
  - Call Chain = vTaskPriorityInherit
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xQueueGenericReceive

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

  - >> xQueueGenericReceive
  - >> xTaskCheckForTimeOut

  vTaskStartScheduler (Thumb, 58 bytes, Stack size 16 bytes, tasks.o(i.vTaskStartScheduler))
  [Stack]

  - Max Depth = 144
  - Call Chain = vTaskStartScheduler ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskCreate
  - >> xPortStartScheduler
  [Called By]
  - >> osKernelStart

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

  - >> xQueueGenericReceive
  - >> vTaskDelay
  - >> prvCheckTasksWaitingTermination
  - >> vPortFree
  - >> pvPortMalloc

  vTaskSwitchContext (Thumb, 78 bytes, Stack size 8 bytes, tasks.o(i.vTaskSwitchContext))
  [Stack]

  - Max Depth = 8
  - Call Chain = vTaskSwitchContext
  [Called By]
  - >> PendSV_Handler

  xPortStartScheduler (Thumb, 40 bytes, Stack size 8 bytes, port.o(i.xPortStartScheduler))
  [Stack]

  - Max Depth = 28
  - Call Chain = xPortStartScheduler ⇒ vPortSetupTimerInterrupt ⇒ __aeabi_uidivmod
  [Calls]
  - >> vPortSetupTimerInterrupt
  - >> __asm___6_port_c_39a90d8d__prvPortStartFirstTask
  [Called By]
  - >> vTaskStartScheduler

  xPortSysTickHandler (Thumb, 32 bytes, Stack size 8 bytes, port.o(i.xPortSysTickHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = xPortSysTickHandler ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskIncrementTick
  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR
  [Called By]
  - >> osSystickHandler

  xQueueGenericCreate (Thumb, 62 bytes, Stack size 16 bytes, queue.o(i.xQueueGenericCreate))
  [Stack]

  - Max Depth = 88
  - Call Chain = xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xQueueGenericReset
  - >> pvPortMalloc
  [Called By]
  - >> main

  xQueueGenericReceive (Thumb, 312 bytes, Stack size 48 bytes, queue.o(i.xQueueGenericReceive))
  [Stack]

  - Max Depth = 96
  - Call Chain = xQueueGenericReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> xTaskCheckForTimeOut
  - >> vTaskSetTimeOutState
  - >> vTaskPriorityInherit
  - >> vTaskPlaceOnEventList
  - >> pvTaskIncrementMutexHeldCount
  - >> prvUnlockQueue
  - >> prvIsQueueEmpty
  - >> prvCopyDataFromQueue
  - >> xTaskGetSchedulerState
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  [Called By]
  - >> StartTaskUART1

  xQueueGenericReset (Thumb, 108 bytes, Stack size 16 bytes, queue.o(i.xQueueGenericReset))
  [Stack]

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

  xQueueGenericSendFromISR (Thumb, 140 bytes, Stack size 40 bytes, queue.o(i.xQueueGenericSendFromISR))
  [Stack]

  - Max Depth = 80
  - Call Chain = xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> prvCopyDataToQueue
  - >> vClearInterruptMaskFromISR
  - >> ulSetInterruptMaskFromISR
  [Called By]
  - >> HAL_UART_RxCpltCallback

  xTaskCheckForTimeOut (Thumb, 80 bytes, Stack size 16 bytes, tasks.o(i.xTaskCheckForTimeOut))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskCheckForTimeOut
  [Calls]
  - >> vTaskSetTimeOutState
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericReceive

  xTaskCreate (Thumb, 78 bytes, Stack size 56 bytes, tasks.o(i.xTaskCreate))
  [Stack]

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

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

  - >> osSystickHandler
  - >> xQueueGenericReceive

  xTaskIncrementTick (Thumb, 180 bytes, Stack size 24 bytes, tasks.o(i.xTaskIncrementTick))
  [Stack]

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

  xTaskPriorityDisinherit (Thumb, 96 bytes, Stack size 16 bytes, tasks.o(i.xTaskPriorityDisinherit))
  [Stack]

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

  xTaskRemoveFromEventList (Thumb, 90 bytes, Stack size 16 bytes, tasks.o(i.xTaskRemoveFromEventList))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskRemoveFromEventList
  [Calls]
  - >> vListInsertEnd
  - >> uxListRemove
  [Called By]
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericReceive
  - >> xQueueGenericReset
  - >> prvUnlockQueue

  xTaskResumeAll (Thumb, 164 bytes, Stack size 24 bytes, tasks.o(i.xTaskResumeAll))
  [Stack]

  - Max Depth = 48
  - Call Chain = xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvResetNextTaskUnblockTime
  - >> vListInsertEnd
  - >> uxListRemove
  - >> xTaskIncrementTick
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericReceive
  - >> vTaskDelay
  - >> prvCheckTasksWaitingTermination
  - >> vPortFree
  - >> pvPortMalloc

  ### Local Symbols

  MX_GPIO_Init (Thumb, 112 bytes, Stack size 48 bytes, main.o(i.MX_GPIO_Init))
  [Stack]

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

  MX_LPUART1_UART_Init (Thumb, 48 bytes, Stack size 8 bytes, main.o(i.MX_LPUART1_UART_Init))
  [Stack]

  - Max Depth = 112
  - Call Chain = MX_LPUART1_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ __aeabi_uldivmod ⇒ __aeabi_llsr
  [Calls]
  - >> HAL_UART_Init
  [Called By]
  - >> main

  MX_USART2_UART_Init (Thumb, 46 bytes, Stack size 8 bytes, main.o(i.MX_USART2_UART_Init))
  [Stack]

  - Max Depth = 112
  - Call Chain = MX_USART2_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ __aeabi_uldivmod ⇒ __aeabi_llsr
  [Calls]
  - >> HAL_UART_Init
  [Called By]
  - >> main

  UART_DMAAbortOnError (Thumb, 20 bytes, Stack size 8 bytes, stm32l0xx_hal_uart.o(i.UART_DMAAbortOnError))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_DMAAbortOnError
  [Calls]
  - >> HAL_UART_ErrorCallback
  [Address Reference Count : 1]
  - stm32l0xx_hal_uart.o(i.HAL_UART_IRQHandler)

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

  - >> HAL_UART_IRQHandler

  UART_Receive_IT (Thumb, 126 bytes, Stack size 16 bytes, stm32l0xx_hal_uart.o(i.UART_Receive_IT))
  [Stack]

  - Max Depth = 112
  - Call Chain = UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> HAL_UART_RxCpltCallback
  [Called By]
  - >> HAL_UART_IRQHandler

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

  - >> HAL_UART_IRQHandler

  RCC_SetFlashLatencyFromMSIRange (Thumb, 94 bytes, Stack size 16 bytes, stm32l0xx_hal_rcc.o(i.RCC_SetFlashLatencyFromMSIRange))
  [Stack]

  - Max Depth = 16
  - Call Chain = RCC_SetFlashLatencyFromMSIRange
  [Called By]
  - >> HAL_RCC_OscConfig

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

  - >> HAL_SYSTICK_Config
  - >> HAL_NVIC_SetPriority

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

  - >> pvPortMalloc

  prvInsertBlockIntoFreeList (Thumb, 72 bytes, Stack size 12 bytes, heap_4.o(i.prvInsertBlockIntoFreeList))
  [Stack]

  - Max Depth = 12
  - Call Chain = prvInsertBlockIntoFreeList
  [Called By]
  - >> vPortFree
  - >> pvPortMalloc

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

  - port.o(i.pxPortInitialiseStack)

  prvCopyDataFromQueue (Thumb, 38 bytes, Stack size 8 bytes, queue.o(i.prvCopyDataFromQueue))
  [Stack]

  - Max Depth = 8
  - Call Chain = prvCopyDataFromQueue
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> xQueueGenericReceive

  prvCopyDataToQueue (Thumb, 112 bytes, Stack size 24 bytes, queue.o(i.prvCopyDataToQueue))
  [Stack]

  - Max Depth = 40
  - Call Chain = prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xTaskPriorityDisinherit
  - >> __aeabi_memcpy
  [Called By]
  - >> xQueueGenericSendFromISR

  prvIsQueueEmpty (Thumb, 28 bytes, Stack size 8 bytes, queue.o(i.prvIsQueueEmpty))
  [Stack]

  - Max Depth = 8
  - Call Chain = prvIsQueueEmpty
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericReceive

  prvUnlockQueue (Thumb, 112 bytes, Stack size 24 bytes, queue.o(i.prvUnlockQueue))
  [Stack]

  - Max Depth = 40
  - Call Chain = prvUnlockQueue ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> vTaskMissedYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericReceive

  prvAddCurrentTaskToDelayedList (Thumb, 78 bytes, Stack size 24 bytes, tasks.o(i.prvAddCurrentTaskToDelayedList))
  [Stack]

  - Max Depth = 36
  - Call Chain = prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vListInsertEnd
  - >> vListInsert
  - >> uxListRemove
  [Called By]
  - >> vTaskDelay
  - >> vTaskPlaceOnEventList

  prvAddNewTaskToReadyList (Thumb, 176 bytes, Stack size 24 bytes, tasks.o(i.prvAddNewTaskToReadyList))
  [Stack]

  - Max Depth = 24
  - Call Chain = prvAddNewTaskToReadyList
  [Calls]
  - >> vListInsertEnd
  - >> vListInitialise
  - >> vPortYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xTaskCreate

  prvCheckTasksWaitingTermination (Thumb, 72 bytes, Stack size 16 bytes, tasks.o(i.prvCheckTasksWaitingTermination))
  [Stack]

  - Max Depth = 88
  - Call Chain = prvCheckTasksWaitingTermination ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvDeleteTCB
  - >> uxListRemove
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  [Called By]
  - >> prvIdleTask

  prvDeleteTCB (Thumb, 18 bytes, Stack size 8 bytes, tasks.o(i.prvDeleteTCB))
  [Stack]

  - Max Depth = 72
  - Call Chain = prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vPortFree
  [Called By]
  - >> prvCheckTasksWaitingTermination

  prvIdleTask (Thumb, 18 bytes, Stack size 0 bytes, tasks.o(i.prvIdleTask))
  [Stack]

  - Max Depth = 88
  - Call Chain = prvIdleTask ⇒ prvCheckTasksWaitingTermination ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvCheckTasksWaitingTermination
  - >> vPortYield
  [Address Reference Count : 1]
  - tasks.o(i.vTaskStartScheduler)

  prvInitialiseNewTask (Thumb, 124 bytes, Stack size 40 bytes, tasks.o(i.prvInitialiseNewTask))
  [Stack]

  - Max Depth = 48
  - Call Chain = prvInitialiseNewTask ⇒ pxPortInitialiseStack
  [Calls]
  - >> vListInitialiseItem
  - >> pxPortInitialiseStack
  [Called By]
  - >> xTaskCreate

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

  - >> xTaskIncrementTick
  - >> xTaskResumeAll

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

  - >> osThreadCreate

  ### Undefined Global Symbols

  __arm_fini_ (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_shutdown_fini