Static Call Graph - [.\Objects\usd.axf]

# Static Call Graph for image .\Objects\usd.axf

#<CALLGRAPH># ARM Linker, 5060422: Last Updated: Sat Jun 20 20:57:20 2020

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

### Call chain for Maximum Stack Depth:

__rt_entry_main ⇒ main ⇒ fopen ⇒ freopen ⇒ _sys_open ⇒ __sys_open ⇒ fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat

### Functions with no stack information

- __user_initial_stackheap

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- MemManage_Handler ⇒ MemManage_Handler
- BusFault_Handler ⇒ BusFault_Handler
- UsageFault_Handler ⇒ UsageFault_Handler
- SVC_Handler ⇒ SVC_Handler
- DebugMon_Handler ⇒ DebugMon_Handler
- PendSV_Handler ⇒ PendSV_Handler
- CAN1_RX1_IRQHandler ⇒ CAN1_RX1_IRQHandler

  ### Function Pointers

  - ADC1_2_IRQHandler from main.o(i.ADC1_2_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
  - BusFault_Handler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - BusSpeed from spi_stm32f103.o(i.BusSpeed) referenced from spi_stm32f103.o(.constdata)
  - CAN1_RX1_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - CAN1_SCE_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - CheckMedia from spi_stm32f103.o(i.CheckMedia) referenced from spi_stm32f103.o(.constdata)
  - DMA1_Channel1_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - DMA1_Channel2_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - DMA1_Channel3_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - DMA1_Channel4_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - DMA1_Channel5_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - DMA1_Channel6_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - DMA1_Channel7_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - DebugMon_Handler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - EXTI0_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - EXTI15_10_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - EXTI1_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - EXTI2_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - EXTI3_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - EXTI4_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - EXTI9_5_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - FLASH_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - HardFault_Handler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - I2C1_ER_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - I2C1_EV_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - I2C2_ER_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - I2C2_EV_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - Init from spi_stm32f103.o(i.Init) referenced from spi_stm32f103.o(.constdata)
  - MemManage_Handler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - NMI_Handler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - PVD_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - PendSV_Handler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - RCC_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - RTCAlarm_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - RTC_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - RecBuf from spi_stm32f103.o(i.RecBuf) referenced from spi_stm32f103.o(.constdata)
  - Reset_Handler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - SPI1_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - SPI2_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - SVC_Handler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - Send from spi_stm32f103.o(i.Send) referenced from spi_stm32f103.o(.constdata)
  - SendBuf from spi_stm32f103.o(i.SendBuf) referenced from spi_stm32f103.o(.constdata)
  - SetSS from spi_stm32f103.o(i.SetSS) referenced from spi_stm32f103.o(.constdata)
  - SysTick_Handler from main.o(i.SysTick_Handler) referenced from startup_stm32f10x_md.o(RESET)
  - SystemInit from system_stm32f10x.o(i.SystemInit) referenced from startup_stm32f10x_md.o(.text)
  - TAMPER_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - TIM1_BRK_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - TIM1_CC_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - TIM1_TRG_COM_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - TIM1_UP_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - TIM2_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - TIM3_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - TIM4_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - USART1_IRQHandler from main.o(i.USART1_IRQHandler) referenced from startup_stm32f10x_md.o(RESET)
  - USART2_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - USART3_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - USBWakeUp_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - USB_HP_CAN1_TX_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - USB_LP_CAN1_RX0_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - UnInit from spi_stm32f103.o(i.UnInit) referenced from spi_stm32f103.o(.constdata)
  - UsageFault_Handler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - WWDG_IRQHandler from startup_stm32f10x_md.o(.text) referenced from startup_stm32f10x_md.o(RESET)
  - __main from __main.o(!!!main) referenced from startup_stm32f10x_md.o(.text)
  - _get_lc_ctype from lc_ctype_c.o(locale$$code) referenced from rt_ctype_table.o(.text)
  - _printf_input_char from _printf_char_common.o(.text) referenced from _printf_char_common.o(.text)
  - _sputc from _sputc.o(.text) referenced from noretval__2sprintf.o(.text)
  - mc0_DevCtrl from file_config.o(i.mc0_DevCtrl) referenced from file_config.o(.constdata)
  - mc0_Init from file_config.o(i.mc0_Init) referenced from file_config.o(.constdata)
  - mc0_RdInfo from file_config.o(i.mc0_RdInfo) referenced from file_config.o(.constdata)
  - mc0_RdSect from file_config.o(i.mc0_RdSect) referenced from file_config.o(.constdata)
  - mc0_UnInit from file_config.o(i.mc0_UnInit) referenced from file_config.o(.constdata)
  - mc0_WrSect from file_config.o(i.mc0_WrSect) referenced from file_config.o(.constdata)

  ### Global Symbols

  __main (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
  [Calls]

  - >> __rt_entry
  - >> __scatterload

  __scatterload (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
  [Called By]

  - >> __main

  __scatterload_rt2 (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
  [Calls]

  - >> __rt_entry

  __scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

  __scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

  __scatterload_copy (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
  [Calls]

  - >> __scatterload_copy
  [Called By]
  - >> __scatterload_copy

  __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)

  _printf_d (Thumb, 0 bytes, Stack size unknown bytes, _printf_d.o(.ARM.Collect$$_printf_percent$$00000009))
  [Stack]

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = _printf_d ⇒ _printf_int_dec ⇒ _printf_int_common
  [Calls]
  - >> _printf_int_dec

  _printf_percent (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000))
  [Called By]

  - >> __printf

  _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017))

  __rt_lib_init (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))
  [Called By]

  - >> __rt_entry_li

  __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))

  __rt_lib_init_heap_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000005))
  [Stack]

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = __rt_lib_init_heap_2 ⇒ _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display
  [Calls]
  - >> _init_alloc

  __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))

  __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A))

  __rt_lib_init_lc_common (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000F))
  [Calls]

  - >> __rt_locale

  __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))

  __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))

  __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011))

  __rt_lib_init_lc_ctype_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000012))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = __rt_lib_init_lc_ctype_2 ⇒ _get_lc_ctype
  [Calls]
  - >> _get_lc_ctype

  __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))

  __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))

  __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))

  __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))

  __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))

  __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))

  __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))

  __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))

  __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))

  __rt_lib_init_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000024))
  [Stack]

  - Max Depth = 472 + Unknown Stack Size
  - Call Chain = __rt_lib_init_stdio_2 ⇒ _initio ⇒ freopen ⇒ _sys_open ⇒ __sys_open ⇒ fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> _initio

  __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))

  __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C))

  __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))

  __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))

  __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033))

  __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))

  __rt_lib_shutdown (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))
  [Called By]

  - >> __rt_exit_ls

  __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))

  __rt_lib_shutdown_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000003))
  [Stack]

  - Max Depth = 256 + Unknown Stack Size
  - Call Chain = __rt_lib_shutdown_stdio_2 ⇒ _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write ⇒ __sys_write ⇒ fat_write ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> _terminateio

  __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007))

  __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F))

  __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010))

  __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A))

  __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))

  __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))

  __rt_entry (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
  [Called By]

  - >> __main
  - >> __scatterload_rt2

  __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))

  __rt_entry_sh (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = __rt_entry_sh ⇒ __user_setup_stackheap
  [Calls]
  - >> __user_setup_stackheap

  __rt_entry_li (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A))
  [Calls]

  - >> __rt_lib_init

  __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))

  __rt_entry_main (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D))
  [Stack]

  - Max Depth = 488 + Unknown Stack Size
  - Call Chain = __rt_entry_main ⇒ main ⇒ fopen ⇒ freopen ⇒ _sys_open ⇒ __sys_open ⇒ fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> main
  - >> exit

  __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))

  __rt_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
  [Called By]

  - >> exit

  __rt_exit_ls (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003))
  [Calls]

  - >> __rt_lib_shutdown

  __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))

  __rt_exit_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))
  [Calls]

  - >> _sys_exit

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

  - startup_stm32f10x_md.o(RESET)

  _maybe_terminate_alloc (Thumb, 0 bytes, Stack size 0 bytes, maybetermalloc1.o(.emb_text), UNUSED)

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

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

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

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

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

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

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

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

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

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

  SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
  [Calls]

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

  DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
  [Calls]

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

  PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
  [Calls]

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

  CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
  [Calls]

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

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - startup_stm32f10x_md.o(RESET)

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

  - >> __user_setup_stackheap

  __semihosting$guard (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

  __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

  __2sprintf (Thumb, 34 bytes, Stack size 32 bytes, noretval__2sprintf.o(.text))
  [Stack]

  - Max Depth = 120 + Unknown Stack Size
  - Call Chain = __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> _sputc
  - >> _printf_char_common
  [Called By]
  - >> main

  __printf (Thumb, 104 bytes, Stack size 24 bytes, __printf.o(.text))
  [Stack]

  - Max Depth = 24 + Unknown Stack Size
  - Call Chain = __printf
  [Calls]
  - >> _printf_percent
  [Called By]
  - >> _printf_char_common

  _printf_int_dec (Thumb, 104 bytes, Stack size 24 bytes, _printf_dec.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = _printf_int_dec ⇒ _printf_int_common
  [Calls]
  - >> _printf_int_common
  [Called By]
  - >> _printf_d

  freopen (Thumb, 158 bytes, Stack size 24 bytes, fopen.o(.text))
  [Stack]

  - Max Depth = 464
  - Call Chain = freopen ⇒ _sys_open ⇒ __sys_open ⇒ fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> _sys_open
  - >> _fseek
  - >> _fclose_internal
  [Called By]
  - >> fopen
  - >> _initio

  fopen (Thumb, 74 bytes, Stack size 24 bytes, fopen.o(.text))
  [Stack]

  - Max Depth = 488
  - Call Chain = fopen ⇒ freopen ⇒ _sys_open ⇒ __sys_open ⇒ fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> malloc
  - >> __aeabi_memclr4
  - >> freopen
  [Called By]
  - >> main

  _fclose_internal (Thumb, 76 bytes, Stack size 32 bytes, fclose.o(.text))
  [Stack]

  - Max Depth = 240
  - Call Chain = _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write ⇒ __sys_write ⇒ fat_write ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> _sys_close
  - >> _fflush
  - >> free
  - >> __aeabi_memclr4
  [Called By]
  - >> freopen
  - >> _terminateio

  fclose (Thumb, 0 bytes, Stack size 32 bytes, fclose.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = fclose
  [Called By]
  - >> main

  strncasecmp (Thumb, 50 bytes, Stack size 24 bytes, strncasecmp.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = strncasecmp ⇒ tolower ⇒ __rt_ctype_table
  [Calls]
  - >> tolower
  [Called By]
  - >> frec_find

  strlen (Thumb, 62 bytes, Stack size 8 bytes, strlen.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = strlen
  [Called By]
  - >> ffind
  - >> main
  - >> path_create

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

  - >> write_cache
  - >> read_sector
  - >> read_cache
  - >> path_create
  - >> fat_ffind
  - >> fat_write
  - >> fat_read
  - >> fwrite
  - >> fread

  __rt_memcpy (Thumb, 138 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memcpy4

  _memcpy_lastbytes (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_v6.o(.text), UNUSED)

  __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_memcpy4
  [Called By]
  - >> __rt_memcpy
  - >> path_create
  - >> create_dot_entries

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

  __rt_memcpy_w (Thumb, 100 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED)

  _memcpy_lastbytes_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_w.o(.text), UNUSED)

  __aeabi_memclr (Thumb, 0 bytes, Stack size 0 bytes, rt_memclr.o(.text))
  [Called By]

  - >> fsinfo_write
  - >> clear_clus

  __rt_memclr (Thumb, 68 bytes, Stack size 0 bytes, rt_memclr.o(.text), UNUSED)
  [Calls]

  - >> _memset_w

  _memset (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr.o(.text), UNUSED)

  __aeabi_memclr4 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = __aeabi_memclr4
  [Called By]
  - >> _fclose_internal
  - >> fopen
  - >> fat_init
  - >> fs_find_iob
  - >> _initio

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

  __rt_memclr_w (Thumb, 78 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED)

  _memset_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED)
  [Called By]

  - >> __rt_memclr

  strcmp (Thumb, 128 bytes, Stack size 0 bytes, strcmpv7m.o(.text))
  [Called By]

  - >> _sys_open
  - >> ffind
  - >> _get_lc_ctype

  __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)

  __rt_heap_escrow (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)

  __rt_heap_expand (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)

  malloc (Thumb, 94 bytes, Stack size 16 bytes, h1_alloc.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free
  [Calls]
  - >> __Heap_Full
  - >> __rt_heap_descriptor
  [Called By]
  - >> fopen
  - >> __flsbuf
  - >> __filbuf

  free (Thumb, 78 bytes, Stack size 16 bytes, h1_free.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = free
  [Calls]
  - >> __rt_heap_descriptor
  [Called By]
  - >> _fclose_internal
  - >> __Heap_ProvideMemory
  - >> _terminateio

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

  - Max Depth = 16
  - Call Chain = tolower ⇒ __rt_ctype_table
  [Calls]
  - >> __rt_ctype_table
  [Called By]
  - >> strncasecmp

  _printf_int_common (Thumb, 178 bytes, Stack size 32 bytes, _printf_intcommon.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = _printf_int_common
  [Called By]
  - >> _printf_int_dec

  _printf_char_common (Thumb, 32 bytes, Stack size 64 bytes, _printf_char_common.o(.text))
  [Stack]

  - Max Depth = 88 + Unknown Stack Size
  - Call Chain = _printf_char_common ⇒ __printf
  [Calls]
  - >> __printf
  [Called By]
  - >> __2sprintf

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

  - >> __2sprintf
  [Address Reference Count : 1]
  - noretval__2sprintf.o(.text)

  _fseek (Thumb, 242 bytes, Stack size 24 bytes, fseek.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _fseek ⇒ _sys_flen ⇒ __sys_flen
  [Calls]
  - >> _sys_istty
  - >> _sys_flen
  - >> _seterr
  - >> _ftell_internal
  [Called By]
  - >> freopen
  - >> _do_fflush

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

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

  - >> _writebuf
  - >> _fseek
  - >> __flsbuf
  - >> __filbuf
  - >> _readbuf

  _writebuf (Thumb, 84 bytes, Stack size 32 bytes, stdio.o(.text))
  [Stack]

  - Max Depth = 192
  - Call Chain = _writebuf ⇒ _sys_write ⇒ __sys_write ⇒ fat_write ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> _sys_write
  - >> _sys_seek
  - >> _seterr
  [Called By]
  - >> _fflush
  - >> fwrite
  - >> __flsbuf

  _fflush (Thumb, 70 bytes, Stack size 16 bytes, stdio.o(.text))
  [Stack]

  - Max Depth = 208
  - Call Chain = _fflush ⇒ _writebuf ⇒ _sys_write ⇒ __sys_write ⇒ fat_write ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> _writebuf
  [Called By]
  - >> _deferredlazyseek
  - >> _fclose_internal
  - >> _do_fflush
  - >> __filbuf

  _deferredlazyseek (Thumb, 60 bytes, Stack size 8 bytes, stdio.o(.text), UNUSED)
  [Calls]

  - >> _fflush
  [Called By]
  - >> __flsbuf
  - >> __filbuf

  __rt_ctype_table (Thumb, 16 bytes, Stack size 8 bytes, rt_ctype_table.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __rt_ctype_table
  [Calls]
  - >> __rt_locale
  [Called By]
  - >> tolower

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

  - >> _init_alloc
  - >> free
  - >> malloc

  __use_no_heap (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED)

  __heap$guard (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED)

  _terminate_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED)

  _init_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED)

  __Heap_Full (Thumb, 34 bytes, Stack size 16 bytes, init_alloc.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free
  [Calls]
  - >> __Heap_ProvideMemory
  [Called By]
  - >> malloc

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

  - >> __rt_SIGRTMEM

  _init_alloc (Thumb, 94 bytes, Stack size 24 bytes, init_alloc.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display
  [Calls]
  - >> __Heap_Initialize
  - >> __rt_heap_descriptor
  - >> __rt_SIGRTMEM
  - >> __Heap_ProvideMemory
  [Called By]
  - >> __rt_lib_init_heap_2

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

  - >> _init_alloc

  __Heap_DescSize (Thumb, 4 bytes, Stack size 0 bytes, h1_init.o(.text), UNUSED)

  _readbuf (Thumb, 54 bytes, Stack size 16 bytes, filbuf.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = _readbuf ⇒ _sys_read ⇒ __sys_read ⇒ fat_read ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> _sys_read
  - >> _seterr
  [Called By]
  - >> fread
  - >> __filbuf

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

  - >> fread
  - >> __filbuf

  __filbuf (Thumb, 476 bytes, Stack size 32 bytes, filbuf.o(.text), UNUSED)
  [Calls]

  - >> _sys_seek
  - >> _deferredlazyseek
  - >> _fflush
  - >> _seterr
  - >> malloc
  - >> _flushlinebuffered
  - >> _seteof
  - >> _readbuf

  __filbuf_byte (Thumb, 0 bytes, Stack size 32 bytes, filbuf.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = __filbuf_byte
  [Called By]
  - >> fread

  __filbuf_wide (Thumb, 0 bytes, Stack size 32 bytes, filbuf.o(.text), UNUSED)

  __flsbuf (Thumb, 470 bytes, Stack size 32 bytes, flsbuf.o(.text), UNUSED)
  [Calls]

  - >> _sys_istty
  - >> _sys_flen
  - >> _deferredlazyseek
  - >> _writebuf
  - >> _seterr
  - >> malloc

  __flsbuf_byte (Thumb, 0 bytes, Stack size 32 bytes, flsbuf.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = __flsbuf_byte
  [Called By]
  - >> fwrite

  __flsbuf_wide (Thumb, 0 bytes, Stack size 32 bytes, flsbuf.o(.text), UNUSED)

  _ftell_internal (Thumb, 66 bytes, Stack size 8 bytes, ftell.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = _ftell_internal
  [Calls]
  - >> __aeabi_errno_addr
  [Called By]
  - >> _fseek

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

  _initio (Thumb, 210 bytes, Stack size 8 bytes, initio.o(.text))
  [Stack]

  - Max Depth = 472
  - Call Chain = _initio ⇒ freopen ⇒ _sys_open ⇒ __sys_open ⇒ fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> __aeabi_memclr4
  - >> freopen
  - >> __rt_SIGRTRED
  - >> setvbuf
  [Called By]
  - >> __rt_lib_init_stdio_2

  _terminateio (Thumb, 56 bytes, Stack size 16 bytes, initio.o(.text))
  [Stack]

  - Max Depth = 256
  - Call Chain = _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write ⇒ __sys_write ⇒ fat_write ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> free
  - >> _fclose_internal
  [Called By]
  - >> __rt_lib_shutdown_stdio_2

  __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

  __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
  [Called By]

  - >> __user_setup_stackheap

  __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

  __user_setup_stackheap (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = __user_setup_stackheap
  [Calls]
  - >> __user_initial_stackheap
  - >> __user_perproc_libspace
  [Called By]
  - >> __rt_entry_sh

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

  - >> __rt_ctype_table
  - >> __rt_lib_init_lc_common

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

  - >> _ftell_internal

  __errno$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED)

  __rt_errno_addr$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED)

  __Heap_ProvideMemory (Thumb, 52 bytes, Stack size 0 bytes, h1_extend.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __Heap_ProvideMemory ⇒ free
  [Calls]
  - >> free
  [Called By]
  - >> _init_alloc
  - >> __Heap_Full

  setvbuf (Thumb, 70 bytes, Stack size 16 bytes, setvbuf.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = setvbuf
  [Called By]
  - >> _initio

  fread (Thumb, 280 bytes, Stack size 56 bytes, freadfast.o(.text))
  [Stack]

  - Max Depth = 192
  - Call Chain = fread ⇒ _readbuf ⇒ _sys_read ⇒ __sys_read ⇒ fat_read ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> __aeabi_memcpy
  - >> __filbuf_byte
  - >> _seteof
  - >> _readbuf
  [Called By]
  - >> main

  fwrite (Thumb, 188 bytes, Stack size 32 bytes, fwritefast.o(.text))
  [Stack]

  - Max Depth = 224
  - Call Chain = fwrite ⇒ _writebuf ⇒ _sys_write ⇒ __sys_write ⇒ fat_write ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> _writebuf
  - >> __aeabi_memcpy
  - >> __flsbuf_byte
  [Called By]
  - >> main

  _flushlinebuffered (Thumb, 50 bytes, Stack size 16 bytes, flushlinebuffered.o(.text), UNUSED)
  [Calls]

  - >> _do_fflush
  [Called By]
  - >> __filbuf

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

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = exit
  [Calls]
  - >> __rt_exit
  [Called By]
  - >> __rt_entry_main

  __rt_SIGRTRED (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_outer.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = __rt_SIGRTRED ⇒ __rt_SIGRTRED_inner ⇒ __default_signal_display
  [Calls]
  - >> __rt_SIGRTRED_inner
  - >> __sig_exit
  [Called By]
  - >> _initio

  __rt_SIGRTMEM (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtmem_outer.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display
  [Calls]
  - >> __rt_SIGRTMEM_inner
  - >> __sig_exit
  [Called By]
  - >> _init_alloc
  - >> __Heap_Broken

  _do_fflush (Thumb, 54 bytes, Stack size 16 bytes, fflush.o(.text), UNUSED)
  [Calls]

  - >> _fflush
  - >> _fseek
  [Called By]
  - >> fflush
  - >> _flushlinebuffered

  fflush (Thumb, 42 bytes, Stack size 16 bytes, fflush.o(.text), UNUSED)
  [Calls]

  - >> _do_fflush

  __sig_exit (Thumb, 10 bytes, Stack size 0 bytes, defsig_exit.o(.text))
  [Calls]

  - >> _sys_exit
  [Called By]
  - >> __rt_SIGRTMEM
  - >> __rt_SIGRTRED

  __rt_SIGRTRED_inner (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_inner.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = __rt_SIGRTRED_inner ⇒ __default_signal_display
  [Calls]
  - >> __default_signal_display
  [Called By]
  - >> __rt_SIGRTRED

  __rt_SIGRTMEM_inner (Thumb, 22 bytes, Stack size 8 bytes, defsig_rtmem_inner.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = __rt_SIGRTMEM_inner ⇒ __default_signal_display
  [Calls]
  - >> __default_signal_display
  [Called By]
  - >> __rt_SIGRTMEM

  __default_signal_display (Thumb, 50 bytes, Stack size 16 bytes, defsig_general.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __default_signal_display
  [Calls]
  - >> _ttywrch
  [Called By]
  - >> __rt_SIGRTMEM_inner
  - >> __rt_SIGRTRED_inner

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

  - Max Depth = 8
  - Call Chain = ADC1_2_IRQHandler
  [Calls]
  - >> ADC_GetFlagStatus
  - >> ADC_GetConversionValue
  [Address Reference Count : 1]
  - startup_stm32f10x_md.o(RESET)

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

  - >> configADC

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

  - >> configADC

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

  - >> configADC

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

  - >> main
  - >> ADC1_2_IRQHandler

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

  - >> ADC1_2_IRQHandler

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

  - >> configADC

  ADC_Init (Thumb, 70 bytes, Stack size 12 bytes, stm32f10x_adc.o(i.ADC_Init))
  [Stack]

  - Max Depth = 12
  - Call Chain = ADC_Init
  [Called By]
  - >> configADC

  ADC_RegularChannelConfig (Thumb, 184 bytes, Stack size 20 bytes, stm32f10x_adc.o(i.ADC_RegularChannelConfig))
  [Stack]

  - Max Depth = 20
  - Call Chain = ADC_RegularChannelConfig
  [Called By]
  - >> configADC

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

  - >> configADC

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

  - >> configADC

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

  - >> configADC

  GPIO_Init (Thumb, 278 bytes, Stack size 24 bytes, stm32f10x_gpio.o(i.GPIO_Init))
  [Stack]

  - Max Depth = 24
  - Call Chain = GPIO_Init
  [Called By]
  - >> Init
  - >> main
  - >> configADC

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

  - >> configADC

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

  - >> Init
  - >> main
  - >> configADC

  RCC_GetClocksFreq (Thumb, 192 bytes, Stack size 12 bytes, stm32f10x_rcc.o(i.RCC_GetClocksFreq))
  [Stack]

  - Max Depth = 12
  - Call Chain = RCC_GetClocksFreq
  [Called By]
  - >> USART_Init

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

  - >> Init

  SPI_Init (Thumb, 60 bytes, Stack size 8 bytes, stm32f10x_spi.o(i.SPI_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI_Init
  [Called By]
  - >> Init

  SysTick_Handler (Thumb, 28 bytes, Stack size 0 bytes, main.o(i.SysTick_Handler))
  [Address Reference Count : 1]

  - startup_stm32f10x_md.o(RESET)

  SystemInit (Thumb, 78 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SystemInit))
  [Stack]

  - Max Depth = 28
  - Call Chain = SystemInit ⇒ SetSysClock ⇒ SetSysClockTo72
  [Calls]
  - >> SetSysClock
  [Address Reference Count : 1]
  - startup_stm32f10x_md.o(.text)

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

  - Max Depth = 8
  - Call Chain = USART1_IRQHandler
  [Calls]
  - >> USART_ReceiveData
  - >> USART_GetFlagStatus
  - >> USART_ClearFlag
  [Address Reference Count : 1]
  - startup_stm32f10x_md.o(RESET)

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

  - >> USART1_IRQHandler

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

  - >> main

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

  - >> myprintf
  - >> USART1_IRQHandler

  USART_ITConfig (Thumb, 74 bytes, Stack size 20 bytes, stm32f10x_usart.o(i.USART_ITConfig))
  [Stack]

  - Max Depth = 20
  - Call Chain = USART_ITConfig
  [Called By]
  - >> main

  USART_Init (Thumb, 210 bytes, Stack size 56 bytes, stm32f10x_usart.o(i.USART_Init))
  [Stack]

  - Max Depth = 68
  - Call Chain = USART_Init ⇒ RCC_GetClocksFreq
  [Calls]
  - >> RCC_GetClocksFreq
  [Called By]
  - >> main

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

  - >> USART1_IRQHandler

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

  - >> myprintf

  __sys_close (Thumb, 68 bytes, Stack size 16 bytes, fs_sys.o(i.__sys_close))
  [Stack]

  - Max Depth = 96
  - Call Chain = __sys_close ⇒ fat_close ⇒ fsinfo_write ⇒ write_cache ⇒ write_sector
  [Calls]
  - >> efs_wclose
  - >> fat_close
  [Called By]
  - >> _sys_close

  __sys_flen (Thumb, 56 bytes, Stack size 8 bytes, fs_sys.o(i.__sys_flen))
  [Stack]

  - Max Depth = 8
  - Call Chain = __sys_flen
  [Calls]
  - >> efs_fsize
  [Called By]
  - >> _sys_flen

  __sys_open (Thumb, 204 bytes, Stack size 24 bytes, fs_sys.o(i.__sys_open))
  [Stack]

  - Max Depth = 424
  - Call Chain = __sys_open ⇒ fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> efs_fsize
  - >> efs_find
  - >> efs_delete
  - >> efs_create
  - >> fs_map_drive
  - >> fs_find_iob
  - >> fs_efs_lock
  - >> fat_open
  [Called By]
  - >> _sys_open

  __sys_read (Thumb, 86 bytes, Stack size 24 bytes, fs_sys.o(i.__sys_read))
  [Stack]

  - Max Depth = 96
  - Call Chain = __sys_read ⇒ fat_read ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> efs_read
  - >> fat_read
  [Called By]
  - >> _sys_read

  __sys_seek (Thumb, 66 bytes, Stack size 16 bytes, fs_sys.o(i.__sys_seek))
  [Stack]

  - Max Depth = 88
  - Call Chain = __sys_seek ⇒ fat_seek ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> efs_seek
  - >> fat_seek
  [Called By]
  - >> _sys_seek

  __sys_write (Thumb, 80 bytes, Stack size 24 bytes, fs_sys.o(i.__sys_write))
  [Stack]

  - Max Depth = 136
  - Call Chain = __sys_write ⇒ fat_write ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> efs_write
  - >> fat_write
  [Called By]
  - >> _sys_write

  _sys_close (Thumb, 22 bytes, Stack size 8 bytes, retarget.o(i._sys_close))
  [Stack]

  - Max Depth = 104
  - Call Chain = _sys_close ⇒ __sys_close ⇒ fat_close ⇒ fsinfo_write ⇒ write_cache ⇒ write_sector
  [Calls]
  - >> __sys_close
  [Called By]
  - >> _fclose_internal

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

  - >> __rt_exit_exit
  - >> __sig_exit

  _sys_flen (Thumb, 22 bytes, Stack size 8 bytes, retarget.o(i._sys_flen))
  [Stack]

  - Max Depth = 16
  - Call Chain = _sys_flen ⇒ __sys_flen
  [Calls]
  - >> __sys_flen
  [Called By]
  - >> _fseek
  - >> __flsbuf

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

  - >> _fseek
  - >> __flsbuf

  _sys_open (Thumb, 64 bytes, Stack size 16 bytes, retarget.o(i._sys_open))
  [Stack]

  - Max Depth = 440
  - Call Chain = _sys_open ⇒ __sys_open ⇒ fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> __sys_open
  - >> strcmp
  [Called By]
  - >> freopen

  _sys_read (Thumb, 38 bytes, Stack size 24 bytes, retarget.o(i._sys_read))
  [Stack]

  - Max Depth = 120
  - Call Chain = _sys_read ⇒ __sys_read ⇒ fat_read ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> __sys_read
  [Called By]
  - >> _readbuf

  _sys_seek (Thumb, 28 bytes, Stack size 16 bytes, retarget.o(i._sys_seek))
  [Stack]

  - Max Depth = 104
  - Call Chain = _sys_seek ⇒ __sys_seek ⇒ fat_seek ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> __sys_seek
  [Called By]
  - >> _writebuf
  - >> __filbuf

  _sys_write (Thumb, 38 bytes, Stack size 24 bytes, retarget.o(i._sys_write))
  [Stack]

  - Max Depth = 160
  - Call Chain = _sys_write ⇒ __sys_write ⇒ fat_write ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> __sys_write
  [Called By]
  - >> _writebuf

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

  - >> __default_signal_display

  configADC (Thumb, 162 bytes, Stack size 32 bytes, main.o(i.configADC))
  [Stack]

  - Max Depth = 56
  - Call Chain = configADC ⇒ GPIO_Init
  [Calls]
  - >> GPIO_Init
  - >> RCC_APB2PeriphClockCmd
  - >> RCC_ADCCLKConfig
  - >> ADC_StartCalibration
  - >> ADC_SoftwareStartConvCmd
  - >> ADC_ResetCalibration
  - >> ADC_RegularChannelConfig
  - >> ADC_Init
  - >> ADC_GetResetCalibrationStatus
  - >> ADC_GetCalibrationStatus
  - >> ADC_ExternalTrigConvCmd
  - >> ADC_Cmd
  [Called By]
  - >> main

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

  - Max Depth = 8
  - Call Chain = delay_ms
  [Called By]
  - >> main

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

  - >> __sys_open

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

  - >> __sys_open

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

  - >> ffind

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

  - >> __sys_open

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

  - >> __sys_open
  - >> __sys_flen
  - >> ffind

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

  - >> __sys_read

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

  - >> __sys_seek

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

  - >> __sys_close

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

  - >> __sys_write

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

  - >> path_open
  - >> path_create
  - >> frec_find
  - >> frec_allocate

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

  - >> fat_init

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

  - >> fs_cfg_drv

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

  - >> fat_ffind
  - >> fat_open

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

  - >> path_create
  - >> frec_find

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

  - >> frec_find_elink

  entry_pos_set (Thumb, 88 bytes, Stack size 16 bytes, fs_fat.o(i.entry_pos_set))
  [Stack]

  - Max Depth = 56
  - Call Chain = entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> set_next_clus
  - >> is_EOC
  [Called By]
  - >> frec_next
  - >> frec_find
  - >> frec_allocate
  - >> create_lfn_entry
  - >> fat_ffind
  - >> fat_open

  entry_read (Thumb, 54 bytes, Stack size 16 bytes, fs_fat.o(i.entry_read))
  [Stack]

  - Max Depth = 32
  - Call Chain = entry_read ⇒ read_sector
  [Calls]
  - >> read_sector
  - >> clus_to_sect
  [Called By]
  - >> frec_next
  - >> frec_find_elink
  - >> frec_find
  - >> frec_allocate
  - >> create_sfn_entry
  - >> create_lfn_entry
  - >> create_dot_entries
  - >> fat_open
  - >> fat_close

  fat_close (Thumb, 198 bytes, Stack size 32 bytes, fs_fat.o(i.fat_close))
  [Stack]

  - Max Depth = 80
  - Call Chain = fat_close ⇒ fsinfo_write ⇒ write_cache ⇒ write_sector
  [Calls]
  - >> fs_chk_media
  - >> entry_read
  - >> write_cache
  - >> set_u32
  - >> set_u16
  - >> get_time
  - >> get_date
  - >> fsinfo_write
  - >> entry_flush
  - >> cache_fat
  [Called By]
  - >> __sys_close

  fat_ffind (Thumb, 262 bytes, Stack size 56 bytes, fs_fat.o(i.fat_ffind))
  [Stack]

  - Max Depth = 272
  - Call Chain = fat_ffind ⇒ path_open ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> elink_init_path
  - >> __aeabi_memcpy
  - >> fs_find_drv
  - >> fs_chk_media
  - >> entry_pos_set
  - >> set_root_clus
  - >> path_open
  - >> get_u32
  - >> get_u16
  - >> frec_next
  [Called By]
  - >> ffind

  fat_init (Thumb, 420 bytes, Stack size 32 bytes, fs_fat.o(i.fat_init))
  [Stack]

  - Max Depth = 80
  - Call Chain = fat_init ⇒ fsinfo_write ⇒ write_cache ⇒ write_sector
  [Calls]
  - >> elink_flush
  - >> __aeabi_memclr4
  - >> fs_find_drv
  - >> read_sector
  - >> read_cache
  - >> get_u32
  - >> get_u16
  - >> fsinfo_write
  - >> fsinfo_read
  - >> bs_read
  [Called By]
  - >> init_drv

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

  - >> init_drv

  fat_open (Thumb, 442 bytes, Stack size 64 bytes, fs_fat.o(i.fat_open))
  [Stack]

  - Max Depth = 400
  - Call Chain = fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> elink_init_path
  - >> fs_find_drv
  - >> fs_fat_lock
  - >> path_validate
  - >> entry_read
  - >> entry_pos_set
  - >> unlink_clus_chain
  - >> set_u16
  - >> set_root_clus
  - >> path_open
  - >> path_create
  - >> get_u32
  - >> get_u16
  - >> get_time
  - >> get_date
  - >> fsinfo_write
  - >> entry_flush
  [Called By]
  - >> __sys_open

  fat_read (Thumb, 206 bytes, Stack size 32 bytes, fs_fat.o(i.fat_read))
  [Stack]

  - Max Depth = 72
  - Call Chain = fat_read ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> __aeabi_memcpy
  - >> fs_chk_media
  - >> set_next_clus
  - >> read_cache
  - >> clus_to_sect
  [Called By]
  - >> __sys_read

  fat_seek (Thumb, 212 bytes, Stack size 32 bytes, fs_fat.o(i.fat_seek))
  [Stack]

  - Max Depth = 72
  - Call Chain = fat_seek ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> fs_chk_media
  - >> set_next_clus
  - >> is_EOC
  [Called By]
  - >> __sys_seek

  fat_write (Thumb, 340 bytes, Stack size 64 bytes, fs_fat.o(i.fat_write))
  [Stack]

  - Max Depth = 112
  - Call Chain = fat_write ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> __aeabi_memcpy
  - >> fs_chk_media
  - >> write_fat_link
  - >> write_cache
  - >> set_next_clus
  - >> read_sector
  - >> get_free_clus
  - >> get_EOC
  - >> clus_to_sect
  [Called By]
  - >> __sys_write

  ffind (Thumb, 442 bytes, Stack size 40 bytes, fs_mapi.o(i.ffind))
  [Stack]

  - Max Depth = 312
  - Call Chain = ffind ⇒ fat_ffind ⇒ path_open ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> efs_fsize
  - >> efs_ffind
  - >> strcmp
  - >> strlen
  - >> fs_strpos
  - >> fat_ffind
  - >> fs_map_drive
  - >> fs_find_iob
  [Called By]
  - >> main

  finit (Thumb, 110 bytes, Stack size 56 bytes, fs_mapi.o(i.finit))
  [Stack]

  - Max Depth = 144
  - Call Chain = finit ⇒ init_drv ⇒ fat_init ⇒ fsinfo_write ⇒ write_cache ⇒ write_sector
  [Calls]
  - >> fs_cfg_drv
  - >> init_drv
  - >> fs_map_drive
  [Called By]
  - >> main

  fs_cfg_drv (Thumb, 92 bytes, Stack size 16 bytes, fs_mapi.o(i.fs_cfg_drv))
  [Stack]

  - Max Depth = 16
  - Call Chain = fs_cfg_drv
  [Calls]
  - >> fs_config
  - >> elink_init
  [Called By]
  - >> finit

  fs_chk_media (Thumb, 46 bytes, Stack size 8 bytes, fs_lib.o(i.fs_chk_media))
  [Stack]

  - Max Depth = 8
  - Call Chain = fs_chk_media
  [Called By]
  - >> fat_ffind
  - >> fat_write
  - >> fat_seek
  - >> fat_read
  - >> fat_close

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

  - >> fs_cfg_drv

  fs_efs_lock (Thumb, 54 bytes, Stack size 16 bytes, fs_lib.o(i.fs_efs_lock))
  [Stack]

  - Max Depth = 16
  - Call Chain = fs_efs_lock
  [Called By]
  - >> __sys_open

  fs_fat_lock (Thumb, 56 bytes, Stack size 20 bytes, fs_lib.o(i.fs_fat_lock))
  [Stack]

  - Max Depth = 20
  - Call Chain = fs_fat_lock
  [Called By]
  - >> fat_open

  fs_find_drv (Thumb, 36 bytes, Stack size 8 bytes, fs_lib.o(i.fs_find_drv))
  [Stack]

  - Max Depth = 8
  - Call Chain = fs_find_drv
  [Called By]
  - >> fat_init
  - >> fat_ffind
  - >> fat_open

  fs_find_iob (Thumb, 48 bytes, Stack size 16 bytes, fs_lib.o(i.fs_find_iob))
  [Stack]

  - Max Depth = 20
  - Call Chain = fs_find_iob ⇒ __aeabi_memclr4
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> __sys_open
  - >> ffind

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

  - >> get_date

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

  - >> get_time

  fs_map_drive (Thumb, 110 bytes, Stack size 20 bytes, fs_lib.o(i.fs_map_drive))
  [Stack]

  - Max Depth = 20
  - Call Chain = fs_map_drive
  [Called By]
  - >> __sys_open
  - >> finit
  - >> ffind

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

  - >> ffind

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

  - >> write_sector
  - >> cache_fat

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

  - Max Depth = 488 + Unknown Stack Size
  - Call Chain = main ⇒ fopen ⇒ freopen ⇒ _sys_open ⇒ __sys_open ⇒ fat_open ⇒ path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> GPIO_Init
  - >> RCC_APB2PeriphClockCmd
  - >> finit
  - >> ffind
  - >> myprintf
  - >> delay_ms
  - >> configADC
  - >> USART_Init
  - >> USART_ITConfig
  - >> USART_Cmd
  - >> ADC_GetConversionValue
  - >> strlen
  - >> fclose
  - >> fopen
  - >> __2sprintf
  - >> fwrite
  - >> fread
  [Called By]
  - >> __rt_entry_main

  mmc_DevCtrl (Thumb, 36 bytes, Stack size 0 bytes, fs_mmc.o(i.mmc_DevCtrl))
  [Stack]

  - Max Depth = 88
  - Call Chain = mmc_DevCtrl ⇒ mmc_read_cid ⇒ mmc_read_info ⇒ mmc_command
  [Calls]
  - >> mmc_read_cid
  [Called By]
  - >> mc0_DevCtrl

  mmc_Init (Thumb, 530 bytes, Stack size 56 bytes, fs_mmc.o(i.mmc_Init))
  [Stack]

  - Max Depth = 144
  - Call Chain = mmc_Init ⇒ mmc_read_csd ⇒ mmc_read_info ⇒ mmc_command
  [Calls]
  - >> mmc_read_csd
  - >> mmc_read_cid
  - >> mmc_command
  [Called By]
  - >> mc0_Init

  mmc_ReadInfo (Thumb, 94 bytes, Stack size 40 bytes, fs_mmc.o(i.mmc_ReadInfo))
  [Stack]

  - Max Depth = 128
  - Call Chain = mmc_ReadInfo ⇒ mmc_read_csd ⇒ mmc_read_info ⇒ mmc_command
  [Calls]
  - >> mmc_read_csd
  - >> mmc_read_cid
  [Called By]
  - >> mc0_RdInfo

  mmc_ReadSector (Thumb, 84 bytes, Stack size 24 bytes, fs_mmc.o(i.mmc_ReadSector))
  [Stack]

  - Max Depth = 80
  - Call Chain = mmc_ReadSector ⇒ mmc_read_block ⇒ mmc_command
  [Calls]
  - >> mmc_read_block
  - >> mmc_command
  [Called By]
  - >> mc0_RdSect

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

  - >> mc0_UnInit

  mmc_WriteSector (Thumb, 88 bytes, Stack size 24 bytes, fs_mmc.o(i.mmc_WriteSector))
  [Stack]

  - Max Depth = 80
  - Call Chain = mmc_WriteSector ⇒ mmc_write_block ⇒ mmc_command
  [Calls]
  - >> mmc_write_block
  [Called By]
  - >> mc0_WrSect

  myprintf (Thumb, 40 bytes, Stack size 16 bytes, main.o(i.myprintf))
  [Stack]

  - Max Depth = 16
  - Call Chain = myprintf
  [Calls]
  - >> USART_SendData
  - >> USART_GetFlagStatus
  [Called By]
  - >> main

  path_validate (Thumb, 50 bytes, Stack size 16 bytes, fs_fat.o(i.path_validate))
  [Stack]

  - Max Depth = 16
  - Call Chain = path_validate
  [Calls]
  - >> char_validate
  [Called By]
  - >> fat_open

  _get_lc_ctype (Thumb, 44 bytes, Stack size 8 bytes, lc_ctype_c.o(locale$$code))
  [Stack]

  - Max Depth = 8
  - Call Chain = _get_lc_ctype
  [Calls]
  - >> strcmp
  [Called By]
  - >> __rt_lib_init_lc_ctype_2
  [Address Reference Count : 1]
  - rt_ctype_table.o(.text)

  ### Local Symbols

  SetSysClock (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SetSysClock))
  [Stack]

  - Max Depth = 20
  - Call Chain = SetSysClock ⇒ SetSysClockTo72
  [Calls]
  - >> SetSysClockTo72
  [Called By]
  - >> SystemInit

  SetSysClockTo72 (Thumb, 214 bytes, Stack size 12 bytes, system_stm32f10x.o(i.SetSysClockTo72))
  [Stack]

  - Max Depth = 12
  - Call Chain = SetSysClockTo72
  [Called By]
  - >> SetSysClock

  mc0_DevCtrl (Thumb, 6 bytes, Stack size 0 bytes, file_config.o(i.mc0_DevCtrl))
  [Stack]

  - Max Depth = 88
  - Call Chain = mc0_DevCtrl ⇒ mmc_DevCtrl ⇒ mmc_read_cid ⇒ mmc_read_info ⇒ mmc_command
  [Calls]
  - >> mmc_DevCtrl
  [Address Reference Count : 1]
  - file_config.o(.constdata)

  mc0_Init (Thumb, 6 bytes, Stack size 0 bytes, file_config.o(i.mc0_Init))
  [Stack]

  - Max Depth = 144
  - Call Chain = mc0_Init ⇒ mmc_Init ⇒ mmc_read_csd ⇒ mmc_read_info ⇒ mmc_command
  [Calls]
  - >> mmc_Init
  [Address Reference Count : 1]
  - file_config.o(.constdata)

  mc0_RdInfo (Thumb, 6 bytes, Stack size 0 bytes, file_config.o(i.mc0_RdInfo))
  [Stack]

  - Max Depth = 128
  - Call Chain = mc0_RdInfo ⇒ mmc_ReadInfo ⇒ mmc_read_csd ⇒ mmc_read_info ⇒ mmc_command
  [Calls]
  - >> mmc_ReadInfo
  [Address Reference Count : 1]
  - file_config.o(.constdata)

  mc0_RdSect (Thumb, 6 bytes, Stack size 0 bytes, file_config.o(i.mc0_RdSect))
  [Stack]

  - Max Depth = 80
  - Call Chain = mc0_RdSect ⇒ mmc_ReadSector ⇒ mmc_read_block ⇒ mmc_command
  [Calls]
  - >> mmc_ReadSector
  [Address Reference Count : 1]
  - file_config.o(.constdata)

  mc0_UnInit (Thumb, 6 bytes, Stack size 0 bytes, file_config.o(i.mc0_UnInit))
  [Calls]

  - >> mmc_UnInit
  [Address Reference Count : 1]
  - file_config.o(.constdata)

  mc0_WrSect (Thumb, 6 bytes, Stack size 0 bytes, file_config.o(i.mc0_WrSect))
  [Stack]

  - Max Depth = 80
  - Call Chain = mc0_WrSect ⇒ mmc_WriteSector ⇒ mmc_write_block ⇒ mmc_command
  [Calls]
  - >> mmc_WriteSector
  [Address Reference Count : 1]
  - file_config.o(.constdata)

  BusSpeed (Thumb, 108 bytes, Stack size 0 bytes, spi_stm32f103.o(i.BusSpeed))
  [Address Reference Count : 1]

  - spi_stm32f103.o(.constdata)

  CheckMedia (Thumb, 8 bytes, Stack size 0 bytes, spi_stm32f103.o(i.CheckMedia))
  [Address Reference Count : 1]

  - spi_stm32f103.o(.constdata)

  Init (Thumb, 164 bytes, Stack size 32 bytes, spi_stm32f103.o(i.Init))
  [Stack]

  - Max Depth = 56
  - Call Chain = Init ⇒ GPIO_Init
  [Calls]
  - >> GPIO_Init
  - >> RCC_APB2PeriphClockCmd
  - >> SPI_Init
  - >> SPI_Cmd
  [Address Reference Count : 1]
  - spi_stm32f103.o(.constdata)

  RecBuf (Thumb, 46 bytes, Stack size 8 bytes, spi_stm32f103.o(i.RecBuf))
  [Stack]

  - Max Depth = 8
  - Call Chain = RecBuf
  [Address Reference Count : 1]
  - spi_stm32f103.o(.constdata)

  Send (Thumb, 28 bytes, Stack size 0 bytes, spi_stm32f103.o(i.Send))
  [Address Reference Count : 1]

  - spi_stm32f103.o(.constdata)

  SendBuf (Thumb, 62 bytes, Stack size 8 bytes, spi_stm32f103.o(i.SendBuf))
  [Stack]

  - Max Depth = 8
  - Call Chain = SendBuf
  [Address Reference Count : 1]
  - spi_stm32f103.o(.constdata)

  SetSS (Thumb, 26 bytes, Stack size 0 bytes, spi_stm32f103.o(i.SetSS))
  [Address Reference Count : 1]

  - spi_stm32f103.o(.constdata)

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

  - spi_stm32f103.o(.constdata)

  init_drv (Thumb, 210 bytes, Stack size 8 bytes, fs_mapi.o(i.init_drv))
  [Stack]

  - Max Depth = 88
  - Call Chain = init_drv ⇒ fat_init ⇒ fsinfo_write ⇒ write_cache ⇒ write_sector
  [Calls]
  - >> fat_jour_init
  - >> fat_init
  [Called By]
  - >> finit

  mmc_command (Thumb, 158 bytes, Stack size 32 bytes, fs_mmc.o(i.mmc_command))
  [Stack]

  - Max Depth = 32
  - Call Chain = mmc_command
  [Called By]
  - >> mmc_ReadSector
  - >> mmc_Init
  - >> mmc_write_block
  - >> mmc_read_info
  - >> mmc_read_block

  mmc_fill_cid (Thumb, 132 bytes, Stack size 0 bytes, fs_mmc.o(i.mmc_fill_cid))
  [Called By]

  - >> mmc_read_cid

  mmc_read_block (Thumb, 112 bytes, Stack size 24 bytes, fs_mmc.o(i.mmc_read_block))
  [Stack]

  - Max Depth = 56
  - Call Chain = mmc_read_block ⇒ mmc_command
  [Calls]
  - >> mmc_command
  [Called By]
  - >> mmc_ReadSector

  mmc_read_cid (Thumb, 60 bytes, Stack size 32 bytes, fs_mmc.o(i.mmc_read_cid))
  [Stack]

  - Max Depth = 88
  - Call Chain = mmc_read_cid ⇒ mmc_read_info ⇒ mmc_command
  [Calls]
  - >> mmc_read_info
  - >> mmc_fill_cid
  [Called By]
  - >> mmc_ReadInfo
  - >> mmc_Init
  - >> mmc_DevCtrl

  mmc_read_csd (Thumb, 214 bytes, Stack size 32 bytes, fs_mmc.o(i.mmc_read_csd))
  [Stack]

  - Max Depth = 88
  - Call Chain = mmc_read_csd ⇒ mmc_read_info ⇒ mmc_command
  [Calls]
  - >> mmc_read_info
  [Called By]
  - >> mmc_ReadInfo
  - >> mmc_Init

  mmc_read_info (Thumb, 80 bytes, Stack size 24 bytes, fs_mmc.o(i.mmc_read_info))
  [Stack]

  - Max Depth = 56
  - Call Chain = mmc_read_info ⇒ mmc_command
  [Calls]
  - >> mmc_command
  [Called By]
  - >> mmc_read_csd
  - >> mmc_read_cid

  mmc_write_block (Thumb, 142 bytes, Stack size 24 bytes, fs_mmc.o(i.mmc_write_block))
  [Stack]

  - Max Depth = 56
  - Call Chain = mmc_write_block ⇒ mmc_command
  [Calls]
  - >> mmc_command
  [Called By]
  - >> mmc_WriteSector

  alloc_new_clus (Thumb, 74 bytes, Stack size 24 bytes, fs_fat.o(i.alloc_new_clus))
  [Stack]

  - Max Depth = 72
  - Call Chain = alloc_new_clus ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> write_fat_link
  - >> get_free_clus
  - >> get_EOC
  - >> cache_fat
  [Called By]
  - >> path_create
  - >> frec_allocate

  bs_read (Thumb, 176 bytes, Stack size 8 bytes, fs_fat.o(i.bs_read))
  [Stack]

  - Max Depth = 24
  - Call Chain = bs_read ⇒ read_sector
  [Calls]
  - >> read_sector
  - >> get_u32
  - >> get_u16
  [Called By]
  - >> fat_init

  cache_fat (Thumb, 146 bytes, Stack size 16 bytes, fs_fat.o(i.cache_fat))
  [Stack]

  - Max Depth = 16
  - Call Chain = cache_fat
  [Calls]
  - >> fsj_write
  [Called By]
  - >> write_fat_link
  - >> unlink_clus_chain
  - >> set_next_clus
  - >> get_free_clus
  - >> alloc_new_clus
  - >> fat_close

  char_validate (Thumb, 96 bytes, Stack size 0 bytes, fs_fat.o(i.char_validate))
  [Called By]

  - >> path_validate
  - >> name_basis_gen
  - >> name_analyse

  clear_clus (Thumb, 62 bytes, Stack size 16 bytes, fs_fat.o(i.clear_clus))
  [Stack]

  - Max Depth = 56
  - Call Chain = clear_clus ⇒ write_cache ⇒ write_sector
  [Calls]
  - >> __aeabi_memclr
  - >> write_cache
  - >> clus_to_sect
  [Called By]
  - >> path_create
  - >> frec_allocate

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

  - >> entry_read
  - >> entry_flush
  - >> clear_clus
  - >> fat_write
  - >> fat_read

  create_dot_entries (Thumb, 186 bytes, Stack size 40 bytes, fs_fat.o(i.create_dot_entries))
  [Stack]

  - Max Depth = 72
  - Call Chain = create_dot_entries ⇒ entry_read ⇒ read_sector
  [Calls]
  - >> __aeabi_memcpy4
  - >> entry_read
  - >> set_u16
  - >> get_time
  - >> get_date
  - >> entry_flush
  [Called By]
  - >> path_create

  create_lfn_entry (Thumb, 224 bytes, Stack size 56 bytes, fs_fat.o(i.create_lfn_entry))
  [Stack]

  - Max Depth = 112
  - Call Chain = create_lfn_entry ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> entry_read
  - >> entry_pos_set
  - >> entry_flush
  [Called By]
  - >> path_create

  create_sfn_entry (Thumb, 128 bytes, Stack size 32 bytes, fs_fat.o(i.create_sfn_entry))
  [Stack]

  - Max Depth = 64
  - Call Chain = create_sfn_entry ⇒ entry_read ⇒ read_sector
  [Calls]
  - >> entry_read
  - >> set_u16
  - >> get_time
  - >> get_date
  - >> entry_flush
  [Called By]
  - >> path_create

  entry_flush (Thumb, 40 bytes, Stack size 16 bytes, fs_fat.o(i.entry_flush))
  [Stack]

  - Max Depth = 32
  - Call Chain = entry_flush ⇒ write_sector
  [Calls]
  - >> write_sector
  - >> clus_to_sect
  [Called By]
  - >> create_sfn_entry
  - >> create_lfn_entry
  - >> create_dot_entries
  - >> fat_open
  - >> fat_close

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

  - >> frec_find
  - >> frec_allocate

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

  - >> frec_next
  - >> frec_find
  - >> frec_allocate

  fat_crc32 (Thumb, 42 bytes, Stack size 12 bytes, fs_fat.o(i.fat_crc32))
  [Stack]

  - Max Depth = 12
  - Call Chain = fat_crc32
  [Called By]
  - >> short_ent_hash
  - >> name_hash
  - >> frec_find

  frec_allocate (Thumb, 172 bytes, Stack size 40 bytes, fs_fat.o(i.frec_allocate))
  [Stack]

  - Max Depth = 112
  - Call Chain = frec_allocate ⇒ alloc_new_clus ⇒ write_fat_link ⇒ cache_fat
  [Calls]
  - >> elink_cmd
  - >> entry_read
  - >> entry_pos_set
  - >> entry_type
  - >> entry_pos_comp
  - >> clear_clus
  - >> alloc_new_clus
  [Called By]
  - >> path_create

  frec_find (Thumb, 546 bytes, Stack size 136 bytes, fs_fat.o(i.frec_find))
  [Stack]

  - Max Depth = 192
  - Call Chain = frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> elink_insert
  - >> elink_cmd
  - >> strncasecmp
  - >> entry_read
  - >> entry_pos_set
  - >> sn_chksum
  - >> short_ent_hash
  - >> sfn_extract
  - >> fat_crc32
  - >> entry_type
  - >> entry_pos_comp
  [Called By]
  - >> path_open
  - >> path_create

  frec_find_elink (Thumb, 88 bytes, Stack size 24 bytes, fs_fat.o(i.frec_find_elink))
  [Stack]

  - Max Depth = 56
  - Call Chain = frec_find_elink ⇒ entry_read ⇒ read_sector
  [Calls]
  - >> elink_scan
  - >> entry_read
  - >> name_hash
  [Called By]
  - >> path_open
  - >> path_create

  frec_next (Thumb, 268 bytes, Stack size 64 bytes, fs_fat.o(i.frec_next))
  [Stack]

  - Max Depth = 120
  - Call Chain = frec_next ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> entry_read
  - >> entry_pos_set
  - >> sn_chksum
  - >> sfn_extract
  - >> entry_type
  [Called By]
  - >> fat_ffind

  fsinfo_read (Thumb, 114 bytes, Stack size 8 bytes, fs_fat.o(i.fsinfo_read))
  [Stack]

  - Max Depth = 24
  - Call Chain = fsinfo_read ⇒ read_sector
  [Calls]
  - >> read_sector
  - >> get_u32
  [Called By]
  - >> fat_init

  fsinfo_write (Thumb, 90 bytes, Stack size 8 bytes, fs_fat.o(i.fsinfo_write))
  [Stack]

  - Max Depth = 48
  - Call Chain = fsinfo_write ⇒ write_cache ⇒ write_sector
  [Calls]
  - >> __aeabi_memclr
  - >> write_cache
  - >> set_u32
  - >> set_u16
  [Called By]
  - >> fat_init
  - >> fat_open
  - >> fat_close

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

  - >> alloc_new_clus
  - >> fat_write

  get_date (Thumb, 46 bytes, Stack size 8 bytes, fs_fat.o(i.get_date))
  [Stack]

  - Max Depth = 8
  - Call Chain = get_date
  [Calls]
  - >> fs_get_date
  [Called By]
  - >> create_sfn_entry
  - >> create_dot_entries
  - >> fat_open
  - >> fat_close

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

  - >> write_fat_link
  - >> unlink_clus_chain
  - >> set_next_clus
  - >> get_free_clus

  get_free_clus (Thumb, 212 bytes, Stack size 24 bytes, fs_fat.o(i.get_free_clus))
  [Stack]

  - Max Depth = 40
  - Call Chain = get_free_clus ⇒ cache_fat
  [Calls]
  - >> get_u32
  - >> get_u16
  - >> get_fat_sect
  - >> cache_fat
  [Called By]
  - >> alloc_new_clus
  - >> fat_write

  get_time (Thumb, 46 bytes, Stack size 8 bytes, fs_fat.o(i.get_time))
  [Stack]

  - Max Depth = 8
  - Call Chain = get_time
  [Calls]
  - >> fs_get_time
  [Called By]
  - >> create_sfn_entry
  - >> create_dot_entries
  - >> fat_open
  - >> fat_close

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

  - >> write_fat_link
  - >> unlink_clus_chain
  - >> set_next_clus
  - >> path_open
  - >> get_free_clus
  - >> bs_read
  - >> fat_init
  - >> fat_ffind
  - >> fat_open

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

  - >> write_fat_link
  - >> unlink_clus_chain
  - >> set_next_clus
  - >> get_free_clus
  - >> fsinfo_read
  - >> bs_read
  - >> fat_init
  - >> fat_ffind
  - >> fat_open

  is_EOC (Thumb, 48 bytes, Stack size 0 bytes, fs_fat.o(i.is_EOC))
  [Called By]

  - >> entry_pos_set
  - >> unlink_clus_chain
  - >> fat_seek

  name_analyse (Thumb, 142 bytes, Stack size 40 bytes, fs_fat.o(i.name_analyse))
  [Stack]

  - Max Depth = 40
  - Call Chain = name_analyse
  [Calls]
  - >> char_validate
  [Called By]
  - >> path_open
  - >> path_create

  name_basis_gen (Thumb, 180 bytes, Stack size 40 bytes, fs_fat.o(i.name_basis_gen))
  [Stack]

  - Max Depth = 40
  - Call Chain = name_basis_gen
  [Calls]
  - >> char_validate
  [Called By]
  - >> path_create

  name_hash (Thumb, 8 bytes, Stack size 0 bytes, fs_fat.o(i.name_hash))
  [Stack]

  - Max Depth = 12
  - Call Chain = name_hash ⇒ fat_crc32
  [Calls]
  - >> fat_crc32
  [Called By]
  - >> path_create
  - >> frec_find_elink

  name_nt_gen (Thumb, 288 bytes, Stack size 24 bytes, fs_fat.o(i.name_nt_gen))
  [Stack]

  - Max Depth = 24
  - Call Chain = name_nt_gen
  [Called By]
  - >> path_create

  name_strip (Thumb, 82 bytes, Stack size 12 bytes, fs_fat.o(i.name_strip))
  [Stack]

  - Max Depth = 12
  - Call Chain = name_strip
  [Called By]
  - >> path_open
  - >> path_create

  path_create (Thumb, 524 bytes, Stack size 144 bytes, fs_fat.o(i.path_create))
  [Stack]

  - Max Depth = 336
  - Call Chain = path_create ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> elink_insert
  - >> elink_cmd
  - >> __aeabi_memcpy4
  - >> __aeabi_memcpy
  - >> strlen
  - >> sn_chksum
  - >> short_ent_hash
  - >> name_strip
  - >> name_nt_gen
  - >> name_hash
  - >> name_basis_gen
  - >> name_analyse
  - >> frec_find_elink
  - >> frec_find
  - >> frec_allocate
  - >> create_sfn_entry
  - >> create_lfn_entry
  - >> create_dot_entries
  - >> clear_clus
  - >> alloc_new_clus
  [Called By]
  - >> fat_open

  path_open (Thumb, 152 bytes, Stack size 24 bytes, fs_fat.o(i.path_open))
  [Stack]

  - Max Depth = 216
  - Call Chain = path_open ⇒ frec_find ⇒ entry_pos_set ⇒ set_next_clus ⇒ cache_fat
  [Calls]
  - >> elink_cmd
  - >> name_strip
  - >> name_analyse
  - >> get_u16
  - >> frec_find_elink
  - >> frec_find
  [Called By]
  - >> fat_ffind
  - >> fat_open

  read_cache (Thumb, 122 bytes, Stack size 16 bytes, fs_fat.o(i.read_cache))
  [Stack]

  - Max Depth = 32
  - Call Chain = read_cache ⇒ read_sector
  [Calls]
  - >> __aeabi_memcpy
  - >> read_sector
  [Called By]
  - >> fat_init
  - >> fat_read

  read_sector (Thumb, 82 bytes, Stack size 16 bytes, fs_fat.o(i.read_sector))
  [Stack]

  - Max Depth = 16
  - Call Chain = read_sector
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> entry_read
  - >> read_cache
  - >> fsinfo_read
  - >> bs_read
  - >> fat_init
  - >> fat_write

  set_next_clus (Thumb, 148 bytes, Stack size 24 bytes, fs_fat.o(i.set_next_clus))
  [Stack]

  - Max Depth = 40
  - Call Chain = set_next_clus ⇒ cache_fat
  [Calls]
  - >> get_u32
  - >> get_u16
  - >> get_fat_sect
  - >> cache_fat
  [Called By]
  - >> entry_pos_set
  - >> fat_write
  - >> fat_seek
  - >> fat_read

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

  - >> fat_ffind
  - >> fat_open

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

  - >> write_fat_link
  - >> unlink_clus_chain
  - >> fsinfo_write
  - >> create_sfn_entry
  - >> create_dot_entries
  - >> fat_open
  - >> fat_close

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

  - >> write_fat_link
  - >> fsinfo_write
  - >> fat_close

  sfn_extract (Thumb, 72 bytes, Stack size 8 bytes, fs_fat.o(i.sfn_extract))
  [Stack]

  - Max Depth = 8
  - Call Chain = sfn_extract
  [Called By]
  - >> short_ent_hash
  - >> frec_next
  - >> frec_find

  short_ent_hash (Thumb, 26 bytes, Stack size 24 bytes, fs_fat.o(i.short_ent_hash))
  [Stack]

  - Max Depth = 36
  - Call Chain = short_ent_hash ⇒ fat_crc32
  [Calls]
  - >> sfn_extract
  - >> fat_crc32
  [Called By]
  - >> path_create
  - >> frec_find

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

  - >> path_create
  - >> frec_next
  - >> frec_find

  unlink_clus_chain (Thumb, 312 bytes, Stack size 32 bytes, fs_fat.o(i.unlink_clus_chain))
  [Stack]

  - Max Depth = 48
  - Call Chain = unlink_clus_chain ⇒ cache_fat
  [Calls]
  - >> set_u16
  - >> is_EOC
  - >> get_u32
  - >> get_u16
  - >> get_fat_sect
  - >> cache_fat
  [Called By]
  - >> fat_open

  write_cache (Thumb, 174 bytes, Stack size 24 bytes, fs_fat.o(i.write_cache))
  [Stack]

  - Max Depth = 40
  - Call Chain = write_cache ⇒ write_sector
  [Calls]
  - >> __aeabi_memcpy
  - >> write_sector
  [Called By]
  - >> fsinfo_write
  - >> clear_clus
  - >> fat_write
  - >> fat_close

  write_fat_link (Thumb, 230 bytes, Stack size 32 bytes, fs_fat.o(i.write_fat_link))
  [Stack]

  - Max Depth = 48
  - Call Chain = write_fat_link ⇒ cache_fat
  [Calls]
  - >> set_u32
  - >> set_u16
  - >> get_u32
  - >> get_u16
  - >> get_fat_sect
  - >> cache_fat
  [Called By]
  - >> alloc_new_clus
  - >> fat_write

  write_sector (Thumb, 48 bytes, Stack size 16 bytes, fs_fat.o(i.write_sector))
  [Stack]

  - Max Depth = 16
  - Call Chain = write_sector
  [Calls]
  - >> fsj_write
  [Called By]
  - >> write_cache
  - >> entry_flush

  _printf_input_char (Thumb, 10 bytes, Stack size 0 bytes, _printf_char_common.o(.text))
  [Address Reference Count : 1]

  - _printf_char_common.o(.text)

  ### Undefined Global Symbols