# Static Call Graph for image ssd1327_ft\ssd1327_ft.axf

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Sun Feb 07 16:37:07 2021

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

### Call chain for Maximum Stack Depth:

OLED_test2_i2c1 ⇒ OLED_test2 ⇒ OLED_Char

### Mutually Recursive functions

- ADC1_2_IRQHandler ⇒ ADC1_2_IRQHandler
- BusFault_Handler ⇒ BusFault_Handler
- ad0x0_i2c2_process ⇒ ad0x0_i2c2_process
- MemManage_Handler ⇒ MemManage_Handler
- NMI_Handler ⇒ NMI_Handler
- StartTask02 ⇒ StartTask02
- UsageFault_Handler ⇒ UsageFault_Handler

  ### Function Pointers

  - ADC1_2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - BusFault_Handler from stm32f1xx_it.o(i.BusFault_Handler) referenced from startup_stm32f103xb.o(RESET)
  - CAN1_RX1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - CAN1_SCE_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - DMA1_Channel1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - DMA1_Channel2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - DMA1_Channel3_IRQHandler from stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - DMA1_Channel4_IRQHandler from stm32f1xx_it.o(i.DMA1_Channel4_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - DMA1_Channel5_IRQHandler from stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - DMA1_Channel6_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - DMA1_Channel7_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - DebugMon_Handler from stm32f1xx_it.o(i.DebugMon_Handler) referenced from startup_stm32f103xb.o(RESET)
  - EXTI0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - EXTI15_10_IRQHandler from stm32f1xx_it.o(i.EXTI15_10_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - EXTI1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - EXTI2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - EXTI3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - EXTI4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - EXTI9_5_IRQHandler from stm32f1xx_it.o(i.EXTI9_5_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - EXT_SetTXRXBuf_i2c from ad0x0_i2c_ext.o(i.EXT_SetTXRXBuf_i2c) referenced from ssd1327.o(i.OLED_Command)
  - EXT_SetTXRXBuf_i2c from ad0x0_i2c_ext.o(i.EXT_SetTXRXBuf_i2c) referenced from ssd1327.o(i.OLED_Command2)
  - EXT_SetTXRXBuf_i2c from ad0x0_i2c_ext.o(i.EXT_SetTXRXBuf_i2c) referenced from ssd1327.o(i.OLED_Command3)
  - EXT_SetTXRXBuf_i2c from ad0x0_i2c_ext.o(i.EXT_SetTXRXBuf_i2c) referenced from ssd1327.o(i.OLED_Command_buf)
  - EXT_SetTXRXBuf_i2c from ad0x0_i2c_ext.o(i.EXT_SetTXRXBuf_i2c) referenced from ssd1327.o(i.OLED_Command_framebuf)
  - FLASH_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - HardFault_Handler from stm32f1xx_it.o(i.HardFault_Handler) referenced from startup_stm32f103xb.o(RESET)
  - I2C1_ER_IRQHandler from stm32f1xx_it.o(i.I2C1_ER_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - I2C1_EV_IRQHandler from stm32f1xx_it.o(i.I2C1_EV_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - I2C2_ER_IRQHandler from stm32f1xx_it.o(i.I2C2_ER_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - I2C2_EV_IRQHandler from stm32f1xx_it.o(i.I2C2_EV_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - I2C_DMAAbort from stm32f1xx_hal_i2c.o(i.I2C_DMAAbort) referenced from stm32f1xx_hal_i2c.o(i.I2C_ITError)
  - I2C_DMAAbort from stm32f1xx_hal_i2c.o(i.I2C_DMAAbort) referenced from stm32f1xx_hal_i2c.o(i.I2C_Slave_STOPF)
  - MemManage_Handler from stm32f1xx_it.o(i.MemManage_Handler) referenced from startup_stm32f103xb.o(RESET)
  - NMI_Handler from stm32f1xx_it.o(i.NMI_Handler) referenced from startup_stm32f103xb.o(RESET)
  - OLED_PrintAt_i2c1 from ssd1327.o(i.OLED_PrintAt_i2c1) referenced from ssd1327.o(i.OLED_Init2)
  - OLED_PrintAt_i2c2 from ssd1327.o(i.OLED_PrintAt_i2c2) referenced from ssd1327.o(i.OLED_Init2)
  - OLED_clear_i2c1 from ssd1327.o(i.OLED_clear_i2c1) referenced from ssd1327.o(i.OLED_Init2)
  - OLED_clear_i2c2 from ssd1327.o(i.OLED_clear_i2c2) referenced from ssd1327.o(i.OLED_Init2)
  - OLED_test2_i2c1 from ssd1327.o(i.OLED_test2_i2c1) referenced from ssd1327.o(i.OLED_Init2)
  - OLED_test2_i2c2 from ssd1327.o(i.OLED_test2_i2c2) referenced from ssd1327.o(i.OLED_Init2)
  - OLED_test3_i2c1 from ssd1327.o(i.OLED_test3_i2c1) referenced from ssd1327.o(i.OLED_Init2)
  - OLED_test3_i2c2 from ssd1327.o(i.OLED_test3_i2c2) referenced from ssd1327.o(i.OLED_Init2)
  - OLED_test_i2c1 from ssd1327.o(i.OLED_test_i2c1) referenced from ssd1327.o(i.OLED_Init2)
  - OLED_test_i2c2 from ssd1327.o(i.OLED_test_i2c2) referenced from ssd1327.o(i.OLED_Init2)
  - PVD_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - PendSV_Handler from port.o(.emb_text) referenced from startup_stm32f103xb.o(RESET)
  - RCC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - RTC_Alarm_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - RTC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - Reset_Handler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - SPI1_IRQHandler from stm32f1xx_it.o(i.SPI1_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - SPI2_IRQHandler from stm32f1xx_it.o(i.SPI2_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - SVC_Handler from port.o(.emb_text) referenced from startup_stm32f103xb.o(RESET)
  - StartDefaultTask from main.o(i.StartDefaultTask) referenced from main.o(i.main)
  - StartTask02 from main.o(i.StartTask02) referenced from main.o(i.main)
  - StartTask03 from main.o(i.StartTask03) referenced from main.o(i.main)
  - SysTick_Handler from port.o(i.SysTick_Handler) referenced from startup_stm32f103xb.o(RESET)
  - SystemInit from system_stm32f1xx.o(i.SystemInit) referenced from startup_stm32f103xb.o(.text)
  - TAMPER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - TIM1_BRK_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - TIM1_CC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - TIM1_TRG_COM_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - TIM1_UP_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - TIM2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - TIM3_IRQHandler from stm32f1xx_it.o(i.TIM3_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - TIM4_IRQHandler from stm32f1xx_it.o(i.TIM4_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - UART_DMAAbortOnError from stm32f1xx_hal_uart.o(i.UART_DMAAbortOnError) referenced from stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler)
  - USART1_IRQHandler from stm32f1xx_it.o(i.USART1_IRQHandler) referenced from startup_stm32f103xb.o(RESET)
  - USART2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - USART3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - USBWakeUp_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - USB_HP_CAN1_TX_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - USB_LP_CAN1_RX0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - UsageFault_Handler from stm32f1xx_it.o(i.UsageFault_Handler) referenced from startup_stm32f103xb.o(RESET)
  - WWDG_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f103xb.o(.text)
  - _sputc from printf1.o(i._sputc) referenced from printf1.o(i.__0sprintf$1)
  - ad0x0_err from main.o(i.ad0x0_err) referenced from ad0x0_i2c1.o(i.ad0x0_i2c1_init)
  - ad0x0_err from main.o(i.ad0x0_err) referenced from main.o(i.main)
  - ad0x0_i2c1_get_ext_async2 from ad0x0_i2c1.o(i.ad0x0_i2c1_get_ext_async2) referenced from ssd1327.o(i.OLED_Init2)
  - ad0x0_i2c1_push from ad0x0_i2c1.o(i.ad0x0_i2c1_push) referenced from ssd1327.o(i.OLED_Init2)
  - ad0x0_i2c2_get_ext_async2 from ad0x0_i2c2.o(i.ad0x0_i2c2_get_ext_async2) referenced from ssd1327.o(i.OLED_Init2)
  - ad0x0_i2c2_push from ad0x0_i2c2.o(i.ad0x0_i2c2_push) referenced from ssd1327.o(i.OLED_Init2)
  - command2_i2c1 from ssd1327.o(i.command2_i2c1) referenced from ssd1327.o(i.OLED_Init2)
  - command2_i2c2 from ssd1327.o(i.command2_i2c2) referenced from ssd1327.o(i.OLED_Init2)
  - command3_i2c1 from ssd1327.o(i.command3_i2c1) referenced from ssd1327.o(i.OLED_Init2)
  - command3_i2c2 from ssd1327.o(i.command3_i2c2) referenced from ssd1327.o(i.OLED_Init2)
  - command_buf_i2c1 from ssd1327.o(i.command_buf_i2c1) referenced from ssd1327.o(i.OLED_Init2)
  - command_buf_i2c2 from ssd1327.o(i.command_buf_i2c2) referenced from ssd1327.o(i.OLED_Init2)
  - command_i2c1 from ssd1327.o(i.command_i2c1) referenced from ssd1327.o(i.OLED_Init2)
  - command_i2c2 from ssd1327.o(i.command_i2c2) referenced from ssd1327.o(i.OLED_Init2)
  - 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)
  - prvTimerTask from timers.o(i.prvTimerTask) referenced from timers.o(i.xTimerCreateTimerTask)

  ### Global Symbols

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

  - startup_stm32f103xb.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))

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

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

  - startup_stm32f103xb.o(RESET)

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

  - >> xPortStartScheduler

  PendSV_Handler (Thumb, 72 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_stm32f103xb.o(RESET)

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

  - >> vPortValidateInterruptPriority

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

  - startup_stm32f103xb.o(RESET)

  ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text))
  [Calls]

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

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - >> _drnd
  - >> __aeabi_d2uiz
  - >> _double_epilogue

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

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

  - >> prvCopyDataToQueue
  - >> prvCopyDataFromQueue
  - >> OLED_Command_buf

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

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

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

  - >> prvInitialiseNewTask
  - >> memset
  - >> __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]
  - >> OLED_Init2
  - >> ad0x0_i2c_ext_get

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

  - >> ad0x0_i2c1_init
  - >> OLED_Init2
  - >> SystemClock_Config

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

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

  - >> __aeabi_memset

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

  - Max Depth = 8
  - Call Chain = strcmp
  [Called By]
  - >> ad0x0_i2c1_err2
  - >> ad0x0_i2c2_err2

  __aeabi_fadd (Thumb, 164 bytes, Stack size 16 bytes, fadd.o(.text))
  [Stack]

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

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

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

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

  - >> __aeabi_fadd

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

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

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

  - Max Depth = 8
  - Call Chain = __aeabi_fdiv
  [Calls]
  - >> _float_round
  [Called By]
  - >> OLED_test3

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

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

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

  - Max Depth = 88
  - Call Chain = __aeabi_dsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_dadd
  [Called By]
  - >> round

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

  - Max Depth = 88
  - Call Chain = __aeabi_drsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_dadd
  [Called By]
  - >> round

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

  - Max Depth = 88
  - Call Chain = __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> _double_epilogue
  [Called By]
  - >> OLED_test3

  __aeabi_ui2f (Thumb, 10 bytes, Stack size 0 bytes, ffltui.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = __aeabi_ui2f ⇒ _float_epilogue
  [Calls]
  - >> _float_epilogue
  [Called By]
  - >> OLED_test3

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

  - Max Depth = 8
  - Call Chain = __aeabi_d2uiz
  [Calls]
  - >> __aeabi_llsr
  [Called By]
  - >> OLED_test3

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

  - >> OLED_test3

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

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

  - >> _printf_core

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

  - >> _drnd
  - >> __aeabi_dadd
  - >> _double_epilogue

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

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

  - >> __aeabi_dadd

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

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

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

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

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

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

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

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

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

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

  _drnd (Thumb, 132 bytes, Stack size 24 bytes, drnd.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = _drnd ⇒ _double_round
  [Calls]
  - >> __aeabi_llsr
  - >> __aeabi_llsl
  - >> _double_round
  [Called By]
  - >> round

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

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

  - >> round

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

  - >> round

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

  BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.BusFault_Handler))
  [Calls]

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

  DMA1_Channel3_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler))
  [Stack]

  - Max Depth = 40
  - Call Chain = DMA1_Channel3_IRQHandler ⇒ HAL_DMA_IRQHandler
  [Calls]
  - >> HAL_DMA_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  DMA1_Channel4_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DMA1_Channel4_IRQHandler))
  [Stack]

  - Max Depth = 40
  - Call Chain = DMA1_Channel4_IRQHandler ⇒ HAL_DMA_IRQHandler
  [Calls]
  - >> HAL_DMA_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  DMA1_Channel5_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler))
  [Stack]

  - Max Depth = 40
  - Call Chain = DMA1_Channel5_IRQHandler ⇒ HAL_DMA_IRQHandler
  [Calls]
  - >> HAL_DMA_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

  EXTI15_10_IRQHandler (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.EXTI15_10_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI15_10_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler
  [Calls]
  - >> HAL_GPIO_EXTI_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  EXTI9_5_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.EXTI9_5_IRQHandler))
  [Stack]

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

  EXT_SetTXRXBuf_i2c (Thumb, 22 bytes, Stack size 0 bytes, ad0x0_i2c_ext.o(i.EXT_SetTXRXBuf_i2c))
  [Address Reference Count : 5]

  - ssd1327.o(i.OLED_Command)
  - ssd1327.o(i.OLED_Command2)
  - ssd1327.o(i.OLED_Command3)
  - ssd1327.o(i.OLED_Command_buf)
  - ssd1327.o(i.OLED_Command_framebuf)

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

  - >> HAL_SPI_MspInit

  HAL_DMA_Abort_IT (Thumb, 148 bytes, Stack size 8 bytes, stm32f1xx_hal_dma.o(i.HAL_DMA_Abort_IT))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_DMA_Abort_IT
  [Called By]
  - >> HAL_UART_IRQHandler
  - >> I2C_Slave_STOPF
  - >> I2C_ITError

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

  - >> I2C_Slave_STOPF

  HAL_DMA_IRQHandler (Thumb, 316 bytes, Stack size 40 bytes, stm32f1xx_hal_dma.o(i.HAL_DMA_IRQHandler))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_DMA_IRQHandler
  [Called By]
  - >> DMA1_Channel5_IRQHandler
  - >> DMA1_Channel4_IRQHandler
  - >> DMA1_Channel3_IRQHandler

  HAL_DMA_Init (Thumb, 84 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(i.HAL_DMA_Init))
  [Stack]

  - Max Depth = 12
  - Call Chain = HAL_DMA_Init
  [Called By]
  - >> HAL_SPI_MspInit

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

  - >> HAL_GPIO_EXTI_IRQHandler

  HAL_GPIO_EXTI_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, stm32f1xx_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]
  - >> EXTI9_5_IRQHandler
  - >> EXTI15_10_IRQHandler

  HAL_GPIO_Init (Thumb, 446 bytes, Stack size 40 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_GPIO_Init
  [Called By]
  - >> HAL_UART_MspInit
  - >> HAL_SPI_MspInit
  - >> HAL_I2C_MspInit
  - >> MX_GPIO_Init

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

  - >> MX_GPIO_Init

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

  - >> ad0x0_i2c1_init
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> ad0x0_i2c2_process

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

  - Max Depth = 168
  - Call Chain = HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> ad0x0_i2c2_AbortCpltCallback
  - >> ad0x0_i2c1_AbortCpltCallback
  [Called By]
  - >> I2C_ITError
  - >> I2C_DMAAbort

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

  - >> HAL_I2C_EV_IRQHandler

  HAL_I2C_ER_IRQHandler (Thumb, 196 bytes, Stack size 24 bytes, stm32f1xx_hal_i2c.o(i.HAL_I2C_ER_IRQHandler))
  [Stack]

  - Max Depth = 208
  - Call Chain = HAL_I2C_ER_IRQHandler ⇒ I2C_ITError ⇒ HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> I2C_Slave_AF
  - >> I2C_ITError
  [Called By]
  - >> I2C2_ER_IRQHandler
  - >> I2C1_ER_IRQHandler

  HAL_I2C_EV_IRQHandler (Thumb, 614 bytes, Stack size 24 bytes, stm32f1xx_hal_i2c.o(i.HAL_I2C_EV_IRQHandler))
  [Stack]

  - Max Depth = 232
  - Call Chain = HAL_I2C_EV_IRQHandler ⇒ I2C_Slave_STOPF ⇒ I2C_ITError ⇒ HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_I2C_SlaveTxCpltCallback
  - >> HAL_I2C_SlaveRxCpltCallback
  - >> HAL_I2C_AddrCallback
  - >> I2C_Slave_STOPF
  - >> I2C_MemoryTransmit_TXE_BTF
  - >> I2C_Master_SB
  - >> I2C_Master_ADDR
  - >> I2C_MasterTransmit_TXE
  - >> I2C_MasterTransmit_BTF
  - >> I2C_MasterReceive_RXNE
  - >> I2C_MasterReceive_BTF
  [Called By]
  - >> I2C2_EV_IRQHandler
  - >> I2C1_EV_IRQHandler

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

  - Max Depth = 16
  - Call Chain = HAL_I2C_ErrorCallback ⇒ ad0x0_i2c2_ErrorCallback
  [Calls]
  - >> ad0x0_i2c2_ErrorCallback
  - >> ad0x0_i2c1_ErrorCallback
  [Called By]
  - >> I2C_MasterReceive_RXNE
  - >> I2C_ITError
  - >> I2C_DMAAbort

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

  - >> ad0x0_i2c2_ErrorCallback
  - >> ad0x0_i2c1_ErrorCallback

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

  - >> ad0x0_i2c2_ErrorCallback
  - >> ad0x0_i2c1_ErrorCallback
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c2_process

  HAL_I2C_Init (Thumb, 376 bytes, Stack size 16 bytes, stm32f1xx_hal_i2c.o(i.HAL_I2C_Init))
  [Stack]

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

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

  - >> I2C_Slave_STOPF
  - >> I2C_Slave_AF
  - >> I2C_ITError

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

  - Max Depth = 152
  - Call Chain = HAL_I2C_MasterRxCpltCallback ⇒ ad0x0_i2c2_MasterRxCpltCallback ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> ad0x0_i2c2_MasterRxCpltCallback
  - >> ad0x0_i2c1_MasterRxCpltCallback
  [Called By]
  - >> I2C_MasterReceive_RXNE
  - >> I2C_MasterReceive_BTF

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

  - Max Depth = 152
  - Call Chain = HAL_I2C_MasterTxCpltCallback ⇒ ad0x0_i2c2_MasterTxCpltCallback ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> ad0x0_i2c2_MasterTxCpltCallback
  - >> ad0x0_i2c1_MasterTxCpltCallback
  [Called By]
  - >> I2C_MasterTransmit_TXE
  - >> I2C_MasterTransmit_BTF

  HAL_I2C_Master_Seq_Receive_IT (Thumb, 320 bytes, Stack size 32 bytes, stm32f1xx_hal_i2c.o(i.HAL_I2C_Master_Seq_Receive_IT))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_I2C_Master_Seq_Receive_IT
  [Called By]
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c2_process

  HAL_I2C_Master_Seq_Transmit_IT (Thumb, 212 bytes, Stack size 28 bytes, stm32f1xx_hal_i2c.o(i.HAL_I2C_Master_Seq_Transmit_IT))
  [Stack]

  - Max Depth = 28
  - Call Chain = HAL_I2C_Master_Seq_Transmit_IT
  [Called By]
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c2_process

  HAL_I2C_Master_Transmit_IT (Thumb, 180 bytes, Stack size 20 bytes, stm32f1xx_hal_i2c.o(i.HAL_I2C_Master_Transmit_IT))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_I2C_Master_Transmit_IT
  [Called By]
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c2_process

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

  - >> I2C_MasterReceive_RXNE
  - >> I2C_MasterReceive_BTF

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

  - >> I2C_MemoryTransmit_TXE_BTF
  - >> I2C_MasterTransmit_TXE

  HAL_I2C_MspInit (Thumb, 196 bytes, Stack size 32 bytes, stm32f1xx_hal_msp.o(i.HAL_I2C_MspInit))
  [Stack]

  - Max Depth = 72
  - Call Chain = HAL_I2C_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_GPIO_Init
  [Called By]
  - >> HAL_I2C_Init

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

  - >> HAL_I2C_EV_IRQHandler
  - >> I2C_Slave_STOPF

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

  - >> HAL_I2C_EV_IRQHandler
  - >> I2C_Slave_AF

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

  - >> HAL_TIM_PeriodElapsedCallback

  HAL_Init (Thumb, 32 bytes, Stack size 8 bytes, stm32f1xx_hal.o(i.HAL_Init))
  [Stack]

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

  HAL_InitTick (Thumb, 100 bytes, Stack size 32 bytes, stm32f1xx_hal_timebase_tim.o(i.HAL_InitTick))
  [Stack]

  - Max Depth = 64
  - Call Chain = HAL_InitTick ⇒ HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority
  [Calls]
  - >> HAL_RCC_GetPCLK1Freq
  - >> HAL_RCC_GetClockConfig
  - >> HAL_TIM_Base_Start_IT
  - >> HAL_TIM_Base_Init
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  [Called By]
  - >> HAL_RCC_ClockConfig
  - >> HAL_Init

  HAL_MspInit (Thumb, 62 bytes, Stack size 8 bytes, stm32f1xx_hal_msp.o(i.HAL_MspInit))
  [Stack]

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

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

  - >> HAL_InitTick
  - >> HAL_UART_MspInit
  - >> HAL_TIM_Base_MspInit
  - >> HAL_SPI_MspInit
  - >> HAL_I2C_MspInit
  - >> main
  - >> MX_GPIO_Init

  HAL_NVIC_SetPriority (Thumb, 60 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_NVIC_SetPriority
  [Calls]
  - >> __NVIC_SetPriority
  [Called By]
  - >> HAL_InitTick
  - >> HAL_UART_MspInit
  - >> HAL_TIM_Base_MspInit
  - >> HAL_SPI_MspInit
  - >> HAL_MspInit
  - >> HAL_I2C_MspInit
  - >> main
  - >> MX_GPIO_Init

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

  - >> HAL_Init

  HAL_RCC_ClockConfig (Thumb, 280 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig))
  [Stack]

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

  HAL_RCC_GetClockConfig (Thumb, 54 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetClockConfig))
  [Called By]

  - >> HAL_InitTick

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

  - >> HAL_InitTick
  - >> HAL_I2C_Init
  - >> UART_SetConfig

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

  - >> UART_SetConfig

  HAL_RCC_GetSysClockFreq (Thumb, 74 bytes, Stack size 20 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_RCC_GetSysClockFreq
  [Called By]
  - >> HAL_RCC_ClockConfig

  HAL_RCC_OscConfig (Thumb, 778 bytes, Stack size 40 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig))
  [Stack]

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

  HAL_SPI_Init (Thumb, 178 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_Init))
  [Stack]

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

  HAL_SPI_MspInit (Thumb, 310 bytes, Stack size 48 bytes, stm32f1xx_hal_msp.o(i.HAL_SPI_MspInit))
  [Stack]

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

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

  HAL_TIMEx_MasterConfigSynchronization (Thumb, 92 bytes, Stack size 16 bytes, stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization))
  [Stack]

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

  HAL_TIM_Base_Init (Thumb, 90 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Init))
  [Stack]

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

  HAL_TIM_Base_MspInit (Thumb, 50 bytes, Stack size 8 bytes, stm32f1xx_hal_msp.o(i.HAL_TIM_Base_MspInit))
  [Stack]

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

  HAL_TIM_Base_Start_IT (Thumb, 76 bytes, Stack size 0 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Start_IT))
  [Called By]

  - >> HAL_InitTick
  - >> MX_TIM4_Init

  HAL_TIM_ConfigClockSource (Thumb, 214 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_ConfigClockSource))
  [Stack]

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

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

  - >> HAL_TIM_IRQHandler

  HAL_TIM_IRQHandler (Thumb, 358 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_TIM_IRQHandler
  [Calls]
  - >> HAL_TIM_PeriodElapsedCallback
  - >> HAL_TIM_TriggerCallback
  - >> HAL_TIM_PWM_PulseFinishedCallback
  - >> HAL_TIM_OC_DelayElapsedCallback
  - >> HAL_TIM_IC_CaptureCallback
  - >> HAL_TIMEx_CommutCallback
  - >> HAL_TIMEx_BreakCallback
  [Called By]
  - >> TIM4_IRQHandler
  - >> TIM3_IRQHandler

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

  HAL_TIM_PeriodElapsedCallback (Thumb, 14 bytes, Stack size 0 bytes, main.o(i.HAL_TIM_PeriodElapsedCallback))
  [Calls]

  - >> HAL_IncTick
  [Called By]
  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_UART_IRQHandler
  - >> UART_DMAAbortOnError

  HAL_UART_IRQHandler (Thumb, 344 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT
  [Calls]
  - >> HAL_DMA_Abort_IT
  - >> HAL_UART_TxCpltCallback
  - >> HAL_UART_ErrorCallback
  - >> UART_Receive_IT
  - >> UART_EndRxTransfer
  [Called By]
  - >> USART1_IRQHandler

  HAL_UART_Init (Thumb, 98 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.HAL_UART_Init))
  [Stack]

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

  HAL_UART_MspInit (Thumb, 116 bytes, Stack size 32 bytes, stm32f1xx_hal_msp.o(i.HAL_UART_MspInit))
  [Stack]

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

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

  - >> UART_Receive_IT

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

  - >> HAL_UART_IRQHandler

  HardFault_Handler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.HardFault_Handler))
  [Calls]

  - >> ad0x0_err
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  I2C1_ER_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.I2C1_ER_IRQHandler))
  [Stack]

  - Max Depth = 208
  - Call Chain = I2C1_ER_IRQHandler ⇒ HAL_I2C_ER_IRQHandler ⇒ I2C_ITError ⇒ HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_I2C_ER_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  I2C1_EV_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.I2C1_EV_IRQHandler))
  [Stack]

  - Max Depth = 232
  - Call Chain = I2C1_EV_IRQHandler ⇒ HAL_I2C_EV_IRQHandler ⇒ I2C_Slave_STOPF ⇒ I2C_ITError ⇒ HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_I2C_EV_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  I2C2_ER_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.I2C2_ER_IRQHandler))
  [Stack]

  - Max Depth = 208
  - Call Chain = I2C2_ER_IRQHandler ⇒ HAL_I2C_ER_IRQHandler ⇒ I2C_ITError ⇒ HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_I2C_ER_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  I2C2_EV_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.I2C2_EV_IRQHandler))
  [Stack]

  - Max Depth = 232
  - Call Chain = I2C2_EV_IRQHandler ⇒ HAL_I2C_EV_IRQHandler ⇒ I2C_Slave_STOPF ⇒ I2C_ITError ⇒ HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_I2C_EV_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.MemManage_Handler))
  [Calls]

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

  NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.NMI_Handler))
  [Calls]

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

  OLED_Char (Thumb, 116 bytes, Stack size 48 bytes, ssd1327.o(i.OLED_Char))
  [Stack]

  - Max Depth = 48
  - Call Chain = OLED_Char
  [Called By]
  - >> OLED_test2
  - >> OLED_PrintAt

  OLED_Clear (Thumb, 68 bytes, Stack size 40 bytes, ssd1327.o(i.OLED_Clear))
  [Stack]

  - Max Depth = 64
  - Call Chain = OLED_Clear ⇒ OLED_GotoXYWH
  [Calls]
  - >> OLED_GotoXYWH
  [Called By]
  - >> OLED_test
  - >> OLED_clear_i2c2
  - >> OLED_clear_i2c1

  OLED_Command (Thumb, 62 bytes, Stack size 24 bytes, ssd1327.o(i.OLED_Command))
  [Stack]

  - Max Depth = 24
  - Call Chain = OLED_Command
  [Called By]
  - >> command_i2c2
  - >> command_i2c1

  OLED_Command2 (Thumb, 72 bytes, Stack size 32 bytes, ssd1327.o(i.OLED_Command2))
  [Stack]

  - Max Depth = 32
  - Call Chain = OLED_Command2
  [Called By]
  - >> command2_i2c2
  - >> command2_i2c1

  OLED_Command3 (Thumb, 80 bytes, Stack size 32 bytes, ssd1327.o(i.OLED_Command3))
  [Stack]

  - Max Depth = 32
  - Call Chain = OLED_Command3
  [Called By]
  - >> command3_i2c2
  - >> command3_i2c1

  OLED_Command_buf (Thumb, 78 bytes, Stack size 24 bytes, ssd1327.o(i.OLED_Command_buf))
  [Stack]

  - Max Depth = 24
  - Call Chain = OLED_Command_buf
  [Calls]
  - >> ad0x0_err
  - >> __aeabi_memcpy
  [Called By]
  - >> command_buf_i2c2
  - >> command_buf_i2c1

  OLED_Command_framebuf (Thumb, 50 bytes, Stack size 16 bytes, ssd1327.o(i.OLED_Command_framebuf))
  [Stack]

  - Max Depth = 16
  - Call Chain = OLED_Command_framebuf
  [Called By]
  - >> buf_render

  OLED_GotoXY (Thumb, 50 bytes, Stack size 16 bytes, ssd1327.o(i.OLED_GotoXY))
  [Stack]

  - Max Depth = 16
  - Call Chain = OLED_GotoXY
  [Calls]
  - >> ad0x0_err
  [Called By]
  - >> OLED_Init

  OLED_GotoXYWH (Thumb, 60 bytes, Stack size 24 bytes, ssd1327.o(i.OLED_GotoXYWH))
  [Stack]

  - Max Depth = 24
  - Call Chain = OLED_GotoXYWH
  [Calls]
  - >> ad0x0_err
  [Called By]
  - >> OLED_test2
  - >> OLED_PrintAt
  - >> OLED_Clear

  OLED_Init (Thumb, 68 bytes, Stack size 8 bytes, ssd1327.o(i.OLED_Init))
  [Stack]

  - Max Depth = 184
  - Call Chain = OLED_Init ⇒ ad0x0_i2c1_push ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> ad0x0_i2c1_push
  - >> OLED_GotoXY
  [Called By]
  - >> OLED_Init2

  OLED_Init2 (Thumb, 162 bytes, Stack size 16 bytes, ssd1327.o(i.OLED_Init2))
  [Stack]

  - Max Depth = 200
  - Call Chain = OLED_Init2 ⇒ OLED_Init ⇒ ad0x0_i2c1_push ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> ad0x0_err
  - >> __aeabi_memclr4
  - >> __aeabi_memclr
  - >> OLED_Init
  [Called By]
  - >> StartDefaultTask

  OLED_PrintAt (Thumb, 96 bytes, Stack size 32 bytes, ssd1327.o(i.OLED_PrintAt))
  [Stack]

  - Max Depth = 80
  - Call Chain = OLED_PrintAt ⇒ OLED_Char
  [Calls]
  - >> OLED_GotoXYWH
  - >> OLED_Char
  [Called By]
  - >> OLED_test
  - >> OLED_PrintAt_i2c2
  - >> OLED_PrintAt_i2c1

  OLED_PrintAt_i2c1 (Thumb, 20 bytes, Stack size 8 bytes, ssd1327.o(i.OLED_PrintAt_i2c1))
  [Stack]

  - Max Depth = 88
  - Call Chain = OLED_PrintAt_i2c1 ⇒ OLED_PrintAt ⇒ OLED_Char
  [Calls]
  - >> OLED_PrintAt
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  OLED_PrintAt_i2c2 (Thumb, 20 bytes, Stack size 8 bytes, ssd1327.o(i.OLED_PrintAt_i2c2))
  [Stack]

  - Max Depth = 88
  - Call Chain = OLED_PrintAt_i2c2 ⇒ OLED_PrintAt ⇒ OLED_Char
  [Calls]
  - >> OLED_PrintAt
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  OLED_clear_i2c1 (Thumb, 8 bytes, Stack size 0 bytes, ssd1327.o(i.OLED_clear_i2c1))
  [Stack]

  - Max Depth = 64
  - Call Chain = OLED_clear_i2c1 ⇒ OLED_Clear ⇒ OLED_GotoXYWH
  [Calls]
  - >> OLED_Clear
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  OLED_clear_i2c2 (Thumb, 8 bytes, Stack size 0 bytes, ssd1327.o(i.OLED_clear_i2c2))
  [Stack]

  - Max Depth = 64
  - Call Chain = OLED_clear_i2c2 ⇒ OLED_Clear ⇒ OLED_GotoXYWH
  [Calls]
  - >> OLED_Clear
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  OLED_test (Thumb, 78 bytes, Stack size 24 bytes, ssd1327.o(i.OLED_test))
  [Stack]

  - Max Depth = 104
  - Call Chain = OLED_test ⇒ OLED_PrintAt ⇒ OLED_Char
  [Calls]
  - >> osDelay
  - >> OLED_PrintAt
  - >> OLED_Clear
  [Called By]
  - >> OLED_test_i2c2
  - >> OLED_test_i2c1

  OLED_test2 (Thumb, 294 bytes, Stack size 192 bytes, ssd1327.o(i.OLED_test2))
  [Stack]

  - Max Depth = 240
  - Call Chain = OLED_test2 ⇒ OLED_Char
  [Calls]
  - >> xTaskGetTickCount
  - >> __2sprintf
  - >> OLED_GotoXYWH
  - >> OLED_Char
  [Called By]
  - >> OLED_test2_i2c2
  - >> OLED_test2_i2c1

  OLED_test2_i2c1 (Thumb, 8 bytes, Stack size 0 bytes, ssd1327.o(i.OLED_test2_i2c1))
  [Stack]

  - Max Depth = 240
  - Call Chain = OLED_test2_i2c1 ⇒ OLED_test2 ⇒ OLED_Char
  [Calls]
  - >> OLED_test2
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  OLED_test2_i2c2 (Thumb, 8 bytes, Stack size 0 bytes, ssd1327.o(i.OLED_test2_i2c2))
  [Stack]

  - Max Depth = 240
  - Call Chain = OLED_test2_i2c2 ⇒ OLED_test2 ⇒ OLED_Char
  [Calls]
  - >> OLED_test2
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  OLED_test3 (Thumb, 386 bytes, Stack size 40 bytes, ssd1327.o(i.OLED_test3))
  [Stack]

  - Max Depth = 160
  - Call Chain = OLED_test3 ⇒ round ⇒ __aeabi_dsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> round
  - >> __aeabi_ui2f
  - >> __aeabi_fsub
  - >> __aeabi_fmul
  - >> __aeabi_fdiv
  - >> __aeabi_f2d
  - >> __aeabi_dmul
  - >> __aeabi_dadd
  - >> __aeabi_d2uiz
  - >> __aeabi_d2f
  - >> sqrxi32
  [Called By]
  - >> OLED_test3_i2c2
  - >> OLED_test3_i2c1

  OLED_test3_i2c1 (Thumb, 8 bytes, Stack size 0 bytes, ssd1327.o(i.OLED_test3_i2c1))
  [Stack]

  - Max Depth = 160
  - Call Chain = OLED_test3_i2c1 ⇒ OLED_test3 ⇒ round ⇒ __aeabi_dsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> OLED_test3
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  OLED_test3_i2c2 (Thumb, 8 bytes, Stack size 0 bytes, ssd1327.o(i.OLED_test3_i2c2))
  [Stack]

  - Max Depth = 160
  - Call Chain = OLED_test3_i2c2 ⇒ OLED_test3 ⇒ round ⇒ __aeabi_dsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> OLED_test3
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  OLED_test_i2c1 (Thumb, 8 bytes, Stack size 0 bytes, ssd1327.o(i.OLED_test_i2c1))
  [Stack]

  - Max Depth = 104
  - Call Chain = OLED_test_i2c1 ⇒ OLED_test ⇒ OLED_PrintAt ⇒ OLED_Char
  [Calls]
  - >> OLED_test
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  OLED_test_i2c2 (Thumb, 8 bytes, Stack size 0 bytes, ssd1327.o(i.OLED_test_i2c2))
  [Stack]

  - Max Depth = 104
  - Call Chain = OLED_test_i2c2 ⇒ OLED_test ⇒ OLED_PrintAt ⇒ OLED_Char
  [Calls]
  - >> OLED_test
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

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

  - startup_stm32f103xb.o(RESET)

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

  - startup_stm32f103xb.o(RESET)

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

  - Max Depth = 200
  - Call Chain = StartDefaultTask ⇒ OLED_Init2 ⇒ OLED_Init ⇒ ad0x0_i2c1_push ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> OLED_Init2
  [Address Reference Count : 1]
  - main.o(i.main)

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

  - Max Depth = 184 + In Cycle
  - Call Chain = StartTask02 ⇒ StartTask02 (Cycle)
  [Calls]
  - >> ad0x0_i2c1_xqRecieveHandler
  - >> StartTask02
  [Called By]
  - >> StartTask02
  [Address Reference Count : 1]
  - main.o(i.main)

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

  - Max Depth = 72
  - Call Chain = StartTask03 ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> buf_render
  [Address Reference Count : 1]
  - main.o(i.main)

  SysTick_Handler (Thumb, 38 bytes, Stack size 8 bytes, port.o(i.SysTick_Handler))
  [Stack]

  - Max Depth = 32
  - Call Chain = SysTick_Handler ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskIncrementTick
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  SystemClock_Config (Thumb, 96 bytes, Stack size 72 bytes, main.o(i.SystemClock_Config))
  [Stack]

  - Max Depth = 168
  - Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority
  [Calls]
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> __aeabi_memclr4
  [Called By]
  - >> main

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

  - startup_stm32f103xb.o(.text)

  TIM3_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.TIM3_IRQHandler))
  [Stack]

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

  TIM4_IRQHandler (Thumb, 16 bytes, Stack size 8 bytes, stm32f1xx_it.o(i.TIM4_IRQHandler))
  [Stack]

  - Max Depth = 24
  - Call Chain = TIM4_IRQHandler ⇒ ad0x0_timman_tickms
  [Calls]
  - >> ad0x0_timman_tickms
  - >> HAL_TIM_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  TIM_Base_SetConfig (Thumb, 94 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig))
  [Stack]

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

  TIM_ETR_SetConfig (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig))
  [Stack]

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

  USART1_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.USART1_IRQHandler))
  [Stack]

  - Max Depth = 24
  - Call Chain = USART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT
  [Calls]
  - >> HAL_UART_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f103xb.o(RESET)

  UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.UsageFault_Handler))
  [Calls]

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

  __0sprintf$1 (Thumb, 34 bytes, Stack size 24 bytes, printf1.o(i.__0sprintf$1), UNUSED)
  [Calls]

  - >> _sputc
  - >> _printf_core

  __1sprintf$1 (Thumb, 0 bytes, Stack size 24 bytes, printf1.o(i.__0sprintf$1), UNUSED)

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

  - Max Depth = 24
  - Call Chain = __2sprintf
  [Called By]
  - >> ad0x0_i2c1_MasterTxCpltCallback
  - >> ad0x0_i2c1_MasterRxCpltCallback
  - >> ad0x0_i2c1_process
  - >> OLED_test2
  - >> ad0x0_i2c2_process

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

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

  - >> HardFault_Handler
  - >> ad0x0_i2c2_MasterTxCpltCallback
  - >> ad0x0_i2c2_MasterRxCpltCallback
  - >> ad0x0_i2c2_ErrorCallback
  - >> ad0x0_i2c2_AbortCpltCallback
  - >> ad0x0_i2c1_xqRecieveHandler
  - >> ad0x0_i2c1_init
  - >> ad0x0_i2c1_MasterTxCpltCallback
  - >> ad0x0_i2c1_MasterRxCpltCallback
  - >> ad0x0_i2c1_ErrorCallback
  - >> ad0x0_i2c1_AbortCpltCallback
  - >> OLED_Init2
  - >> ad0x0_i2c1_push
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c1_pop
  - >> ad0x0_i2c1_err2
  - >> OLED_GotoXYWH
  - >> OLED_GotoXY
  - >> OLED_Command_buf
  - >> ad0x0_i2c2_push
  - >> ad0x0_i2c2_process
  - >> ad0x0_i2c2_pop
  - >> ad0x0_i2c2_err2
  [Address Reference Count : 2]
  - main.o(i.main)
  - ad0x0_i2c1.o(i.ad0x0_i2c1_init)

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

  - >> vApplicationIdleHook

  ad0x0_i2c1_AbortCpltCallback (Thumb, 36 bytes, Stack size 8 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_AbortCpltCallback))
  [Stack]

  - Max Depth = 168
  - Call Chain = ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> ad0x0_err
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c1_pop
  [Called By]
  - >> HAL_I2C_AbortCpltCallback

  ad0x0_i2c1_ErrorCallback (Thumb, 34 bytes, Stack size 16 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_ErrorCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = ad0x0_i2c1_ErrorCallback
  [Calls]
  - >> ad0x0_err
  - >> HAL_I2C_GetState
  - >> HAL_I2C_GetError
  [Called By]
  - >> HAL_I2C_ErrorCallback

  ad0x0_i2c1_MasterRxCpltCallback (Thumb, 100 bytes, Stack size 24 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_MasterRxCpltCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = ad0x0_i2c1_MasterRxCpltCallback ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> ad0x0_err
  - >> xQueueGenericSendFromISR
  - >> ad0x0_i2c1_err2
  - >> __2sprintf
  [Called By]
  - >> HAL_I2C_MasterRxCpltCallback

  ad0x0_i2c1_MasterTxCpltCallback (Thumb, 124 bytes, Stack size 24 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_MasterTxCpltCallback))
  [Stack]

  - Max Depth = 96
  - Call Chain = ad0x0_i2c1_MasterTxCpltCallback ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> ad0x0_err
  - >> xQueueGenericSendFromISR
  - >> ad0x0_i2c1_err2
  - >> ad0x0_i2c_ext_post_process
  - >> __2sprintf
  [Called By]
  - >> HAL_I2C_MasterTxCpltCallback

  ad0x0_i2c1_err2 (Thumb, 20 bytes, Stack size 8 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_err2))
  [Stack]

  - Max Depth = 16
  - Call Chain = ad0x0_i2c1_err2 ⇒ strcmp
  [Calls]
  - >> ad0x0_err
  - >> strcmp
  [Called By]
  - >> ad0x0_i2c1_MasterTxCpltCallback
  - >> ad0x0_i2c1_MasterRxCpltCallback
  - >> ad0x0_i2c1_process

  ad0x0_i2c1_get_ext_async2 (Thumb, 40 bytes, Stack size 16 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_get_ext_async2))
  [Stack]

  - Max Depth = 88
  - Call Chain = ad0x0_i2c1_get_ext_async2 ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> ad0x0_i2c_ext_get
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  ad0x0_i2c1_init (Thumb, 64 bytes, Stack size 16 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_init))
  [Stack]

  - Max Depth = 120
  - Call Chain = ad0x0_i2c1_init ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> ad0x0_err
  - >> HAL_GetTick
  - >> xQueueGenericCreate
  - >> ad0x0_i2c1_initq
  - >> __aeabi_memclr4
  [Called By]
  - >> main

  ad0x0_i2c1_initq (Thumb, 54 bytes, Stack size 12 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_initq))
  [Stack]

  - Max Depth = 12
  - Call Chain = ad0x0_i2c1_initq
  [Called By]
  - >> ad0x0_i2c1_init

  ad0x0_i2c1_next (Thumb, 30 bytes, Stack size 8 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_next))
  [Stack]

  - Max Depth = 168
  - Call Chain = ad0x0_i2c1_next ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c1_pop
  [Called By]
  - >> ad0x0_i2c1_xqRecieveHandler

  ad0x0_i2c1_pop (Thumb, 106 bytes, Stack size 16 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_pop))
  [Stack]

  - Max Depth = 32
  - Call Chain = ad0x0_i2c1_pop ⇒ ad0x0_i2c_ext_release ⇒ ad0x0_memman_free
  [Calls]
  - >> ad0x0_err
  - >> ad0x0_i2c_ext_release
  [Called By]
  - >> ad0x0_i2c1_xqRecieveHandler
  - >> ad0x0_i2c1_AbortCpltCallback
  - >> ad0x0_i2c1_next

  ad0x0_i2c1_process (Thumb, 348 bytes, Stack size 48 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_process))
  [Stack]

  - Max Depth = 160
  - Call Chain = ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> ad0x0_err
  - >> HAL_I2C_Master_Transmit_IT
  - >> HAL_I2C_Master_Seq_Transmit_IT
  - >> HAL_I2C_Master_Seq_Receive_IT
  - >> HAL_I2C_GetState
  - >> xTaskGetTickCountFromISR
  - >> xTaskGetTickCount
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend
  - >> ad0x0_i2c1_err2
  - >> ad0x0_i2c_ext_pre_process
  - >> ad0x0_i2c_ext_post_process
  - >> __2sprintf
  [Called By]
  - >> ad0x0_i2c1_xqRecieveHandler
  - >> ad0x0_i2c1_AbortCpltCallback
  - >> ad0x0_i2c1_push
  - >> ad0x0_i2c1_next

  ad0x0_i2c1_push (Thumb, 68 bytes, Stack size 16 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_push))
  [Stack]

  - Max Depth = 176
  - Call Chain = ad0x0_i2c1_push ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> ad0x0_err
  - >> ad0x0_i2c1_process
  [Called By]
  - >> OLED_Init
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  ad0x0_i2c1_xqRecieveHandler (Thumb, 130 bytes, Stack size 16 bytes, ad0x0_i2c1.o(i.ad0x0_i2c1_xqRecieveHandler))
  [Stack]

  - Max Depth = 184
  - Call Chain = ad0x0_i2c1_xqRecieveHandler ⇒ ad0x0_i2c1_next ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> ad0x0_err
  - >> xQueueReceive
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c1_pop
  - >> ad0x0_i2c1_next
  - >> ad0x0_i2c_ext_post_process
  [Called By]
  - >> StartTask02

  ad0x0_i2c2_AbortCpltCallback (Thumb, 36 bytes, Stack size 8 bytes, ad0x0_i2c2.o(i.ad0x0_i2c2_AbortCpltCallback))
  [Stack]

  - Max Depth = 152
  - Call Chain = ad0x0_i2c2_AbortCpltCallback ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> ad0x0_err
  - >> ad0x0_i2c2_process
  - >> ad0x0_i2c2_pop
  [Called By]
  - >> HAL_I2C_AbortCpltCallback

  ad0x0_i2c2_ErrorCallback (Thumb, 34 bytes, Stack size 16 bytes, ad0x0_i2c2.o(i.ad0x0_i2c2_ErrorCallback))
  [Stack]

  - Max Depth = 16
  - Call Chain = ad0x0_i2c2_ErrorCallback
  [Calls]
  - >> ad0x0_err
  - >> HAL_I2C_GetState
  - >> HAL_I2C_GetError
  [Called By]
  - >> HAL_I2C_ErrorCallback

  ad0x0_i2c2_MasterRxCpltCallback (Thumb, 76 bytes, Stack size 8 bytes, ad0x0_i2c2.o(i.ad0x0_i2c2_MasterRxCpltCallback))
  [Stack]

  - Max Depth = 152
  - Call Chain = ad0x0_i2c2_MasterRxCpltCallback ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> ad0x0_err
  - >> ad0x0_i2c_ext_post_process
  - >> ad0x0_i2c2_process
  - >> ad0x0_i2c2_pop
  [Called By]
  - >> HAL_I2C_MasterRxCpltCallback

  ad0x0_i2c2_MasterTxCpltCallback (Thumb, 76 bytes, Stack size 8 bytes, ad0x0_i2c2.o(i.ad0x0_i2c2_MasterTxCpltCallback))
  [Stack]

  - Max Depth = 152
  - Call Chain = ad0x0_i2c2_MasterTxCpltCallback ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> ad0x0_err
  - >> ad0x0_i2c_ext_post_process
  - >> ad0x0_i2c2_process
  - >> ad0x0_i2c2_pop
  [Called By]
  - >> HAL_I2C_MasterTxCpltCallback

  ad0x0_i2c2_err2 (Thumb, 20 bytes, Stack size 8 bytes, ad0x0_i2c2.o(i.ad0x0_i2c2_err2))
  [Stack]

  - Max Depth = 16
  - Call Chain = ad0x0_i2c2_err2 ⇒ strcmp
  [Calls]
  - >> ad0x0_err
  - >> strcmp
  [Called By]
  - >> ad0x0_i2c2_process

  ad0x0_i2c2_get_ext_async2 (Thumb, 40 bytes, Stack size 16 bytes, ad0x0_i2c2.o(i.ad0x0_i2c2_get_ext_async2))
  [Stack]

  - Max Depth = 88
  - Call Chain = ad0x0_i2c2_get_ext_async2 ⇒ osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osDelay
  - >> ad0x0_i2c_ext_get
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  ad0x0_i2c2_pop (Thumb, 106 bytes, Stack size 16 bytes, ad0x0_i2c2.o(i.ad0x0_i2c2_pop))
  [Stack]

  - Max Depth = 32
  - Call Chain = ad0x0_i2c2_pop ⇒ ad0x0_i2c_ext_release ⇒ ad0x0_memman_free
  [Calls]
  - >> ad0x0_err
  - >> ad0x0_i2c_ext_release
  [Called By]
  - >> ad0x0_i2c2_MasterTxCpltCallback
  - >> ad0x0_i2c2_MasterRxCpltCallback
  - >> ad0x0_i2c2_AbortCpltCallback
  - >> ad0x0_i2c2_process

  ad0x0_i2c2_process (Thumb, 374 bytes, Stack size 32 bytes, ad0x0_i2c2.o(i.ad0x0_i2c2_process))
  [Stack]

  - Max Depth = 144 + In Cycle
  - Call Chain = ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> ad0x0_err
  - >> HAL_GetTick
  - >> HAL_I2C_Master_Transmit_IT
  - >> HAL_I2C_Master_Seq_Transmit_IT
  - >> HAL_I2C_Master_Seq_Receive_IT
  - >> HAL_I2C_GetState
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend
  - >> ad0x0_i2c_ext_pre_process
  - >> ad0x0_i2c_ext_post_process
  - >> __2sprintf
  - >> ad0x0_i2c2_process
  - >> ad0x0_i2c2_pop
  - >> ad0x0_i2c2_err2
  [Called By]
  - >> ad0x0_i2c2_MasterTxCpltCallback
  - >> ad0x0_i2c2_MasterRxCpltCallback
  - >> ad0x0_i2c2_AbortCpltCallback
  - >> ad0x0_i2c2_push
  - >> ad0x0_i2c2_process

  ad0x0_i2c2_push (Thumb, 68 bytes, Stack size 16 bytes, ad0x0_i2c2.o(i.ad0x0_i2c2_push))
  [Stack]

  - Max Depth = 160
  - Call Chain = ad0x0_i2c2_push ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> osDelay
  - >> ad0x0_err
  - >> ad0x0_i2c2_process
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  ad0x0_i2c_ext_get (Thumb, 88 bytes, Stack size 24 bytes, ad0x0_i2c_ext.o(i.ad0x0_i2c_ext_get))
  [Stack]

  - Max Depth = 36
  - Call Chain = ad0x0_i2c_ext_get ⇒ ad0x0_memman_get
  [Calls]
  - >> ad0x0_memman_get
  - >> __aeabi_memclr
  [Called By]
  - >> ad0x0_i2c1_get_ext_async2
  - >> ad0x0_i2c2_get_ext_async2

  ad0x0_i2c_ext_init (Thumb, 10 bytes, Stack size 0 bytes, ad0x0_i2c_ext.o(i.ad0x0_i2c_ext_init))
  [Calls]

  - >> ad0x0_memman_init
  [Called By]
  - >> main

  ad0x0_i2c_ext_post_process (Thumb, 44 bytes, Stack size 16 bytes, ad0x0_i2c_ext.o(i.ad0x0_i2c_ext_post_process))
  [Stack]

  - Max Depth = 32
  - Call Chain = ad0x0_i2c_ext_post_process ⇒ ad0x0_i2c_ext_release ⇒ ad0x0_memman_free
  [Calls]
  - >> ad0x0_i2c_ext_release
  [Called By]
  - >> ad0x0_i2c2_MasterTxCpltCallback
  - >> ad0x0_i2c2_MasterRxCpltCallback
  - >> ad0x0_i2c1_xqRecieveHandler
  - >> ad0x0_i2c1_MasterTxCpltCallback
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c2_process

  ad0x0_i2c_ext_pre_process (Thumb, 56 bytes, Stack size 16 bytes, ad0x0_i2c_ext.o(i.ad0x0_i2c_ext_pre_process))
  [Stack]

  - Max Depth = 16
  - Call Chain = ad0x0_i2c_ext_pre_process
  [Called By]
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c2_process

  ad0x0_i2c_ext_release (Thumb, 30 bytes, Stack size 0 bytes, ad0x0_i2c_ext.o(i.ad0x0_i2c_ext_release))
  [Stack]

  - Max Depth = 16
  - Call Chain = ad0x0_i2c_ext_release ⇒ ad0x0_memman_free
  [Calls]
  - >> ad0x0_memman_free
  [Called By]
  - >> ad0x0_i2c1_pop
  - >> ad0x0_i2c_ext_post_process
  - >> ad0x0_i2c2_pop

  ad0x0_memman_free (Thumb, 80 bytes, Stack size 16 bytes, ad0x0_memman.o(i.ad0x0_memman_free))
  [Stack]

  - Max Depth = 16
  - Call Chain = ad0x0_memman_free
  [Called By]
  - >> ad0x0_i2c_ext_release

  ad0x0_memman_get (Thumb, 74 bytes, Stack size 12 bytes, ad0x0_memman.o(i.ad0x0_memman_get))
  [Stack]

  - Max Depth = 12
  - Call Chain = ad0x0_memman_get
  [Called By]
  - >> ad0x0_i2c_ext_get

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

  - >> ad0x0_i2c_ext_init

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

  - >> ad0x0_perf_tick_idle

  ad0x0_perf_tick_idle (Thumb, 20 bytes, Stack size 0 bytes, ad0x0_perf.o(i.ad0x0_perf_tick_idle))
  [Calls]

  - >> ad0x0_perf_init
  [Called By]
  - >> vApplicationIdleHook

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

  - >> main

  ad0x0_timman_tickms (Thumb, 44 bytes, Stack size 16 bytes, ad0x0_timman.o(i.ad0x0_timman_tickms))
  [Stack]

  - Max Depth = 16
  - Call Chain = ad0x0_timman_tickms
  [Called By]
  - >> TIM4_IRQHandler

  buf_render (Thumb, 4 bytes, Stack size 0 bytes, ssd1327.o(i.buf_render))
  [Stack]

  - Max Depth = 16
  - Call Chain = buf_render ⇒ OLED_Command_framebuf
  [Calls]
  - >> OLED_Command_framebuf
  [Called By]
  - >> StartTask03

  command2_i2c1 (Thumb, 14 bytes, Stack size 0 bytes, ssd1327.o(i.command2_i2c1))
  [Stack]

  - Max Depth = 32
  - Call Chain = command2_i2c1 ⇒ OLED_Command2
  [Calls]
  - >> OLED_Command2
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  command2_i2c2 (Thumb, 14 bytes, Stack size 0 bytes, ssd1327.o(i.command2_i2c2))
  [Stack]

  - Max Depth = 32
  - Call Chain = command2_i2c2 ⇒ OLED_Command2
  [Calls]
  - >> OLED_Command2
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  command3_i2c1 (Thumb, 20 bytes, Stack size 8 bytes, ssd1327.o(i.command3_i2c1))
  [Stack]

  - Max Depth = 40
  - Call Chain = command3_i2c1 ⇒ OLED_Command3
  [Calls]
  - >> OLED_Command3
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  command3_i2c2 (Thumb, 20 bytes, Stack size 8 bytes, ssd1327.o(i.command3_i2c2))
  [Stack]

  - Max Depth = 40
  - Call Chain = command3_i2c2 ⇒ OLED_Command3
  [Calls]
  - >> OLED_Command3
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  command_buf_i2c1 (Thumb, 12 bytes, Stack size 0 bytes, ssd1327.o(i.command_buf_i2c1))
  [Stack]

  - Max Depth = 24
  - Call Chain = command_buf_i2c1 ⇒ OLED_Command_buf
  [Calls]
  - >> OLED_Command_buf
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  command_buf_i2c2 (Thumb, 12 bytes, Stack size 0 bytes, ssd1327.o(i.command_buf_i2c2))
  [Stack]

  - Max Depth = 24
  - Call Chain = command_buf_i2c2 ⇒ OLED_Command_buf
  [Calls]
  - >> OLED_Command_buf
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  command_i2c1 (Thumb, 12 bytes, Stack size 0 bytes, ssd1327.o(i.command_i2c1))
  [Stack]

  - Max Depth = 24
  - Call Chain = command_i2c1 ⇒ OLED_Command
  [Calls]
  - >> OLED_Command
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

  command_i2c2 (Thumb, 12 bytes, Stack size 0 bytes, ssd1327.o(i.command_i2c2))
  [Stack]

  - Max Depth = 24
  - Call Chain = command_i2c2 ⇒ OLED_Command
  [Calls]
  - >> OLED_Command
  [Address Reference Count : 1]
  - ssd1327.o(i.OLED_Init2)

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

  - Max Depth = 184
  - Call Chain = main ⇒ osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> osThreadNew
  - >> osKernelStart
  - >> osKernelInitialize
  - >> ad0x0_timman_init
  - >> ad0x0_i2c_ext_init
  - >> ad0x0_i2c1_init
  - >> HAL_UART_Init
  - >> HAL_NVIC_SetPriority
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_Init
  - >> SystemClock_Config
  - >> MX_TIM4_Init
  - >> MX_SPI2_Init
  - >> MX_SPI1_Init
  - >> MX_I2C2_Init
  - >> MX_I2C1_Init
  - >> MX_GPIO_Init
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  osDelay (Thumb, 46 bytes, Stack size 8 bytes, cmsis_os2.o(i.osDelay))
  [Stack]

  - Max Depth = 72
  - Call Chain = osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vTaskDelay
  [Called By]
  - >> ad0x0_i2c1_xqRecieveHandler
  - >> StartTask03
  - >> StartDefaultTask
  - >> ad0x0_i2c1_push
  - >> ad0x0_i2c1_get_ext_async2
  - >> OLED_test
  - >> ad0x0_i2c2_push
  - >> ad0x0_i2c2_get_ext_async2

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

  - >> main

  osKernelStart (Thumb, 58 bytes, Stack size 8 bytes, cmsis_os2.o(i.osKernelStart))
  [Stack]

  - Max Depth = 160
  - Call Chain = osKernelStart ⇒ vTaskStartScheduler ⇒ xTimerCreateTimerTask ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vTaskStartScheduler
  [Called By]
  - >> main

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

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

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

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

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

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

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

  - Max Depth = 120
  - Call Chain = round ⇒ __aeabi_dsub ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> _drnd
  - >> __aeabi_dsub
  - >> __aeabi_drsub
  - >> __aeabi_cdrcmple
  - >> __aeabi_cdcmple
  - >> __aeabi_dadd
  [Called By]
  - >> OLED_test3

  sqrxi32 (Thumb, 54 bytes, Stack size 12 bytes, ssd1327.o(i.sqrxi32))
  [Stack]

  - Max Depth = 12
  - Call Chain = sqrxi32
  [Called By]
  - >> OLED_test3

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

  - >> xTaskResumeAll
  - >> prvSwitchTimerLists
  - >> prvProcessTimerOrBlockTask
  - >> prvProcessReceivedCommands
  - >> xTaskIncrementTick
  - >> prvIdleTask
  - >> prvAddCurrentTaskToDelayedList
  - >> xTaskRemoveFromEventList
  - >> xTaskPriorityDisinherit

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

  - >> vTaskStartScheduler

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

  - >> xTimerCreateTimerTask

  vApplicationIdleHook (Thumb, 16 bytes, Stack size 8 bytes, freertos.o(i.vApplicationIdleHook))
  [Stack]

  - Max Depth = 8
  - Call Chain = vApplicationIdleHook
  [Calls]
  - >> ad0x0_perf_tick_idle
  - >> ad0x0_get_perf
  [Called By]
  - >> prvIdleTask

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

  - >> xTaskIncrementTick

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

  - >> prvCheckForValidListAndQueue
  - >> 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]
  - >> prvSwitchTimerLists
  - >> prvInsertTimerInActiveList
  - >> prvAddCurrentTaskToDelayedList
  - >> vTaskPlaceOnEventList

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

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

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

  - >> xTaskResumeAll
  - >> prvCheckForValidListAndQueue
  - >> prvIdleTask
  - >> prvAddNewTaskToReadyList
  - >> xTaskCheckForTimeOut
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> vQueueWaitForMessageRestricted
  - >> prvUnlockQueue
  - >> prvIsQueueEmpty

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

  - >> xTaskResumeAll
  - >> prvCheckForValidListAndQueue
  - >> prvIdleTask
  - >> prvAddNewTaskToReadyList
  - >> xTaskCheckForTimeOut
  - >> xQueueReceive
  - >> xQueueGenericSend
  - >> xQueueGenericReset
  - >> vQueueWaitForMessageRestricted
  - >> prvUnlockQueue
  - >> prvIsQueueEmpty

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

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

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

  - >> xPortStartScheduler

  vPortValidateInterruptPriority (Thumb, 74 bytes, Stack size 8 bytes, port.o(i.vPortValidateInterruptPriority))
  [Stack]

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

  vQueueAddToRegistry (Thumb, 34 bytes, Stack size 8 bytes, queue.o(i.vQueueAddToRegistry))
  [Stack]

  - Max Depth = 8
  - Call Chain = vQueueAddToRegistry
  [Called By]
  - >> prvCheckForValidListAndQueue

  vQueueWaitForMessageRestricted (Thumb, 68 bytes, Stack size 16 bytes, queue.o(i.vQueueWaitForMessageRestricted))
  [Stack]

  - Max Depth = 68
  - Call Chain = vQueueWaitForMessageRestricted ⇒ vTaskPlaceOnEventListRestricted ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vTaskPlaceOnEventListRestricted
  - >> prvUnlockQueue
  [Called By]
  - >> prvProcessTimerOrBlockTask

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

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

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

  - >> xTaskCheckForTimeOut
  - >> xQueueReceive
  - >> xQueueGenericSend

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

  - >> prvUnlockQueue

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

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

  vTaskPlaceOnEventListRestricted (Thumb, 52 bytes, Stack size 16 bytes, tasks.o(i.vTaskPlaceOnEventListRestricted))
  [Stack]

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

  vTaskStartScheduler (Thumb, 118 bytes, Stack size 40 bytes, tasks.o(i.vTaskStartScheduler))
  [Stack]

  - Max Depth = 152
  - Call Chain = vTaskStartScheduler ⇒ xTimerCreateTimerTask ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTimerCreateTimerTask
  - >> xPortStartScheduler
  - >> vApplicationGetIdleTaskMemory
  - >> xTaskCreateStatic
  [Called By]
  - >> osKernelStart

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

  - >> vPortFree
  - >> pvPortMalloc
  - >> prvProcessTimerOrBlockTask
  - >> vTaskDelay
  - >> xQueueReceive
  - >> xQueueGenericSend

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

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

  xPortStartScheduler (Thumb, 154 bytes, Stack size 16 bytes, port.o(i.xPortStartScheduler))
  [Stack]

  - Max Depth = 16
  - Call Chain = xPortStartScheduler
  [Calls]
  - >> vPortSetupTimerInterrupt
  - >> __asm___6_port_c_39a90d8d__prvStartFirstTask
  [Called By]
  - >> vTaskStartScheduler

  xQueueGenericCreate (Thumb, 72 bytes, Stack size 24 bytes, queue.o(i.xQueueGenericCreate))
  [Stack]

  - Max Depth = 104
  - Call Chain = xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> pvPortMalloc
  - >> prvInitialiseNewQueue
  [Called By]
  - >> ad0x0_i2c1_init

  xQueueGenericCreateStatic (Thumb, 102 bytes, Stack size 16 bytes, queue.o(i.xQueueGenericCreateStatic))
  [Stack]

  - Max Depth = 64
  - Call Chain = xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> prvInitialiseNewQueue
  [Called By]
  - >> prvCheckForValidListAndQueue

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

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

  xQueueGenericSend (Thumb, 346 bytes, Stack size 56 bytes, queue.o(i.xQueueGenericSend))
  [Stack]

  - Max Depth = 112
  - Call Chain = xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> xTaskGetSchedulerState
  - >> vTaskSuspendAll
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> xTaskRemoveFromEventList
  - >> xTaskCheckForTimeOut
  - >> vTaskPlaceOnEventList
  - >> vTaskInternalSetTimeOutState
  - >> prvUnlockQueue
  - >> prvCopyDataToQueue
  [Called By]
  - >> xTimerGenericCommand
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c2_process

  xQueueGenericSendFromISR (Thumb, 188 bytes, Stack size 32 bytes, queue.o(i.xQueueGenericSendFromISR))
  [Stack]

  - Max Depth = 72
  - Call Chain = xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> vPortValidateInterruptPriority
  - >> prvCopyDataToQueue
  [Called By]
  - >> ad0x0_i2c1_MasterTxCpltCallback
  - >> ad0x0_i2c1_MasterRxCpltCallback
  - >> xTimerGenericCommand
  - >> ad0x0_i2c1_process
  - >> ad0x0_i2c2_process

  xQueueReceive (Thumb, 308 bytes, Stack size 56 bytes, queue.o(i.xQueueReceive))
  [Stack]

  - Max Depth = 112
  - Call Chain = xQueueReceive ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskResumeAll
  - >> xTaskGetSchedulerState
  - >> vTaskSuspendAll
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> xTaskRemoveFromEventList
  - >> xTaskCheckForTimeOut
  - >> vTaskPlaceOnEventList
  - >> vTaskInternalSetTimeOutState
  - >> prvUnlockQueue
  - >> prvIsQueueEmpty
  - >> prvCopyDataFromQueue
  [Called By]
  - >> ad0x0_i2c1_xqRecieveHandler
  - >> prvProcessReceivedCommands

  xTaskCheckForTimeOut (Thumb, 112 bytes, Stack size 24 bytes, tasks.o(i.xTaskCheckForTimeOut))
  [Stack]

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

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

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

  xTaskCreateStatic (Thumb, 86 bytes, Stack size 40 bytes, tasks.o(i.xTaskCreateStatic))
  [Stack]

  - Max Depth = 80
  - Call Chain = xTaskCreateStatic ⇒ prvInitialiseNewTask ⇒ pxPortInitialiseStack
  [Calls]
  - >> prvInitialiseNewTask
  - >> prvAddNewTaskToReadyList
  [Called By]
  - >> osThreadNew
  - >> xTimerCreateTimerTask
  - >> vTaskStartScheduler

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

  - >> xTimerGenericCommand
  - >> xQueueReceive
  - >> xQueueGenericSend

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

  - >> prvSampleTimeNow
  - >> ad0x0_i2c1_process
  - >> OLED_test2

  xTaskGetTickCountFromISR (Thumb, 12 bytes, Stack size 8 bytes, tasks.o(i.xTaskGetTickCountFromISR))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskGetTickCountFromISR ⇒ vPortValidateInterruptPriority
  [Calls]
  - >> vPortValidateInterruptPriority
  [Called By]
  - >> ad0x0_i2c1_process

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

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

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

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

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

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

  xTaskResumeAll (Thumb, 182 bytes, Stack size 32 bytes, tasks.o(i.xTaskResumeAll))
  [Stack]

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

  xTimerCreateTimerTask (Thumb, 78 bytes, Stack size 32 bytes, timers.o(i.xTimerCreateTimerTask))
  [Stack]

  - Max Depth = 112
  - Call Chain = xTimerCreateTimerTask ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vApplicationGetTimerTaskMemory
  - >> prvCheckForValidListAndQueue
  - >> xTaskCreateStatic
  [Called By]
  - >> vTaskStartScheduler

  xTimerGenericCommand (Thumb, 98 bytes, Stack size 40 bytes, timers.o(i.xTimerGenericCommand))
  [Stack]

  - Max Depth = 152
  - Call Chain = xTimerGenericCommand ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> xTaskGetSchedulerState
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend
  [Called By]
  - >> prvSwitchTimerLists
  - >> prvProcessTimerOrBlockTask
  - >> prvProcessReceivedCommands

  ### Local Symbols

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

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

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

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

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

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

  MX_SPI1_Init (Thumb, 60 bytes, Stack size 8 bytes, main.o(i.MX_SPI1_Init))
  [Stack]

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

  MX_SPI2_Init (Thumb, 60 bytes, Stack size 8 bytes, main.o(i.MX_SPI2_Init))
  [Stack]

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

  MX_TIM4_Init (Thumb, 106 bytes, Stack size 32 bytes, main.o(i.MX_TIM4_Init))
  [Stack]

  - Max Depth = 64
  - Call Chain = MX_TIM4_Init ⇒ HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority
  [Calls]
  - >> HAL_TIM_ConfigClockSource
  - >> HAL_TIM_Base_Start_IT
  - >> HAL_TIM_Base_Init
  - >> HAL_TIMEx_MasterConfigSynchronization
  [Called By]
  - >> main

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

  - >> HAL_NVIC_SetPriority

  I2C_DMAAbort (Thumb, 182 bytes, Stack size 16 bytes, stm32f1xx_hal_i2c.o(i.I2C_DMAAbort))
  [Stack]

  - Max Depth = 184
  - Call Chain = I2C_DMAAbort ⇒ HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_I2C_ErrorCallback
  - >> HAL_I2C_AbortCpltCallback
  [Address Reference Count : 2]
  - stm32f1xx_hal_i2c.o(i.I2C_ITError)
  - stm32f1xx_hal_i2c.o(i.I2C_Slave_STOPF)

  I2C_ITError (Thumb, 336 bytes, Stack size 16 bytes, stm32f1xx_hal_i2c.o(i.I2C_ITError))
  [Stack]

  - Max Depth = 184
  - Call Chain = I2C_ITError ⇒ HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_I2C_ErrorCallback
  - >> HAL_I2C_AbortCpltCallback
  - >> HAL_DMA_Abort_IT
  - >> HAL_I2C_ListenCpltCallback
  [Called By]
  - >> HAL_I2C_ER_IRQHandler
  - >> I2C_Slave_STOPF

  I2C_MasterReceive_BTF (Thumb, 210 bytes, Stack size 8 bytes, stm32f1xx_hal_i2c.o(i.I2C_MasterReceive_BTF))
  [Stack]

  - Max Depth = 160
  - Call Chain = I2C_MasterReceive_BTF ⇒ HAL_I2C_MasterRxCpltCallback ⇒ ad0x0_i2c2_MasterRxCpltCallback ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> HAL_I2C_MasterRxCpltCallback
  - >> HAL_I2C_MemRxCpltCallback
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

  I2C_MasterReceive_RXNE (Thumb, 228 bytes, Stack size 16 bytes, stm32f1xx_hal_i2c.o(i.I2C_MasterReceive_RXNE))
  [Stack]

  - Max Depth = 168
  - Call Chain = I2C_MasterReceive_RXNE ⇒ HAL_I2C_MasterRxCpltCallback ⇒ ad0x0_i2c2_MasterRxCpltCallback ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> HAL_I2C_MasterRxCpltCallback
  - >> HAL_I2C_ErrorCallback
  - >> HAL_I2C_MemRxCpltCallback
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

  I2C_MasterTransmit_BTF (Thumb, 116 bytes, Stack size 8 bytes, stm32f1xx_hal_i2c.o(i.I2C_MasterTransmit_BTF))
  [Stack]

  - Max Depth = 160
  - Call Chain = I2C_MasterTransmit_BTF ⇒ HAL_I2C_MasterTxCpltCallback ⇒ ad0x0_i2c2_MasterTxCpltCallback ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> HAL_I2C_MasterTxCpltCallback
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

  I2C_MasterTransmit_TXE (Thumb, 182 bytes, Stack size 8 bytes, stm32f1xx_hal_i2c.o(i.I2C_MasterTransmit_TXE))
  [Stack]

  - Max Depth = 160
  - Call Chain = I2C_MasterTransmit_TXE ⇒ HAL_I2C_MasterTxCpltCallback ⇒ ad0x0_i2c2_MasterTxCpltCallback ⇒ ad0x0_i2c2_process ⇒ ad0x0_i2c2_process (Cycle)
  [Calls]
  - >> HAL_I2C_MasterTxCpltCallback
  - >> HAL_I2C_MemTxCpltCallback
  - >> I2C_MemoryTransmit_TXE_BTF
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

  I2C_Master_ADDR (Thumb, 340 bytes, Stack size 20 bytes, stm32f1xx_hal_i2c.o(i.I2C_Master_ADDR))
  [Stack]

  - Max Depth = 20
  - Call Chain = I2C_Master_ADDR
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

  I2C_Master_SB (Thumb, 140 bytes, Stack size 0 bytes, stm32f1xx_hal_i2c.o(i.I2C_Master_SB))
  [Called By]

  - >> HAL_I2C_EV_IRQHandler

  I2C_MemoryTransmit_TXE_BTF (Thumb, 160 bytes, Stack size 8 bytes, stm32f1xx_hal_i2c.o(i.I2C_MemoryTransmit_TXE_BTF))
  [Stack]

  - Max Depth = 8
  - Call Chain = I2C_MemoryTransmit_TXE_BTF
  [Calls]
  - >> HAL_I2C_MemTxCpltCallback
  [Called By]
  - >> HAL_I2C_EV_IRQHandler
  - >> I2C_MasterTransmit_TXE

  I2C_Slave_AF (Thumb, 126 bytes, Stack size 24 bytes, stm32f1xx_hal_i2c.o(i.I2C_Slave_AF))
  [Stack]

  - Max Depth = 24
  - Call Chain = I2C_Slave_AF
  [Calls]
  - >> HAL_I2C_SlaveTxCpltCallback
  - >> HAL_I2C_ListenCpltCallback
  [Called By]
  - >> HAL_I2C_ER_IRQHandler

  I2C_Slave_STOPF (Thumb, 338 bytes, Stack size 24 bytes, stm32f1xx_hal_i2c.o(i.I2C_Slave_STOPF))
  [Stack]

  - Max Depth = 208
  - Call Chain = I2C_Slave_STOPF ⇒ I2C_ITError ⇒ HAL_I2C_AbortCpltCallback ⇒ ad0x0_i2c1_AbortCpltCallback ⇒ ad0x0_i2c1_process ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> HAL_DMA_GetState
  - >> HAL_DMA_Abort_IT
  - >> HAL_I2C_SlaveRxCpltCallback
  - >> HAL_I2C_ListenCpltCallback
  - >> I2C_ITError
  [Called By]
  - >> HAL_I2C_EV_IRQHandler

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

  - >> HAL_TIM_ConfigClockSource

  TIM_TI1_ConfigInputStage (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM_TI1_ConfigInputStage
  [Called By]
  - >> HAL_TIM_ConfigClockSource

  TIM_TI2_ConfigInputStage (Thumb, 36 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM_TI2_ConfigInputStage
  [Called By]
  - >> HAL_TIM_ConfigClockSource

  UART_DMAAbortOnError (Thumb, 16 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(i.UART_DMAAbortOnError))
  [Stack]

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

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

  - >> HAL_UART_IRQHandler

  UART_Receive_IT (Thumb, 140 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(i.UART_Receive_IT))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_Receive_IT
  [Calls]
  - >> HAL_UART_RxCpltCallback
  [Called By]
  - >> HAL_UART_IRQHandler

  UART_SetConfig (Thumb, 178 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.UART_SetConfig))
  [Stack]

  - Max Depth = 16
  - Call Chain = UART_SetConfig
  [Calls]
  - >> HAL_RCC_GetPCLK1Freq
  - >> HAL_RCC_GetPCLK2Freq
  [Called By]
  - >> HAL_UART_Init

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

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

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

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

  prvInitialiseNewQueue (Thumb, 34 bytes, Stack size 16 bytes, queue.o(i.prvInitialiseNewQueue))
  [Stack]

  - Max Depth = 48
  - Call Chain = prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xQueueGenericReset
  [Called By]
  - >> xQueueGenericCreateStatic
  - >> xQueueGenericCreate

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

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

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

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

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

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

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

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

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

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

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

  - Max Depth = 80
  - Call Chain = prvIdleTask ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vApplicationIdleHook
  - >> uxListRemove
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> prvDeleteTCB
  [Address Reference Count : 1]
  - tasks.o(i.vTaskStartScheduler)

  prvInitialiseNewTask (Thumb, 156 bytes, Stack size 32 bytes, tasks.o(i.prvInitialiseNewTask))
  [Stack]

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

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

  - >> xTaskResumeAll
  - >> xTaskIncrementTick

  prvCheckForValidListAndQueue (Thumb, 72 bytes, Stack size 16 bytes, timers.o(i.prvCheckForValidListAndQueue))
  [Stack]

  - Max Depth = 80
  - Call Chain = prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vListInitialise
  - >> xQueueGenericCreateStatic
  - >> vQueueAddToRegistry
  [Called By]
  - >> xTimerCreateTimerTask

  prvInsertTimerInActiveList (Thumb, 52 bytes, Stack size 16 bytes, timers.o(i.prvInsertTimerInActiveList))
  [Stack]

  - Max Depth = 28
  - Call Chain = prvInsertTimerInActiveList ⇒ vListInsert
  [Calls]
  - >> vListInsert
  [Called By]
  - >> prvProcessTimerOrBlockTask
  - >> prvProcessReceivedCommands

  prvProcessReceivedCommands (Thumb, 198 bytes, Stack size 48 bytes, timers.o(i.prvProcessReceivedCommands))
  [Stack]

  - Max Depth = 240
  - Call Chain = prvProcessReceivedCommands ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> uxListRemove
  - >> vPortFree
  - >> xTimerGenericCommand
  - >> prvSampleTimeNow
  - >> prvInsertTimerInActiveList
  - >> xQueueReceive
  [Called By]
  - >> prvTimerTask

  prvProcessTimerOrBlockTask (Thumb, 172 bytes, Stack size 32 bytes, timers.o(i.prvProcessTimerOrBlockTask))
  [Stack]

  - Max Depth = 224
  - Call Chain = prvProcessTimerOrBlockTask ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> uxListRemove
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> xTimerGenericCommand
  - >> prvSampleTimeNow
  - >> prvInsertTimerInActiveList
  - >> vQueueWaitForMessageRestricted
  [Called By]
  - >> prvTimerTask

  prvSampleTimeNow (Thumb, 36 bytes, Stack size 16 bytes, timers.o(i.prvSampleTimeNow))
  [Stack]

  - Max Depth = 192
  - Call Chain = prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvSwitchTimerLists
  - >> xTaskGetTickCount
  [Called By]
  - >> prvProcessTimerOrBlockTask
  - >> prvProcessReceivedCommands

  prvSwitchTimerLists (Thumb, 102 bytes, Stack size 24 bytes, timers.o(i.prvSwitchTimerLists))
  [Stack]

  - Max Depth = 176
  - Call Chain = prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> vListInsert
  - >> uxListRemove
  - >> xTimerGenericCommand
  [Called By]
  - >> prvSampleTimeNow

  prvTimerTask (Thumb, 32 bytes, Stack size 0 bytes, timers.o(i.prvTimerTask))
  [Stack]

  - Max Depth = 240
  - Call Chain = prvTimerTask ⇒ prvProcessReceivedCommands ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
  [Calls]
  - >> prvProcessTimerOrBlockTask
  - >> prvProcessReceivedCommands
  [Address Reference Count : 1]
  - timers.o(i.xTimerCreateTimerTask)

  prvHeapInit (Thumb, 64 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, 36 bytes, Stack size 0 bytes, port.o(i.prvTaskExitError))
  [Address Reference Count : 1]

  - port.o(i.pxPortInitialiseStack)

  _printf_core (Thumb, 336 bytes, Stack size 88 bytes, printf1.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  [Called By]
  - >> __0sprintf$1

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

  - >> __0sprintf$1
  [Address Reference Count : 1]
  - printf1.o(i.__0sprintf$1)

  ### Undefined Global Symbols