# Static Call Graph for image .\Object\LT269_RT-Thread.axf

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Jun 29 11:36:22 2022

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

### Call chain for Maximum Stack Depth:

main ⇒ PeripheralInit ⇒ LT_TpInit ⇒ LT_TpAdjust ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext

### Functions with no stack information

- Init_SysTick
- SysTick_Handler

### Mutually Recursive functions

- AES_IRQHandler ⇒ AES_IRQHandler
- rt_device_write ⇒ rt_object_get_type
- SSI1_STD_Init ⇒ SSI1_STD_Init

  ### Function Pointers

  - AES_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - ASYNC_TIMER_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - BusFault_Handler from system_armcm4.o(i.BusFault_Handler) referenced from startup_armcm4.o(RESET)
  - CLCD_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - DAC_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - DCMI_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - DMA1_IRQHandler from dmac_drv.o(i.DMA1_IRQHandler) referenced from startup_armcm4.o(RESET)
  - DMA2D_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - DMA2_IRQHandler from dmac_drv.o(i.DMA2_IRQHandler) referenced from startup_armcm4.o(RESET)
  - DebugMon_Handler from system_armcm4.o(i.DebugMon_Handler) referenced from startup_armcm4.o(RESET)
  - EFM_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - ENCR1_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - ENCR_IRQHandler from edma_drv.o(i.ENCR_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT0_0_IRQHandler from eport_drv.o(i.EPORT0_0_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT0_1_IRQHandler from eport_drv.o(i.EPORT0_1_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT0_2_IRQHandler from eport_drv.o(i.EPORT0_2_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT0_3_IRQHandler from eport_drv.o(i.EPORT0_3_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT0_4_IRQHandler from eport_drv.o(i.EPORT0_4_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT0_5_IRQHandler from eport_drv.o(i.EPORT0_5_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT0_6_IRQHandler from eport_drv.o(i.EPORT0_6_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT0_7_IRQHandler from eport_drv.o(i.EPORT0_7_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT1_0_IRQHandler from eport_drv.o(i.EPORT1_0_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT1_1_IRQHandler from eport_drv.o(i.EPORT1_1_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT1_2_IRQHandler from eport_drv.o(i.EPORT1_2_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT1_3_IRQHandler from eport_drv.o(i.EPORT1_3_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT1_4_IRQHandler from eport_drv.o(i.EPORT1_4_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT1_5_IRQHandler from eport_drv.o(i.EPORT1_5_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT1_6_IRQHandler from eport_drv.o(i.EPORT1_6_IRQHandler) referenced from startup_armcm4.o(RESET)
  - EPORT1_7_IRQHandler from eport_drv.o(i.EPORT1_7_IRQHandler) referenced from startup_armcm4.o(RESET)
  - HardFault_Handler from context_rvds.o(.text) referenced from startup_armcm4.o(RESET)
  - I2C1_IRQHandler from i2c_drv.o(i.I2C1_IRQHandler) referenced from startup_armcm4.o(RESET)
  - I2C2_IRQHandler from i2c_drv.o(i.I2C2_IRQHandler) referenced from startup_armcm4.o(RESET)
  - I2C3_IRQHandler from i2c_drv.o(i.I2C3_IRQHandler) referenced from startup_armcm4.o(RESET)
  - IO_Latch_Clr from system_armcm4.o(i.IO_Latch_Clr) referenced from startup_armcm4.o(.text)
  - LT_TpScan from rtp.o(i.LT_TpScan) referenced from rtp.o(i.LT_TpInit)
  - LVD_EN from system_armcm4.o(i.LVD_EN) referenced from startup_armcm4.o(.text)
  - MCC_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - MIPI_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - MemManage_Handler from system_armcm4.o(i.MemManage_Handler) referenced from startup_armcm4.o(RESET)
  - NMI_Handler from system_armcm4.o(i.NMI_Handler) referenced from startup_armcm4.o(RESET)
  - PCI_DET_IRQHandler from pci_drv.o(i.PCI_DET_IRQHandler) referenced from startup_armcm4.o(RESET)
  - PCI_IRQHandler from cpm_drv.o(i.PCI_IRQHandler) referenced from startup_armcm4.o(RESET)
  - PIT1_IRQHandler from pit.o(i.PIT1_IRQHandler) referenced from startup_armcm4.o(RESET)
  - PIT2_IRQHandler from pit.o(i.PIT2_IRQHandler) referenced from startup_armcm4.o(RESET)
  - PMU_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - PMU_RTC_IRQHandler from rtc.o(i.PMU_RTC_IRQHandler) referenced from startup_armcm4.o(RESET)
  - PWM0_IRQHandler from pwm_drv.o(i.PWM0_IRQHandler) referenced from startup_armcm4.o(RESET)
  - PWM1_IRQHandler from pwm_drv.o(i.PWM1_IRQHandler) referenced from startup_armcm4.o(RESET)
  - PWM2_IRQHandler from pwm_drv.o(i.PWM2_IRQHandler) referenced from startup_armcm4.o(RESET)
  - PWM3_IRQHandler from pwm_drv.o(i.PWM3_IRQHandler) referenced from startup_armcm4.o(RESET)
  - PendSV_Handler from context_rvds.o(.text) referenced from startup_armcm4.o(RESET)
  - QADC_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - RESERVED1 from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - RESERVED2 from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - RSA_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - Reset_Handler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SCI1_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SCI2_IRQHandler from uart_drv.o(i.SCI2_IRQHandler) referenced from startup_armcm4.o(RESET)
  - SCI3_IRQHandler from uart.o(i.SCI3_IRQHandler) referenced from startup_armcm4.o(RESET)
  - SEC_PGD_LD_FD_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SHA_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SMS4_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SPI1_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SPI2_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SPI3_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SPIM1_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SPIM2_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SPIM3_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - SVC_Handler from system_armcm4.o(i.SVC_Handler) referenced from startup_armcm4.o(RESET)
  - SysTick_Handler from context_rvds.o(.text) referenced from startup_armcm4.o(RESET)
  - SystemInit from system_armcm4.o(i.SystemInit) referenced from startup_armcm4.o(.text)
  - TC_IRQHandler from tc_drv.o(i.TC_IRQHandler) referenced from startup_armcm4.o(RESET)
  - TRNG_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - TSI_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - USBC_IRQHandler from usb_drv.o(i.USBC_IRQHandler) referenced from startup_armcm4.o(RESET)
  - USI1_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - USI2_IRQHandler from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
  - UsageFault_Handler from system_armcm4.o(i.UsageFault_Handler) referenced from startup_armcm4.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_armcm4.o(.text)
  - _thread_exit from thread.o(i._thread_exit) referenced from thread.o(i._thread_init)
  - _thread_timeout from thread.o(i._thread_timeout) referenced from thread.o(i._thread_init)
  - fputc from debug.o(i.fputc) referenced from printf8.o(i.__0printf$8)
  - jpeg_in_func from tjpgd.o(i.jpeg_in_func) referenced from tjpgd.o(i.jpg_decode_onFlash)
  - jpeg_out_func_point from tjpgd.o(i.jpeg_out_func_point) referenced from tjpgd.o(i.jpg_decode_onFlash)
  - main from components.o(i.$Sub$$main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - rt_thread_idle_entry from idle.o(i.rt_thread_idle_entry) referenced from idle.o(i.rt_thread_idle_init)
  - rti_board_end from components.o(i.rti_board_end) referenced from components.o(.rti_fn.1.end)
  - rti_board_start from components.o(i.rti_board_start) referenced from components.o(.rti_fn.0.end)
  - rti_end from components.o(i.rti_end) referenced from components.o(.rti_fn.6.end)
  - rti_start from components.o(i.rti_start) referenced from components.o(.rti_fn.0)
  - thread_0_entry from main.o(i.thread_0_entry) referenced from main.o(i.rt_application_define)
  - thread_1_entry from main.o(i.thread_1_entry) referenced from main.o(i.rt_application_define)
  - thread_2_entry from main.o(i.thread_2_entry) referenced from main.o(i.rt_application_define)
  - thread_3_and_4_entry from main.o(i.thread_3_and_4_entry) referenced from main.o(i.rt_application_define)
  - thread_5_entry from main.o(i.thread_5_entry) referenced from main.o(i.rt_application_define)
  - thread_6_and_7_entry from main.o(i.thread_6_and_7_entry) referenced from main.o(i.rt_application_define)

  ### Global Symbols

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

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

  __rt_ffs (Thumb, 16 bytes, Stack size 0 bytes, cpuport.o(.emb_text))
  [Called By]

  - >> _scheduler_get_highest_priority_thread

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

  - startup_armcm4.o(RESET)

  AES_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_armcm4.o(.text))
  [Calls]

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

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - startup_armcm4.o(RESET)

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

  - >> rtthread_startup

  SysTick_Handler (Thumb, 0 bytes, Stack size unknown bytes, context_rvds.o(.text))
  [Stack]

  - Max Depth = 296 + Unknown Stack Size
  - Call Chain = SysTick_Handler ⇒ rt_tick_increase ⇒ rt_timer_check ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> HAL_IncTick
  - >> rt_tick_increase
  - >> rt_interrupt_leave
  - >> rt_interrupt_enter
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

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

  - >> rt_sem_take
  - >> rt_sem_release
  - >> rt_mutex_take
  - >> rt_mutex_release
  - >> rt_mq_recv
  - >> rt_event_send
  - >> rt_event_recv
  - >> rt_object_init
  - >> rt_object_detach
  - >> rtthread_Init
  - >> rt_timer_check
  - >> rt_schedule
  - >> rt_tick_increase
  - >> rt_interrupt_leave
  - >> rt_interrupt_enter
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_thread_suspend
  - >> rt_thread_resume
  - >> rt_thread_control
  - >> rt_interrupt_get_nest
  - >> rt_mq_send_wait
  - >> rt_object_delete
  - >> rt_thread_defunct_dequeue
  - >> rt_timer_stop
  - >> rt_timer_detach
  - >> rt_thread_sleep
  - >> rt_thread_detach
  - >> rt_thread_delete
  - >> _thread_timeout
  - >> _thread_exit
  - >> rt_schedule_remove_thread
  - >> rt_schedule_insert_thread
  - >> _rt_scheduler_stack_check
  - >> rt_exit_critical
  - >> rt_enter_critical

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

  - >> rt_sem_take
  - >> rt_sem_release
  - >> rt_mutex_take
  - >> rt_mutex_release
  - >> rt_mq_recv
  - >> rt_event_send
  - >> rt_event_recv
  - >> rt_object_init
  - >> rt_object_detach
  - >> rt_timer_check
  - >> rt_schedule
  - >> rt_tick_increase
  - >> rt_interrupt_leave
  - >> rt_interrupt_enter
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_thread_suspend
  - >> rt_thread_resume
  - >> rt_thread_control
  - >> rt_interrupt_get_nest
  - >> rt_mq_send_wait
  - >> rt_object_delete
  - >> rt_thread_defunct_dequeue
  - >> rt_timer_stop
  - >> rt_timer_detach
  - >> rt_thread_sleep
  - >> rt_thread_detach
  - >> rt_thread_delete
  - >> _thread_timeout
  - >> _thread_exit
  - >> rt_schedule_remove_thread
  - >> rt_schedule_insert_thread
  - >> rt_exit_critical
  - >> rt_enter_critical

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

  - >> rt_schedule

  rt_hw_context_switch_interrupt (Thumb, 0 bytes, Stack size 0 bytes, context_rvds.o(.text))
  [Called By]

  - >> rt_schedule

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

  - startup_armcm4.o(RESET)

  rt_hw_context_switch_to (Thumb, 68 bytes, Stack size 0 bytes, context_rvds.o(.text))
  [Called By]

  - >> rt_system_scheduler_start

  rt_hw_interrupt_thread_switch (Thumb, 2 bytes, Stack size 0 bytes, context_rvds.o(.text), UNUSED)

  HardFault_Handler (Thumb, 56 bytes, Stack size 0 bytes, context_rvds.o(.text))
  [Stack]

  - Max Depth = 184
  - Call Chain = HardFault_Handler ⇒ rt_hw_hard_fault_exception ⇒ hard_fault_track ⇒ usage_fault_track ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_hw_hard_fault_exception
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

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

  - >> USBDev_Data_BulkIn
  - >> enum_realDisk
  - >> VendorWriteData

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

  - >> USBDev_TestMode
  - >> USBDev_RequestSense
  - >> USBDev_Inquiry

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

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

  - >> _memset$wrapper
  - >> __aeabi_memclr

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

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

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

  - >> __aeabi_memset

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

  - >> LT_DataToPc

  __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_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_drsub
  - >> PIT2_IRQHandler
  - >> __aeabi_dsub

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

  - >> __aeabi_dadd

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

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

  __aeabi_i2d (Thumb, 34 bytes, Stack size 16 bytes, dflti.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = __aeabi_i2d ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> _double_epilogue
  [Called By]
  - >> PIT2_IRQHandler

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

  - Max Depth = 56
  - Call Chain = __aeabi_ui2d ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> _double_epilogue
  [Called By]
  - >> LT_TpAdjust

  __aeabi_d2iz (Thumb, 62 bytes, Stack size 16 bytes, dfixi.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_d2iz
  [Calls]
  - >> __aeabi_llsr
  [Called By]
  - >> PIT2_IRQHandler

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

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

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

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

  - >> __aeabi_dadd
  - >> __aeabi_uldivmod
  - >> _double_epilogue

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

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

  - >> __aeabi_d2uiz
  - >> __aeabi_d2iz
  - >> _dsqrt
  - >> __aeabi_uldivmod
  - >> _double_epilogue

  _ll_ushift_r (Thumb, 0 bytes, Stack size 0 bytes, llushr.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 8 bytes, iusefp.o(.text), UNUSED)

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

  - Max Depth = 8
  - Call Chain = _double_round
  [Called By]
  - >> __aeabi_dadd
  - >> _dsqrt
  - >> _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_ui2d
  - >> __aeabi_i2d
  - >> __aeabi_dadd
  - >> __aeabi_dmul

  _dsqrt (Thumb, 162 bytes, Stack size 32 bytes, dsqrt.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _dsqrt ⇒ _double_round
  [Calls]
  - >> __aeabi_llsr
  - >> _double_round
  [Called By]
  - >> __hardfp_sqrt

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

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

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

  main (Thumb, 22 bytes, Stack size 8 bytes, components.o(i.$Sub$$main))
  [Stack]

  - Max Depth = 560 + Unknown Stack Size
  - Call Chain = main ⇒ PeripheralInit ⇒ LT_TpInit ⇒ LT_TpAdjust ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> rt_application_define
  - >> PeripheralInit
  - >> rtthread_startup
  - >> rtthread_Init
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  ADC_Cmd (Thumb, 12 bytes, Stack size 0 bytes, adc_drv.o(i.ADC_Cmd))
  [Calls]

  - >> adc_module_en
  - >> adc_module_dis
  [Called By]
  - >> Get_ADC_Val

  ADC_Initial (Thumb, 56 bytes, Stack size 0 bytes, rtp.o(i.ADC_Initial))
  [Called By]

  - >> LT_TpInit
  - >> Get_ADC_Val

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

  - >> Get_ADC_Val

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

  - >> Get_ADC_Val

  BusFault_Handler (Thumb, 6 bytes, Stack size 0 bytes, system_armcm4.o(i.BusFault_Handler))
  [Stack]

  - Max Depth = 24
  - Call Chain = BusFault_Handler ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  CPM_OSC_Switch (Thumb, 404 bytes, Stack size 0 bytes, clk_switch_drv.o(i.CPM_OSC_Switch))
  [Called By]

  - >> Sys_Clk_Init

  CPM_PWRCR_OptBits (Thumb, 164 bytes, Stack size 16 bytes, reg_opt_drv.o(i.CPM_PWRCR_OptBits))
  [Stack]

  - Max Depth = 16
  - Call Chain = CPM_PWRCR_OptBits
  [Called By]
  - >> LVD_EN
  - >> IO_Latch_Clr

  CPM_SysClkSelect (Thumb, 188 bytes, Stack size 16 bytes, cpm_drv.o(i.CPM_SysClkSelect))
  [Stack]

  - Max Depth = 16
  - Call Chain = CPM_SysClkSelect
  [Calls]
  - >> EFLASH_Set_RWSC
  - >> cpm_set_sysclk_div
  [Called By]
  - >> Sys_Clk_Init

  CPM_Vref_Trim (Thumb, 52 bytes, Stack size 4 bytes, cpm_drv.o(i.CPM_Vref_Trim))
  [Stack]

  - Max Depth = 4
  - Call Chain = CPM_Vref_Trim
  [Calls]
  - >> CPM_Write_CoreTestKey
  [Called By]
  - >> Sys_Clk_Init

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

  - >> CPM_Vref_Trim

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

  - >> read_ep_buf

  ClearScreen (Thumb, 22 bytes, Stack size 8 bytes, lt268_gra.o(i.ClearScreen))
  [Stack]

  - Max Depth = 68
  - Call Chain = ClearScreen ⇒ LT268_TFT_DrawSquare_Fill ⇒ LT268_TFT_FillColor ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> LT268_TFT_DrawSquare_Fill
  [Called By]
  - >> PeripheralInit

  DAC_SetData (Thumb, 24 bytes, Stack size 8 bytes, wav_pit.o(i.DAC_SetData))
  [Stack]

  - Max Depth = 8
  - Call Chain = DAC_SetData
  [Calls]
  - >> DAC_Wait_Load_Done
  - >> DAC_WriteData
  [Called By]
  - >> PIT2_IRQHandler

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

  - >> DAC_SetData

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

  - >> DAC_SetData

  DCACHE_Init (Thumb, 264 bytes, Stack size 8 bytes, cache_drv.o(i.DCACHE_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = DCACHE_Init
  [Called By]
  - >> Sys_Init

  DMA1_IRQHandler (Thumb, 50 bytes, Stack size 0 bytes, dmac_drv.o(i.DMA1_IRQHandler))
  [Address Reference Count : 1]

  - startup_armcm4.o(RESET)

  DMA2_IRQHandler (Thumb, 70 bytes, Stack size 0 bytes, dmac_drv.o(i.DMA2_IRQHandler))
  [Address Reference Count : 1]

  - startup_armcm4.o(RESET)

  DebugMon_Handler (Thumb, 6 bytes, Stack size 0 bytes, system_armcm4.o(i.DebugMon_Handler))
  [Stack]

  - Max Depth = 24
  - Call Chain = DebugMon_Handler ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  DelayMS (Thumb, 42 bytes, Stack size 12 bytes, delay.o(i.DelayMS))
  [Stack]

  - Max Depth = 12
  - Call Chain = DelayMS
  [Called By]
  - >> LT_TpInit
  - >> LCD_TFT_Init
  - >> LT_TpAdjust
  - >> Get_ADC_Val

  DelayUS (Thumb, 40 bytes, Stack size 12 bytes, delay.o(i.DelayUS))
  [Stack]

  - Max Depth = 12
  - Call Chain = DelayUS
  [Called By]
  - >> W25N01GV_Init
  - >> LT_ReadFlash
  - >> NorFlash_Read
  - >> NandFlash_Read
  - >> TP_ReadY_Hor
  - >> TP_ReadX_Hor
  - >> TP_IF_PenDown
  - >> NorFlash_DMA_Read
  - >> NandFlash_DMA_Read
  - >> LT_ReadFlash_DMA

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

  - >> Show16BitDecimal

  EFLASH_Init (Thumb, 4 bytes, Stack size 0 bytes, eflash_drv.o(i.EFLASH_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = EFLASH_Init ⇒ EFM_Init
  [Calls]
  - >> EFM_Init
  [Called By]
  - >> LT_TpSaveAdjdata

  EFLASH_PageErase (Thumb, 16 bytes, Stack size 8 bytes, eflash_drv.o(i.EFLASH_PageErase))
  [Stack]

  - Max Depth = 24
  - Call Chain = EFLASH_PageErase ⇒ EFlash_Page_Erase
  [Calls]
  - >> EFlash_Page_Erase
  [Called By]
  - >> LT_TpSaveAdjdata

  EFLASH_SetWritePermission (Thumb, 8 bytes, Stack size 0 bytes, eflash_drv.o(i.EFLASH_SetWritePermission))
  [Calls]

  - >> EFlash_Set_Main_Permission
  [Called By]
  - >> LT_TpSaveAdjdata

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

  - >> CPM_SysClkSelect

  EFLASH_WordProg (Thumb, 20 bytes, Stack size 16 bytes, eflash_drv.o(i.EFLASH_WordProg))
  [Stack]

  - Max Depth = 40
  - Call Chain = EFLASH_WordProg ⇒ EFlash_Bulk_Program
  [Calls]
  - >> EFlash_Bulk_Program
  [Called By]
  - >> LT_TpSaveAdjdata

  EFM_Init (Thumb, 72 bytes, Stack size 16 bytes, eflash.o(i.EFM_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = EFM_Init
  [Calls]
  - >> eflash_set_verify_cnt
  - >> eflash_set_rwsc
  [Called By]
  - >> EFLASH_Init

  EFlash_Bulk_Program (Thumb, 64 bytes, Stack size 24 bytes, eflash.o(i.EFlash_Bulk_Program))
  [Stack]

  - Max Depth = 24
  - Call Chain = EFlash_Bulk_Program
  [Called By]
  - >> EFLASH_WordProg

  EFlash_Page_Erase (Thumb, 74 bytes, Stack size 16 bytes, eflash.o(i.EFlash_Page_Erase))
  [Stack]

  - Max Depth = 16
  - Call Chain = EFlash_Page_Erase
  [Called By]
  - >> EFLASH_PageErase

  EFlash_Set_Main_Permission (Thumb, 72 bytes, Stack size 0 bytes, eflash.o(i.EFlash_Set_Main_Permission))
  [Called By]

  - >> EFLASH_SetWritePermission

  ENCR_IRQHandler (Thumb, 42 bytes, Stack size 0 bytes, edma_drv.o(i.ENCR_IRQHandler))
  [Address Reference Count : 1]

  - startup_armcm4.o(RESET)

  EPORT0_0_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_0_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT0_0_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT0_1_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_1_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT0_1_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT0_2_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_2_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT0_2_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT0_3_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_3_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT0_3_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT0_4_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_4_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT0_4_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT0_5_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_5_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT0_5_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT0_6_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_6_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT0_6_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT0_7_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_7_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT0_7_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT1_0_IRQHandler (Thumb, 30 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_0_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT1_0_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT1_1_IRQHandler (Thumb, 30 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_1_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT1_1_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT1_2_IRQHandler (Thumb, 30 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_2_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT1_2_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT1_3_IRQHandler (Thumb, 30 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_3_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT1_3_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT1_4_IRQHandler (Thumb, 30 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_4_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT1_4_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT1_5_IRQHandler (Thumb, 30 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_5_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT1_5_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT1_6_IRQHandler (Thumb, 30 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_6_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT1_6_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT1_7_IRQHandler (Thumb, 30 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_7_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = EPORT1_7_IRQHandler ⇒ EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> EPORT_IRQHandler
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  EPORT_ConfigGpio (Thumb, 590 bytes, Stack size 40 bytes, eport_drv.o(i.EPORT_ConfigGpio))
  [Stack]

  - Max Depth = 64
  - Call Chain = EPORT_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> assert_failed
  [Called By]
  - >> LCD_PPI_Port_Init
  - >> TP_ReadY_Hor
  - >> TP_ReadX_Hor
  - >> TP_IF_PenDown

  EPORT_PullupConfig (Thumb, 430 bytes, Stack size 40 bytes, eport_drv.o(i.EPORT_PullupConfig))
  [Stack]

  - Max Depth = 64
  - Call Chain = EPORT_PullupConfig ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> assert_failed
  [Called By]
  - >> TP_ReadY_Hor
  - >> TP_ReadX_Hor
  - >> TP_IF_PenDown

  EPORT_WriteGpioData (Thumb, 384 bytes, Stack size 16 bytes, eport_drv.o(i.EPORT_WriteGpioData))
  [Stack]

  - Max Depth = 40
  - Call Chain = EPORT_WriteGpioData ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> assert_failed
  [Called By]
  - >> LCD_PPI_Port_Init
  - >> TP_ReadY_Hor
  - >> TP_ReadX_Hor
  - >> TP_IF_PenDown

  Get_ADC_Val (Thumb, 82 bytes, Stack size 16 bytes, rtp.o(i.Get_ADC_Val))
  [Stack]

  - Max Depth = 28
  - Call Chain = Get_ADC_Val ⇒ DelayMS
  [Calls]
  - >> ADC_StopConv
  - >> ADC_StartConv
  - >> ADC_Cmd
  - >> DelayMS
  - >> ADC_Initial
  [Called By]
  - >> TP_ReadY_Hor
  - >> TP_ReadX_Hor
  - >> TP_IF_PenDown

  Get_Sys_Clock (Thumb, 82 bytes, Stack size 0 bytes, cpm_drv.o(i.Get_Sys_Clock))
  [Called By]

  - >> Sys_Clk_Init

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

  - >> SysTick_Handler

  I2C1_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, i2c_drv.o(i.I2C1_IRQHandler))
  [Stack]

  - Max Depth = 12
  - Call Chain = I2C1_IRQHandler ⇒ I2C_ISR
  [Calls]
  - >> I2C_ISR
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  I2C2_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, i2c_drv.o(i.I2C2_IRQHandler))
  [Stack]

  - Max Depth = 12
  - Call Chain = I2C2_IRQHandler ⇒ I2C_ISR
  [Calls]
  - >> I2C_ISR
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  I2C3_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, i2c_drv.o(i.I2C3_IRQHandler))
  [Stack]

  - Max Depth = 12
  - Call Chain = I2C3_IRQHandler ⇒ I2C_ISR
  [Calls]
  - >> I2C_ISR
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  I2C_ConfigGpio (Thumb, 84 bytes, Stack size 16 bytes, i2c_drv.o(i.I2C_ConfigGpio))
  [Stack]

  - Max Depth = 40
  - Call Chain = I2C_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> assert_failed
  [Called By]
  - >> TP_ReadY_Hor
  - >> TP_ReadX_Hor
  - >> TP_IF_PenDown

  I2C_WriteGpioData (Thumb, 48 bytes, Stack size 16 bytes, i2c_drv.o(i.I2C_WriteGpioData))
  [Stack]

  - Max Depth = 40
  - Call Chain = I2C_WriteGpioData ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> assert_failed
  [Called By]
  - >> TP_ReadY_Hor
  - >> TP_ReadX_Hor
  - >> TP_IF_PenDown

  ICACHE_Init (Thumb, 264 bytes, Stack size 8 bytes, cache_drv.o(i.ICACHE_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = ICACHE_Init
  [Called By]
  - >> Sys_Init

  IO_Latch_Clr (Thumb, 34 bytes, Stack size 8 bytes, system_armcm4.o(i.IO_Latch_Clr))
  [Stack]

  - Max Depth = 24
  - Call Chain = IO_Latch_Clr ⇒ CPM_PWRCR_OptBits
  [Calls]
  - >> CPM_PWRCR_OptBits
  [Address Reference Count : 1]
  - startup_armcm4.o(.text)

  IPS_Clk_Op (Thumb, 84 bytes, Stack size 8 bytes, cpm_drv.o(i.IPS_Clk_Op))
  [Stack]

  - Max Depth = 8
  - Call Chain = IPS_Clk_Op
  [Called By]
  - >> Sys_Clk_Init

  Is_Leap_Year (Thumb, 46 bytes, Stack size 0 bytes, rtc.o(i.Is_Leap_Year))
  [Called By]

  - >> RTC_Get

  LCD_BL_Init (Thumb, 24 bytes, Stack size 16 bytes, function_drv.o(i.LCD_BL_Init))
  [Stack]

  - Max Depth = 72
  - Call Chain = LCD_BL_Init ⇒ PWM_OutputInit ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> PWM_OutputInit
  [Called By]
  - >> LT_TpInit
  - >> PeripheralInit

  LCD_PPI_Port_Init (Thumb, 192 bytes, Stack size 8 bytes, tftlcd.o(i.LCD_PPI_Port_Init))
  [Stack]

  - Max Depth = 72
  - Call Chain = LCD_PPI_Port_Init ⇒ EPORT_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> SPI_WriteGpioData
  - >> SPI_ConfigGpio
  - >> PWM_WriteGpioData
  - >> PWM_ConfigGpio
  - >> EPORT_WriteGpioData
  - >> EPORT_ConfigGpio
  [Called By]
  - >> LCD_TFT_Init

  LCD_TFT_Init (Thumb, 462 bytes, Stack size 8 bytes, tftlcd.o(i.LCD_TFT_Init))
  [Stack]

  - Max Depth = 80
  - Call Chain = LCD_TFT_Init ⇒ LCD_PPI_Port_Init ⇒ EPORT_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> DelayMS
  - >> TFT_DataWrite
  - >> TFT_CommandWrite
  - >> LCD_PPI_Port_Init
  [Called By]
  - >> PeripheralInit

  LT268_TFT_DrawCircle (Thumb, 70 bytes, Stack size 32 bytes, function.o(i.LT268_TFT_DrawCircle))
  [Stack]

  - Max Depth = 108
  - Call Chain = LT268_TFT_DrawCircle ⇒ _draw_circle_8 ⇒ LT268_TFT_DrawPoint ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> _draw_circle_8
  [Called By]
  - >> LT_TpDrawTouchPoint

  LT268_TFT_DrawLine (Thumb, 154 bytes, Stack size 48 bytes, function.o(i.LT268_TFT_DrawLine))
  [Stack]

  - Max Depth = 84
  - Call Chain = LT268_TFT_DrawLine ⇒ LT268_TFT_DrawPoint ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> LT268_TFT_DrawPoint
  [Called By]
  - >> LT_TpDrawTouchPoint

  LT268_TFT_DrawPoint (Thumb, 50 bytes, Stack size 16 bytes, function.o(i.LT268_TFT_DrawPoint))
  [Stack]

  - Max Depth = 36
  - Call Chain = LT268_TFT_DrawPoint ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> LT268_TFT_SetWindows
  - >> TFT_Data_Tran2
  [Called By]
  - >> Put16BitBMP
  - >> _draw_circle_8
  - >> LT268_TFT_DrawLine

  LT268_TFT_DrawPoint_Buffer (Thumb, 30 bytes, Stack size 8 bytes, function.o(i.LT268_TFT_DrawPoint_Buffer))
  [Stack]

  - Max Depth = 8
  - Call Chain = LT268_TFT_DrawPoint_Buffer
  [Called By]
  - >> LT268_TFT_Show_Internal_Char

  LT268_TFT_DrawSquare_Fill (Thumb, 44 bytes, Stack size 16 bytes, function.o(i.LT268_TFT_DrawSquare_Fill))
  [Stack]

  - Max Depth = 60
  - Call Chain = LT268_TFT_DrawSquare_Fill ⇒ LT268_TFT_FillColor ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> LT268_TFT_FillColor
  [Called By]
  - >> ClearScreen
  - >> LT_TpAdjust

  LT268_TFT_FillColor (Thumb, 60 bytes, Stack size 24 bytes, function.o(i.LT268_TFT_FillColor))
  [Stack]

  - Max Depth = 44
  - Call Chain = LT268_TFT_FillColor ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> LT268_TFT_SetWindows
  - >> TFT_Data_Tran2
  [Called By]
  - >> LT268_TFT_DrawSquare_Fill

  LT268_TFT_FillColor_Buffer (Thumb, 52 bytes, Stack size 28 bytes, function.o(i.LT268_TFT_FillColor_Buffer))
  [Stack]

  - Max Depth = 28
  - Call Chain = LT268_TFT_FillColor_Buffer
  [Called By]
  - >> LT268_TFT_Show_Internal_Char

  LT268_TFT_SetWindows (Thumb, 88 bytes, Stack size 20 bytes, tftlcd.o(i.LT268_TFT_SetWindows))
  [Stack]

  - Max Depth = 20
  - Call Chain = LT268_TFT_SetWindows
  [Calls]
  - >> TFT_DataWrite
  - >> TFT_CommandWrite
  [Called By]
  - >> LT268_buffer_to_TFT
  - >> LT268_TFT_FillColor
  - >> LT268_TFT_DrawPoint

  LT268_TFT_ShowAscll (Thumb, 100 bytes, Stack size 56 bytes, function.o(i.LT268_TFT_ShowAscll))
  [Stack]

  - Max Depth = 464
  - Call Chain = LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> LT268_TFT_Show_Internal_Char
  [Called By]
  - >> Show16BitDecimal
  - >> thread_6_and_7_entry
  - >> thread_5_entry
  - >> thread_3_and_4_entry
  - >> thread_2_entry
  - >> thread_1_entry
  - >> thread_0_entry
  - >> LT_TpAdjust

  LT268_TFT_Show_Internal_Char (Thumb, 342 bytes, Stack size 88 bytes, function.o(i.LT268_TFT_Show_Internal_Char))
  [Stack]

  - Max Depth = 408
  - Call Chain = LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> LT268_pic_to_buffer
  - >> LT268_buffer_to_TFT
  - >> LT268_TFT_FillColor_Buffer
  - >> LT268_TFT_DrawPoint_Buffer
  [Called By]
  - >> LT268_TFT_ShowAscll

  LT268_buffer_to_TFT (Thumb, 142 bytes, Stack size 40 bytes, levetop.o(i.LT268_buffer_to_TFT))
  [Stack]

  - Max Depth = 60
  - Call Chain = LT268_buffer_to_TFT ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> LT268_TFT_SetWindows
  - >> TFT_Data_Tran
  [Called By]
  - >> LT268_TFT_Show_Internal_Char

  LT268_pic_to_buffer (Thumb, 2586 bytes, Stack size 144 bytes, levetop.o(i.LT268_pic_to_buffer))
  [Stack]

  - Max Depth = 320
  - Call Chain = LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> LT_ReadFlash
  - >> jpg_decode_onFlash
  - >> LT_ReadFlash_DMA
  [Called By]
  - >> LT268_TFT_Show_Internal_Char

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

  - >> PIT1_IRQHandler

  LT_DataToPc (Thumb, 120 bytes, Stack size 72 bytes, uart.o(i.LT_DataToPc))
  [Stack]

  - Max Depth = 88
  - Call Chain = LT_DataToPc ⇒ Rx_CRC_CCITT
  [Calls]
  - >> Rx_CRC_CCITT
  - >> __aeabi_memclr4
  [Called By]
  - >> PIT1_IRQHandler

  LT_ReadFlash (Thumb, 178 bytes, Stack size 32 bytes, trans_port.o(i.LT_ReadFlash))
  [Stack]

  - Max Depth = 80
  - Call Chain = LT_ReadFlash ⇒ NandFlash_Read ⇒ LT_W25N01GV_PageDataRead ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> NorFlash_Read
  - >> NandFlash_Read
  - >> DelayUS
  [Called By]
  - >> LT_TFT_GetInfo
  - >> LT268_pic_to_buffer
  - >> jpeg_in_func

  LT_ReadFlash_DMA (Thumb, 190 bytes, Stack size 32 bytes, trans_port.o(i.LT_ReadFlash_DMA))
  [Stack]

  - Max Depth = 80
  - Call Chain = LT_ReadFlash_DMA ⇒ NandFlash_DMA_Read ⇒ LT_W25N01GV_PageDataRead ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> DelayUS
  - >> NorFlash_DMA_Wait
  - >> NorFlash_DMA_Read
  - >> NandFlash_DMA_Wait
  - >> NandFlash_DMA_Read
  [Called By]
  - >> LT268_pic_to_buffer

  LT_TFT_GetInfo (Thumb, 148 bytes, Stack size 16 bytes, bsp.o(i.LT_TFT_GetInfo))
  [Stack]

  - Max Depth = 96
  - Call Chain = LT_TFT_GetInfo ⇒ LT_ReadFlash ⇒ NandFlash_Read ⇒ LT_W25N01GV_PageDataRead ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> LT_ReadFlash
  [Called By]
  - >> PeripheralInit

  LT_TpAdjust (Thumb, 1508 bytes, Stack size 72 bytes, rtp.o(i.LT_TpAdjust))
  [Stack]

  - Max Depth = 536
  - Call Chain = LT_TpAdjust ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> LT268_TFT_ShowAscll
  - >> DelayMS
  - >> LT_TpSaveAdjdata
  - >> LT_TpScan
  - >> LT_TpDrawTouchPoint
  - >> __aeabi_ui2d
  - >> __aeabi_d2uiz
  - >> LT268_TFT_DrawSquare_Fill
  - >> __hardfp_sqrt
  [Called By]
  - >> LT_TpInit

  LT_TpDrawTouchPoint (Thumb, 66 bytes, Stack size 24 bytes, rtp.o(i.LT_TpDrawTouchPoint))
  [Stack]

  - Max Depth = 132
  - Call Chain = LT_TpDrawTouchPoint ⇒ LT268_TFT_DrawCircle ⇒ _draw_circle_8 ⇒ LT268_TFT_DrawPoint ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> LT268_TFT_DrawLine
  - >> LT268_TFT_DrawCircle
  [Called By]
  - >> LT_TpAdjust

  LT_TpGetAdjdata (Thumb, 346 bytes, Stack size 36 bytes, tp_drv.o(i.LT_TpGetAdjdata))
  [Stack]

  - Max Depth = 36
  - Call Chain = LT_TpGetAdjdata
  [Called By]
  - >> LT_TpInit

  LT_TpInit (Thumb, 46 bytes, Stack size 8 bytes, rtp.o(i.LT_TpInit))
  [Stack]

  - Max Depth = 544
  - Call Chain = LT_TpInit ⇒ LT_TpAdjust ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> LCD_BL_Init
  - >> DelayMS
  - >> LT_TpGetAdjdata
  - >> LT_TpAdjust
  - >> ADC_Initial
  [Called By]
  - >> PeripheralInit

  LT_TpSaveAdjdata (Thumb, 216 bytes, Stack size 16 bytes, tp_drv.o(i.LT_TpSaveAdjdata))
  [Stack]

  - Max Depth = 56
  - Call Chain = LT_TpSaveAdjdata ⇒ EFLASH_WordProg ⇒ EFlash_Bulk_Program
  [Calls]
  - >> EFLASH_WordProg
  - >> EFLASH_SetWritePermission
  - >> EFLASH_PageErase
  - >> EFLASH_Init
  [Called By]
  - >> LT_TpAdjust

  LT_TpScan (Thumb, 186 bytes, Stack size 16 bytes, rtp.o(i.LT_TpScan))
  [Stack]

  - Max Depth = 144
  - Call Chain = LT_TpScan ⇒ TP_Read_XY2 ⇒ TP_Read_XY ⇒ TP_ReadY_Hor ⇒ EPORT_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> TP_Read_XY2
  - >> TP_IF_PenDown
  [Called By]
  - >> LT_TpAdjust
  [Address Reference Count : 1]
  - rtp.o(i.LT_TpInit)

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

  - >> SCI3_IRQHandler
  - >> PIT1_IRQHandler

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

  - >> LT_UsartTimeSetCounter

  LT_UsartTimeSetCounter (Thumb, 16 bytes, Stack size 0 bytes, pit.o(i.LT_UsartTimeSetCounter))
  [Calls]

  - >> LT_UsartTimeEnable
  [Called By]
  - >> SCI3_IRQHandler

  LT_W25N01GV_PageDataRead (Thumb, 60 bytes, Stack size 4 bytes, w25n01.o(i.LT_W25N01GV_PageDataRead))
  [Stack]

  - Max Depth = 16
  - Call Chain = LT_W25N01GV_PageDataRead ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> LT_W25N01GV_Wait_Busy
  [Called By]
  - >> W25N01GV_Init
  - >> NandFlash_Read
  - >> NandFlash_DMA_Read

  LT_W25N01GV_ReadID (Thumb, 64 bytes, Stack size 0 bytes, w25n01.o(i.LT_W25N01GV_ReadID))
  [Called By]

  - >> PeripheralInit

  LT_W25N01GV_ReadSR (Thumb, 48 bytes, Stack size 8 bytes, w25n01.o(i.LT_W25N01GV_ReadSR))
  [Stack]

  - Max Depth = 8
  - Call Chain = LT_W25N01GV_ReadSR
  [Called By]
  - >> W25N01GV_BufferRead_Mode
  - >> LT_W25N01GV_Wait_Busy

  LT_W25N01GV_Wait_Busy (Thumb, 14 bytes, Stack size 4 bytes, w25n01.o(i.LT_W25N01GV_Wait_Busy))
  [Stack]

  - Max Depth = 12
  - Call Chain = LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> LT_W25N01GV_ReadSR
  [Called By]
  - >> LT_W25N01GV_Write_SR
  - >> LT_W25N01GV_Write_Enable
  - >> LT_W25N01GV_PageDataRead

  LT_W25N01GV_Write_Enable (Thumb, 46 bytes, Stack size 4 bytes, w25n01.o(i.LT_W25N01GV_Write_Enable))
  [Stack]

  - Max Depth = 16
  - Call Chain = LT_W25N01GV_Write_Enable ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> LT_W25N01GV_Wait_Busy
  [Called By]
  - >> LT_W25N01GV_Write_SR

  LT_W25N01GV_Write_SR (Thumb, 60 bytes, Stack size 20 bytes, w25n01.o(i.LT_W25N01GV_Write_SR))
  [Stack]

  - Max Depth = 36
  - Call Chain = LT_W25N01GV_Write_SR ⇒ LT_W25N01GV_Write_Enable ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> LT_W25N01GV_Write_Enable
  - >> LT_W25N01GV_Wait_Busy
  [Called By]
  - >> W25N01GV_BufferRead_Mode

  LVD_EN (Thumb, 8 bytes, Stack size 0 bytes, system_armcm4.o(i.LVD_EN))
  [Stack]

  - Max Depth = 16
  - Call Chain = LVD_EN ⇒ CPM_PWRCR_OptBits
  [Calls]
  - >> CPM_PWRCR_OptBits
  [Address Reference Count : 1]
  - startup_armcm4.o(.text)

  MemManage_Handler (Thumb, 6 bytes, Stack size 0 bytes, system_armcm4.o(i.MemManage_Handler))
  [Stack]

  - Max Depth = 24
  - Call Chain = MemManage_Handler ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  NMI_Handler (Thumb, 6 bytes, Stack size 0 bytes, system_armcm4.o(i.NMI_Handler))
  [Stack]

  - Max Depth = 24
  - Call Chain = NMI_Handler ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  NVIC_Init (Thumb, 74 bytes, Stack size 20 bytes, sys.o(i.NVIC_Init))
  [Stack]

  - Max Depth = 20
  - Call Chain = NVIC_Init
  [Calls]
  - >> NVIC_PriorityGroupConfig
  [Called By]
  - >> Uart_Init

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

  - >> NVIC_Init

  NandFlash_DMA_Read (Thumb, 200 bytes, Stack size 32 bytes, w25n01.o(i.NandFlash_DMA_Read))
  [Stack]

  - Max Depth = 48
  - Call Chain = NandFlash_DMA_Read ⇒ LT_W25N01GV_PageDataRead ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> SSI1_STD_Init
  - >> LT_W25N01GV_PageDataRead
  - >> DelayUS
  [Called By]
  - >> LT_ReadFlash_DMA

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

  - >> LT_ReadFlash_DMA

  NandFlash_Read (Thumb, 192 bytes, Stack size 32 bytes, w25n01.o(i.NandFlash_Read))
  [Stack]

  - Max Depth = 48
  - Call Chain = NandFlash_Read ⇒ LT_W25N01GV_PageDataRead ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> SSI1_STD_Init
  - >> LT_W25N01GV_PageDataRead
  - >> DelayUS
  [Called By]
  - >> LT_ReadFlash

  NorFlash_DMA_Read (Thumb, 204 bytes, Stack size 24 bytes, w25qxx.o(i.NorFlash_DMA_Read))
  [Stack]

  - Max Depth = 36
  - Call Chain = NorFlash_DMA_Read ⇒ DelayUS
  [Calls]
  - >> DelayUS
  [Called By]
  - >> LT_ReadFlash_DMA

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

  - >> LT_ReadFlash_DMA

  NorFlash_Read (Thumb, 178 bytes, Stack size 24 bytes, w25qxx.o(i.NorFlash_Read))
  [Stack]

  - Max Depth = 36
  - Call Chain = NorFlash_Read ⇒ DelayUS
  [Calls]
  - >> DelayUS
  [Called By]
  - >> LT_ReadFlash

  PCI_DET_IRQHandler (Thumb, 306 bytes, Stack size 16 bytes, pci_drv.o(i.PCI_DET_IRQHandler))
  [Stack]

  - Max Depth = 40
  - Call Chain = PCI_DET_IRQHandler ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  PCI_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, cpm_drv.o(i.PCI_IRQHandler))
  [Address Reference Count : 1]

  - startup_armcm4.o(RESET)

  PIT1_IRQHandler (Thumb, 250 bytes, Stack size 24 bytes, pit.o(i.PIT1_IRQHandler))
  [Stack]

  - Max Depth = 112
  - Call Chain = PIT1_IRQHandler ⇒ LT_DataToPc ⇒ Rx_CRC_CCITT
  [Calls]
  - >> LT_DataToPc
  - >> LT_UsartTimeDisable
  - >> LT_BacklightSet
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  PIT2_IRQHandler (Thumb, 338 bytes, Stack size 56 bytes, pit.o(i.PIT2_IRQHandler))
  [Stack]

  - Max Depth = 144
  - Call Chain = PIT2_IRQHandler ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_i2d
  - >> __aeabi_dadd
  - >> __aeabi_drsub
  - >> __aeabi_dmul
  - >> __aeabi_d2iz
  - >> DAC_SetData
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  PMU_RTC_IRQHandler (Thumb, 64 bytes, Stack size 8 bytes, rtc.o(i.PMU_RTC_IRQHandler))
  [Stack]

  - Max Depth = 52
  - Call Chain = PMU_RTC_IRQHandler ⇒ RTC_Get ⇒ RTC_Get_Week
  [Calls]
  - >> RTC_Get
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  PWM0_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, pwm_drv.o(i.PWM0_IRQHandler))
  [Calls]

  - >> PWM_ISR
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  PWM1_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, pwm_drv.o(i.PWM1_IRQHandler))
  [Calls]

  - >> PWM_ISR
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  PWM2_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, pwm_drv.o(i.PWM2_IRQHandler))
  [Calls]

  - >> PWM_ISR
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  PWM3_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, pwm_drv.o(i.PWM3_IRQHandler))
  [Calls]

  - >> PWM_ISR
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  PWM_ConfigGpio (Thumb, 110 bytes, Stack size 16 bytes, pwm_drv.o(i.PWM_ConfigGpio))
  [Stack]

  - Max Depth = 40
  - Call Chain = PWM_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> assert_failed
  [Called By]
  - >> LCD_PPI_Port_Init

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

  - >> PWM3_IRQHandler
  - >> PWM2_IRQHandler
  - >> PWM1_IRQHandler
  - >> PWM0_IRQHandler

  PWM_OutputInit (Thumb, 468 bytes, Stack size 32 bytes, pwm_drv.o(i.PWM_OutputInit))
  [Stack]

  - Max Depth = 56
  - Call Chain = PWM_OutputInit ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> assert_failed
  [Called By]
  - >> LCD_BL_Init

  PWM_WriteGpioData (Thumb, 76 bytes, Stack size 16 bytes, pwm_drv.o(i.PWM_WriteGpioData))
  [Stack]

  - Max Depth = 40
  - Call Chain = PWM_WriteGpioData ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> assert_failed
  [Called By]
  - >> LCD_PPI_Port_Init

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

  - Max Depth = 552
  - Call Chain = PeripheralInit ⇒ LT_TpInit ⇒ LT_TpAdjust ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> WDT_control
  - >> W25QXX_ReadID
  - >> W25QXX_Init
  - >> W25N01GV_Init
  - >> Uart_Init
  - >> Sys_Init
  - >> SSI1_STD_Init
  - >> LT_W25N01GV_ReadID
  - >> LT_TpInit
  - >> LT_TFT_GetInfo
  - >> LCD_TFT_Init
  - >> LCD_BL_Init
  - >> ClearScreen
  [Called By]
  - >> main

  Put16BitBMP (Thumb, 76 bytes, Stack size 40 bytes, lt268_gra.o(i.Put16BitBMP))
  [Stack]

  - Max Depth = 76
  - Call Chain = Put16BitBMP ⇒ LT268_TFT_DrawPoint ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> LT268_TFT_DrawPoint
  [Called By]
  - >> thread_6_and_7_entry
  - >> thread_5_entry
  - >> thread_3_and_4_entry
  - >> thread_2_entry
  - >> thread_1_entry
  - >> thread_0_entry

  RTC_Get (Thumb, 162 bytes, Stack size 32 bytes, rtc.o(i.RTC_Get))
  [Stack]

  - Max Depth = 44
  - Call Chain = RTC_Get ⇒ RTC_Get_Week
  [Calls]
  - >> RTC_GetTime
  - >> RTC_Get_Week
  - >> Is_Leap_Year
  [Called By]
  - >> PMU_RTC_IRQHandler

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

  - >> RTC_Get

  RTC_Get_Week (Thumb, 76 bytes, Stack size 12 bytes, rtc.o(i.RTC_Get_Week))
  [Stack]

  - Max Depth = 12
  - Call Chain = RTC_Get_Week
  [Called By]
  - >> RTC_Get

  Rx_CRC_CCITT (Thumb, 56 bytes, Stack size 16 bytes, bsp.o(i.Rx_CRC_CCITT))
  [Stack]

  - Max Depth = 16
  - Call Chain = Rx_CRC_CCITT
  [Called By]
  - >> LT_DataToPc

  SCI2_IRQHandler (Thumb, 8 bytes, Stack size 0 bytes, uart_drv.o(i.SCI2_IRQHandler))
  [Calls]

  - >> UART_ISR
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  SCI3_IRQHandler (Thumb, 220 bytes, Stack size 16 bytes, uart.o(i.SCI3_IRQHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = SCI3_IRQHandler
  [Calls]
  - >> LT_UsartTimeSetCounter
  - >> LT_UsartTimeDisable
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  SPI_ConfigGpio (Thumb, 54 bytes, Stack size 8 bytes, spi_drv.o(i.SPI_ConfigGpio))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_ConfigGpio
  [Called By]
  - >> LCD_PPI_Port_Init

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

  - >> LCD_PPI_Port_Init

  SSI1_STD_Init (Thumb, 38 bytes, Stack size 0 bytes, qspi.o(i.SSI1_STD_Init))
  [Calls]

  - >> SSI1_STD_Init
  [Called By]
  - >> SSI1_STD_Init
  - >> PeripheralInit
  - >> W25QXX_Write_EnableVolatile
  - >> NandFlash_Read
  - >> NandFlash_DMA_Read

  SVC_Handler (Thumb, 6 bytes, Stack size 0 bytes, system_armcm4.o(i.SVC_Handler))
  [Stack]

  - Max Depth = 24
  - Call Chain = SVC_Handler ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

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

  - >> USBDev_BusReset

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

  - >> USBDev_Packet_BulkIn
  - >> UsbRead10

  Show16BitDecimal (Thumb, 100 bytes, Stack size 56 bytes, misc_c.o(i.Show16BitDecimal))
  [Stack]

  - Max Depth = 520
  - Call Chain = Show16BitDecimal ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> LT268_TFT_ShowAscll
  - >> DigitToHexAscii
  [Called By]
  - >> thread_6_and_7_entry
  - >> thread_5_entry
  - >> thread_3_and_4_entry
  - >> thread_2_entry
  - >> thread_1_entry
  - >> thread_0_entry

  Sys_Clk_Init (Thumb, 214 bytes, Stack size 48 bytes, cpm_drv.o(i.Sys_Clk_Init))
  [Stack]

  - Max Depth = 64
  - Call Chain = Sys_Clk_Init ⇒ CPM_SysClkSelect
  [Calls]
  - >> CPM_OSC_Switch
  - >> IPS_Clk_Op
  - >> Get_Sys_Clock
  - >> CPM_Vref_Trim
  - >> CPM_SysClkSelect
  [Called By]
  - >> Sys_Init

  Sys_Init (Thumb, 46 bytes, Stack size 8 bytes, sys.o(i.Sys_Init))
  [Stack]

  - Max Depth = 72
  - Call Chain = Sys_Init ⇒ Sys_Clk_Init ⇒ CPM_SysClkSelect
  [Calls]
  - >> delay
  - >> Sys_Clk_Init
  - >> ICACHE_Init
  - >> DCACHE_Init
  [Called By]
  - >> PeripheralInit

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

  - startup_armcm4.o(.text)

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

  - startup_armcm4.o(RESET)

  TC_ISR (Thumb, 22 bytes, Stack size 0 bytes, tc_drv.o(i.TC_ISR), UNUSED)
  [Calls]

  - >> __2printf

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

  - >> LCD_TFT_Init
  - >> LT268_TFT_SetWindows

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

  - >> LCD_TFT_Init
  - >> LT268_TFT_SetWindows

  TFT_Data_Tran (Thumb, 58 bytes, Stack size 20 bytes, trans_port.o(i.TFT_Data_Tran))
  [Stack]

  - Max Depth = 20
  - Call Chain = TFT_Data_Tran
  [Called By]
  - >> LT268_buffer_to_TFT

  TFT_Data_Tran2 (Thumb, 46 bytes, Stack size 20 bytes, trans_port.o(i.TFT_Data_Tran2))
  [Stack]

  - Max Depth = 20
  - Call Chain = TFT_Data_Tran2
  [Called By]
  - >> LT268_TFT_FillColor
  - >> LT268_TFT_DrawPoint

  TP_IF_PenDown (Thumb, 110 bytes, Stack size 8 bytes, rtp.o(i.TP_IF_PenDown))
  [Stack]

  - Max Depth = 72
  - Call Chain = TP_IF_PenDown ⇒ EPORT_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> EPORT_WriteGpioData
  - >> EPORT_ConfigGpio
  - >> I2C_WriteGpioData
  - >> I2C_ConfigGpio
  - >> EPORT_PullupConfig
  - >> Get_ADC_Val
  - >> DelayUS
  [Called By]
  - >> LT_TpScan

  TP_ReadX_Hor (Thumb, 100 bytes, Stack size 8 bytes, rtp.o(i.TP_ReadX_Hor))
  [Stack]

  - Max Depth = 72
  - Call Chain = TP_ReadX_Hor ⇒ EPORT_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> EPORT_WriteGpioData
  - >> EPORT_ConfigGpio
  - >> I2C_WriteGpioData
  - >> I2C_ConfigGpio
  - >> EPORT_PullupConfig
  - >> Get_ADC_Val
  - >> DelayUS
  [Called By]
  - >> TP_Read_XY

  TP_ReadY_Hor (Thumb, 100 bytes, Stack size 8 bytes, rtp.o(i.TP_ReadY_Hor))
  [Stack]

  - Max Depth = 72
  - Call Chain = TP_ReadY_Hor ⇒ EPORT_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> EPORT_WriteGpioData
  - >> EPORT_ConfigGpio
  - >> I2C_WriteGpioData
  - >> I2C_ConfigGpio
  - >> EPORT_PullupConfig
  - >> Get_ADC_Val
  - >> DelayUS
  [Called By]
  - >> TP_Read_XY

  TP_Read_XY (Thumb, 40 bytes, Stack size 16 bytes, rtp.o(i.TP_Read_XY))
  [Stack]

  - Max Depth = 88
  - Call Chain = TP_Read_XY ⇒ TP_ReadY_Hor ⇒ EPORT_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> TP_ReadY_Hor
  - >> TP_ReadX_Hor
  [Called By]
  - >> TP_Read_XY2

  TP_Read_XY2 (Thumb, 134 bytes, Stack size 40 bytes, rtp.o(i.TP_Read_XY2))
  [Stack]

  - Max Depth = 128
  - Call Chain = TP_Read_XY2 ⇒ TP_Read_XY ⇒ TP_ReadY_Hor ⇒ EPORT_ConfigGpio ⇒ assert_failed ⇒ __2printf
  [Calls]
  - >> TP_Read_XY
  [Called By]
  - >> LT_TpScan

  USBC_IRQHandler (Thumb, 14 bytes, Stack size 8 bytes, usb_drv.o(i.USBC_IRQHandler))
  [Stack]

  - Max Depth = 152
  - Call Chain = USBC_IRQHandler ⇒ USBDev_Polling ⇒ USBDev_EP0_ISR ⇒ USBDev_Ep0Handler ⇒ USBDev_GetDescriptor ⇒ write_ep0_buf ⇒ write_ep_buf
  [Calls]
  - >> USB_MS_ISR
  - >> USBDev_Polling
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  USBDev_BusReset (Thumb, 118 bytes, Stack size 16 bytes, usbdev_control.o(i.USBDev_BusReset))
  [Stack]

  - Max Depth = 16
  - Call Chain = USBDev_BusReset
  [Calls]
  - >> SetFIFO_Addr
  [Called By]
  - >> USBDev_Polling

  USBDev_Data_BulkIn (Thumb, 146 bytes, Stack size 16 bytes, usb_ms_control.o(i.USBDev_Data_BulkIn))
  [Stack]

  - Max Depth = 72
  - Call Chain = USBDev_Data_BulkIn ⇒ UsbRead10 ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> USBDev_Packet_BulkIn
  - >> enum_realDisk
  - >> UsbRead10
  - >> __aeabi_memcpy
  [Called By]
  - >> USBDev_EP1_TX_ISR
  - >> USBDev_Data_BulkOut

  USBDev_Data_BulkOut (Thumb, 356 bytes, Stack size 24 bytes, usb_ms_control.o(i.USBDev_Data_BulkOut))
  [Stack]

  - Max Depth = 96
  - Call Chain = USBDev_Data_BulkOut ⇒ USBDev_Inquiry ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> read_ep_buf
  - >> USBDev_RequestSense
  - >> USBDev_ReadCapacity
  - >> USBDev_Packet_BulkIn
  - >> USBDev_ModeSense
  - >> USBDev_Inquiry
  - >> USBDev_Data_BulkIn
  - >> VendorWriteData
  [Called By]
  - >> USBDev_EP1_RX_ISR

  USBDev_EP0_ISR (Thumb, 42 bytes, Stack size 0 bytes, usbdev_isr.o(i.USBDev_EP0_ISR))
  [Stack]

  - Max Depth = 136
  - Call Chain = USBDev_EP0_ISR ⇒ USBDev_Ep0Handler ⇒ USBDev_GetDescriptor ⇒ write_ep0_buf ⇒ write_ep_buf
  [Calls]
  - >> USBDev_Ep0Handler
  [Called By]
  - >> USBDev_Polling

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

  - >> USBDev_Ep0Handler
  - >> USBDev_GetStatus
  - >> USBDev_GetDescriptor

  USBDev_EP1_RX_ISR (Thumb, 38 bytes, Stack size 0 bytes, usbdev_isr.o(i.USBDev_EP1_RX_ISR))
  [Stack]

  - Max Depth = 96
  - Call Chain = USBDev_EP1_RX_ISR ⇒ USBDev_Data_BulkOut ⇒ USBDev_Inquiry ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> USBDev_Data_BulkOut
  [Called By]
  - >> USBDev_Polling

  USBDev_EP1_TX_ISR (Thumb, 12 bytes, Stack size 0 bytes, usbdev_isr.o(i.USBDev_EP1_TX_ISR))
  [Stack]

  - Max Depth = 72
  - Call Chain = USBDev_EP1_TX_ISR ⇒ USBDev_Data_BulkIn ⇒ UsbRead10 ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> USBDev_Data_BulkIn
  [Called By]
  - >> USBDev_Polling

  USBDev_Ep0Handler (Thumb, 212 bytes, Stack size 16 bytes, usbdev_control.o(i.USBDev_Ep0Handler))
  [Stack]

  - Max Depth = 136
  - Call Chain = USBDev_Ep0Handler ⇒ USBDev_GetDescriptor ⇒ write_ep0_buf ⇒ write_ep_buf
  [Calls]
  - >> write_ep0_buf
  - >> read_ep_buf
  - >> USBDev_TestMode
  - >> USBDev_EP0_SendStall
  - >> USBDev_GetStatus
  - >> USBDev_GetDescriptor
  [Called By]
  - >> USBDev_EP0_ISR

  USBDev_Inquiry (Thumb, 34 bytes, Stack size 40 bytes, usbdev_control.o(i.USBDev_Inquiry))
  [Stack]

  - Max Depth = 72
  - Call Chain = USBDev_Inquiry ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> USBDev_Packet_BulkIn
  - >> __aeabi_memcpy4
  [Called By]
  - >> USBDev_Data_BulkOut

  USBDev_ModeSense (Thumb, 20 bytes, Stack size 8 bytes, usbdev_control.o(i.USBDev_ModeSense))
  [Stack]

  - Max Depth = 40
  - Call Chain = USBDev_ModeSense ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> USBDev_Packet_BulkIn
  [Called By]
  - >> USBDev_Data_BulkOut

  USBDev_Packet_BulkIn (Thumb, 54 bytes, Stack size 24 bytes, usbdev_control.o(i.USBDev_Packet_BulkIn))
  [Stack]

  - Max Depth = 32
  - Call Chain = USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> write_ep_buf
  - >> SetTx
  - >> UsbSetTXsize
  [Called By]
  - >> USBDev_RequestSense
  - >> USBDev_ReadCapacity
  - >> USBDev_ModeSense
  - >> USBDev_Inquiry
  - >> USBDev_Data_BulkOut
  - >> USBDev_Data_BulkIn
  - >> VendorWriteData
  - >> UsbRead10

  USBDev_Polling (Thumb, 106 bytes, Stack size 8 bytes, usbdev_control.o(i.USBDev_Polling))
  [Stack]

  - Max Depth = 144
  - Call Chain = USBDev_Polling ⇒ USBDev_EP0_ISR ⇒ USBDev_Ep0Handler ⇒ USBDev_GetDescriptor ⇒ write_ep0_buf ⇒ write_ep_buf
  [Calls]
  - >> USBDev_EP1_TX_ISR
  - >> USBDev_EP1_RX_ISR
  - >> USBDev_EP0_ISR
  - >> USBDev_BusReset
  [Called By]
  - >> USBC_IRQHandler

  USBDev_ReadCapacity (Thumb, 48 bytes, Stack size 16 bytes, usbdev_control.o(i.USBDev_ReadCapacity))
  [Stack]

  - Max Depth = 48
  - Call Chain = USBDev_ReadCapacity ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> USBDev_Packet_BulkIn
  [Called By]
  - >> USBDev_Data_BulkOut

  USBDev_RequestSense (Thumb, 28 bytes, Stack size 24 bytes, usbdev_control.o(i.USBDev_RequestSense))
  [Stack]

  - Max Depth = 56
  - Call Chain = USBDev_RequestSense ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> USBDev_Packet_BulkIn
  - >> __aeabi_memcpy4
  [Called By]
  - >> USBDev_Data_BulkOut

  USBDev_TestMode (Thumb, 82 bytes, Stack size 72 bytes, usbdev_control.o(i.USBDev_TestMode))
  [Stack]

  - Max Depth = 80
  - Call Chain = USBDev_TestMode ⇒ write_ep_buf
  [Calls]
  - >> write_ep_buf
  - >> __aeabi_memcpy4
  [Called By]
  - >> USBDev_Ep0Handler

  USB_MS_ISR (Thumb, 72 bytes, Stack size 8 bytes, usbdev_isr.o(i.USB_MS_ISR))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_MS_ISR
  [Called By]
  - >> USBC_IRQHandler

  Uart_Init (Thumb, 50 bytes, Stack size 0 bytes, uart.o(i.Uart_Init))
  [Stack]

  - Max Depth = 20
  - Call Chain = Uart_Init ⇒ NVIC_Init
  [Calls]
  - >> NVIC_Init
  [Called By]
  - >> PeripheralInit

  UsageFault_Handler (Thumb, 6 bytes, Stack size 0 bytes, system_armcm4.o(i.UsageFault_Handler))
  [Stack]

  - Max Depth = 24
  - Call Chain = UsageFault_Handler ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - startup_armcm4.o(RESET)

  UsbSetTXsize (Thumb, 82 bytes, Stack size 8 bytes, usb_ms_control.o(i.UsbSetTXsize))
  [Stack]

  - Max Depth = 8
  - Call Chain = UsbSetTXsize
  [Called By]
  - >> USBDev_Packet_BulkIn
  - >> UsbRead10

  W25N01GV_BufferRead_Mode (Thumb, 26 bytes, Stack size 4 bytes, w25n01.o(i.W25N01GV_BufferRead_Mode))
  [Stack]

  - Max Depth = 40
  - Call Chain = W25N01GV_BufferRead_Mode ⇒ LT_W25N01GV_Write_SR ⇒ LT_W25N01GV_Write_Enable ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> LT_W25N01GV_Write_SR
  - >> LT_W25N01GV_ReadSR
  [Called By]
  - >> W25N01GV_Init

  W25N01GV_Init (Thumb, 26 bytes, Stack size 8 bytes, w25n01.o(i.W25N01GV_Init))
  [Stack]

  - Max Depth = 48
  - Call Chain = W25N01GV_Init ⇒ W25N01GV_BufferRead_Mode ⇒ LT_W25N01GV_Write_SR ⇒ LT_W25N01GV_Write_Enable ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> W25N01GV_BufferRead_Mode
  - >> LT_W25N01GV_PageDataRead
  - >> DelayUS
  [Called By]
  - >> PeripheralInit

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

  - >> W25QXX_Init

  W25QXX_Init (Thumb, 46 bytes, Stack size 8 bytes, w25qxx.o(i.W25QXX_Init))
  [Stack]

  - Max Depth = 60
  - Call Chain = W25QXX_Init ⇒ W25QXX_QE_Enable ⇒ W25QXX_WriteSR ⇒ W25QXX_Write_EnableVolatile ⇒ W25QXX_Wait_Busy
  [Calls]
  - >> W25QXX_QE_Enable
  - >> W25QXX_4ByteAddress_Mode
  [Called By]
  - >> PeripheralInit

  W25QXX_QE_Enable (Thumb, 34 bytes, Stack size 8 bytes, w25qxx.o(i.W25QXX_QE_Enable))
  [Stack]

  - Max Depth = 52
  - Call Chain = W25QXX_QE_Enable ⇒ W25QXX_WriteSR ⇒ W25QXX_Write_EnableVolatile ⇒ W25QXX_Wait_Busy
  [Calls]
  - >> W25QXX_Write_EnableVolatile
  - >> W25QXX_WriteSR
  - >> W25QXX_Wait_Busy
  - >> W25QXX_ReadSR
  [Called By]
  - >> W25QXX_Init

  W25QXX_ReadID (Thumb, 80 bytes, Stack size 8 bytes, w25qxx.o(i.W25QXX_ReadID))
  [Stack]

  - Max Depth = 8
  - Call Chain = W25QXX_ReadID
  [Called By]
  - >> PeripheralInit

  W25QXX_ReadSR (Thumb, 46 bytes, Stack size 0 bytes, w25qxx.o(i.W25QXX_ReadSR))
  [Called By]

  - >> W25QXX_Wait_Busy
  - >> W25QXX_QE_Enable

  W25QXX_Wait_Busy (Thumb, 14 bytes, Stack size 4 bytes, w25qxx.o(i.W25QXX_Wait_Busy))
  [Stack]

  - Max Depth = 4
  - Call Chain = W25QXX_Wait_Busy
  [Calls]
  - >> W25QXX_ReadSR
  [Called By]
  - >> W25QXX_Write_EnableVolatile
  - >> W25QXX_WriteSR
  - >> W25QXX_QE_Enable

  W25QXX_WriteSR (Thumb, 54 bytes, Stack size 24 bytes, w25qxx.o(i.W25QXX_WriteSR))
  [Stack]

  - Max Depth = 44
  - Call Chain = W25QXX_WriteSR ⇒ W25QXX_Write_EnableVolatile ⇒ W25QXX_Wait_Busy
  [Calls]
  - >> W25QXX_Write_EnableVolatile
  - >> W25QXX_Wait_Busy
  [Called By]
  - >> W25QXX_QE_Enable

  W25QXX_Write_EnableVolatile (Thumb, 54 bytes, Stack size 16 bytes, w25qxx.o(i.W25QXX_Write_EnableVolatile))
  [Stack]

  - Max Depth = 20
  - Call Chain = W25QXX_Write_EnableVolatile ⇒ W25QXX_Wait_Busy
  [Calls]
  - >> SSI1_STD_Init
  - >> W25QXX_Wait_Busy
  [Called By]
  - >> W25QXX_WriteSR
  - >> W25QXX_QE_Enable

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

  - >> PeripheralInit

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

  - >> _printf_core

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

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

  - Max Depth = 24
  - Call Chain = __2printf
  [Called By]
  - >> UsageFault_Handler
  - >> SVC_Handler
  - >> NMI_Handler
  - >> MemManage_Handler
  - >> DebugMon_Handler
  - >> BusFault_Handler
  - >> EPORT_IRQHandler
  - >> assert_failed
  - >> PCI_DET_IRQHandler
  - >> TC_ISR

  __hardfp_sqrt (Thumb, 122 bytes, Stack size 32 bytes, sqrt.o(i.__hardfp_sqrt))
  [Stack]

  - Max Depth = 72
  - Call Chain = __hardfp_sqrt ⇒ _dsqrt ⇒ _double_round
  [Calls]
  - >> _dsqrt
  - >> __set_errno
  [Called By]
  - >> LT_TpAdjust

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

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

  - >> __hardfp_sqrt

  _draw_circle_8 (Thumb, 152 bytes, Stack size 40 bytes, function.o(i._draw_circle_8))
  [Stack]

  - Max Depth = 76
  - Call Chain = _draw_circle_8 ⇒ LT268_TFT_DrawPoint ⇒ LT268_TFT_SetWindows
  [Calls]
  - >> LT268_TFT_DrawPoint
  [Called By]
  - >> LT268_TFT_DrawCircle

  assert_failed (Thumb, 12 bytes, Stack size 0 bytes, debug.o(i.assert_failed))
  [Stack]

  - Max Depth = 24
  - Call Chain = assert_failed ⇒ __2printf
  [Calls]
  - >> __2printf
  [Called By]
  - >> PWM_WriteGpioData
  - >> PWM_ConfigGpio
  - >> EPORT_WriteGpioData
  - >> EPORT_ConfigGpio
  - >> I2C_WriteGpioData
  - >> I2C_ConfigGpio
  - >> EPORT_PullupConfig
  - >> PWM_OutputInit

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

  - Max Depth = 8
  - Call Chain = delay
  [Called By]
  - >> Sys_Init

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

  - >> EFM_Init

  fputc (Thumb, 12 bytes, Stack size 0 bytes, debug.o(i.fputc))
  [Address Reference Count : 1]

  - printf8.o(i.__0printf$8)

  jd_decomp (Thumb, 128 bytes, Stack size 40 bytes, tjpgd.o(i.jd_decomp))
  [Stack]

  - Max Depth = 152
  - Call Chain = jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> restart
  - >> mcu_output
  - >> mcu_load
  [Called By]
  - >> jpg_decode_onFlash

  jd_prepare (Thumb, 730 bytes, Stack size 32 bytes, tjpgd.o(i.jd_prepare))
  [Stack]

  - Max Depth = 80
  - Call Chain = jd_prepare ⇒ create_huffman_tbl
  [Calls]
  - >> create_qt_tbl
  - >> create_huffman_tbl
  - >> alloc_pool
  [Called By]
  - >> jpg_decode_onFlash

  jpeg_in_func (Thumb, 38 bytes, Stack size 16 bytes, tjpgd.o(i.jpeg_in_func))
  [Stack]

  - Max Depth = 96
  - Call Chain = jpeg_in_func ⇒ LT_ReadFlash ⇒ NandFlash_Read ⇒ LT_W25N01GV_PageDataRead ⇒ LT_W25N01GV_Wait_Busy ⇒ LT_W25N01GV_ReadSR
  [Calls]
  - >> LT_ReadFlash
  [Address Reference Count : 1]
  - tjpgd.o(i.jpg_decode_onFlash)

  jpeg_out_func_point (Thumb, 66 bytes, Stack size 20 bytes, tjpgd.o(i.jpeg_out_func_point))
  [Stack]

  - Max Depth = 48
  - Call Chain = jpeg_out_func_point ⇒ write_sdram
  [Calls]
  - >> write_sdram
  [Address Reference Count : 1]
  - tjpgd.o(i.jpg_decode_onFlash)

  jpg_decode_onFlash (Thumb, 66 bytes, Stack size 24 bytes, tjpgd.o(i.jpg_decode_onFlash))
  [Stack]

  - Max Depth = 176
  - Call Chain = jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> jd_prepare
  - >> jd_decomp
  [Called By]
  - >> LT268_pic_to_buffer

  read_ep_buf (Thumb, 24 bytes, Stack size 4 bytes, usbdev_control.o(i.read_ep_buf))
  [Stack]

  - Max Depth = 4
  - Call Chain = read_ep_buf
  [Calls]
  - >> ClearRx
  [Called By]
  - >> USBDev_Ep0Handler
  - >> USBDev_Data_BulkOut
  - >> VendorWriteData

  rt_application_define (Thumb, 340 bytes, Stack size 32 bytes, main.o(i.rt_application_define))
  [Stack]

  - Max Depth = 408
  - Call Chain = rt_application_define ⇒ rt_thread_init ⇒ _thread_init ⇒ rt_timer_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_thread_startup
  - >> rt_thread_init
  - >> rt_sem_init
  - >> rt_mutex_init
  - >> rt_mq_init
  - >> rt_event_init
  [Called By]
  - >> main

  rt_assert_handler (Thumb, 50 bytes, Stack size 16 bytes, kservice.o(i.rt_assert_handler))
  [Stack]

  - Max Depth = 168
  - Call Chain = rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_kprintf
  [Called By]
  - >> rt_thread_startup
  - >> rt_thread_init
  - >> rt_sem_take
  - >> rt_sem_release
  - >> rt_sem_init
  - >> rt_mutex_take
  - >> rt_mutex_release
  - >> rt_mutex_init
  - >> rt_mq_recv
  - >> rt_mq_init
  - >> rt_event_send
  - >> rt_event_recv
  - >> rt_event_init
  - >> rt_object_is_systemobject
  - >> rt_object_init
  - >> rt_object_get_type
  - >> rt_object_detach
  - >> rt_device_write
  - >> plug_holes
  - >> rt_smem_free
  - >> _heap_unlock
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_thread_suspend
  - >> rt_thread_resume
  - >> rt_thread_control
  - >> rt_mq_send_wait
  - >> _ipc_list_suspend
  - >> rt_object_delete
  - >> rt_timer_stop
  - >> rt_timer_init
  - >> rt_timer_detach
  - >> rt_thread_sleep
  - >> rt_thread_detach
  - >> rt_thread_delete
  - >> _thread_timeout
  - >> _thread_init
  - >> rt_schedule_remove_thread
  - >> rt_schedule_insert_thread
  - >> _rt_scheduler_stack_check

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

  - >> rt_sem_take
  - >> rt_mutex_take
  - >> rt_mq_recv
  - >> rt_event_recv
  - >> rt_mq_send_wait

  rt_device_write (Thumb, 100 bytes, Stack size 24 bytes, device.o(i.rt_device_write))
  [Stack]

  - Max Depth = 48 + In Cycle
  - Call Chain = rt_device_write ⇒ rt_object_get_type (Cycle)
  [Calls]
  - >> rt_set_errno
  - >> rt_object_get_type
  - >> rt_assert_handler
  [Called By]
  - >> rt_kprintf

  rt_enter_critical (Thumb, 22 bytes, Stack size 8 bytes, scheduler.o(i.rt_enter_critical))
  [Stack]

  - Max Depth = 8
  - Call Chain = rt_enter_critical
  [Calls]
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> rt_object_init

  rt_event_init (Thumb, 68 bytes, Stack size 16 bytes, ipc.o(i.rt_event_init))
  [Stack]

  - Max Depth = 272
  - Call Chain = rt_event_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_init
  - >> rt_assert_handler
  [Called By]
  - >> rt_application_define

  rt_event_recv (Thumb, 410 bytes, Stack size 56 bytes, ipc.o(i.rt_event_recv))
  [Stack]

  - Max Depth = 304
  - Call Chain = rt_event_recv ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_kprintf
  - >> rt_assert_handler
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_interrupt_get_nest
  - >> rt_critical_level
  - >> _ipc_list_suspend
  [Called By]
  - >> thread_5_entry

  rt_event_send (Thumb, 204 bytes, Stack size 32 bytes, ipc.o(i.rt_event_send))
  [Stack]

  - Max Depth = 248
  - Call Chain = rt_event_send ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_thread_resume
  - >> rt_list_isempty
  [Called By]
  - >> thread_0_entry

  rt_exit_critical (Thumb, 52 bytes, Stack size 8 bytes, scheduler.o(i.rt_exit_critical))
  [Stack]

  - Max Depth = 224
  - Call Chain = rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> rt_object_init

  rt_free (Thumb, 38 bytes, Stack size 16 bytes, kservice.o(i.rt_free))
  [Stack]

  - Max Depth = 304
  - Call Chain = rt_free ⇒ _heap_lock ⇒ rt_mutex_take ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_smem_free
  - >> _heap_unlock
  - >> _heap_lock
  [Called By]
  - >> rt_object_delete
  - >> rt_defunct_execute

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

  - >> rt_kprintf

  rt_hw_hard_fault_exception (Thumb, 198 bytes, Stack size 16 bytes, cpuport.o(i.rt_hw_hard_fault_exception))
  [Stack]

  - Max Depth = 184
  - Call Chain = rt_hw_hard_fault_exception ⇒ hard_fault_track ⇒ usage_fault_track ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_kprintf
  - >> hard_fault_track
  - >> rt_thread_self
  [Called By]
  - >> HardFault_Handler

  rt_hw_stack_init (Thumb, 58 bytes, Stack size 16 bytes, cpuport.o(i.rt_hw_stack_init))
  [Stack]

  - Max Depth = 16
  - Call Chain = rt_hw_stack_init
  [Called By]
  - >> _thread_init

  rt_interrupt_enter (Thumb, 32 bytes, Stack size 8 bytes, irq.o(i.rt_interrupt_enter))
  [Stack]

  - Max Depth = 8
  - Call Chain = rt_interrupt_enter
  [Calls]
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> SysTick_Handler

  rt_interrupt_get_nest (Thumb, 18 bytes, Stack size 8 bytes, irq.o(i.rt_interrupt_get_nest))
  [Stack]

  - Max Depth = 8
  - Call Chain = rt_interrupt_get_nest
  [Calls]
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> rt_sem_take
  - >> rt_mutex_take
  - >> rt_mutex_release
  - >> rt_mq_recv
  - >> rt_event_recv
  - >> rt_set_errno
  - >> rt_mq_send_wait

  rt_interrupt_leave (Thumb, 32 bytes, Stack size 16 bytes, irq.o(i.rt_interrupt_leave))
  [Stack]

  - Max Depth = 16
  - Call Chain = rt_interrupt_leave
  [Calls]
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> SysTick_Handler

  rt_kprintf (Thumb, 58 bytes, Stack size 32 bytes, kservice.o(i.rt_kprintf))
  [Stack]

  - Max Depth = 152
  - Call Chain = rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_device_write
  - >> rt_vsnprintf
  - >> rt_hw_console_output
  [Called By]
  - >> rt_sem_take
  - >> rt_mutex_take
  - >> rt_mutex_release
  - >> rt_mq_recv
  - >> rt_event_recv
  - >> rt_hw_hard_fault_exception
  - >> usage_fault_track
  - >> mem_manage_fault_track
  - >> hard_fault_track
  - >> bus_fault_track
  - >> rt_show_version
  - >> rt_assert_handler
  - >> rt_mq_send_wait
  - >> _rt_scheduler_stack_check

  rt_memcpy (Thumb, 78 bytes, Stack size 12 bytes, kservice.o(i.rt_memcpy))
  [Stack]

  - Max Depth = 12
  - Call Chain = rt_memcpy
  [Called By]
  - >> rt_mq_recv
  - >> rt_mq_send_wait

  rt_memset (Thumb, 70 bytes, Stack size 8 bytes, kservice.o(i.rt_memset))
  [Stack]

  - Max Depth = 8
  - Call Chain = rt_memset
  [Called By]
  - >> _thread_init

  rt_mq_init (Thumb, 142 bytes, Stack size 32 bytes, ipc.o(i.rt_mq_init))
  [Stack]

  - Max Depth = 288
  - Call Chain = rt_mq_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_init
  - >> rt_assert_handler
  [Called By]
  - >> rt_application_define

  rt_mq_recv (Thumb, 490 bytes, Stack size 56 bytes, ipc.o(i.rt_mq_recv))
  [Stack]

  - Max Depth = 304
  - Call Chain = rt_mq_recv ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_kprintf
  - >> rt_assert_handler
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_tick_get
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_memcpy
  - >> rt_interrupt_get_nest
  - >> rt_critical_level
  - >> rt_list_isempty
  - >> _ipc_list_suspend
  - >> _ipc_list_resume
  [Called By]
  - >> thread_2_entry

  rt_mq_send (Thumb, 6 bytes, Stack size 0 bytes, ipc.o(i.rt_mq_send))
  [Stack]

  - Max Depth = 304
  - Call Chain = rt_mq_send ⇒ rt_mq_send_wait ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_mq_send_wait
  [Called By]
  - >> thread_1_entry

  rt_mq_send_wait (Thumb, 494 bytes, Stack size 56 bytes, ipc.o(i.rt_mq_send_wait))
  [Stack]

  - Max Depth = 304
  - Call Chain = rt_mq_send_wait ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_kprintf
  - >> rt_assert_handler
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_tick_get
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_memcpy
  - >> rt_interrupt_get_nest
  - >> rt_critical_level
  - >> rt_list_isempty
  - >> _ipc_list_suspend
  - >> _ipc_list_resume
  [Called By]
  - >> rt_mq_send

  rt_mutex_init (Thumb, 60 bytes, Stack size 16 bytes, ipc.o(i.rt_mutex_init))
  [Stack]

  - Max Depth = 272
  - Call Chain = rt_mutex_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_init
  - >> rt_assert_handler
  [Called By]
  - >> rt_application_define

  rt_mutex_release (Thumb, 306 bytes, Stack size 24 bytes, ipc.o(i.rt_mutex_release))
  [Stack]

  - Max Depth = 272
  - Call Chain = rt_mutex_release ⇒ rt_thread_control ⇒ rt_thread_startup ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_kprintf
  - >> rt_assert_handler
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_thread_control
  - >> rt_interrupt_get_nest
  - >> rt_list_isempty
  - >> _ipc_list_resume
  [Called By]
  - >> thread_6_and_7_entry
  - >> _heap_unlock

  rt_mutex_take (Thumb, 376 bytes, Stack size 32 bytes, ipc.o(i.rt_mutex_take))
  [Stack]

  - Max Depth = 280
  - Call Chain = rt_mutex_take ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_kprintf
  - >> rt_assert_handler
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_thread_control
  - >> rt_interrupt_get_nest
  - >> rt_critical_level
  - >> _ipc_list_suspend
  [Called By]
  - >> thread_6_and_7_entry
  - >> _heap_lock

  rt_object_delete (Thumb, 82 bytes, Stack size 16 bytes, object.o(i.rt_object_delete))
  [Stack]

  - Max Depth = 320
  - Call Chain = rt_object_delete ⇒ rt_free ⇒ _heap_lock ⇒ rt_mutex_take ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_free
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_list_remove
  [Called By]
  - >> rt_defunct_execute

  rt_object_detach (Thumb, 58 bytes, Stack size 16 bytes, object.o(i.rt_object_detach))
  [Stack]

  - Max Depth = 184
  - Call Chain = rt_object_detach ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_list_remove
  [Called By]
  - >> rt_defunct_execute
  - >> rt_timer_detach

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

  - >> rt_object_init

  rt_object_get_type (Thumb, 28 bytes, Stack size 8 bytes, object.o(i.rt_object_get_type))
  [Stack]

  - Max Depth = 176
  - Call Chain = rt_object_get_type ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_assert_handler
  [Called By]
  - >> rt_thread_startup
  - >> rt_sem_take
  - >> rt_sem_release
  - >> rt_mutex_take
  - >> rt_mutex_release
  - >> rt_mq_recv
  - >> rt_event_send
  - >> rt_event_recv
  - >> rt_device_write
  - >> rt_smem_free
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_thread_suspend
  - >> rt_thread_resume
  - >> rt_thread_control
  - >> rt_mq_send_wait
  - >> rt_timer_stop
  - >> rt_timer_detach
  - >> rt_thread_sleep
  - >> rt_thread_detach
  - >> rt_thread_delete
  - >> _thread_timeout

  rt_object_init (Thumb, 130 bytes, Stack size 32 bytes, object.o(i.rt_object_init))
  [Stack]

  - Max Depth = 256
  - Call Chain = rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_strncpy
  - >> rt_exit_critical
  - >> rt_enter_critical
  - >> rt_object_get_information
  - >> rt_list_insert_after
  [Called By]
  - >> rt_thread_init
  - >> rt_sem_init
  - >> rt_mutex_init
  - >> rt_mq_init
  - >> rt_event_init
  - >> rt_timer_init

  rt_object_is_systemobject (Thumb, 34 bytes, Stack size 8 bytes, object.o(i.rt_object_is_systemobject))
  [Stack]

  - Max Depth = 176
  - Call Chain = rt_object_is_systemobject ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_assert_handler
  [Called By]
  - >> rt_smem_free
  - >> rt_thread_control
  - >> rt_defunct_execute
  - >> rt_timer_detach
  - >> rt_thread_detach
  - >> rt_thread_delete

  rt_schedule (Thumb, 216 bytes, Stack size 32 bytes, scheduler.o(i.rt_schedule))
  [Stack]

  - Max Depth = 216
  - Call Chain = rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_hw_context_switch_interrupt
  - >> rt_hw_context_switch
  - >> rt_schedule_remove_thread
  - >> rt_schedule_insert_thread
  - >> _scheduler_get_highest_priority_thread
  - >> _rt_scheduler_stack_check
  [Called By]
  - >> rt_thread_startup
  - >> rt_sem_take
  - >> rt_sem_release
  - >> rt_mutex_take
  - >> rt_mutex_release
  - >> rt_mq_recv
  - >> rt_event_send
  - >> rt_event_recv
  - >> rt_tick_increase
  - >> rt_timer_start
  - >> rt_thread_control
  - >> rt_mq_send_wait
  - >> rt_thread_sleep
  - >> _thread_timeout
  - >> _thread_exit
  - >> rt_exit_critical

  rt_schedule_insert_thread (Thumb, 104 bytes, Stack size 16 bytes, scheduler.o(i.rt_schedule_insert_thread))
  [Stack]

  - Max Depth = 184
  - Call Chain = rt_schedule_insert_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> rt_schedule
  - >> rt_thread_resume
  - >> rt_thread_control
  - >> _thread_timeout

  rt_schedule_remove_thread (Thumb, 90 bytes, Stack size 16 bytes, scheduler.o(i.rt_schedule_remove_thread))
  [Stack]

  - Max Depth = 184
  - Call Chain = rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> rt_system_scheduler_start
  - >> rt_schedule
  - >> rt_thread_suspend
  - >> rt_thread_control
  - >> rt_thread_detach
  - >> rt_thread_delete
  - >> _thread_exit

  rt_sem_init (Thumb, 92 bytes, Stack size 24 bytes, ipc.o(i.rt_sem_init))
  [Stack]

  - Max Depth = 280
  - Call Chain = rt_sem_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_init
  - >> rt_assert_handler
  [Called By]
  - >> rt_application_define

  rt_sem_release (Thumb, 132 bytes, Stack size 24 bytes, ipc.o(i.rt_sem_release))
  [Stack]

  - Max Depth = 240
  - Call Chain = rt_sem_release ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_list_isempty
  - >> _ipc_list_resume
  [Called By]
  - >> thread_3_and_4_entry

  rt_sem_take (Thumb, 290 bytes, Stack size 32 bytes, ipc.o(i.rt_sem_take))
  [Stack]

  - Max Depth = 280
  - Call Chain = rt_sem_take ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_kprintf
  - >> rt_assert_handler
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_interrupt_get_nest
  - >> rt_critical_level
  - >> _ipc_list_suspend
  [Called By]
  - >> thread_3_and_4_entry

  rt_set_errno (Thumb, 30 bytes, Stack size 16 bytes, kservice.o(i.rt_set_errno))
  [Stack]

  - Max Depth = 24
  - Call Chain = rt_set_errno ⇒ rt_interrupt_get_nest
  [Calls]
  - >> rt_thread_self
  - >> rt_interrupt_get_nest
  [Called By]
  - >> rt_device_write

  rt_show_version (Thumb, 42 bytes, Stack size 16 bytes, kservice.o(i.rt_show_version))
  [Stack]

  - Max Depth = 168
  - Call Chain = rt_show_version ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_kprintf
  [Called By]
  - >> rtthread_Init

  rt_smem_free (Thumb, 200 bytes, Stack size 16 bytes, mem.o(i.rt_smem_free))
  [Stack]

  - Max Depth = 200
  - Call Chain = rt_smem_free ⇒ plug_holes ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_is_systemobject
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> plug_holes
  [Called By]
  - >> rt_free

  rt_sprintf (Thumb, 18 bytes, Stack size 24 bytes, kservice.o(i.rt_sprintf))
  [Stack]

  - Max Depth = 160
  - Call Chain = rt_sprintf ⇒ rt_vsprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_vsprintf
  [Called By]
  - >> rt_thread_idle_init

  rt_strncpy (Thumb, 38 bytes, Stack size 8 bytes, kservice.o(i.rt_strncpy))
  [Stack]

  - Max Depth = 8
  - Call Chain = rt_strncpy
  [Called By]
  - >> rt_object_init

  rt_system_scheduler_init (Thumb, 30 bytes, Stack size 8 bytes, scheduler.o(i.rt_system_scheduler_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = rt_system_scheduler_init
  [Called By]
  - >> rtthread_Init

  rt_system_scheduler_start (Thumb, 36 bytes, Stack size 16 bytes, scheduler.o(i.rt_system_scheduler_start))
  [Stack]

  - Max Depth = 200
  - Call Chain = rt_system_scheduler_start ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_hw_context_switch_to
  - >> rt_schedule_remove_thread
  - >> _scheduler_get_highest_priority_thread
  [Called By]
  - >> rtthread_startup

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

  - >> rtthread_Init

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

  - >> rtthread_startup

  rt_thread_control (Thumb, 170 bytes, Stack size 24 bytes, thread.o(i.rt_thread_control))
  [Stack]

  - Max Depth = 248
  - Call Chain = rt_thread_control ⇒ rt_thread_startup ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_thread_startup
  - >> rt_object_is_systemobject
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_thread_detach
  - >> rt_thread_delete
  - >> rt_schedule_remove_thread
  - >> rt_schedule_insert_thread
  [Called By]
  - >> rt_mutex_take
  - >> rt_mutex_release

  rt_thread_defunct_dequeue (Thumb, 48 bytes, Stack size 16 bytes, idle.o(i.rt_thread_defunct_dequeue))
  [Stack]

  - Max Depth = 16
  - Call Chain = rt_thread_defunct_dequeue
  [Calls]
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> rt_defunct_execute

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

  - >> rt_thread_detach
  - >> rt_thread_delete
  - >> _thread_exit

  rt_thread_delay (Thumb, 4 bytes, Stack size 0 bytes, thread.o(i.rt_thread_delay))
  [Stack]

  - Max Depth = 272
  - Call Chain = rt_thread_delay ⇒ rt_thread_sleep ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_thread_sleep
  [Called By]
  - >> thread_6_and_7_entry
  - >> thread_5_entry
  - >> thread_3_and_4_entry
  - >> thread_1_entry
  - >> thread_0_entry

  rt_thread_delete (Thumb, 124 bytes, Stack size 16 bytes, thread.o(i.rt_thread_delete))
  [Stack]

  - Max Depth = 216
  - Call Chain = rt_thread_delete ⇒ rt_timer_detach ⇒ rt_object_detach ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_is_systemobject
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_thread_defunct_enqueue
  - >> rt_timer_detach
  - >> rt_schedule_remove_thread
  [Called By]
  - >> rt_thread_control

  rt_thread_detach (Thumb, 124 bytes, Stack size 16 bytes, thread.o(i.rt_thread_detach))
  [Stack]

  - Max Depth = 216
  - Call Chain = rt_thread_detach ⇒ rt_timer_detach ⇒ rt_object_detach ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_is_systemobject
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_thread_defunct_enqueue
  - >> rt_timer_detach
  - >> rt_schedule_remove_thread
  [Called By]
  - >> rt_thread_control

  rt_thread_idle_init (Thumb, 82 bytes, Stack size 56 bytes, idle.o(i.rt_thread_idle_init))
  [Stack]

  - Max Depth = 432
  - Call Chain = rt_thread_idle_init ⇒ rt_thread_init ⇒ _thread_init ⇒ rt_timer_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_thread_startup
  - >> rt_thread_init
  - >> rt_sprintf
  [Called By]
  - >> rtthread_startup

  rt_thread_init (Thumb, 86 bytes, Stack size 56 bytes, thread.o(i.rt_thread_init))
  [Stack]

  - Max Depth = 376
  - Call Chain = rt_thread_init ⇒ _thread_init ⇒ rt_timer_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_init
  - >> rt_assert_handler
  - >> _thread_init
  [Called By]
  - >> rt_application_define
  - >> rt_thread_idle_init

  rt_thread_resume (Thumb, 108 bytes, Stack size 16 bytes, thread.o(i.rt_thread_resume))
  [Stack]

  - Max Depth = 208
  - Call Chain = rt_thread_resume ⇒ rt_timer_stop ⇒ rt_object_get_type ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_timer_stop
  - >> rt_list_remove
  - >> rt_schedule_insert_thread
  [Called By]
  - >> rt_thread_startup
  - >> rt_event_send
  - >> _ipc_list_resume

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

  - >> rt_thread_startup
  - >> rt_sem_take
  - >> rt_mutex_take
  - >> rt_mutex_release
  - >> rt_mq_recv
  - >> rt_event_recv
  - >> rt_set_errno
  - >> rt_hw_hard_fault_exception
  - >> rt_tick_increase
  - >> _heap_unlock
  - >> _heap_lock
  - >> rt_thread_suspend
  - >> rt_mq_send_wait
  - >> rt_thread_sleep
  - >> _thread_exit

  rt_thread_sleep (Thumb, 102 bytes, Stack size 24 bytes, thread.o(i.rt_thread_sleep))
  [Stack]

  - Max Depth = 272
  - Call Chain = rt_thread_sleep ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_timer_start
  - >> rt_timer_control
  - >> rt_thread_suspend
  [Called By]
  - >> rt_thread_delay

  rt_thread_startup (Thumb, 98 bytes, Stack size 8 bytes, thread.o(i.rt_thread_startup))
  [Stack]

  - Max Depth = 224
  - Call Chain = rt_thread_startup ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_thread_resume
  [Called By]
  - >> rt_application_define
  - >> rt_thread_idle_init
  - >> rt_thread_control

  rt_thread_suspend (Thumb, 138 bytes, Stack size 16 bytes, thread.o(i.rt_thread_suspend))
  [Stack]

  - Max Depth = 208
  - Call Chain = rt_thread_suspend ⇒ rt_timer_stop ⇒ rt_object_get_type ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_thread_self
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_timer_stop
  - >> rt_schedule_remove_thread
  [Called By]
  - >> _ipc_list_suspend
  - >> rt_thread_sleep

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

  - >> rt_mq_recv
  - >> rt_timer_check
  - >> rt_timer_start
  - >> rt_mq_send_wait

  rt_tick_increase (Thumb, 76 bytes, Stack size 16 bytes, clock.o(i.rt_tick_increase))
  [Stack]

  - Max Depth = 296
  - Call Chain = rt_tick_increase ⇒ rt_timer_check ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_timer_check
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> SysTick_Handler

  rt_timer_check (Thumb, 162 bytes, Stack size 32 bytes, timer.o(i.rt_timer_check))
  [Stack]

  - Max Depth = 280
  - Call Chain = rt_timer_check ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_tick_get
  - >> rt_timer_start
  - >> rt_list_remove
  - >> rt_list_isempty
  - >> rt_list_insert_after
  - >> _timer_remove
  [Called By]
  - >> rt_tick_increase

  rt_timer_control (Thumb, 124 bytes, Stack size 16 bytes, timer.o(i.rt_timer_control))
  [Stack]

  - Max Depth = 192
  - Call Chain = rt_timer_control ⇒ rt_object_get_type ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> rt_sem_take
  - >> rt_mutex_take
  - >> rt_mq_recv
  - >> rt_event_recv
  - >> rt_mq_send_wait
  - >> rt_thread_sleep

  rt_timer_detach (Thumb, 98 bytes, Stack size 16 bytes, timer.o(i.rt_timer_detach))
  [Stack]

  - Max Depth = 200
  - Call Chain = rt_timer_detach ⇒ rt_object_detach ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_is_systemobject
  - >> rt_object_get_type
  - >> rt_object_detach
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> _timer_remove
  [Called By]
  - >> rt_thread_detach
  - >> rt_thread_delete
  - >> _thread_exit

  rt_timer_init (Thumb, 94 bytes, Stack size 32 bytes, timer.o(i.rt_timer_init))
  [Stack]

  - Max Depth = 288
  - Call Chain = rt_timer_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_init
  - >> rt_assert_handler
  - >> _timer_init
  [Called By]
  - >> _thread_init

  rt_timer_start (Thumb, 250 bytes, Stack size 32 bytes, timer.o(i.rt_timer_start))
  [Stack]

  - Max Depth = 248
  - Call Chain = rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_tick_get
  - >> rt_list_insert_after
  - >> _timer_remove
  [Called By]
  - >> rt_sem_take
  - >> rt_mutex_take
  - >> rt_mq_recv
  - >> rt_event_recv
  - >> rt_timer_check
  - >> rt_mq_send_wait
  - >> rt_thread_sleep

  rt_timer_stop (Thumb, 94 bytes, Stack size 16 bytes, timer.o(i.rt_timer_stop))
  [Stack]

  - Max Depth = 192
  - Call Chain = rt_timer_stop ⇒ rt_object_get_type ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> _timer_remove
  [Called By]
  - >> rt_thread_suspend
  - >> rt_thread_resume

  rt_vsnprintf (Thumb, 666 bytes, Stack size 64 bytes, kservice.o(i.rt_vsnprintf))
  [Stack]

  - Max Depth = 120
  - Call Chain = rt_vsnprintf ⇒ print_number
  [Calls]
  - >> skip_atoi
  - >> print_number
  [Called By]
  - >> rt_kprintf
  - >> rt_vsprintf

  rt_vsprintf (Thumb, 16 bytes, Stack size 16 bytes, kservice.o(i.rt_vsprintf))
  [Stack]

  - Max Depth = 136
  - Call Chain = rt_vsprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_vsnprintf
  [Called By]
  - >> rt_sprintf

  rtthread_Init (Thumb, 22 bytes, Stack size 8 bytes, components.o(i.rtthread_Init))
  [Stack]

  - Max Depth = 176
  - Call Chain = rtthread_Init ⇒ rt_show_version ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_system_timer_init
  - >> rt_system_scheduler_init
  - >> rt_show_version
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> main

  rtthread_startup (Thumb, 22 bytes, Stack size 8 bytes, components.o(i.rtthread_startup))
  [Stack]

  - Max Depth = 440 + Unknown Stack Size
  - Call Chain = rtthread_startup ⇒ rt_thread_idle_init ⇒ rt_thread_init ⇒ _thread_init ⇒ rt_timer_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_thread_idle_init
  - >> rt_system_timer_thread_init
  - >> rt_system_scheduler_start
  - >> Init_SysTick
  [Called By]
  - >> main

  thread_0_entry (Thumb, 132 bytes, Stack size 16 bytes, main.o(i.thread_0_entry))
  [Stack]

  - Max Depth = 536
  - Call Chain = thread_0_entry ⇒ Show16BitDecimal ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> rt_thread_delay
  - >> rt_event_send
  - >> Show16BitDecimal
  - >> Put16BitBMP
  - >> LT268_TFT_ShowAscll
  [Address Reference Count : 1]
  - main.o(i.rt_application_define)

  thread_1_entry (Thumb, 144 bytes, Stack size 16 bytes, main.o(i.thread_1_entry))
  [Stack]

  - Max Depth = 536
  - Call Chain = thread_1_entry ⇒ Show16BitDecimal ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> rt_thread_delay
  - >> rt_mq_send
  - >> Show16BitDecimal
  - >> Put16BitBMP
  - >> LT268_TFT_ShowAscll
  [Address Reference Count : 1]
  - main.o(i.rt_application_define)

  thread_2_entry (Thumb, 142 bytes, Stack size 16 bytes, main.o(i.thread_2_entry))
  [Stack]

  - Max Depth = 536
  - Call Chain = thread_2_entry ⇒ Show16BitDecimal ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> rt_mq_recv
  - >> Show16BitDecimal
  - >> Put16BitBMP
  - >> LT268_TFT_ShowAscll
  [Address Reference Count : 1]
  - main.o(i.rt_application_define)

  thread_3_and_4_entry (Thumb, 190 bytes, Stack size 16 bytes, main.o(i.thread_3_and_4_entry))
  [Stack]

  - Max Depth = 536
  - Call Chain = thread_3_and_4_entry ⇒ Show16BitDecimal ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> rt_thread_delay
  - >> rt_sem_take
  - >> rt_sem_release
  - >> Show16BitDecimal
  - >> Put16BitBMP
  - >> LT268_TFT_ShowAscll
  [Address Reference Count : 1]
  - main.o(i.rt_application_define)

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

  - Max Depth = 544
  - Call Chain = thread_5_entry ⇒ Show16BitDecimal ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> rt_thread_delay
  - >> rt_event_recv
  - >> Show16BitDecimal
  - >> Put16BitBMP
  - >> LT268_TFT_ShowAscll
  [Address Reference Count : 1]
  - main.o(i.rt_application_define)

  thread_6_and_7_entry (Thumb, 206 bytes, Stack size 16 bytes, main.o(i.thread_6_and_7_entry))
  [Stack]

  - Max Depth = 536
  - Call Chain = thread_6_and_7_entry ⇒ Show16BitDecimal ⇒ LT268_TFT_ShowAscll ⇒ LT268_TFT_Show_Internal_Char ⇒ LT268_pic_to_buffer ⇒ jpg_decode_onFlash ⇒ jd_decomp ⇒ mcu_load ⇒ huffext
  [Calls]
  - >> rt_thread_delay
  - >> rt_mutex_take
  - >> rt_mutex_release
  - >> Show16BitDecimal
  - >> Put16BitBMP
  - >> LT268_TFT_ShowAscll
  [Address Reference Count : 1]
  - main.o(i.rt_application_define)

  write_ep0_buf (Thumb, 28 bytes, Stack size 12 bytes, usbdev_control.o(i.write_ep0_buf))
  [Stack]

  - Max Depth = 20
  - Call Chain = write_ep0_buf ⇒ write_ep_buf
  [Calls]
  - >> write_ep_buf
  [Called By]
  - >> USBDev_Ep0Handler
  - >> USBDev_GetStatus
  - >> USBDev_GetDescriptor

  write_ep_buf (Thumb, 20 bytes, Stack size 8 bytes, usbdev_control.o(i.write_ep_buf))
  [Stack]

  - Max Depth = 8
  - Call Chain = write_ep_buf
  [Called By]
  - >> write_ep0_buf
  - >> USBDev_TestMode
  - >> USBDev_Packet_BulkIn

  write_sdram (Thumb, 76 bytes, Stack size 28 bytes, tjpgd.o(i.write_sdram))
  [Stack]

  - Max Depth = 28
  - Call Chain = write_sdram
  [Called By]
  - >> jpeg_out_func_point

  ### Local Symbols

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

  - >> ADC_Cmd

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

  - >> ADC_Cmd

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

  - >> CPM_SysClkSelect

  EPORT_IRQHandler (Thumb, 92 bytes, Stack size 16 bytes, eport_drv.o(i.EPORT_IRQHandler))
  [Stack]

  - Max Depth = 40
  - Call Chain = EPORT_IRQHandler ⇒ __2printf
  [Calls]
  - >> __2printf
  [Called By]
  - >> EPORT1_7_IRQHandler
  - >> EPORT1_6_IRQHandler
  - >> EPORT1_5_IRQHandler
  - >> EPORT1_4_IRQHandler
  - >> EPORT1_3_IRQHandler
  - >> EPORT1_2_IRQHandler
  - >> EPORT1_1_IRQHandler
  - >> EPORT1_0_IRQHandler
  - >> EPORT0_7_IRQHandler
  - >> EPORT0_6_IRQHandler
  - >> EPORT0_5_IRQHandler
  - >> EPORT0_4_IRQHandler
  - >> EPORT0_3_IRQHandler
  - >> EPORT0_2_IRQHandler
  - >> EPORT0_1_IRQHandler
  - >> EPORT0_0_IRQHandler

  I2C_ISR (Thumb, 164 bytes, Stack size 12 bytes, i2c_drv.o(i.I2C_ISR))
  [Stack]

  - Max Depth = 12
  - Call Chain = I2C_ISR
  [Called By]
  - >> I2C3_IRQHandler
  - >> I2C2_IRQHandler
  - >> I2C1_IRQHandler

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

  - >> SCI2_IRQHandler

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

  - >> UsbRead10

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

  - >> UsbRead10

  UsbRead10 (Thumb, 156 bytes, Stack size 24 bytes, usb_ms_control.o(i.UsbRead10))
  [Stack]

  - Max Depth = 56
  - Call Chain = UsbRead10 ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> SetTx
  - >> USBDev_Packet_BulkIn
  - >> UsbSetTXsize
  - >> DMAWaitDone
  - >> DMATransfer
  [Called By]
  - >> USBDev_Data_BulkIn

  VendorWriteData (Thumb, 166 bytes, Stack size 24 bytes, usb_ms_control.o(i.VendorWriteData))
  [Stack]

  - Max Depth = 56
  - Call Chain = VendorWriteData ⇒ USBDev_Packet_BulkIn ⇒ write_ep_buf
  [Calls]
  - >> read_ep_buf
  - >> USBDev_Packet_BulkIn
  - >> __aeabi_memcpy
  [Called By]
  - >> USBDev_Data_BulkOut

  enum_realDisk (Thumb, 142 bytes, Stack size 24 bytes, usb_ms_control.o(i.enum_realDisk))
  [Stack]

  - Max Depth = 24
  - Call Chain = enum_realDisk
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> USBDev_Data_BulkIn

  USBDev_GetDescriptor (Thumb, 378 bytes, Stack size 100 bytes, usbdev_control.o(i.USBDev_GetDescriptor))
  [Stack]

  - Max Depth = 120
  - Call Chain = USBDev_GetDescriptor ⇒ write_ep0_buf ⇒ write_ep_buf
  [Calls]
  - >> write_ep0_buf
  - >> USBDev_EP0_SendStall
  [Called By]
  - >> USBDev_Ep0Handler

  USBDev_GetStatus (Thumb, 44 bytes, Stack size 8 bytes, usbdev_control.o(i.USBDev_GetStatus))
  [Stack]

  - Max Depth = 28
  - Call Chain = USBDev_GetStatus ⇒ write_ep0_buf ⇒ write_ep_buf
  [Calls]
  - >> write_ep0_buf
  - >> USBDev_EP0_SendStall
  [Called By]
  - >> USBDev_Ep0Handler

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

  - >> jd_prepare
  - >> create_qt_tbl
  - >> create_huffman_tbl

  bitext (Thumb, 122 bytes, Stack size 32 bytes, tjpgd.o(i.bitext))
  [Stack]

  - Max Depth = 32
  - Call Chain = bitext
  [Called By]
  - >> mcu_load

  block_idct (Thumb, 474 bytes, Stack size 36 bytes, tjpgd.o(i.block_idct))
  [Stack]

  - Max Depth = 36
  - Call Chain = block_idct
  [Called By]
  - >> mcu_load

  create_huffman_tbl (Thumb, 230 bytes, Stack size 48 bytes, tjpgd.o(i.create_huffman_tbl))
  [Stack]

  - Max Depth = 48
  - Call Chain = create_huffman_tbl
  [Calls]
  - >> alloc_pool
  [Called By]
  - >> jd_prepare

  create_qt_tbl (Thumb, 102 bytes, Stack size 24 bytes, tjpgd.o(i.create_qt_tbl))
  [Stack]

  - Max Depth = 24
  - Call Chain = create_qt_tbl
  [Calls]
  - >> alloc_pool
  [Called By]
  - >> jd_prepare

  huffext (Thumb, 170 bytes, Stack size 56 bytes, tjpgd.o(i.huffext))
  [Stack]

  - Max Depth = 56
  - Call Chain = huffext
  [Called By]
  - >> mcu_load

  mcu_load (Thumb, 384 bytes, Stack size 56 bytes, tjpgd.o(i.mcu_load))
  [Stack]

  - Max Depth = 112
  - Call Chain = mcu_load ⇒ huffext
  [Calls]
  - >> huffext
  - >> block_idct
  - >> bitext
  [Called By]
  - >> jd_decomp

  mcu_output (Thumb, 756 bytes, Stack size 80 bytes, tjpgd.o(i.mcu_output))
  [Stack]

  - Max Depth = 80
  - Call Chain = mcu_output
  [Called By]
  - >> jd_decomp

  restart (Thumb, 104 bytes, Stack size 32 bytes, tjpgd.o(i.restart))
  [Stack]

  - Max Depth = 32
  - Call Chain = restart
  [Called By]
  - >> jd_decomp

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

  - components.o(.rti_fn.1.end)

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

  - components.o(.rti_fn.0.end)

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

  - components.o(.rti_fn.6.end)

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

  - components.o(.rti_fn.0)

  bus_fault_track (Thumb, 110 bytes, Stack size 8 bytes, cpuport.o(i.bus_fault_track))
  [Stack]

  - Max Depth = 160
  - Call Chain = bus_fault_track ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_kprintf
  [Called By]
  - >> hard_fault_track

  hard_fault_track (Thumb, 76 bytes, Stack size 8 bytes, cpuport.o(i.hard_fault_track))
  [Stack]

  - Max Depth = 168
  - Call Chain = hard_fault_track ⇒ usage_fault_track ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_kprintf
  - >> usage_fault_track
  - >> mem_manage_fault_track
  - >> bus_fault_track
  [Called By]
  - >> rt_hw_hard_fault_exception

  mem_manage_fault_track (Thumb, 98 bytes, Stack size 8 bytes, cpuport.o(i.mem_manage_fault_track))
  [Stack]

  - Max Depth = 160
  - Call Chain = mem_manage_fault_track ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_kprintf
  [Called By]
  - >> hard_fault_track

  usage_fault_track (Thumb, 100 bytes, Stack size 8 bytes, cpuport.o(i.usage_fault_track))
  [Stack]

  - Max Depth = 160
  - Call Chain = usage_fault_track ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_kprintf
  [Called By]
  - >> hard_fault_track

  rt_defunct_execute (Thumb, 56 bytes, Stack size 8 bytes, idle.o(i.rt_defunct_execute))
  [Stack]

  - Max Depth = 328
  - Call Chain = rt_defunct_execute ⇒ rt_object_delete ⇒ rt_free ⇒ _heap_lock ⇒ rt_mutex_take ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_is_systemobject
  - >> rt_object_detach
  - >> rt_free
  - >> rt_object_delete
  - >> rt_thread_defunct_dequeue
  [Called By]
  - >> rt_thread_idle_entry

  rt_thread_idle_entry (Thumb, 26 bytes, Stack size 0 bytes, idle.o(i.rt_thread_idle_entry))
  [Stack]

  - Max Depth = 328
  - Call Chain = rt_thread_idle_entry ⇒ rt_defunct_execute ⇒ rt_object_delete ⇒ rt_free ⇒ _heap_lock ⇒ rt_mutex_take ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_defunct_execute
  [Address Reference Count : 1]
  - idle.o(i.rt_thread_idle_init)

  _ipc_list_resume (Thumb, 14 bytes, Stack size 8 bytes, ipc.o(i._ipc_list_resume))
  [Stack]

  - Max Depth = 216
  - Call Chain = _ipc_list_resume ⇒ rt_thread_resume ⇒ rt_timer_stop ⇒ rt_object_get_type ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_thread_resume
  [Called By]
  - >> rt_sem_release
  - >> rt_mutex_release
  - >> rt_mq_recv
  - >> rt_mq_send_wait

  _ipc_list_suspend (Thumb, 102 bytes, Stack size 24 bytes, ipc.o(i._ipc_list_suspend))
  [Stack]

  - Max Depth = 232
  - Call Chain = _ipc_list_suspend ⇒ rt_thread_suspend ⇒ rt_timer_stop ⇒ rt_object_get_type ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_assert_handler
  - >> rt_thread_suspend
  - >> rt_list_insert_before
  [Called By]
  - >> rt_sem_take
  - >> rt_mutex_take
  - >> rt_mq_recv
  - >> rt_event_recv
  - >> rt_mq_send_wait

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

  - >> _ipc_list_suspend

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

  - >> rt_sem_release
  - >> rt_mutex_release
  - >> rt_mq_recv
  - >> rt_event_send
  - >> rt_mq_send_wait

  _heap_lock (Thumb, 26 bytes, Stack size 8 bytes, kservice.o(i._heap_lock))
  [Stack]

  - Max Depth = 288
  - Call Chain = _heap_lock ⇒ rt_mutex_take ⇒ rt_timer_start ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_mutex_take
  - >> rt_thread_self
  [Called By]
  - >> rt_free

  _heap_unlock (Thumb, 38 bytes, Stack size 8 bytes, kservice.o(i._heap_unlock))
  [Stack]

  - Max Depth = 280
  - Call Chain = _heap_unlock ⇒ rt_mutex_release ⇒ rt_thread_control ⇒ rt_thread_startup ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_mutex_release
  - >> rt_assert_handler
  - >> rt_thread_self
  [Called By]
  - >> rt_free

  print_number (Thumb, 304 bytes, Stack size 56 bytes, kservice.o(i.print_number))
  [Stack]

  - Max Depth = 56
  - Call Chain = print_number
  [Called By]
  - >> rt_vsnprintf

  skip_atoi (Thumb, 40 bytes, Stack size 8 bytes, kservice.o(i.skip_atoi))
  [Stack]

  - Max Depth = 8
  - Call Chain = skip_atoi
  [Called By]
  - >> rt_vsnprintf

  plug_holes (Thumb, 128 bytes, Stack size 16 bytes, mem.o(i.plug_holes))
  [Stack]

  - Max Depth = 184
  - Call Chain = plug_holes ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_assert_handler
  [Called By]
  - >> rt_smem_free

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

  - >> rt_object_init

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

  - >> rt_object_detach
  - >> rt_object_delete

  _rt_scheduler_stack_check (Thumb, 76 bytes, Stack size 8 bytes, scheduler.o(i._rt_scheduler_stack_check))
  [Stack]

  - Max Depth = 176
  - Call Chain = _rt_scheduler_stack_check ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_kprintf
  - >> rt_assert_handler
  - >> rt_hw_interrupt_disable
  [Called By]
  - >> rt_schedule

  _scheduler_get_highest_priority_thread (Thumb, 28 bytes, Stack size 8 bytes, scheduler.o(i._scheduler_get_highest_priority_thread))
  [Stack]

  - Max Depth = 8
  - Call Chain = _scheduler_get_highest_priority_thread
  [Calls]
  - >> __rt_ffs
  [Called By]
  - >> rt_system_scheduler_start
  - >> rt_schedule

  _thread_exit (Thumb, 54 bytes, Stack size 16 bytes, thread.o(i._thread_exit))
  [Stack]

  - Max Depth = 232
  - Call Chain = _thread_exit ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_thread_self
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_thread_defunct_enqueue
  - >> rt_timer_detach
  - >> rt_schedule_remove_thread
  [Address Reference Count : 1]
  - thread.o(i._thread_init)

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

  - Max Depth = 320
  - Call Chain = _thread_init ⇒ rt_timer_init ⇒ rt_object_init ⇒ rt_exit_critical ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_memset
  - >> rt_hw_stack_init
  - >> rt_assert_handler
  - >> rt_timer_init
  [Called By]
  - >> rt_thread_init

  _thread_timeout (Thumb, 100 bytes, Stack size 16 bytes, thread.o(i._thread_timeout))
  [Stack]

  - Max Depth = 232
  - Call Chain = _thread_timeout ⇒ rt_schedule ⇒ rt_schedule_remove_thread ⇒ rt_assert_handler ⇒ rt_kprintf ⇒ rt_vsnprintf ⇒ print_number
  [Calls]
  - >> rt_object_get_type
  - >> rt_assert_handler
  - >> rt_schedule
  - >> rt_hw_interrupt_enable
  - >> rt_hw_interrupt_disable
  - >> rt_list_remove
  - >> rt_schedule_insert_thread
  [Address Reference Count : 1]
  - thread.o(i._thread_init)

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

  - >> rt_thread_resume
  - >> _thread_timeout

  _timer_init (Thumb, 38 bytes, Stack size 8 bytes, timer.o(i._timer_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = _timer_init
  [Called By]
  - >> rt_timer_init

  _timer_remove (Thumb, 24 bytes, Stack size 16 bytes, timer.o(i._timer_remove))
  [Stack]

  - Max Depth = 16
  - Call Chain = _timer_remove
  [Calls]
  - >> rt_list_remove
  [Called By]
  - >> rt_timer_check
  - >> rt_timer_start
  - >> rt_timer_stop
  - >> rt_timer_detach

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

  - >> rt_timer_check
  - >> rt_timer_start

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

  - >> rt_timer_check

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

  - >> rt_timer_check
  - >> _timer_remove

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

  - >> EFM_Init

  _printf_core (Thumb, 996 bytes, Stack size 104 bytes, printf8.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  - >> _printf_pre_padding
  - >> _printf_post_padding
  [Called By]
  - >> __0printf$8

  _printf_post_padding (Thumb, 36 bytes, Stack size 24 bytes, printf8.o(i._printf_post_padding), UNUSED)
  [Called By]

  - >> _printf_core

  _printf_pre_padding (Thumb, 46 bytes, Stack size 24 bytes, printf8.o(i._printf_pre_padding), UNUSED)
  [Called By]

  - >> _printf_core

  ### Undefined Global Symbols