# Static Call Graph for image epd-demo\epd-demo.axf

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Nov 13 11:29:49 2019

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

### Call chain for Maximum Stack Depth:

main ⇒ EPD_4in2_test ⇒ Paint_DrawNum ⇒ Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf

### Mutually Recursive functions

- ADC1_2_IRQHandler ⇒ ADC1_2_IRQHandler
- _Error_Handler ⇒ _Error_Handler
- HardFault_Handler ⇒ HardFault_Handler
- MemManage_Handler ⇒ MemManage_Handler
- BusFault_Handler ⇒ BusFault_Handler
- UsageFault_Handler ⇒ UsageFault_Handler

  ### Function Pointers

  - ADC1_2_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - ADC3_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - BusFault_Handler from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - CAN1_RX1_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - CAN1_SCE_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA1_Channel1_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA1_Channel2_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA1_Channel3_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA1_Channel4_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA1_Channel5_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA1_Channel6_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA1_Channel7_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA2_Channel1_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA2_Channel2_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA2_Channel3_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DMA2_Channel4_5_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - DebugMon_Handler from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - EXTI0_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - EXTI15_10_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - EXTI1_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - EXTI2_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - EXTI3_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - EXTI4_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - EXTI9_5_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - FLASH_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - FSMC_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - HardFault_Handler from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - I2C1_ER_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - I2C1_EV_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - I2C2_ER_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - I2C2_EV_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - MemManage_Handler from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - NMI_Handler from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - PVD_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - PendSV_Handler from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - RCC_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - RTC_Alarm_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - RTC_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - Reset_Handler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - SDIO_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - SPI1_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - SPI2_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - SPI3_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - SPI_2linesRxISR_16BIT from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_2linesRxISR_8BIT from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_2linesTxISR_16BIT from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_2linesTxISR_8BIT from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_AbortRx_ISR from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_AbortTx_ISR from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMAAbortOnError from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMAError from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMAHalfReceiveCplt from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMAHalfTransmitCplt from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMAHalfTransmitReceiveCplt from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMAReceiveCplt from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMARxAbortCallback from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMATransmitCplt from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMATransmitReceiveCplt from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_DMATxAbortCallback from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_RxISR_16BIT from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_RxISR_8BIT from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_TxISR_16BIT from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SPI_TxISR_8BIT from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
  - SVC_Handler from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - SysTick_Handler from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - SystemInit from system_stm32f1xx.o(.text) referenced from startup_stm32f103xe.o(.text)
  - TAMPER_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM1_BRK_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM1_CC_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM1_TRG_COM_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM1_UP_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM2_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM3_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM4_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM5_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM6_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM7_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM8_BRK_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM8_CC_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM8_TRG_COM_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - TIM8_UP_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - UART4_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - UART5_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - UART_DMAAbortOnError from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - UART_DMAError from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - UART_DMAReceiveCplt from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - UART_DMARxAbortCallback from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - UART_DMARxHalfCplt from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - UART_DMARxOnlyAbortCallback from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - UART_DMATransmitCplt from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - UART_DMATxAbortCallback from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - UART_DMATxHalfCplt from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - UART_DMATxOnlyAbortCallback from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
  - USART1_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - USART2_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - USART3_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - USBWakeUp_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - USB_HP_CAN1_TX_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - USB_LP_CAN1_RX0_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - UsageFault_Handler from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - WWDG_IRQHandler from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f103xe.o(.text)
  - fputc from usart.o(.text) referenced from printf3.o(i.__0printf$3)
  - main from main.o(.text) referenced from entry9a.o(.ARM.Collect$$$$0000000B)

  ### Global Symbols

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

  - startup_stm32f103xe.o(.text)

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

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

  - >> __scatterload

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

  - >> __scatterload

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

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

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

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

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

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

  - startup_stm32f103xe.o(RESET)

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

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

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - Max Depth = 24 + In Cycle
  - Call Chain = _Error_Handler ⇒ _Error_Handler (Cycle)
  [Calls]
  - >> _Error_Handler
  - >> __2printf
  [Called By]
  - >> MX_USART1_UART_Init
  - >> MX_SPI1_Init
  - >> SystemClock_Config
  - >> _Error_Handler

  SystemClock_Config (Thumb, 112 bytes, Stack size 72 bytes, main.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority
  [Calls]
  - >> HAL_SYSTICK_Config
  - >> HAL_SYSTICK_CLKSourceConfig
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_GetHCLKFreq
  - >> HAL_RCC_ClockConfig
  - >> HAL_NVIC_SetPriority
  - >> _Error_Handler
  [Called By]
  - >> main

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

  - Max Depth = 752
  - Call Chain = main ⇒ EPD_4in2_test ⇒ Paint_DrawNum ⇒ Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> MX_USART1_UART_Init
  - >> MX_SPI1_Init
  - >> MX_GPIO_Init
  - >> HAL_Init
  - >> EPD_4in2_test
  - >> SystemClock_Config
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  MX_GPIO_Init (Thumb, 76 bytes, Stack size 32 bytes, gpio.o(.text))
  [Stack]

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

  MX_SPI1_Init (Thumb, 66 bytes, Stack size 8 bytes, spi.o(.text))
  [Stack]

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

  HAL_SPI_MspInit (Thumb, 54 bytes, Stack size 24 bytes, spi.o(.text))
  [Stack]

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

  HAL_SPI_MspDeInit (Thumb, 28 bytes, Stack size 0 bytes, spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_GPIO_DeInit
  [Called By]
  - >> HAL_SPI_DeInit

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

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

  HAL_UART_MspInit (Thumb, 76 bytes, Stack size 32 bytes, usart.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GPIO_Init
  [Called By]
  - >> HAL_MultiProcessor_Init
  - >> HAL_LIN_Init
  - >> HAL_HalfDuplex_Init
  - >> HAL_UART_Init

  HAL_UART_MspDeInit (Thumb, 30 bytes, Stack size 0 bytes, usart.o(.text), UNUSED)
  [Calls]

  - >> HAL_GPIO_DeInit
  [Called By]
  - >> HAL_UART_DeInit

  fputc (Thumb, 20 bytes, Stack size 16 bytes, usart.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = fputc ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_UART_Transmit
  [Address Reference Count : 1]
  - printf3.o(i.__0printf$3)

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

  - startup_stm32f103xe.o(RESET)

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

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

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

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

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

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

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

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

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

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

  - startup_stm32f103xe.o(RESET)

  SysTick_Handler (Thumb, 14 bytes, Stack size 8 bytes, stm32f1xx_it.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = SysTick_Handler ⇒ HAL_SYSTICK_IRQHandler
  [Calls]
  - >> HAL_SYSTICK_IRQHandler
  - >> HAL_IncTick
  [Address Reference Count : 1]
  - startup_stm32f103xe.o(RESET)

  HAL_MspInit (Thumb, 118 bytes, Stack size 8 bytes, stm32f1xx_hal_msp.o(.text))
  [Stack]

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

  HAL_SPI_DeInit (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_SPI_MspDeInit

  HAL_SPI_Transmit (Thumb, 360 bytes, Stack size 40 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GetTick
  - >> SPI_CheckFlag_BSY
  - >> SPI_WaitFlagStateUntilTimeout
  [Called By]
  - >> DEV_SPI_WriteByte

  HAL_SPI_TransmitReceive (Thumb, 472 bytes, Stack size 40 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_GetTick
  - >> SPI_CheckFlag_BSY
  - >> SPI_WaitFlagStateUntilTimeout
  [Called By]
  - >> HAL_SPI_Receive

  HAL_SPI_Receive (Thumb, 334 bytes, Stack size 40 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_GetTick
  - >> HAL_SPI_TransmitReceive

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

  - >> SPI_DMATransmitCplt
  - >> SPI_CloseTx_ISR

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

  - >> HAL_SPI_IRQHandler
  - >> SPI_DMAAbortOnError
  - >> SPI_DMATransmitReceiveCplt
  - >> SPI_DMAReceiveCplt
  - >> SPI_DMATransmitCplt
  - >> SPI_DMAError
  - >> SPI_CloseRxTx_ISR
  - >> SPI_CloseRx_ISR
  - >> SPI_CloseTx_ISR

  HAL_SPI_Transmit_IT (Thumb, 142 bytes, Stack size 12 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)

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

  - >> SPI_DMAReceiveCplt
  - >> SPI_CloseRxTx_ISR
  - >> SPI_CloseRx_ISR

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

  - >> SPI_DMATransmitReceiveCplt
  - >> SPI_CloseRxTx_ISR

  HAL_SPI_TransmitReceive_IT (Thumb, 148 bytes, Stack size 20 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Called By]

  - >> HAL_SPI_Receive_IT

  HAL_SPI_Receive_IT (Thumb, 188 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_SPI_TransmitReceive_IT

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

  - >> SPI_DMAHalfTransmitCplt

  HAL_SPI_Transmit_DMA (Thumb, 170 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Start_IT

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

  - >> SPI_DMAHalfReceiveCplt

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

  - >> SPI_DMAHalfTransmitReceiveCplt

  HAL_SPI_TransmitReceive_DMA (Thumb, 242 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Start_IT
  [Called By]
  - >> HAL_SPI_Receive_DMA

  HAL_SPI_Receive_DMA (Thumb, 196 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Start_IT
  - >> HAL_SPI_TransmitReceive_DMA

  HAL_SPI_Abort (Thumb, 174 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Abort

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

  - >> HAL_SPI_Abort_IT
  - >> SPI_DMATxAbortCallback
  - >> SPI_DMARxAbortCallback

  HAL_SPI_Abort_IT (Thumb, 210 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_SPI_AbortCpltCallback
  - >> HAL_DMA_Abort_IT

  HAL_SPI_DMAPause (Thumb, 38 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)

  HAL_SPI_DMAResume (Thumb, 38 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)

  HAL_SPI_DMAStop (Thumb, 40 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Abort

  HAL_SPI_IRQHandler (Thumb, 190 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
  [Calls]

  - >> HAL_SPI_ErrorCallback
  - >> HAL_DMA_Abort_IT

  HAL_SPI_GetState (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)

  HAL_SPI_GetError (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)

  SPI_ISCRCErrorValid (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)

  HAL_SPI_Init (Thumb, 130 bytes, Stack size 16 bytes, stm32f1xx_hal_spi_ex.o(.text))
  [Stack]

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

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

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

  HAL_HalfDuplex_Init (Thumb, 108 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> UART_SetConfig
  - >> HAL_UART_MspInit

  HAL_LIN_Init (Thumb, 122 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> UART_SetConfig
  - >> HAL_UART_MspInit

  HAL_MultiProcessor_Init (Thumb, 128 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> UART_SetConfig
  - >> HAL_UART_MspInit

  HAL_UART_DeInit (Thumb, 40 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_UART_MspDeInit

  HAL_UART_Transmit (Thumb, 190 bytes, Stack size 32 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

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

  HAL_UART_Receive (Thumb, 182 bytes, Stack size 32 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> UART_WaitOnFlagUntilTimeout
  - >> HAL_GetTick

  HAL_UART_Transmit_IT (Thumb, 62 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_UART_Receive_IT (Thumb, 82 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

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

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

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

  - >> UART_DMATxHalfCplt

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

  - >> HAL_UART_IRQHandler
  - >> UART_DMATransmitCplt

  HAL_UART_Transmit_DMA (Thumb, 114 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Start_IT

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

  - >> UART_DMARxHalfCplt

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

  - >> UART_Receive_IT
  - >> UART_DMAReceiveCplt

  HAL_UART_Receive_DMA (Thumb, 138 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Start_IT

  HAL_UART_DMAPause (Thumb, 102 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_UART_DMAResume (Thumb, 94 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_UART_DMAStop (Thumb, 88 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> UART_EndTxTransfer
  - >> UART_EndRxTransfer
  - >> HAL_DMA_Abort

  HAL_UART_Abort (Thumb, 104 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Abort

  HAL_UART_AbortTransmit (Thumb, 58 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Abort

  HAL_UART_AbortReceive (Thumb, 68 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_DMA_Abort

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

  - >> HAL_UART_Abort_IT
  - >> UART_DMATxAbortCallback
  - >> UART_DMARxAbortCallback

  HAL_UART_Abort_IT (Thumb, 192 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_UART_AbortCpltCallback
  - >> HAL_DMA_Abort_IT

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

  - >> HAL_UART_AbortTransmit_IT
  - >> UART_DMATxOnlyAbortCallback

  HAL_UART_AbortTransmit_IT (Thumb, 78 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_UART_AbortTransmitCpltCallback
  - >> HAL_DMA_Abort_IT

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

  - >> HAL_UART_AbortReceive_IT
  - >> UART_DMARxOnlyAbortCallback

  HAL_UART_AbortReceive_IT (Thumb, 88 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_UART_AbortReceiveCpltCallback
  - >> HAL_DMA_Abort_IT

  HAL_UART_IRQHandler (Thumb, 264 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_UART_TxCpltCallback
  - >> HAL_UART_ErrorCallback
  - >> UART_Transmit_IT
  - >> UART_EndRxTransfer
  - >> UART_Receive_IT
  - >> HAL_DMA_Abort_IT

  HAL_LIN_SendBreak (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_MultiProcessor_EnterMuteMode (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_MultiProcessor_ExitMuteMode (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_HalfDuplex_EnableTransmitter (Thumb, 50 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_HalfDuplex_EnableReceiver (Thumb, 50 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_UART_GetState (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_UART_GetError (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)

  HAL_InitTick (Thumb, 54 bytes, Stack size 16 bytes, stm32f1xx_hal.o(.text))
  [Stack]

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

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

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

  HAL_MspDeInit (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
  [Called By]

  - >> HAL_DeInit

  HAL_DeInit (Thumb, 26 bytes, Stack size 8 bytes, stm32f1xx_hal.o(.text), UNUSED)
  [Calls]

  - >> HAL_MspDeInit

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

  - >> SysTick_Handler

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

  - >> HAL_DMA_PollForTransfer
  - >> HAL_RCC_DeInit
  - >> HAL_Delay
  - >> HAL_UART_Receive
  - >> UART_WaitOnFlagUntilTimeout
  - >> HAL_SPI_Receive
  - >> HAL_SPI_TransmitReceive
  - >> HAL_SPI_Transmit
  - >> SPI_DMATransmitReceiveCplt
  - >> SPI_DMATransmitCplt
  - >> SPI_CloseRxTx_ISR
  - >> SPI_CloseTx_ISR
  - >> SPI_WaitFlagStateUntilTimeout
  - >> HAL_UART_Transmit
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig

  HAL_GetTickPrio (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_SetTickFreq (Thumb, 24 bytes, Stack size 8 bytes, stm32f1xx_hal.o(.text), UNUSED)
  [Calls]

  - >> HAL_InitTick

  HAL_GetTickFreq (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_Delay (Thumb, 32 bytes, Stack size 16 bytes, stm32f1xx_hal.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_Delay
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> EPD_4in2_test
  - >> EPD_4IN2_Clear
  - >> EPD_4IN2_PartialDisplay
  - >> EPD_4IN2_ReadBusy
  - >> EPD_4IN2_TurnOnDisplay
  - >> EPD_4IN2_Reset

  HAL_SuspendTick (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_ResumeTick (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_GetHalVersion (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_GetREVID (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_GetDEVID (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_DBGMCU_EnableDBGSleepMode (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_DBGMCU_DisableDBGSleepMode (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_DBGMCU_EnableDBGStopMode (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_DBGMCU_DisableDBGStopMode (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_DBGMCU_EnableDBGStandbyMode (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_DBGMCU_DisableDBGStandbyMode (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_GetUID (Thumb, 24 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)

  HAL_RCC_DeInit (Thumb, 202 bytes, Stack size 24 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
  [Calls]

  - >> HAL_InitTick
  - >> HAL_GetTick

  HAL_RCC_OscConfig (Thumb, 752 bytes, Stack size 40 bytes, stm32f1xx_hal_rcc.o(.text))
  [Stack]

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

  HAL_RCC_GetSysClockFreq (Thumb, 120 bytes, Stack size 20 bytes, stm32f1xx_hal_rcc.o(.text))
  [Stack]

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

  HAL_RCC_ClockConfig (Thumb, 320 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(.text))
  [Stack]

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

  HAL_RCC_MCOConfig (Thumb, 64 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
  [Calls]

  - >> HAL_GPIO_Init

  HAL_RCC_EnableCSS (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)

  HAL_RCC_DisableCSS (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)

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

  - >> SystemClock_Config

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

  - >> UART_SetConfig

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

  - >> UART_SetConfig

  HAL_RCC_GetOscConfig (Thumb, 140 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)

  HAL_RCC_GetClockConfig (Thumb, 54 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)

  HAL_RCC_CSSCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
  [Called By]

  - >> HAL_RCC_NMI_IRQHandler

  HAL_RCC_NMI_IRQHandler (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
  [Calls]

  - >> HAL_RCC_CSSCallback

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

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

  HAL_GPIO_DeInit (Thumb, 224 bytes, Stack size 28 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)
  [Called By]

  - >> HAL_UART_MspDeInit
  - >> HAL_SPI_MspDeInit

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

  - >> EPD_4IN2_ReadBusy

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

  - >> MX_GPIO_Init
  - >> DEV_Module_Init
  - >> DEV_Module_Exit
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  - >> EPD_4IN2_Reset

  HAL_GPIO_TogglePin (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)

  HAL_GPIO_LockPin (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)

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

  - >> HAL_GPIO_EXTI_IRQHandler

  HAL_GPIO_EXTI_IRQHandler (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)
  [Calls]

  - >> HAL_GPIO_EXTI_Callback

  HAL_DMA_Init (Thumb, 120 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)

  HAL_DMA_DeInit (Thumb, 108 bytes, Stack size 8 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)

  HAL_DMA_Start (Thumb, 80 bytes, Stack size 16 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
  [Calls]

  - >> DMA_SetConfig

  HAL_DMA_Start_IT (Thumb, 112 bytes, Stack size 16 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
  [Calls]

  - >> DMA_SetConfig
  [Called By]
  - >> HAL_UART_Receive_DMA
  - >> HAL_UART_Transmit_DMA
  - >> HAL_SPI_Receive_DMA
  - >> HAL_SPI_TransmitReceive_DMA
  - >> HAL_SPI_Transmit_DMA

  HAL_DMA_Abort (Thumb, 48 bytes, Stack size 0 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
  [Called By]

  - >> HAL_UART_AbortReceive
  - >> HAL_UART_AbortTransmit
  - >> HAL_UART_Abort
  - >> HAL_UART_DMAStop
  - >> HAL_SPI_DMAStop
  - >> HAL_SPI_Abort

  HAL_DMA_Abort_IT (Thumb, 296 bytes, Stack size 40 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
  [Called By]

  - >> HAL_UART_IRQHandler
  - >> HAL_UART_AbortReceive_IT
  - >> HAL_UART_AbortTransmit_IT
  - >> HAL_UART_Abort_IT
  - >> HAL_SPI_IRQHandler
  - >> HAL_SPI_Abort_IT

  HAL_DMA_PollForTransfer (Thumb, 998 bytes, Stack size 56 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
  [Calls]

  - >> HAL_GetTick

  HAL_DMA_IRQHandler (Thumb, 574 bytes, Stack size 40 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)

  HAL_DMA_RegisterCallback (Thumb, 74 bytes, Stack size 8 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)

  HAL_DMA_UnRegisterCallback (Thumb, 82 bytes, Stack size 8 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)

  HAL_DMA_GetState (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)

  HAL_DMA_GetError (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)

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

  - >> HAL_MspInit
  - >> HAL_Init

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

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

  HAL_NVIC_EnableIRQ (Thumb, 22 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)

  HAL_NVIC_DisableIRQ (Thumb, 22 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)

  HAL_NVIC_SystemReset (Thumb, 28 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)

  HAL_SYSTICK_Config (Thumb, 40 bytes, Stack size 8 bytes, stm32f1xx_hal_cortex.o(.text))
  [Stack]

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

  HAL_NVIC_GetPriorityGrouping (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)

  HAL_NVIC_GetPriority (Thumb, 82 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)

  HAL_NVIC_SetPendingIRQ (Thumb, 22 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)

  HAL_NVIC_GetPendingIRQ (Thumb, 32 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)

  HAL_NVIC_ClearPendingIRQ (Thumb, 22 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)

  HAL_NVIC_GetActive (Thumb, 32 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)

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

  - >> SystemClock_Config

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

  - >> HAL_SYSTICK_IRQHandler

  HAL_SYSTICK_IRQHandler (Thumb, 8 bytes, Stack size 8 bytes, stm32f1xx_hal_cortex.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_SYSTICK_IRQHandler
  [Calls]
  - >> HAL_SYSTICK_Callback
  [Called By]
  - >> SysTick_Handler

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

  - startup_stm32f103xe.o(.text)

  SystemCoreClockUpdate (Thumb, 82 bytes, Stack size 8 bytes, system_stm32f1xx.o(.text), UNUSED)

  EPD_4in2_test (Thumb, 980 bytes, Stack size 48 bytes, epd_4in2_test.o(.text))
  [Stack]

  - Max Depth = 752
  - Call Chain = EPD_4in2_test ⇒ Paint_DrawNum ⇒ Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> HAL_Delay
  - >> EPD_4IN2_Sleep
  - >> EPD_4IN2_Init_4Gray
  - >> EPD_4IN2_Init
  - >> EPD_4IN2_Display
  - >> EPD_4IN2_Clear
  - >> EPD_4IN2_4GrayDisplay
  - >> Paint_SetScale
  - >> Paint_SelectImage
  - >> Paint_NewImage
  - >> Paint_DrawString_EN
  - >> Paint_DrawString_CN
  - >> Paint_DrawRectangle
  - >> Paint_DrawPoint
  - >> Paint_DrawNum
  - >> Paint_DrawLine
  - >> Paint_DrawCircle
  - >> Paint_DrawBitMap
  - >> Paint_Clear
  - >> DEV_Module_Init
  - >> DEV_Module_Exit
  - >> malloc
  - >> free
  - >> __2printf
  [Called By]
  - >> main

  EPD_4IN2_ReadBusy (Thumb, 52 bytes, Stack size 8 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = EPD_4IN2_ReadBusy ⇒ EPD_4IN2_SendCommand ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GPIO_ReadPin
  - >> HAL_Delay
  - >> EPD_4IN2_SendCommand
  - >> __2printf
  [Called By]
  - >> EPD_4IN2_Sleep
  - >> EPD_4IN2_Init_4Gray
  - >> EPD_4IN2_Init
  - >> EPD_4IN2_TurnOnDisplay

  EPD_4IN2_Init (Thumb, 162 bytes, Stack size 8 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = EPD_4IN2_Init ⇒ EPD_4IN2_SetLut ⇒ EPD_4IN2_SendData ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> EPD_4IN2_ReadBusy
  - >> EPD_4IN2_SetLut
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  - >> EPD_4IN2_Reset
  [Called By]
  - >> EPD_4in2_test

  EPD_4IN2_Init_4Gray (Thumb, 158 bytes, Stack size 8 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = EPD_4IN2_Init_4Gray ⇒ EPD_4IN2_ReadBusy ⇒ EPD_4IN2_SendCommand ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> EPD_4IN2_ReadBusy
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  - >> EPD_4IN2_Reset
  [Called By]
  - >> EPD_4in2_test

  EPD_4IN2_Clear (Thumb, 94 bytes, Stack size 24 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = EPD_4IN2_Clear ⇒ EPD_4IN2_TurnOnDisplay ⇒ EPD_4IN2_ReadBusy ⇒ EPD_4IN2_SendCommand ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_Delay
  - >> EPD_4IN2_TurnOnDisplay
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  [Called By]
  - >> EPD_4in2_test

  EPD_4IN2_Display (Thumb, 60 bytes, Stack size 32 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 152
  - Call Chain = EPD_4IN2_Display ⇒ EPD_4IN2_TurnOnDisplay ⇒ EPD_4IN2_ReadBusy ⇒ EPD_4IN2_SendCommand ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> EPD_4IN2_TurnOnDisplay
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  [Called By]
  - >> EPD_4in2_test

  EPD_4IN2_PartialDisplay (Thumb, 304 bytes, Stack size 40 bytes, epd_4in2.o(.text), UNUSED)
  [Calls]

  - >> HAL_Delay
  - >> EPD_4IN2_Partial_SetLut
  - >> EPD_4IN2_TurnOnDisplay
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand

  EPD_4IN2_4GrayDisplay (Thumb, 292 bytes, Stack size 24 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = EPD_4IN2_4GrayDisplay ⇒ EPD_4IN2_4Gray_lut ⇒ EPD_4IN2_SendData ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> EPD_4IN2_4Gray_lut
  - >> EPD_4IN2_TurnOnDisplay
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  [Called By]
  - >> EPD_4in2_test

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

  - Max Depth = 120
  - Call Chain = EPD_4IN2_Sleep ⇒ EPD_4IN2_ReadBusy ⇒ EPD_4IN2_SendCommand ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> EPD_4IN2_ReadBusy
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  [Called By]
  - >> EPD_4in2_test

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

  - Max Depth = 88
  - Call Chain = DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_SPI_Transmit
  [Called By]
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand

  DEV_Module_Init (Thumb, 38 bytes, Stack size 8 bytes, dev_config.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = DEV_Module_Init
  [Calls]
  - >> HAL_GPIO_WritePin
  [Called By]
  - >> EPD_4in2_test

  DEV_Module_Exit (Thumb, 38 bytes, Stack size 8 bytes, dev_config.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = DEV_Module_Exit
  [Calls]
  - >> HAL_GPIO_WritePin
  [Called By]
  - >> EPD_4in2_test

  Paint_NewImage (Thumb, 56 bytes, Stack size 16 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = Paint_NewImage
  [Called By]
  - >> EPD_4in2_test

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

  - >> EPD_4in2_test

  Paint_SetRotate (Thumb, 44 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED)
  [Calls]

  - >> __2printf

  Paint_SetScale (Thumb, 64 bytes, Stack size 8 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = Paint_SetScale ⇒ __2printf
  [Calls]
  - >> __2printf
  [Called By]
  - >> EPD_4in2_test

  Paint_SetMirroring (Thumb, 62 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED)
  [Calls]

  - >> __2printf

  Paint_SetPixel (Thumb, 204 bytes, Stack size 16 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> __2printf
  [Called By]
  - >> Paint_DrawString_CN
  - >> Paint_DrawPoint
  - >> Paint_ClearWindows
  - >> Paint_DrawChar

  Paint_Clear (Thumb, 46 bytes, Stack size 12 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = Paint_Clear
  [Called By]
  - >> EPD_4in2_test

  Paint_ClearWindows (Thumb, 52 bytes, Stack size 32 bytes, gui_paint.o(.text), UNUSED)
  [Calls]

  - >> Paint_SetPixel

  Paint_DrawPoint (Thumb, 180 bytes, Stack size 40 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = Paint_DrawPoint ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> __2printf
  - >> Paint_SetPixel
  [Called By]
  - >> EPD_4in2_test
  - >> Paint_DrawLine
  - >> Paint_DrawCircle

  Paint_DrawLine (Thumb, 198 bytes, Stack size 48 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = Paint_DrawLine ⇒ Paint_DrawPoint ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> Paint_DrawPoint
  - >> __2printf
  [Called By]
  - >> EPD_4in2_test
  - >> Paint_DrawRectangle

  Paint_DrawRectangle (Thumb, 670 bytes, Stack size 48 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 176
  - Call Chain = Paint_DrawRectangle ⇒ Paint_DrawLine ⇒ Paint_DrawPoint ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> Paint_DrawLine
  - >> __2printf
  [Called By]
  - >> EPD_4in2_test

  Paint_DrawCircle (Thumb, 528 bytes, Stack size 72 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 152
  - Call Chain = Paint_DrawCircle ⇒ Paint_DrawPoint ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> Paint_DrawPoint
  - >> __2printf
  [Called By]
  - >> EPD_4in2_test

  Paint_DrawChar (Thumb, 172 bytes, Stack size 40 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> __2printf
  - >> Paint_SetPixel
  [Called By]
  - >> Paint_DrawTime
  - >> Paint_DrawString_EN

  Paint_DrawString_EN (Thumb, 116 bytes, Stack size 48 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> __2printf
  - >> Paint_DrawChar
  [Called By]
  - >> EPD_4in2_test
  - >> Paint_DrawNum

  Paint_DrawString_CN (Thumb, 478 bytes, Stack size 40 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = Paint_DrawString_CN ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> Paint_SetPixel
  [Called By]
  - >> EPD_4in2_test

  Paint_DrawNum (Thumb, 140 bytes, Stack size 576 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 704
  - Call Chain = Paint_DrawNum ⇒ Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf
  [Calls]
  - >> Paint_DrawString_EN
  - >> __2printf
  - >> __aeabi_memclr4
  [Called By]
  - >> EPD_4in2_test

  Paint_DrawTime (Thumb, 282 bytes, Stack size 72 bytes, gui_paint.o(.text), UNUSED)
  [Calls]

  - >> Paint_DrawChar

  Paint_DrawBitMap (Thumb, 46 bytes, Stack size 16 bytes, gui_paint.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = Paint_DrawBitMap
  [Called By]
  - >> EPD_4in2_test

  Paint_DrawBitMap_Block (Thumb, 56 bytes, Stack size 20 bytes, gui_paint.o(.text), UNUSED)

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

  - >> _memset$wrapper
  - >> __aeabi_memclr

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

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

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

  - >> __aeabi_memset

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

  - >> Paint_DrawNum

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

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

  - >> __aeabi_memset

  __aeabi_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

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

  __0printf$3 (Thumb, 22 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
  [Calls]

  - >> _printf_core

  __1printf$3 (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)

  __2printf (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3))
  [Stack]

  - Max Depth = 24
  - Call Chain = __2printf
  [Called By]
  - >> EPD_4in2_test
  - >> _Error_Handler
  - >> Paint_SetMirroring
  - >> Paint_SetScale
  - >> Paint_DrawString_EN
  - >> Paint_DrawRectangle
  - >> Paint_DrawPoint
  - >> Paint_DrawNum
  - >> Paint_DrawLine
  - >> Paint_DrawCircle
  - >> EPD_4IN2_ReadBusy
  - >> Paint_DrawChar
  - >> Paint_SetPixel
  - >> Paint_SetRotate

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

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

  - Max Depth = 8
  - Call Chain = free
  [Called By]
  - >> EPD_4in2_test

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

  - Max Depth = 20
  - Call Chain = malloc
  [Called By]
  - >> EPD_4in2_test

  ### Local Symbols

  SPI_WaitFlagStateUntilTimeout (Thumb, 150 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> HAL_SPI_TransmitReceive
  - >> HAL_SPI_Transmit
  - >> SPI_CheckFlag_BSY

  SPI_CloseTx_ISR (Thumb, 118 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_CloseTx_ISR ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_SPI_ErrorCallback
  - >> HAL_SPI_TxCpltCallback
  - >> HAL_GetTick
  - >> SPI_CheckFlag_BSY
  [Called By]
  - >> SPI_TxISR_16BIT
  - >> SPI_TxISR_8BIT

  SPI_TxISR_8BIT (Thumb, 28 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_TxISR_8BIT ⇒ SPI_CloseTx_ISR ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> SPI_CloseTx_ISR
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_TxISR_16BIT (Thumb, 30 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_TxISR_16BIT ⇒ SPI_CloseTx_ISR ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> SPI_CloseTx_ISR
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_CloseRx_ISR (Thumb, 78 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_CloseRx_ISR
  [Calls]
  - >> HAL_SPI_RxCpltCallback
  - >> HAL_SPI_ErrorCallback
  [Called By]
  - >> SPI_RxISR_16BIT
  - >> SPI_RxISR_8BIT

  SPI_RxISR_8BIT (Thumb, 28 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_RxISR_8BIT ⇒ SPI_CloseRx_ISR
  [Calls]
  - >> SPI_CloseRx_ISR
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_RxISR_16BIT (Thumb, 30 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_RxISR_16BIT ⇒ SPI_CloseRx_ISR
  [Calls]
  - >> SPI_CloseRx_ISR
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_CloseRxTx_ISR (Thumb, 138 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_CloseRxTx_ISR ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_SPI_TxRxCpltCallback
  - >> HAL_SPI_RxCpltCallback
  - >> HAL_SPI_ErrorCallback
  - >> HAL_GetTick
  - >> SPI_CheckFlag_BSY
  [Called By]
  - >> SPI_2linesRxISR_16BIT
  - >> SPI_2linesTxISR_16BIT
  - >> SPI_2linesRxISR_8BIT
  - >> SPI_2linesTxISR_8BIT

  SPI_2linesTxISR_8BIT (Thumb, 44 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_2linesTxISR_8BIT ⇒ SPI_CloseRxTx_ISR ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> SPI_CloseRxTx_ISR
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_2linesRxISR_8BIT (Thumb, 44 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_2linesRxISR_8BIT ⇒ SPI_CloseRxTx_ISR ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> SPI_CloseRxTx_ISR
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_2linesTxISR_16BIT (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_2linesTxISR_16BIT ⇒ SPI_CloseRxTx_ISR ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> SPI_CloseRxTx_ISR
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_2linesRxISR_16BIT (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_2linesRxISR_16BIT ⇒ SPI_CloseRxTx_ISR ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> SPI_CloseRxTx_ISR
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_DMAError (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_DMAError
  [Calls]
  - >> HAL_SPI_ErrorCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_DMATransmitCplt (Thumb, 90 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_DMATransmitCplt ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_SPI_ErrorCallback
  - >> HAL_SPI_TxCpltCallback
  - >> HAL_GetTick
  - >> SPI_CheckFlag_BSY
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_DMAHalfTransmitCplt (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_DMAHalfTransmitCplt
  [Calls]
  - >> HAL_SPI_TxHalfCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_DMAReceiveCplt (Thumb, 82 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_DMAReceiveCplt
  [Calls]
  - >> HAL_SPI_RxCpltCallback
  - >> HAL_SPI_ErrorCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_DMAHalfReceiveCplt (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_DMAHalfReceiveCplt
  [Calls]
  - >> HAL_SPI_RxHalfCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_DMATransmitReceiveCplt (Thumb, 80 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SPI_DMATransmitReceiveCplt ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_SPI_TxRxCpltCallback
  - >> HAL_SPI_ErrorCallback
  - >> HAL_GetTick
  - >> SPI_CheckFlag_BSY
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_DMAHalfTransmitReceiveCplt (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_DMAHalfTransmitReceiveCplt
  [Calls]
  - >> HAL_SPI_TxRxHalfCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_AbortRx_ISR (Thumb, 114 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_AbortRx_ISR
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_AbortTx_ISR (Thumb, 22 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
  [Address Reference Count : 1]

  - stm32f1xx_hal_spi.o(.text)

  SPI_DMARxAbortCallback (Thumb, 66 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_DMARxAbortCallback
  [Calls]
  - >> HAL_SPI_AbortCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_DMATxAbortCallback (Thumb, 92 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_DMATxAbortCallback
  [Calls]
  - >> HAL_SPI_AbortCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_DMAAbortOnError (Thumb, 16 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_DMAAbortOnError
  [Calls]
  - >> HAL_SPI_ErrorCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_spi.o(.text)

  SPI_CheckFlag_BSY (Thumb, 32 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> SPI_WaitFlagStateUntilTimeout
  [Called By]
  - >> HAL_SPI_TransmitReceive
  - >> HAL_SPI_Transmit
  - >> SPI_DMATransmitReceiveCplt
  - >> SPI_DMATransmitCplt
  - >> SPI_CloseRxTx_ISR
  - >> SPI_CloseTx_ISR

  UART_SetConfig (Thumb, 364 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = UART_SetConfig
  [Calls]
  - >> HAL_RCC_GetPCLK2Freq
  - >> HAL_RCC_GetPCLK1Freq
  [Called By]
  - >> HAL_MultiProcessor_Init
  - >> HAL_LIN_Init
  - >> HAL_HalfDuplex_Init
  - >> HAL_UART_Init

  UART_WaitOnFlagUntilTimeout (Thumb, 98 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

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

  UART_DMAError (Thumb, 74 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = UART_DMAError
  [Calls]
  - >> HAL_UART_ErrorCallback
  - >> UART_EndTxTransfer
  - >> UART_EndRxTransfer
  [Address Reference Count : 1]
  - stm32f1xx_hal_uart.o(.text)

  UART_DMATxHalfCplt (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_DMATxHalfCplt
  [Calls]
  - >> HAL_UART_TxHalfCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_uart.o(.text)

  UART_DMATransmitCplt (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_DMATransmitCplt
  [Calls]
  - >> HAL_UART_TxCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_uart.o(.text)

  UART_DMARxHalfCplt (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_DMARxHalfCplt
  [Calls]
  - >> HAL_UART_RxHalfCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_uart.o(.text)

  UART_DMAReceiveCplt (Thumb, 60 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_DMAReceiveCplt
  [Calls]
  - >> HAL_UART_RxCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_uart.o(.text)

  UART_DMARxAbortCallback (Thumb, 42 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_DMARxAbortCallback
  [Calls]
  - >> HAL_UART_AbortCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_uart.o(.text)

  UART_DMATxAbortCallback (Thumb, 42 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_DMATxAbortCallback
  [Calls]
  - >> HAL_UART_AbortCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_uart.o(.text)

  UART_DMATxOnlyAbortCallback (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_DMATxOnlyAbortCallback
  [Calls]
  - >> HAL_UART_AbortTransmitCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_uart.o(.text)

  UART_DMARxOnlyAbortCallback (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_DMARxOnlyAbortCallback
  [Calls]
  - >> HAL_UART_AbortReceiveCpltCallback
  [Address Reference Count : 1]
  - stm32f1xx_hal_uart.o(.text)

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

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

  UART_Receive_IT (Thumb, 150 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Calls]

  - >> HAL_UART_RxCpltCallback
  [Called By]
  - >> HAL_UART_IRQHandler

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

  - >> HAL_UART_IRQHandler
  - >> HAL_UART_DMAStop
  - >> UART_DMAError

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

  - >> HAL_UART_DMAStop
  - >> UART_DMAError

  UART_Transmit_IT (Thumb, 98 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
  [Called By]

  - >> HAL_UART_IRQHandler

  DMA_SetConfig (Thumb, 42 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
  [Called By]

  - >> HAL_DMA_Start
  - >> HAL_DMA_Start_IT

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

  - >> HAL_SYSTICK_Config
  - >> HAL_NVIC_SetPriority

  EPD_4IN2_Reset (Thumb, 56 bytes, Stack size 8 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = EPD_4IN2_Reset ⇒ HAL_Delay
  [Calls]
  - >> HAL_Delay
  - >> HAL_GPIO_WritePin
  [Called By]
  - >> EPD_4IN2_Init_4Gray
  - >> EPD_4IN2_Init

  EPD_4IN2_SendCommand (Thumb, 46 bytes, Stack size 16 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = EPD_4IN2_SendCommand ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> DEV_SPI_WriteByte
  [Called By]
  - >> EPD_4IN2_Sleep
  - >> EPD_4IN2_Init_4Gray
  - >> EPD_4IN2_Init
  - >> EPD_4IN2_Display
  - >> EPD_4IN2_Clear
  - >> EPD_4IN2_4GrayDisplay
  - >> EPD_4IN2_PartialDisplay
  - >> EPD_4IN2_ReadBusy
  - >> EPD_4IN2_4Gray_lut
  - >> EPD_4IN2_Partial_SetLut
  - >> EPD_4IN2_SetLut
  - >> EPD_4IN2_TurnOnDisplay

  EPD_4IN2_SendData (Thumb, 46 bytes, Stack size 16 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = EPD_4IN2_SendData ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> DEV_SPI_WriteByte
  [Called By]
  - >> EPD_4IN2_Sleep
  - >> EPD_4IN2_Init_4Gray
  - >> EPD_4IN2_Init
  - >> EPD_4IN2_Display
  - >> EPD_4IN2_Clear
  - >> EPD_4IN2_4GrayDisplay
  - >> EPD_4IN2_PartialDisplay
  - >> EPD_4IN2_4Gray_lut
  - >> EPD_4IN2_Partial_SetLut
  - >> EPD_4IN2_SetLut

  EPD_4IN2_TurnOnDisplay (Thumb, 20 bytes, Stack size 8 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = EPD_4IN2_TurnOnDisplay ⇒ EPD_4IN2_ReadBusy ⇒ EPD_4IN2_SendCommand ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> HAL_Delay
  - >> EPD_4IN2_ReadBusy
  - >> EPD_4IN2_SendCommand
  [Called By]
  - >> EPD_4IN2_Display
  - >> EPD_4IN2_Clear
  - >> EPD_4IN2_4GrayDisplay
  - >> EPD_4IN2_PartialDisplay

  EPD_4IN2_SetLut (Thumb, 132 bytes, Stack size 16 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = EPD_4IN2_SetLut ⇒ EPD_4IN2_SendData ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  [Called By]
  - >> EPD_4IN2_Init

  EPD_4IN2_Partial_SetLut (Thumb, 122 bytes, Stack size 16 bytes, epd_4in2.o(.text), UNUSED)
  [Calls]

  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  [Called By]
  - >> EPD_4IN2_PartialDisplay

  EPD_4IN2_4Gray_lut (Thumb, 142 bytes, Stack size 16 bytes, epd_4in2.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = EPD_4IN2_4Gray_lut ⇒ EPD_4IN2_SendData ⇒ DEV_SPI_WriteByte ⇒ HAL_SPI_Transmit ⇒ SPI_CheckFlag_BSY ⇒ SPI_WaitFlagStateUntilTimeout
  [Calls]
  - >> EPD_4IN2_SendData
  - >> EPD_4IN2_SendCommand
  [Called By]
  - >> EPD_4IN2_4GrayDisplay

  _printf_core (Thumb, 436 bytes, Stack size 96 bytes, printf3.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  [Called By]
  - >> __0printf$3

  ### Undefined Global Symbols