# Static Call Graph - [..\OBJ\FATFS.axf]

# Static Call Graph for image ..\OBJ\FATFS.axf

#<CALLGRAPH># ARM Linker, 5060300: Last Updated: Fri Nov 08 17:52:11 2024

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

### Call chain for Maximum Stack Depth:

model_write ⇒ model_write (Cycle)

### Mutually Recursive functions

- ADC_IRQHandler ⇒ ADC_IRQHandler
- BusFault_Handler ⇒ BusFault_Handler
- HardFault_Handler ⇒ HardFault_Handler
- MemManage_Handler ⇒ MemManage_Handler
- UsageFault_Handler ⇒ UsageFault_Handler
- model_write ⇒ model_write
- model_info ⇒ model_info
- model_read ⇒ model_read
- modelmym_free ⇒ modelmym_free
- usmart_strcmp ⇒ usmart_strcmp
- usmart_strcopy ⇒ usmart_strcopy
- usmart_search_nextc ⇒ usmart_search_nextc

  ### Function Pointers

  - ADC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - BusFault_Handler from stm32f4xx_it.o(i.BusFault_Handler) referenced from startup_stm32f429xx.o(RESET)
  - CAN1_RX0_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - CAN1_RX1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - CAN1_SCE_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - CAN1_TX_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - CAN2_RX0_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - CAN2_RX1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - CAN2_SCE_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - CAN2_TX_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DCMI_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DEBUG from debug.o(i.DEBUG) referenced 2 times from usmart_config.o(.data)
  - DMA1_Stream0_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA1_Stream1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA1_Stream2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA1_Stream3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA1_Stream4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA1_Stream5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA1_Stream6_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA1_Stream7_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA2D_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA2_Stream0_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA2_Stream1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA2_Stream2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA2_Stream3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA2_Stream4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA2_Stream5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA2_Stream6_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DMA2_Stream7_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - DebugMon_Handler from stm32f4xx_it.o(i.DebugMon_Handler) referenced from startup_stm32f429xx.o(RESET)
  - ETH_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - ETH_WKUP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - EXTI0_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - EXTI15_10_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - EXTI1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - EXTI2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - EXTI3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - EXTI4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - EXTI9_5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - FLASH_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - FMC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - FPU_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - HASH_RNG_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - HardFault_Handler from stm32f4xx_it.o(i.HardFault_Handler) referenced from startup_stm32f429xx.o(RESET)
  - I2C1_ER_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - I2C1_EV_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - I2C2_ER_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - I2C2_EV_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - I2C3_ER_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - I2C3_EV_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - LTDC_ER_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - LTDC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - MemManage_Handler from stm32f4xx_it.o(i.MemManage_Handler) referenced from startup_stm32f429xx.o(RESET)
  - NMI_Handler from stm32f4xx_it.o(i.NMI_Handler) referenced from startup_stm32f429xx.o(RESET)
  - OTG_FS_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - OTG_FS_WKUP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - OTG_HS_EP1_IN_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - OTG_HS_EP1_OUT_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - OTG_HS_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - OTG_HS_WKUP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - PVD_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - PendSV_Handler from stm32f4xx_it.o(i.PendSV_Handler) referenced from startup_stm32f429xx.o(RESET)
  - RCC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - RTC_Alarm_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - RTC_WKUP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - Reset_Handler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - SAI1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - SDIO_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - SDRAM_USED from debug.o(i.SDRAM_USED) referenced 2 times from usmart_config.o(.data)
  - SPI1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - SPI2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - SPI3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - SPI4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - SPI5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - SPI6_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - SVC_Handler from stm32f4xx_it.o(i.SVC_Handler) referenced from startup_stm32f429xx.o(RESET)
  - SysTick_Handler from stm32f4xx_it.o(i.SysTick_Handler) referenced from startup_stm32f429xx.o(RESET)
  - SystemInit from system_stm32f4xx.o(i.SystemInit) referenced from startup_stm32f429xx.o(.text)
  - TAMP_STAMP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM1_BRK_TIM9_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM1_CC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM1_TRG_COM_TIM11_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM1_UP_TIM10_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM3_IRQHandler from debug.o(i.TIM3_IRQHandler) referenced from startup_stm32f429xx.o(RESET)
  - TIM4_IRQHandler from usmart.o(i.TIM4_IRQHandler) referenced from startup_stm32f429xx.o(RESET)
  - TIM5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM6_DAC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM7_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM8_BRK_TIM12_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM8_CC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM8_TRG_COM_TIM14_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - TIM8_UP_TIM13_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - UART4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - UART5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - UART7_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - UART8_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - USART1_IRQHandler from usart.o(i.USART1_IRQHandler) referenced from startup_stm32f429xx.o(RESET)
  - USART2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - USART3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - USART6_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - UsageFault_Handler from stm32f4xx_it.o(i.UsageFault_Handler) referenced from startup_stm32f429xx.o(RESET)
  - WWDG_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f429xx.o(.text)
  - _cnn_run from cnn.o(i._cnn_run) referenced 2 times from usmart_config.o(.data)
  - _sbackspace from _sgetc.o(.text) referenced from strtod.o(.text)
  - _sgetc from _sgetc.o(.text) referenced from strtod.o(.text)
  - _sputc from printfa.o(i._sputc) referenced from printfa.o(i.__0sprintf)
  - fputc from usart.o(i.fputc) referenced from printfa.o(i.__0printf)
  - fputc from usart.o(i.fputc) referenced from printfa.o(i.__0vprintf)
  - isspace from isspace_c.o(.text) referenced from strtod.o(.text)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - mf_close from fattester.o(i.mf_close) referenced 2 times from usmart_config.o(.data)
  - mf_closedir from fattester.o(i.mf_closedir) referenced 2 times from usmart_config.o(.data)
  - mf_fmkfs from fattester.o(i.mf_fmkfs) referenced 2 times from usmart_config.o(.data)
  - mf_getlabel from fattester.o(i.mf_getlabel) referenced 2 times from usmart_config.o(.data)
  - mf_gets from fattester.o(i.mf_gets) referenced 2 times from usmart_config.o(.data)
  - mf_lseek from fattester.o(i.mf_lseek) referenced 2 times from usmart_config.o(.data)
  - mf_mkdir from fattester.o(i.mf_mkdir) referenced 2 times from usmart_config.o(.data)
  - mf_mount from fattester.o(i.mf_mount) referenced 2 times from usmart_config.o(.data)
  - mf_open from fattester.o(i.mf_open) referenced 2 times from usmart_config.o(.data)
  - mf_opendir from fattester.o(i.mf_opendir) referenced 2 times from usmart_config.o(.data)
  - mf_putc from fattester.o(i.mf_putc) referenced 2 times from usmart_config.o(.data)
  - mf_puts from fattester.o(i.mf_puts) referenced 2 times from usmart_config.o(.data)
  - mf_read from fattester.o(i.mf_read) referenced 2 times from usmart_config.o(.data)
  - mf_readdir from fattester.o(i.mf_readdir) referenced 2 times from usmart_config.o(.data)
  - mf_rename from fattester.o(i.mf_rename) referenced 2 times from usmart_config.o(.data)
  - mf_scan_files from fattester.o(i.mf_scan_files) referenced 2 times from usmart_config.o(.data)
  - mf_setlabel from fattester.o(i.mf_setlabel) referenced 2 times from usmart_config.o(.data)
  - mf_showfree from fattester.o(i.mf_showfree) referenced 2 times from usmart_config.o(.data)
  - mf_size from fattester.o(i.mf_size) referenced 2 times from usmart_config.o(.data)
  - mf_tell from fattester.o(i.mf_tell) referenced 2 times from usmart_config.o(.data)
  - mf_unlink from fattester.o(i.mf_unlink) referenced 2 times from usmart_config.o(.data)
  - mf_write from fattester.o(i.mf_write) referenced 2 times from usmart_config.o(.data)
  - model_dataset from my.o(i.model_dataset) referenced 2 times from usmart_config.o(.data)
  - model_info from my.o(i.model_info) referenced 2 times from usmart_config.o(.data)
  - model_init from my.o(i.model_init) referenced 2 times from usmart_config.o(.data)
  - model_read from my.o(i.model_read) referenced 2 times from usmart_config.o(.data)
  - model_switchdata from my.o(i.model_switchdata) referenced 2 times from usmart_config.o(.data)
  - model_write from my.o(i.model_write) referenced 2 times from usmart_config.o(.data)
  - modelmym_free from my.o(i.modelmym_free) referenced 2 times from usmart_config.o(.data)
  - modelmym_init from my.o(i.modelmym_init) referenced 2 times from usmart_config.o(.data)
  - my_mem_init from malloc.o(i.my_mem_init) referenced 2 times from malloc.o(.data)
  - my_mem_perused from malloc.o(i.my_mem_perused) referenced 2 times from malloc.o(.data)
  - read_addr from usmart.o(i.read_addr) referenced 2 times from usmart_config.o(.data)
  - usmart_cmd_rec from usmart.o(i.usmart_cmd_rec) referenced 2 times from usmart_config.o(.data)
  - usmart_exe from usmart.o(i.usmart_exe) referenced 2 times from usmart_config.o(.data)
  - usmart_init from usmart.o(i.usmart_init) referenced 2 times from usmart_config.o(.data)
  - usmart_scan from usmart.o(i.usmart_scan) referenced 2 times from usmart_config.o(.data)
  - write_addr from usmart.o(i.write_addr) referenced 2 times from usmart_config.o(.data)

  ### Global Symbols

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

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

  WFI_SET (Thumb, 2 bytes, Stack size 0 bytes, sys.o(.emb_text), UNUSED)

  INTX_DISABLE (Thumb, 4 bytes, Stack size 0 bytes, sys.o(.emb_text))
  [Called By]

  - >> SD_WriteDisk
  - >> SD_ReadDisk

  INTX_ENABLE (Thumb, 4 bytes, Stack size 0 bytes, sys.o(.emb_text))
  [Called By]

  - >> SD_WriteDisk
  - >> SD_ReadDisk

  MSR_MSP (Thumb, 6 bytes, Stack size 0 bytes, sys.o(.emb_text), UNUSED)

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

  - startup_stm32f429xx.o(RESET)

  ADC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
  [Calls]

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

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

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

  - Max Depth = 40
  - Call Chain = __aeabi_uldivmod
  [Calls]
  - >> __aeabi_llsr
  - >> __aeabi_llsl
  [Called By]
  - >> f_lseek
  - >> clmt_clust
  - >> _printf_core
  - >> _fp_digits

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

  - >> SD_WriteDisk
  - >> SD_ReadDisk

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

  - >> cnn_run

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

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

  - >> _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))
  [Calls]

  - >> __aeabi_memset
  [Called By]
  - >> FTL_Init

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

  - >> model_write
  - >> cnn_run

  __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

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

  - >> model_write

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

  - >> model_write
  - >> model_switchdata

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

  - Max Depth = 8
  - Call Chain = strcmp
  [Called By]
  - >> model_write
  - >> modelmym_init
  - >> modelmym_free
  - >> model_read
  - >> model_info
  - >> model

  __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]
  - >> __hardfp_exp
  - >> _fp_value
  - >> __kernel_poly
  - >> __mathlib_dbl_underflow
  - >> __mathlib_dbl_overflow
  - >> _fp_digits

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

  - >> cnn_run
  - >> model_read
  - >> calculate_statistics
  - >> calculate_probabilities
  - >> PrintfResArray

  __aeabi_d2f (Thumb, 56 bytes, Stack size 8 bytes, d2f.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_d2f
  [Calls]
  - >> _float_round
  [Called By]
  - >> model_write
  - >> calculate_statistics
  - >> calculate_probabilities
  - >> _scanf_really_real

  __aeabi_uidiv (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)

  __aeabi_uidivmod (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
  [Called By]

  - >> _printf_core

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

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

  _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_uldivmod
  - >> _dsqrt
  - >> __aeabi_d2iz
  - >> _double_epilogue
  - >> __aeabi_d2ulz

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

  __strtod_int (Thumb, 90 bytes, Stack size 40 bytes, strtod.o(.text))
  [Stack]

  - Max Depth = 200
  - Call Chain = __strtod_int ⇒ _local_sscanf ⇒ _scanf_real
  [Calls]
  - >> _local_sscanf
  [Called By]
  - >> __hardfp_atof

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

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

  - >> __aeabi_d2f

  _float_epilogue (Thumb, 92 bytes, Stack size 4 bytes, fepilogue.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]
  - >> _dsqrt
  - >> __aeabi_ddiv
  - >> __aeabi_dadd
  - >> _double_epilogue

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

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

  __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
  - >> _double_round
  - >> __aeabi_llsl
  - >> _double_epilogue
  [Called By]
  - >> __aeabi_dsub
  - >> __aeabi_drsub
  - >> __hardfp_exp
  - >> __kernel_poly
  - >> __mathlib_dbl_infnan
  - >> _fp_digits

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

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

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

  __aeabi_ddiv (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = __aeabi_ddiv ⇒ _double_round
  [Calls]
  - >> _double_round
  [Called By]
  - >> __hardfp_exp
  - >> _fp_value
  - >> _fp_digits

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

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

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

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

  __aeabi_d2ulz (Thumb, 48 bytes, Stack size 0 bytes, dfixul.o(.text), UNUSED)
  [Calls]

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

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

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

  - >> __hardfp_exp

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

  - >> __hardfp_exp
  - >> _fp_digits

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

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

  isspace (Thumb, 10 bytes, Stack size 0 bytes, isspace_c.o(.text))
  [Calls]

  - >> __ctype_lookup
  [Address Reference Count : 1]
  - strtod.o(.text)

  _scanf_real (Thumb, 0 bytes, Stack size 104 bytes, scanf_fp.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = _scanf_real
  [Called By]
  - >> _local_sscanf

  _scanf_really_real (Thumb, 556 bytes, Stack size 104 bytes, scanf_fp.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_d2f
  - >> _is_digit
  - >> _fp_value

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

  - strtod.o(.text)

  _sbackspace (Thumb, 34 bytes, Stack size 0 bytes, _sgetc.o(.text))
  [Address Reference Count : 1]

  - strtod.o(.text)

  __ctype_lookup (Thumb, 34 bytes, Stack size 0 bytes, ctype_c.o(.text))
  [Called By]

  - >> isspace

  __aeabi_ul2d (Thumb, 24 bytes, Stack size 16 bytes, dfltul.o(.text), UNUSED)
  [Calls]

  - >> _double_epilogue
  [Called By]
  - >> _fp_value

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

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

  AddBias (Thumb, 34 bytes, Stack size 8 bytes, cnn.o(i.AddBias))
  [Stack]

  - Max Depth = 8
  - Call Chain = AddBias
  [Called By]
  - >> cnn_run

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

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

  Combine (Thumb, 70 bytes, Stack size 20 bytes, cnn.o(i.Combine))
  [Stack]

  - Max Depth = 20
  - Call Chain = Combine
  [Called By]
  - >> cnn_run

  ConnectedLayer (Thumb, 42 bytes, Stack size 8 bytes, cnn.o(i.ConnectedLayer))
  [Stack]

  - Max Depth = 8
  - Call Chain = ConnectedLayer
  [Called By]
  - >> cnn_run

  Convolution (Thumb, 128 bytes, Stack size 36 bytes, cnn.o(i.Convolution))
  [Stack]

  - Max Depth = 36
  - Call Chain = Convolution
  [Called By]
  - >> cnn_run

  DEBUG (Thumb, 28 bytes, Stack size 0 bytes, debug.o(i.DEBUG))
  [Stack]

  - Max Depth = 24
  - Call Chain = DEBUG ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  DEBUG_PRINTF (Thumb, 26 bytes, Stack size 24 bytes, debug.o(i.DEBUG_PRINTF))
  [Stack]

  - Max Depth = 24
  - Call Chain = DEBUG_PRINTF
  [Calls]
  - >> vprintf
  [Called By]
  - >> model_write
  - >> cnn_run
  - >> model_switchdata

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

  - startup_stm32f429xx.o(RESET)

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

  - >> HAL_NAND_Init

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

  - >> HAL_NAND_Init

  FMC_NAND_Init (Thumb, 74 bytes, Stack size 12 bytes, stm32f4xx_ll_fmc.o(i.FMC_NAND_Init))
  [Stack]

  - Max Depth = 12
  - Call Chain = FMC_NAND_Init
  [Called By]
  - >> HAL_NAND_Init

  FMC_SDRAM_Init (Thumb, 76 bytes, Stack size 12 bytes, stm32f4xx_ll_fmc.o(i.FMC_SDRAM_Init))
  [Stack]

  - Max Depth = 12
  - Call Chain = FMC_SDRAM_Init
  [Called By]
  - >> HAL_SDRAM_Init

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

  - >> HAL_SDRAM_ProgramRefreshRate

  FMC_SDRAM_SendCommand (Thumb, 72 bytes, Stack size 24 bytes, stm32f4xx_ll_fmc.o(i.FMC_SDRAM_SendCommand))
  [Stack]

  - Max Depth = 24
  - Call Chain = FMC_SDRAM_SendCommand
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> HAL_SDRAM_SendCommand

  FMC_SDRAM_Timing_Init (Thumb, 124 bytes, Stack size 20 bytes, stm32f4xx_ll_fmc.o(i.FMC_SDRAM_Timing_Init))
  [Stack]

  - Max Depth = 20
  - Call Chain = FMC_SDRAM_Timing_Init
  [Called By]
  - >> HAL_SDRAM_Init

  FTL_BadBlockMark (Thumb, 44 bytes, Stack size 16 bytes, ftl.o(i.FTL_BadBlockMark))
  [Stack]

  - Max Depth = 88
  - Call Chain = FTL_BadBlockMark ⇒ NAND_WriteSpare ⇒ NAND_WritePage ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> NAND_WriteSpare
  [Called By]
  - >> FTL_ReadSectors
  - >> FTL_Format
  - >> FTL_CopyAndWriteToBlock

  FTL_BlockCompare (Thumb, 156 bytes, Stack size 40 bytes, ftl.o(i.FTL_BlockCompare))
  [Stack]

  - Max Depth = 84
  - Call Chain = FTL_BlockCompare ⇒ NAND_ReadPageComp ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> NAND_WritePageConst
  - >> NAND_ReadPageComp
  - >> NAND_EraseBlock
  - >> __2printf
  [Called By]
  - >> FTL_ReadSectors

  FTL_CheckBadBlock (Thumb, 70 bytes, Stack size 16 bytes, ftl.o(i.FTL_CheckBadBlock))
  [Stack]

  - Max Depth = 112
  - Call Chain = FTL_CheckBadBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_ReadSpare
  [Called By]
  - >> FTL_Format

  FTL_CopyAndWriteToBlock (Thumb, 196 bytes, Stack size 40 bytes, ftl.o(i.FTL_CopyAndWriteToBlock))
  [Stack]

  - Max Depth = 176
  - Call Chain = FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_EraseBlock
  - >> NAND_CopyPageWithoutWrite
  - >> NAND_CopyPageWithWrite
  - >> FTL_UsedBlockMark
  - >> FTL_FindSamePlaneUnusedBlock
  - >> FTL_CreateLUT
  - >> FTL_BadBlockMark
  [Called By]
  - >> FTL_WriteSectors
  - >> FTL_ReadSectors

  FTL_CreateLUT (Thumb, 170 bytes, Stack size 24 bytes, ftl.o(i.FTL_CreateLUT))
  [Stack]

  - Max Depth = 120
  - Call Chain = FTL_CreateLUT ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_ReadSpare
  - >> __2printf
  [Called By]
  - >> FTL_Init
  - >> FTL_ReadSectors
  - >> FTL_Format
  - >> FTL_CopyAndWriteToBlock

  FTL_FindSamePlaneUnusedBlock (Thumb, 66 bytes, Stack size 16 bytes, ftl.o(i.FTL_FindSamePlaneUnusedBlock))
  [Stack]

  - Max Depth = 136
  - Call Chain = FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> FTL_FindUnusedBlock
  [Called By]
  - >> FTL_CopyAndWriteToBlock

  FTL_FindUnusedBlock (Thumb, 62 bytes, Stack size 24 bytes, ftl.o(i.FTL_FindUnusedBlock))
  [Stack]

  - Max Depth = 120
  - Call Chain = FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_ReadSpare
  [Called By]
  - >> FTL_FindSamePlaneUnusedBlock

  FTL_Format (Thumb, 150 bytes, Stack size 24 bytes, ftl.o(i.FTL_Format))
  [Stack]

  - Max Depth = 144
  - Call Chain = FTL_Format ⇒ FTL_CreateLUT ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_WriteSpare
  - >> NAND_EraseBlock
  - >> FTL_CreateLUT
  - >> FTL_CheckBadBlock
  - >> FTL_BadBlockMark
  - >> __2printf
  [Called By]
  - >> FTL_Init

  FTL_Init (Thumb, 106 bytes, Stack size 8 bytes, ftl.o(i.FTL_Init))
  [Stack]

  - Max Depth = 152
  - Call Chain = FTL_Init ⇒ FTL_Format ⇒ FTL_CreateLUT ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> mymalloc
  - >> myfree
  - >> NAND_Init
  - >> FTL_Format
  - >> FTL_CreateLUT
  - >> __aeabi_memclr
  - >> __2printf
  [Called By]
  - >> main
  - >> disk_initialize

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

  - >> FTL_WriteSectors
  - >> FTL_ReadSectors

  FTL_ReadSectors (Thumb, 266 bytes, Stack size 56 bytes, ftl.o(i.FTL_ReadSectors))
  [Stack]

  - Max Depth = 232
  - Call Chain = FTL_ReadSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_ReadPage
  - >> NAND_EraseBlock
  - >> FTL_LBNToPBN
  - >> FTL_CreateLUT
  - >> FTL_CopyAndWriteToBlock
  - >> FTL_BlockCompare
  - >> FTL_BadBlockMark
  [Called By]
  - >> disk_read

  FTL_UsedBlockMark (Thumb, 26 bytes, Stack size 8 bytes, ftl.o(i.FTL_UsedBlockMark))
  [Stack]

  - Max Depth = 80
  - Call Chain = FTL_UsedBlockMark ⇒ NAND_WriteSpare ⇒ NAND_WritePage ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> NAND_WriteSpare
  [Called By]
  - >> FTL_WriteSectors
  - >> FTL_CopyAndWriteToBlock

  FTL_WriteSectors (Thumb, 274 bytes, Stack size 72 bytes, ftl.o(i.FTL_WriteSectors))
  [Stack]

  - Max Depth = 248
  - Call Chain = FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_WritePage
  - >> NAND_ReadPageComp
  - >> FTL_UsedBlockMark
  - >> FTL_LBNToPBN
  - >> FTL_CopyAndWriteToBlock
  [Called By]
  - >> disk_write

  Flatten2D (Thumb, 66 bytes, Stack size 20 bytes, cnn.o(i.Flatten2D))
  [Stack]

  - Max Depth = 20
  - Call Chain = Flatten2D
  [Called By]
  - >> cnn_run

  Full (Thumb, 78 bytes, Stack size 20 bytes, cnn.o(i.Full))
  [Stack]

  - Max Depth = 20
  - Call Chain = Full
  [Called By]
  - >> cnn_run

  HAL_Delay (Thumb, 22 bytes, Stack size 16 bytes, stm32f4xx_hal.o(i.HAL_Delay))
  [Stack]

  - Max Depth = 16
  - Call Chain = HAL_Delay
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> SD_PowerON

  HAL_GPIO_Init (Thumb, 422 bytes, Stack size 40 bytes, stm32f4xx_hal_gpio.o(i.HAL_GPIO_Init))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_GPIO_Init
  [Called By]
  - >> LED_Init
  - >> HAL_SDRAM_MspInit
  - >> HAL_UART_MspInit
  - >> HAL_NAND_MspInit
  - >> W25QXX_Init
  - >> HAL_SPI_MspInit
  - >> HAL_SD_MspInit

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

  - >> LED_Init

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

  - >> UART_WaitOnFlagUntilTimeout
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> HAL_PWREx_EnableOverDrive
  - >> HAL_Delay
  - >> SPI_WaitOnFlagUntilTimeout
  - >> FMC_SDRAM_SendCommand

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

  - >> SysTick_Handler

  HAL_Init (Thumb, 48 bytes, Stack size 8 bytes, stm32f4xx_hal.o(i.HAL_Init))
  [Stack]

  - Max Depth = 36
  - Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_MspInit
  - >> HAL_InitTick
  - >> HAL_NVIC_SetPriorityGrouping
  [Called By]
  - >> main

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

  - Max Depth = 28
  - Call Chain = HAL_InitTick ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_SYSTICK_Config
  - >> HAL_RCC_GetHCLKFreq
  - >> HAL_NVIC_SetPriority
  [Called By]
  - >> HAL_Init
  - >> HAL_RCC_ClockConfig

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

  - Max Depth = 8
  - Call Chain = HAL_MspInit
  [Called By]
  - >> HAL_Init

  HAL_NAND_Init (Thumb, 98 bytes, Stack size 16 bytes, stm32f4xx_hal_nand.o(i.HAL_NAND_Init))
  [Stack]

  - Max Depth = 96
  - Call Chain = HAL_NAND_Init ⇒ HAL_NAND_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> FMC_NAND_Init
  - >> FMC_NAND_CommonSpace_Timing_Init
  - >> FMC_NAND_AttributeSpace_Timing_Init
  - >> HAL_NAND_MspInit
  [Called By]
  - >> NAND_Init

  HAL_NAND_MspInit (Thumb, 158 bytes, Stack size 40 bytes, nand.o(i.HAL_NAND_MspInit))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_NAND_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GPIO_Init
  [Called By]
  - >> HAL_NAND_Init

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

  - >> HAL_UART_MspInit
  - >> Timer4_Init
  - >> HAL_TIM_Base_MspInit

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

  - Max Depth = 16
  - Call Chain = HAL_NVIC_SetPriority
  [Calls]
  - >> NVIC_SetPriority
  [Called By]
  - >> HAL_InitTick
  - >> HAL_UART_MspInit
  - >> Timer4_Init
  - >> HAL_TIM_Base_MspInit

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

  - >> HAL_Init

  HAL_PWREx_EnableOverDrive (Thumb, 122 bytes, Stack size 32 bytes, stm32f4xx_hal_pwr_ex.o(i.HAL_PWREx_EnableOverDrive))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_PWREx_EnableOverDrive
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> Stm32_Clock_Init

  HAL_RCC_ClockConfig (Thumb, 512 bytes, Stack size 40 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_ClockConfig))
  [Stack]

  - Max Depth = 68
  - Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_InitTick
  - >> HAL_GetTick
  [Called By]
  - >> Stm32_Clock_Init

  HAL_RCC_GetHCLKFreq (Thumb, 38 bytes, Stack size 8 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_RCC_GetSysClockFreq
  [Called By]
  - >> HAL_RCC_GetPCLK2Freq
  - >> HAL_RCC_GetPCLK1Freq
  - >> HAL_InitTick

  HAL_RCC_GetPCLK1Freq (Thumb, 36 bytes, Stack size 8 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq))
  [Stack]

  - Max Depth = 28
  - Call Chain = HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_RCC_GetHCLKFreq
  [Called By]
  - >> UART_SetConfig

  HAL_RCC_GetPCLK2Freq (Thumb, 36 bytes, Stack size 8 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq))
  [Stack]

  - Max Depth = 28
  - Call Chain = HAL_RCC_GetPCLK2Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_RCC_GetHCLKFreq
  [Called By]
  - >> UART_SetConfig

  HAL_RCC_GetSysClockFreq (Thumb, 104 bytes, Stack size 12 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq))
  [Stack]

  - Max Depth = 12
  - Call Chain = HAL_RCC_GetSysClockFreq
  [Called By]
  - >> HAL_RCC_GetHCLKFreq

  HAL_RCC_OscConfig (Thumb, 774 bytes, Stack size 40 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_OscConfig))
  [Stack]

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

  HAL_SDRAM_Init (Thumb, 66 bytes, Stack size 16 bytes, stm32f4xx_hal_sdram.o(i.HAL_SDRAM_Init))
  [Stack]

  - Max Depth = 88
  - Call Chain = HAL_SDRAM_Init ⇒ HAL_SDRAM_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> FMC_SDRAM_Timing_Init
  - >> FMC_SDRAM_Init
  - >> HAL_SDRAM_MspInit
  [Called By]
  - >> SDRAM_Init

  HAL_SDRAM_MspInit (Thumb, 194 bytes, Stack size 32 bytes, sdram.o(i.HAL_SDRAM_MspInit))
  [Stack]

  - Max Depth = 72
  - Call Chain = HAL_SDRAM_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GPIO_Init
  [Called By]
  - >> HAL_SDRAM_Init

  HAL_SDRAM_ProgramRefreshRate (Thumb, 34 bytes, Stack size 8 bytes, stm32f4xx_hal_sdram.o(i.HAL_SDRAM_ProgramRefreshRate))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_SDRAM_ProgramRefreshRate
  [Calls]
  - >> FMC_SDRAM_ProgramRefreshRate
  [Called By]
  - >> SDRAM_Initialization_Sequence

  HAL_SDRAM_SendCommand (Thumb, 46 bytes, Stack size 16 bytes, stm32f4xx_hal_sdram.o(i.HAL_SDRAM_SendCommand))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_SDRAM_SendCommand ⇒ FMC_SDRAM_SendCommand
  [Calls]
  - >> FMC_SDRAM_SendCommand
  [Called By]
  - >> SDRAM_Send_Cmd

  HAL_SD_Get_CardInfo (Thumb, 696 bytes, Stack size 32 bytes, stm32f4xx_hal_sd.o(i.HAL_SD_Get_CardInfo))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_SD_Get_CardInfo
  [Called By]
  - >> HAL_SD_Init

  HAL_SD_Init (Thumb, 160 bytes, Stack size 40 bytes, stm32f4xx_hal_sd.o(i.HAL_SD_Init))
  [Stack]

  - Max Depth = 128
  - Call Chain = HAL_SD_Init ⇒ SD_PowerON ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> HAL_SD_Get_CardInfo
  - >> SD_PowerON
  - >> SD_Initialize_Cards
  - >> SD_CmdResp1Error
  - >> SDIO_SendCommand
  - >> SDIO_Init
  - >> HAL_SD_MspInit
  [Called By]
  - >> SD_Init

  HAL_SD_MspInit (Thumb, 120 bytes, Stack size 32 bytes, sdio_sdcard.o(i.HAL_SD_MspInit))
  [Stack]

  - Max Depth = 72
  - Call Chain = HAL_SD_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_GPIO_Init
  [Called By]
  - >> HAL_SD_Init

  HAL_SD_ReadBlocks (Thumb, 380 bytes, Stack size 80 bytes, stm32f4xx_hal_sd.o(i.HAL_SD_ReadBlocks))
  [Stack]

  - Max Depth = 136
  - Call Chain = HAL_SD_ReadBlocks ⇒ HAL_SD_StopTransfer ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> HAL_SD_StopTransfer
  - >> SD_CmdResp1Error
  - >> SDIO_SendCommand
  - >> SDIO_ReadFIFO
  - >> SDIO_DataConfig
  [Called By]
  - >> SD_ReadDisk

  HAL_SD_StopTransfer (Thumb, 44 bytes, Stack size 32 bytes, stm32f4xx_hal_sd.o(i.HAL_SD_StopTransfer))
  [Stack]

  - Max Depth = 56
  - Call Chain = HAL_SD_StopTransfer ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> SD_CmdResp1Error
  - >> SDIO_SendCommand
  [Called By]
  - >> HAL_SD_WriteBlocks
  - >> HAL_SD_ReadBlocks

  HAL_SD_WideBusOperation_Config (Thumb, 94 bytes, Stack size 32 bytes, stm32f4xx_hal_sd.o(i.HAL_SD_WideBusOperation_Config))
  [Stack]

  - Max Depth = 184
  - Call Chain = HAL_SD_WideBusOperation_Config ⇒ SD_WideBus_Enable ⇒ SD_FindSCR ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> SD_WideBus_Enable
  - >> SD_WideBus_Disable
  - >> SDIO_Init
  [Called By]
  - >> SD_Init

  HAL_SD_WriteBlocks (Thumb, 464 bytes, Stack size 88 bytes, stm32f4xx_hal_sd.o(i.HAL_SD_WriteBlocks))
  [Stack]

  - Max Depth = 144
  - Call Chain = HAL_SD_WriteBlocks ⇒ HAL_SD_StopTransfer ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> HAL_SD_StopTransfer
  - >> SD_IsCardProgramming
  - >> SD_CmdResp1Error
  - >> SDIO_WriteFIFO
  - >> SDIO_SendCommand
  - >> SDIO_DataConfig
  [Called By]
  - >> SD_WriteDisk

  HAL_SPI_Init (Thumb, 132 bytes, Stack size 16 bytes, stm32f4xx_hal_spi.o(i.HAL_SPI_Init))
  [Stack]

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

  HAL_SPI_MspInit (Thumb, 74 bytes, Stack size 32 bytes, spi.o(i.HAL_SPI_MspInit))
  [Stack]

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

  HAL_SPI_TransmitReceive (Thumb, 682 bytes, Stack size 32 bytes, stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive))
  [Stack]

  - Max Depth = 64
  - Call Chain = HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> SPI_WaitOnFlagUntilTimeout
  [Called By]
  - >> SPI5_ReadWriteByte

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

  - >> delay_init

  HAL_SYSTICK_Config (Thumb, 40 bytes, Stack size 8 bytes, stm32f4xx_hal_cortex.o(i.HAL_SYSTICK_Config))
  [Stack]

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

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

  HAL_TIM_Base_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32f4xx_hal_tim.o(i.HAL_TIM_Base_Init))
  [Stack]

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

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

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

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

  - >> TIM3_Init
  - >> Timer4_Init

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

  - >> HAL_TIM_IRQHandler

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

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

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_TIM_IRQHandler

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

  - >> HAL_UART_IRQHandler

  HAL_UART_IRQHandler (Thumb, 244 bytes, Stack size 16 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler))
  [Stack]

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

  HAL_UART_Init (Thumb, 94 bytes, Stack size 16 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_Init))
  [Stack]

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

  HAL_UART_MspInit (Thumb, 134 bytes, Stack size 40 bytes, usart.o(i.HAL_UART_MspInit))
  [Stack]

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

  HAL_UART_Receive (Thumb, 202 bytes, Stack size 32 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_Receive))
  [Stack]

  - Max Depth = 64
  - Call Chain = HAL_UART_Receive ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> UART_WaitOnFlagUntilTimeout
  [Called By]
  - >> USART1_IRQHandler

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

  - >> UART_Receive_IT

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

  - >> HAL_UART_IRQHandler

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

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

  LED_Init (Thumb, 68 bytes, Stack size 32 bytes, led.o(i.LED_Init))
  [Stack]

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

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

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

  NAND_CopyPageWithWrite (Thumb, 412 bytes, Stack size 40 bytes, nand.o(i.NAND_CopyPageWithWrite))
  [Stack]

  - Max Depth = 64
  - Call Chain = NAND_CopyPageWithWrite ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> delay_us
  - >> NAND_WaitRB
  - >> NAND_WaitForReady
  - >> NAND_Delay
  [Called By]
  - >> FTL_CopyAndWriteToBlock

  NAND_CopyPageWithoutWrite (Thumb, 118 bytes, Stack size 24 bytes, nand.o(i.NAND_CopyPageWithoutWrite))
  [Stack]

  - Max Depth = 48
  - Call Chain = NAND_CopyPageWithoutWrite ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> delay_us
  - >> NAND_WaitRB
  - >> NAND_WaitForReady
  [Called By]
  - >> FTL_CopyAndWriteToBlock

  NAND_Delay (Thumb, 16 bytes, Stack size 8 bytes, nand.o(i.NAND_Delay))
  [Stack]

  - Max Depth = 8
  - Call Chain = NAND_Delay
  [Called By]
  - >> NAND_ReadStatus
  - >> NAND_WritePageConst
  - >> NAND_WritePage
  - >> NAND_ReadPage
  - >> NAND_CopyPageWithWrite

  NAND_ECC_Correction (Thumb, 104 bytes, Stack size 24 bytes, nand.o(i.NAND_ECC_Correction))
  [Stack]

  - Max Depth = 48
  - Call Chain = NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_ECC_Get_OE
  - >> __2printf
  [Called By]
  - >> NAND_ReadPage

  NAND_ECC_Get_OE (Thumb, 48 bytes, Stack size 16 bytes, nand.o(i.NAND_ECC_Get_OE))
  [Stack]

  - Max Depth = 16
  - Call Chain = NAND_ECC_Get_OE
  [Called By]
  - >> NAND_ECC_Correction

  NAND_EraseBlock (Thumb, 68 bytes, Stack size 8 bytes, nand.o(i.NAND_EraseBlock))
  [Stack]

  - Max Depth = 40
  - Call Chain = NAND_EraseBlock ⇒ delay_ms ⇒ delay_us
  [Calls]
  - >> delay_ms
  - >> NAND_WaitForReady
  [Called By]
  - >> FTL_ReadSectors
  - >> FTL_Format
  - >> FTL_CopyAndWriteToBlock
  - >> FTL_BlockCompare

  NAND_Init (Thumb, 156 bytes, Stack size 40 bytes, nand.o(i.NAND_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = NAND_Init ⇒ HAL_NAND_Init ⇒ HAL_NAND_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> delay_ms
  - >> HAL_NAND_Init
  - >> NAND_Reset
  - >> NAND_ReadID
  - >> NAND_ModeSet
  [Called By]
  - >> FTL_Init

  NAND_ModeSet (Thumb, 42 bytes, Stack size 4 bytes, nand.o(i.NAND_ModeSet))
  [Stack]

  - Max Depth = 28
  - Call Chain = NAND_ModeSet ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> NAND_WaitForReady
  [Called By]
  - >> NAND_Init

  NAND_ReadID (Thumb, 64 bytes, Stack size 12 bytes, nand.o(i.NAND_ReadID))
  [Stack]

  - Max Depth = 12
  - Call Chain = NAND_ReadID
  [Called By]
  - >> NAND_Init

  NAND_ReadPage (Thumb, 488 bytes, Stack size 40 bytes, nand.o(i.NAND_ReadPage))
  [Stack]

  - Max Depth = 88
  - Call Chain = NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_WaitRB
  - >> NAND_WaitForReady
  - >> NAND_ECC_Correction
  - >> NAND_Delay
  - >> __2printf
  [Called By]
  - >> NAND_ReadSpare
  - >> FTL_ReadSectors

  NAND_ReadPageComp (Thumb, 94 bytes, Stack size 20 bytes, nand.o(i.NAND_ReadPageComp))
  [Stack]

  - Max Depth = 44
  - Call Chain = NAND_ReadPageComp ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> NAND_WaitRB
  - >> NAND_WaitForReady
  [Called By]
  - >> FTL_WriteSectors
  - >> FTL_BlockCompare

  NAND_ReadSpare (Thumb, 28 bytes, Stack size 8 bytes, nand.o(i.NAND_ReadSpare))
  [Stack]

  - Max Depth = 96
  - Call Chain = NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> NAND_ReadPage
  [Called By]
  - >> FTL_FindUnusedBlock
  - >> FTL_CreateLUT
  - >> FTL_CheckBadBlock

  NAND_ReadStatus (Thumb, 36 bytes, Stack size 8 bytes, nand.o(i.NAND_ReadStatus))
  [Stack]

  - Max Depth = 16
  - Call Chain = NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> NAND_Delay
  [Called By]
  - >> NAND_WaitForReady

  NAND_Reset (Thumb, 24 bytes, Stack size 4 bytes, nand.o(i.NAND_Reset))
  [Stack]

  - Max Depth = 28
  - Call Chain = NAND_Reset ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> NAND_WaitForReady
  [Called By]
  - >> NAND_Init

  NAND_WaitForReady (Thumb, 36 bytes, Stack size 8 bytes, nand.o(i.NAND_WaitForReady))
  [Stack]

  - Max Depth = 24
  - Call Chain = NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> NAND_ReadStatus
  [Called By]
  - >> NAND_Reset
  - >> NAND_ModeSet
  - >> NAND_WritePageConst
  - >> NAND_WritePage
  - >> NAND_ReadPageComp
  - >> NAND_ReadPage
  - >> NAND_EraseBlock
  - >> NAND_CopyPageWithoutWrite
  - >> NAND_CopyPageWithWrite

  NAND_WaitRB (Thumb, 46 bytes, Stack size 12 bytes, nand.o(i.NAND_WaitRB))
  [Stack]

  - Max Depth = 12
  - Call Chain = NAND_WaitRB
  [Called By]
  - >> NAND_ReadPageComp
  - >> NAND_ReadPage
  - >> NAND_CopyPageWithoutWrite
  - >> NAND_CopyPageWithWrite

  NAND_WritePage (Thumb, 330 bytes, Stack size 40 bytes, nand.o(i.NAND_WritePage))
  [Stack]

  - Max Depth = 64
  - Call Chain = NAND_WritePage ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> delay_us
  - >> NAND_WaitForReady
  - >> NAND_Delay
  [Called By]
  - >> NAND_WriteSpare
  - >> FTL_WriteSectors

  NAND_WritePageConst (Thumb, 76 bytes, Stack size 16 bytes, nand.o(i.NAND_WritePageConst))
  [Stack]

  - Max Depth = 40
  - Call Chain = NAND_WritePageConst ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> delay_us
  - >> NAND_WaitForReady
  - >> NAND_Delay
  [Called By]
  - >> FTL_BlockCompare

  NAND_WriteSpare (Thumb, 28 bytes, Stack size 8 bytes, nand.o(i.NAND_WriteSpare))
  [Stack]

  - Max Depth = 72
  - Call Chain = NAND_WriteSpare ⇒ NAND_WritePage ⇒ NAND_WaitForReady ⇒ NAND_ReadStatus ⇒ NAND_Delay
  [Calls]
  - >> NAND_WritePage
  [Called By]
  - >> FTL_UsedBlockMark
  - >> FTL_Format
  - >> FTL_BadBlockMark

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

  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(RESET)

  Pooling (Thumb, 114 bytes, Stack size 36 bytes, cnn.o(i.Pooling))
  [Stack]

  - Max Depth = 36
  - Call Chain = Pooling
  [Called By]
  - >> cnn_run

  PrintfResArray (Thumb, 64 bytes, Stack size 24 bytes, cnn.o(i.PrintfResArray))
  [Stack]

  - Max Depth = 48
  - Call Chain = PrintfResArray ⇒ __2printf
  [Calls]
  - >> __aeabi_f2d
  - >> __2printf
  [Called By]
  - >> cnn_run

  ReLU1 (Thumb, 48 bytes, Stack size 8 bytes, cnn.o(i.ReLU1))
  [Stack]

  - Max Depth = 8
  - Call Chain = ReLU1
  [Called By]
  - >> cnn_run

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

  - >> cnn_run

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

  - >> HAL_SD_WriteBlocks
  - >> HAL_SD_ReadBlocks
  - >> SD_FindSCR

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

  - >> SD_IsCardProgramming
  - >> SD_CmdResp6Error
  - >> SD_CmdResp1Error

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

  - >> SD_Initialize_Cards

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

  - Max Depth = 8
  - Call Chain = SDIO_GetResponse
  [Called By]
  - >> SD_WideBus_Enable
  - >> SD_WideBus_Disable
  - >> SD_PowerON
  - >> SD_IsCardProgramming
  - >> SD_Initialize_Cards
  - >> SD_CmdResp6Error
  - >> SD_CmdResp1Error

  SDIO_Init (Thumb, 36 bytes, Stack size 16 bytes, stm32f4xx_ll_sdmmc.o(i.SDIO_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = SDIO_Init
  [Called By]
  - >> HAL_SD_WideBusOperation_Config
  - >> HAL_SD_Init

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

  - >> SD_PowerON

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

  - >> HAL_SD_ReadBlocks
  - >> SD_FindSCR

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

  - >> HAL_SD_WriteBlocks
  - >> HAL_SD_StopTransfer
  - >> HAL_SD_ReadBlocks
  - >> HAL_SD_Init
  - >> SD_WideBus_Enable
  - >> SD_WideBus_Disable
  - >> SD_PowerON
  - >> SD_IsCardProgramming
  - >> SD_Initialize_Cards
  - >> SD_FindSCR

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

  - >> HAL_SD_WriteBlocks

  SDRAM_Init (Thumb, 86 bytes, Stack size 32 bytes, sdram.o(i.SDRAM_Init))
  [Stack]

  - Max Depth = 120
  - Call Chain = SDRAM_Init ⇒ HAL_SDRAM_Init ⇒ HAL_SDRAM_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_SDRAM_Init
  - >> SDRAM_Initialization_Sequence
  [Called By]
  - >> main

  SDRAM_Initialization_Sequence (Thumb, 74 bytes, Stack size 8 bytes, sdram.o(i.SDRAM_Initialization_Sequence))
  [Stack]

  - Max Depth = 72
  - Call Chain = SDRAM_Initialization_Sequence ⇒ SDRAM_Send_Cmd ⇒ HAL_SDRAM_SendCommand ⇒ FMC_SDRAM_SendCommand
  [Calls]
  - >> HAL_SDRAM_ProgramRefreshRate
  - >> SDRAM_Send_Cmd
  - >> delay_us
  [Called By]
  - >> SDRAM_Init

  SDRAM_Send_Cmd (Thumb, 48 bytes, Stack size 24 bytes, sdram.o(i.SDRAM_Send_Cmd))
  [Stack]

  - Max Depth = 64
  - Call Chain = SDRAM_Send_Cmd ⇒ HAL_SDRAM_SendCommand ⇒ FMC_SDRAM_SendCommand
  [Calls]
  - >> HAL_SDRAM_SendCommand
  [Called By]
  - >> SDRAM_Initialization_Sequence

  SDRAM_USED (Thumb, 116 bytes, Stack size 40 bytes, debug.o(i.SDRAM_USED))
  [Stack]

  - Max Depth = 64
  - Call Chain = SDRAM_USED ⇒ __2sprintf
  [Calls]
  - >> my_mem_perused
  - >> __2sprintf
  - >> __2printf
  [Called By]
  - >> model_write
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  SD_Init (Thumb, 54 bytes, Stack size 8 bytes, sdio_sdcard.o(i.SD_Init))
  [Stack]

  - Max Depth = 192
  - Call Chain = SD_Init ⇒ HAL_SD_WideBusOperation_Config ⇒ SD_WideBus_Enable ⇒ SD_FindSCR ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> HAL_SD_WideBusOperation_Config
  - >> HAL_SD_Init
  [Called By]
  - >> main
  - >> disk_write
  - >> disk_read
  - >> disk_initialize

  SD_ReadDisk (Thumb, 116 bytes, Stack size 48 bytes, sdio_sdcard.o(i.SD_ReadDisk))
  [Stack]

  - Max Depth = 184
  - Call Chain = SD_ReadDisk ⇒ HAL_SD_ReadBlocks ⇒ HAL_SD_StopTransfer ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> HAL_SD_ReadBlocks
  - >> INTX_ENABLE
  - >> INTX_DISABLE
  - >> __aeabi_memcpy
  [Called By]
  - >> disk_read

  SD_WriteDisk (Thumb, 118 bytes, Stack size 48 bytes, sdio_sdcard.o(i.SD_WriteDisk))
  [Stack]

  - Max Depth = 192
  - Call Chain = SD_WriteDisk ⇒ HAL_SD_WriteBlocks ⇒ HAL_SD_StopTransfer ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> HAL_SD_WriteBlocks
  - >> INTX_ENABLE
  - >> INTX_DISABLE
  - >> __aeabi_memcpy
  [Called By]
  - >> disk_write

  SPI5_Init (Thumb, 72 bytes, Stack size 8 bytes, spi.o(i.SPI5_Init))
  [Stack]

  - Max Depth = 96
  - Call Chain = SPI5_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init
  [Calls]
  - >> HAL_SPI_Init
  - >> SPI5_ReadWriteByte
  [Called By]
  - >> W25QXX_Init

  SPI5_ReadWriteByte (Thumb, 28 bytes, Stack size 16 bytes, spi.o(i.SPI5_ReadWriteByte))
  [Stack]

  - Max Depth = 80
  - Call Chain = SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_SPI_TransmitReceive
  [Called By]
  - >> W25QXX_Write_Page
  - >> W25QXX_Write_Enable
  - >> W25QXX_ReadSR
  - >> W25QXX_ReadID
  - >> W25QXX_Read
  - >> W25QXX_Init
  - >> W25QXX_Erase_Sector
  - >> SPI5_Init

  SPI5_SetSpeed (Thumb, 46 bytes, Stack size 8 bytes, spi.o(i.SPI5_SetSpeed))
  [Stack]

  - Max Depth = 8
  - Call Chain = SPI5_SetSpeed
  [Called By]
  - >> W25QXX_Init

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

  - startup_stm32f429xx.o(RESET)

  Stm32_Clock_Init (Thumb, 122 bytes, Stack size 88 bytes, sys.o(i.Stm32_Clock_Init))
  [Stack]

  - Max Depth = 156
  - Call Chain = Stm32_Clock_Init ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> HAL_PWREx_EnableOverDrive
  [Called By]
  - >> main

  SysTick_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f4xx_it.o(i.SysTick_Handler))
  [Calls]

  - >> HAL_IncTick
  [Address Reference Count : 1]
  - startup_stm32f429xx.o(RESET)

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

  - startup_stm32f429xx.o(.text)

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

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

  TIM3_Init (Thumb, 34 bytes, Stack size 8 bytes, debug.o(i.TIM3_Init))
  [Stack]

  - Max Depth = 40
  - Call Chain = TIM3_Init ⇒ HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority
  [Calls]
  - >> HAL_TIM_Base_Start_IT
  - >> HAL_TIM_Base_Init
  [Called By]
  - >> main

  TIM4_IRQHandler (Thumb, 44 bytes, Stack size 8 bytes, usmart.o(i.TIM4_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIM4_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f429xx.o(RESET)

  TIM_Base_SetConfig (Thumb, 148 bytes, Stack size 20 bytes, stm32f4xx_hal_tim.o(i.TIM_Base_SetConfig))
  [Stack]

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

  Timer4_Init (Thumb, 72 bytes, Stack size 24 bytes, usmart.o(i.Timer4_Init))
  [Stack]

  - Max Depth = 56
  - Call Chain = Timer4_Init ⇒ HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority
  [Calls]
  - >> HAL_NVIC_EnableIRQ
  - >> HAL_NVIC_SetPriority
  - >> HAL_TIM_Base_Start_IT
  - >> HAL_TIM_Base_Init
  [Called By]
  - >> usmart_init

  USART1_IRQHandler (Thumb, 100 bytes, Stack size 16 bytes, usart.o(i.USART1_IRQHandler))
  [Stack]

  - Max Depth = 80
  - Call Chain = USART1_IRQHandler ⇒ HAL_UART_Receive ⇒ UART_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_UART_Receive
  - >> HAL_UART_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f429xx.o(RESET)

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

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

  W25QXX_Erase_Sector (Thumb, 80 bytes, Stack size 16 bytes, w25qxx.o(i.W25QXX_Erase_Sector))
  [Stack]

  - Max Depth = 112
  - Call Chain = W25QXX_Erase_Sector ⇒ W25QXX_Wait_Busy ⇒ W25QXX_ReadSR ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> W25QXX_Write_Enable
  - >> W25QXX_Wait_Busy
  - >> SPI5_ReadWriteByte
  [Called By]
  - >> W25QXX_Write

  W25QXX_Init (Thumb, 106 bytes, Stack size 40 bytes, w25qxx.o(i.W25QXX_Init))
  [Stack]

  - Max Depth = 136
  - Call Chain = W25QXX_Init ⇒ W25QXX_ReadID ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_GPIO_Init
  - >> W25QXX_ReadSR
  - >> W25QXX_ReadID
  - >> SPI5_SetSpeed
  - >> SPI5_ReadWriteByte
  - >> SPI5_Init
  [Called By]
  - >> disk_initialize

  W25QXX_Read (Thumb, 94 bytes, Stack size 24 bytes, w25qxx.o(i.W25QXX_Read))
  [Stack]

  - Max Depth = 104
  - Call Chain = W25QXX_Read ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> SPI5_ReadWriteByte
  [Called By]
  - >> disk_read
  - >> W25QXX_Write

  W25QXX_ReadID (Thumb, 62 bytes, Stack size 16 bytes, w25qxx.o(i.W25QXX_ReadID))
  [Stack]

  - Max Depth = 96
  - Call Chain = W25QXX_ReadID ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> SPI5_ReadWriteByte
  [Called By]
  - >> W25QXX_Init

  W25QXX_ReadSR (Thumb, 52 bytes, Stack size 8 bytes, w25qxx.o(i.W25QXX_ReadSR))
  [Stack]

  - Max Depth = 88
  - Call Chain = W25QXX_ReadSR ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> SPI5_ReadWriteByte
  [Called By]
  - >> W25QXX_Wait_Busy
  - >> W25QXX_Init

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

  - Max Depth = 96
  - Call Chain = W25QXX_Wait_Busy ⇒ W25QXX_ReadSR ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> W25QXX_ReadSR
  [Called By]
  - >> W25QXX_Write_Page
  - >> W25QXX_Erase_Sector

  W25QXX_Write (Thumb, 150 bytes, Stack size 40 bytes, w25qxx.o(i.W25QXX_Write))
  [Stack]

  - Max Depth = 184
  - Call Chain = W25QXX_Write ⇒ W25QXX_Write_NoCheck ⇒ W25QXX_Write_Page ⇒ W25QXX_Wait_Busy ⇒ W25QXX_ReadSR ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> W25QXX_Write_NoCheck
  - >> W25QXX_Read
  - >> W25QXX_Erase_Sector
  [Called By]
  - >> disk_write

  W25QXX_Write_Enable (Thumb, 26 bytes, Stack size 8 bytes, w25qxx.o(i.W25QXX_Write_Enable))
  [Stack]

  - Max Depth = 88
  - Call Chain = W25QXX_Write_Enable ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> SPI5_ReadWriteByte
  [Called By]
  - >> W25QXX_Write_Page
  - >> W25QXX_Erase_Sector

  W25QXX_Write_NoCheck (Thumb, 62 bytes, Stack size 24 bytes, w25qxx.o(i.W25QXX_Write_NoCheck))
  [Stack]

  - Max Depth = 144
  - Call Chain = W25QXX_Write_NoCheck ⇒ W25QXX_Write_Page ⇒ W25QXX_Wait_Busy ⇒ W25QXX_ReadSR ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> W25QXX_Write_Page
  [Called By]
  - >> W25QXX_Write

  W25QXX_Write_Page (Thumb, 100 bytes, Stack size 24 bytes, w25qxx.o(i.W25QXX_Write_Page))
  [Stack]

  - Max Depth = 120
  - Call Chain = W25QXX_Write_Page ⇒ W25QXX_Wait_Busy ⇒ W25QXX_ReadSR ⇒ SPI5_ReadWriteByte ⇒ HAL_SPI_TransmitReceive ⇒ SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> W25QXX_Write_Enable
  - >> W25QXX_Wait_Busy
  - >> SPI5_ReadWriteByte
  [Called By]
  - >> W25QXX_Write_NoCheck

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

  - >> _printf_core

  __1printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)

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

  - Max Depth = 24
  - Call Chain = __2printf
  [Called By]
  - >> model_write
  - >> cnn_run
  - >> FTL_Init
  - >> main
  - >> model_switchdata
  - >> model_read
  - >> model_info
  - >> model_dataset
  - >> mf_write
  - >> mf_showfree
  - >> mf_setlabel
  - >> mf_scan_files
  - >> mf_readdir
  - >> mf_read
  - >> mf_gets
  - >> mf_getlabel
  - >> SDRAM_USED
  - >> DEBUG
  - >> usmart_sys_cmd_exe
  - >> usmart_scan
  - >> usmart_exe
  - >> NAND_ECC_Correction
  - >> NAND_ReadPage
  - >> FTL_Format
  - >> FTL_CreateLUT
  - >> FTL_BlockCompare
  - >> PrintfResArray

  __c89printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)

  printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)

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

  - >> _sputc
  - >> _printf_core

  __1sprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)

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

  - Max Depth = 24
  - Call Chain = __2sprintf
  [Called By]
  - >> model_write
  - >> model_switchdata
  - >> SDRAM_USED

  __c89sprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)

  sprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)

  __0vprintf (Thumb, 8 bytes, Stack size 0 bytes, printfa.o(i.__0vprintf), UNUSED)
  [Calls]

  - >> _printf_core

  __1vprintf (Thumb, 0 bytes, Stack size 0 bytes, printfa.o(i.__0vprintf), UNUSED)

  __2vprintf (Thumb, 0 bytes, Stack size 0 bytes, printfa.o(i.__0vprintf), UNUSED)

  __c89vprintf (Thumb, 0 bytes, Stack size 0 bytes, printfa.o(i.__0vprintf), UNUSED)

  vprintf (Thumb, 0 bytes, Stack size 0 bytes, printfa.o(i.__0vprintf))
  [Called By]

  - >> DEBUG_PRINTF

  __ARM_fpclassify (Thumb, 48 bytes, Stack size 8 bytes, fpclassify.o(i.__ARM_fpclassify))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_fpclassify
  [Called By]
  - >> __hardfp_exp

  __hardfp_atof (Thumb, 44 bytes, Stack size 24 bytes, atof.o(i.__hardfp_atof))
  [Stack]

  - Max Depth = 224
  - Call Chain = __hardfp_atof ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real
  [Calls]
  - >> __strtod_int
  - >> __set_errno
  - >> __read_errno
  [Called By]
  - >> model_write

  __hardfp_exp (Thumb, 714 bytes, Stack size 72 bytes, exp.o(i.__hardfp_exp))
  [Stack]

  - Max Depth = 184
  - Call Chain = __hardfp_exp ⇒ __kernel_poly ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_dmul
  - >> __aeabi_i2d
  - >> __aeabi_dsub
  - >> __aeabi_drsub
  - >> __aeabi_ddiv
  - >> __aeabi_dadd
  - >> __aeabi_d2iz
  - >> __aeabi_cdrcmple
  - >> __aeabi_cdcmple
  - >> __set_errno
  - >> __kernel_poly
  - >> __ARM_fpclassify
  - >> __mathlib_dbl_underflow
  - >> __mathlib_dbl_overflow
  - >> __mathlib_dbl_infnan
  [Called By]
  - >> calculate_probabilities

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

  __kernel_poly (Thumb, 248 bytes, Stack size 24 bytes, poly.o(i.__kernel_poly))
  [Stack]

  - Max Depth = 112
  - Call Chain = __kernel_poly ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_dmul
  - >> __aeabi_dadd
  [Called By]
  - >> __hardfp_exp

  __mathlib_dbl_infnan (Thumb, 20 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_infnan))
  [Stack]

  - Max Depth = 96
  - Call Chain = __mathlib_dbl_infnan ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_dadd
  [Called By]
  - >> __hardfp_exp

  __mathlib_dbl_overflow (Thumb, 24 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_overflow))
  [Stack]

  - Max Depth = 96
  - Call Chain = __mathlib_dbl_overflow ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_dmul
  [Called By]
  - >> __hardfp_exp

  __mathlib_dbl_underflow (Thumb, 24 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_underflow))
  [Stack]

  - Max Depth = 96
  - Call Chain = __mathlib_dbl_underflow ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_dmul
  [Called By]
  - >> __hardfp_exp

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

  - >> __hardfp_atof

  __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
  - >> __hardfp_exp
  - >> __hardfp_atof

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

  - usmart_config.o(.data)

  _is_digit (Thumb, 14 bytes, Stack size 0 bytes, scanf_fp.o(i._is_digit), UNUSED)
  [Called By]

  - >> _scanf_really_real

  allocate2DArray (Thumb, 52 bytes, Stack size 24 bytes, cnn.o(i.allocate2DArray))
  [Stack]

  - Max Depth = 56
  - Call Chain = allocate2DArray ⇒ mymalloc ⇒ my_mem_malloc
  [Calls]
  - >> mymalloc
  [Called By]
  - >> cnn_run

  calculate_probabilities (Thumb, 164 bytes, Stack size 32 bytes, cnn.o(i.calculate_probabilities))
  [Stack]

  - Max Depth = 216
  - Call Chain = calculate_probabilities ⇒ __hardfp_exp ⇒ __kernel_poly ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __hardfp_exp
  - >> __aeabi_f2d
  - >> __aeabi_d2f
  - >> malloc
  - >> free
  [Called By]
  - >> cnn_run

  calculate_statistics (Thumb, 132 bytes, Stack size 16 bytes, cnn.o(i.calculate_statistics))
  [Stack]

  - Max Depth = 88
  - Call Chain = calculate_statistics ⇒ __hardfp_sqrt ⇒ _dsqrt ⇒ _double_round
  [Calls]
  - >> __hardfp_sqrt
  - >> __aeabi_f2d
  - >> __aeabi_d2f
  [Called By]
  - >> cnn_run

  check_threshold (Thumb, 54 bytes, Stack size 16 bytes, cnn.o(i.check_threshold))
  [Stack]

  - Max Depth = 16
  - Call Chain = check_threshold
  [Called By]
  - >> cnn_run

  cnn_run (Thumb, 2384 bytes, Stack size 168 bytes, cnn.o(i.cnn_run))
  [Stack]

  - Max Depth = 384
  - Call Chain = cnn_run ⇒ calculate_probabilities ⇒ __hardfp_exp ⇒ __kernel_poly ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> mymalloc
  - >> myfree
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy4
  - >> generateMatrix
  - >> free2DArray
  - >> check_threshold
  - >> calculate_statistics
  - >> calculate_probabilities
  - >> allocate2DArray
  - >> ReLU2
  - >> ReLU1
  - >> PrintfResArray
  - >> Pooling
  - >> Full
  - >> Flatten2D
  - >> Convolution
  - >> ConnectedLayer
  - >> Combine
  - >> AddBias
  - >> __aeabi_f2d
  - >> DEBUG_PRINTF
  - >> __2printf
  [Called By]
  - >> main

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

  - Max Depth = 8
  - Call Chain = delay_init
  [Calls]
  - >> HAL_SYSTICK_CLKSourceConfig
  [Called By]
  - >> main

  delay_ms (Thumb, 26 bytes, Stack size 16 bytes, delay.o(i.delay_ms))
  [Stack]

  - Max Depth = 32
  - Call Chain = delay_ms ⇒ delay_us
  [Calls]
  - >> delay_us
  [Called By]
  - >> main
  - >> NAND_Init
  - >> NAND_EraseBlock

  delay_us (Thumb, 48 bytes, Stack size 16 bytes, delay.o(i.delay_us))
  [Stack]

  - Max Depth = 16
  - Call Chain = delay_us
  [Called By]
  - >> delay_ms
  - >> SDRAM_Initialization_Sequence
  - >> NAND_WritePageConst
  - >> NAND_WritePage
  - >> NAND_CopyPageWithoutWrite
  - >> NAND_CopyPageWithWrite

  disk_initialize (Thumb, 40 bytes, Stack size 8 bytes, diskio.o(i.disk_initialize))
  [Stack]

  - Max Depth = 200
  - Call Chain = disk_initialize ⇒ SD_Init ⇒ HAL_SD_WideBusOperation_Config ⇒ SD_WideBus_Enable ⇒ SD_FindSCR ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> SD_Init
  - >> FTL_Init
  - >> W25QXX_Init
  [Called By]
  - >> f_mkfs
  - >> find_volume

  disk_ioctl (Thumb, 146 bytes, Stack size 12 bytes, diskio.o(i.disk_ioctl))
  [Stack]

  - Max Depth = 12
  - Call Chain = disk_ioctl
  [Called By]
  - >> f_mkfs
  - >> sync_fs

  disk_read (Thumb, 102 bytes, Stack size 24 bytes, diskio.o(i.disk_read))
  [Stack]

  - Max Depth = 256
  - Call Chain = disk_read ⇒ FTL_ReadSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> SD_Init
  - >> FTL_ReadSectors
  - >> W25QXX_Read
  - >> SD_ReadDisk
  [Called By]
  - >> f_write
  - >> f_read
  - >> f_lseek
  - >> move_window

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

  - >> validate
  - >> find_volume

  disk_write (Thumb, 96 bytes, Stack size 24 bytes, diskio.o(i.disk_write))
  [Stack]

  - Max Depth = 272
  - Call Chain = disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> SD_Init
  - >> FTL_WriteSectors
  - >> W25QXX_Write
  - >> SD_WriteDisk
  [Called By]
  - >> f_write
  - >> f_sync
  - >> f_read
  - >> f_mkfs
  - >> f_lseek
  - >> sync_window
  - >> sync_fs

  exf_getfree (Thumb, 46 bytes, Stack size 24 bytes, exfuns.o(i.exf_getfree))
  [Stack]

  - Max Depth = 504
  - Call Chain = exf_getfree ⇒ f_getfree ⇒ find_volume ⇒ check_fs ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_getfree
  [Called By]
  - >> main

  exfuns_init (Thumb, 92 bytes, Stack size 16 bytes, exfuns.o(i.exfuns_init))
  [Stack]

  - Max Depth = 48
  - Call Chain = exfuns_init ⇒ mymalloc ⇒ my_mem_malloc
  [Calls]
  - >> mymalloc
  [Called By]
  - >> main

  f_close (Thumb, 30 bytes, Stack size 16 bytes, ff.o(i.f_close))
  [Stack]

  - Max Depth = 552
  - Call Chain = f_close ⇒ f_sync ⇒ load_obj_dir ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_sync
  - >> validate
  [Called By]
  - >> mf_close

  f_closedir (Thumb, 20 bytes, Stack size 16 bytes, ff.o(i.f_closedir))
  [Stack]

  - Max Depth = 32
  - Call Chain = f_closedir ⇒ validate
  [Calls]
  - >> validate
  [Called By]
  - >> mf_closedir

  f_getfree (Thumb, 280 bytes, Stack size 96 bytes, ff.o(i.f_getfree))
  [Stack]

  - Max Depth = 480
  - Call Chain = f_getfree ⇒ find_volume ⇒ check_fs ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> move_window
  - >> ld_word
  - >> ld_dword
  - >> get_fat
  - >> find_volume
  [Called By]
  - >> exf_getfree
  - >> mf_showfree

  f_getlabel (Thumb, 242 bytes, Stack size 120 bytes, ff.o(i.f_getlabel))
  [Stack]

  - Max Depth = 584
  - Call Chain = f_getlabel ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> ff_convert
  - >> move_window
  - >> ld_word
  - >> ld_dword
  - >> find_volume
  - >> dir_sdi
  - >> dir_read
  [Called By]
  - >> mf_getlabel

  f_gets (Thumb, 68 bytes, Stack size 32 bytes, ff.o(i.f_gets))
  [Stack]

  - Max Depth = 416
  - Call Chain = f_gets ⇒ f_read ⇒ get_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_read
  [Called By]
  - >> mf_gets

  f_lseek (Thumb, 700 bytes, Stack size 64 bytes, ff.o(i.f_lseek))
  [Stack]

  - Max Depth = 440
  - Call Chain = f_lseek ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> disk_write
  - >> disk_read
  - >> validate
  - >> get_fat
  - >> create_chain
  - >> clust2sect
  - >> clmt_clust
  - >> __aeabi_uldivmod
  [Called By]
  - >> mf_lseek

  f_mkdir (Thumb, 476 bytes, Stack size 144 bytes, ff.o(i.f_mkdir))
  [Stack]

  - Max Depth = 768
  - Call Chain = f_mkdir ⇒ dir_register ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> get_fattime
  - >> ff_memfree
  - >> ff_memalloc
  - >> sync_window
  - >> sync_fs
  - >> store_xdir
  - >> st_dword
  - >> st_clust
  - >> remove_chain
  - >> mem_set
  - >> mem_cpy
  - >> follow_path
  - >> find_volume
  - >> dir_register
  - >> create_chain
  - >> clust2sect
  [Called By]
  - >> mf_mkdir

  f_mkfs (Thumb, 1216 bytes, Stack size 80 bytes, ff.o(i.f_mkfs))
  [Stack]

  - Max Depth = 352
  - Call Chain = f_mkfs ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> get_fattime
  - >> disk_write
  - >> disk_ioctl
  - >> disk_initialize
  - >> st_word
  - >> st_dword
  - >> mem_set
  - >> mem_cpy
  - >> get_ldnumber
  [Called By]
  - >> mf_fmkfs

  f_mount (Thumb, 72 bytes, Stack size 24 bytes, ff.o(i.f_mount))
  [Stack]

  - Max Depth = 408
  - Call Chain = f_mount ⇒ find_volume ⇒ check_fs ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> get_ldnumber
  - >> find_volume
  [Called By]
  - >> main
  - >> mf_mount

  f_open (Thumb, 630 bytes, Stack size 144 bytes, ff.o(i.f_open))
  [Stack]

  - Max Depth = 768
  - Call Chain = f_open ⇒ dir_register ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> get_fattime
  - >> ff_memfree
  - >> ff_memalloc
  - >> store_xdir
  - >> st_qword
  - >> st_dword
  - >> st_clust
  - >> remove_chain
  - >> move_window
  - >> ld_qword
  - >> ld_dword
  - >> ld_clust
  - >> follow_path
  - >> find_volume
  - >> dir_register
  [Called By]
  - >> model_write
  - >> model_switchdata
  - >> mf_open

  f_opendir (Thumb, 212 bytes, Stack size 40 bytes, ff.o(i.f_opendir))
  [Stack]

  - Max Depth = 568
  - Call Chain = f_opendir ⇒ follow_path ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> ff_memfree
  - >> ff_memalloc
  - >> ld_qword
  - >> ld_dword
  - >> ld_clust
  - >> follow_path
  - >> find_volume
  - >> dir_sdi
  [Called By]
  - >> mf_scan_files
  - >> mf_opendir

  f_putc (Thumb, 60 bytes, Stack size 88 bytes, ff.o(i.f_putc))
  [Stack]

  - Max Depth = 528
  - Call Chain = f_putc ⇒ putc_bfd ⇒ f_write ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_write
  - >> putc_bfd
  [Called By]
  - >> mf_putc

  f_puts (Thumb, 70 bytes, Stack size 96 bytes, ff.o(i.f_puts))
  [Stack]

  - Max Depth = 536
  - Call Chain = f_puts ⇒ putc_bfd ⇒ f_write ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_write
  - >> putc_bfd
  [Called By]
  - >> mf_puts

  f_read (Thumb, 374 bytes, Stack size 48 bytes, ff.o(i.f_read))
  [Stack]

  - Max Depth = 384
  - Call Chain = f_read ⇒ get_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> disk_write
  - >> disk_read
  - >> validate
  - >> mem_cpy
  - >> get_fat
  - >> clust2sect
  - >> clmt_clust
  [Called By]
  - >> model_write
  - >> f_gets
  - >> mf_read

  f_readdir (Thumb, 118 bytes, Stack size 40 bytes, ff.o(i.f_readdir))
  [Stack]

  - Max Depth = 504
  - Call Chain = f_readdir ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> ff_memfree
  - >> ff_memalloc
  - >> validate
  - >> get_fileinfo
  - >> dir_sdi
  - >> dir_read
  - >> dir_next
  [Called By]
  - >> mf_scan_files
  - >> mf_readdir

  f_rename (Thumb, 398 bytes, Stack size 256 bytes, ff.o(i.f_rename))
  [Stack]

  - Max Depth = 880
  - Call Chain = f_rename ⇒ dir_register ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> ff_memfree
  - >> ff_memalloc
  - >> sync_fs
  - >> store_xdir
  - >> st_word
  - >> st_clust
  - >> move_window
  - >> mem_cpy
  - >> ld_word
  - >> ld_clust
  - >> get_ldnumber
  - >> follow_path
  - >> find_volume
  - >> dir_remove
  - >> dir_register
  - >> clust2sect
  [Called By]
  - >> mf_rename

  f_setlabel (Thumb, 460 bytes, Stack size 136 bytes, ff.o(i.f_setlabel))
  [Stack]

  - Max Depth = 600
  - Call Chain = f_setlabel ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> ff_wtoupper
  - >> ff_convert
  - >> sync_fs
  - >> st_word
  - >> mem_set
  - >> mem_cpy
  - >> find_volume
  - >> dir_sdi
  - >> dir_read
  - >> dir_alloc
  - >> chk_chr
  [Called By]
  - >> mf_setlabel

  f_sync (Thumb, 338 bytes, Stack size 96 bytes, ff.o(i.f_sync))
  [Stack]

  - Max Depth = 536
  - Call Chain = f_sync ⇒ load_obj_dir ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> get_fattime
  - >> ff_memfree
  - >> ff_memalloc
  - >> disk_write
  - >> validate
  - >> sync_fs
  - >> store_xdir
  - >> st_word
  - >> st_qword
  - >> st_dword
  - >> st_clust
  - >> move_window
  - >> load_obj_dir
  - >> fill_fat_chain
  [Called By]
  - >> f_close

  f_unlink (Thumb, 266 bytes, Stack size 224 bytes, ff.o(i.f_unlink))
  [Stack]

  - Max Depth = 752
  - Call Chain = f_unlink ⇒ follow_path ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> ff_memfree
  - >> ff_memalloc
  - >> sync_fs
  - >> remove_chain
  - >> ld_qword
  - >> ld_dword
  - >> ld_clust
  - >> follow_path
  - >> find_volume
  - >> dir_sdi
  - >> dir_remove
  - >> dir_read
  [Called By]
  - >> mf_unlink

  f_write (Thumb, 468 bytes, Stack size 48 bytes, ff.o(i.f_write))
  [Stack]

  - Max Depth = 424
  - Call Chain = f_write ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> disk_write
  - >> disk_read
  - >> validate
  - >> mem_cpy
  - >> create_chain
  - >> clust2sect
  - >> clmt_clust
  [Called By]
  - >> f_puts
  - >> f_putc
  - >> putc_bfd
  - >> mf_write

  ff_convert (Thumb, 68 bytes, Stack size 16 bytes, cc936.o(i.ff_convert))
  [Stack]

  - Max Depth = 16
  - Call Chain = ff_convert
  [Called By]
  - >> f_setlabel
  - >> f_getlabel
  - >> get_xdir_info
  - >> get_fileinfo
  - >> create_name

  ff_memalloc (Thumb, 8 bytes, Stack size 0 bytes, diskio.o(i.ff_memalloc))
  [Stack]

  - Max Depth = 32
  - Call Chain = ff_memalloc ⇒ mymalloc ⇒ my_mem_malloc
  [Calls]
  - >> mymalloc
  [Called By]
  - >> f_unlink
  - >> f_sync
  - >> f_rename
  - >> f_readdir
  - >> f_opendir
  - >> f_open
  - >> f_mkdir

  ff_memfree (Thumb, 8 bytes, Stack size 0 bytes, diskio.o(i.ff_memfree))
  [Stack]

  - Max Depth = 16
  - Call Chain = ff_memfree ⇒ myfree ⇒ my_mem_free
  [Calls]
  - >> myfree
  [Called By]
  - >> f_unlink
  - >> f_sync
  - >> f_rename
  - >> f_readdir
  - >> f_opendir
  - >> f_open
  - >> f_mkdir

  ff_wtoupper (Thumb, 120 bytes, Stack size 12 bytes, cc936.o(i.ff_wtoupper))
  [Stack]

  - Max Depth = 12
  - Call Chain = ff_wtoupper
  [Called By]
  - >> f_setlabel
  - >> xname_sum
  - >> dir_find
  - >> create_name
  - >> cmp_lfn

  fputc (Thumb, 14 bytes, Stack size 0 bytes, usart.o(i.fputc))
  [Address Reference Count : 2]

  - printfa.o(i.__0vprintf)
  - printfa.o(i.__0printf)

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

  - Max Depth = 8
  - Call Chain = free
  [Called By]
  - >> model_write
  - >> model_switchdata
  - >> calculate_probabilities

  free2DArray (Thumb, 38 bytes, Stack size 16 bytes, cnn.o(i.free2DArray))
  [Stack]

  - Max Depth = 32
  - Call Chain = free2DArray ⇒ myfree ⇒ my_mem_free
  [Calls]
  - >> myfree
  [Called By]
  - >> cnn_run

  generateMatrix (Thumb, 152 bytes, Stack size 20 bytes, cnn.o(i.generateMatrix))
  [Stack]

  - Max Depth = 20
  - Call Chain = generateMatrix
  [Called By]
  - >> cnn_run

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

  - >> f_sync
  - >> f_open
  - >> f_mkfs
  - >> f_mkdir

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

  - Max Depth = 944
  - Call Chain = main ⇒ model_write ⇒ model_write (Cycle)
  [Calls]
  - >> uart_init
  - >> mymalloc
  - >> my_mem_init
  - >> model_write
  - >> model_init
  - >> f_mount
  - >> exfuns_init
  - >> exf_getfree
  - >> delay_ms
  - >> delay_init
  - >> cnn_run
  - >> TIM3_Init
  - >> Stm32_Clock_Init
  - >> SD_Init
  - >> SDRAM_Init
  - >> LED_Init
  - >> HAL_Init
  - >> FTL_Init
  - >> __2printf
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

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

  - Max Depth = 20
  - Call Chain = malloc
  [Called By]
  - >> model_write
  - >> model_switchdata
  - >> calculate_probabilities

  mf_close (Thumb, 14 bytes, Stack size 8 bytes, fattester.o(i.mf_close))
  [Stack]

  - Max Depth = 560
  - Call Chain = mf_close ⇒ f_close ⇒ f_sync ⇒ load_obj_dir ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_close
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_closedir (Thumb, 6 bytes, Stack size 0 bytes, fattester.o(i.mf_closedir))
  [Stack]

  - Max Depth = 32
  - Call Chain = mf_closedir ⇒ f_closedir ⇒ validate
  [Calls]
  - >> f_closedir
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_fmkfs (Thumb, 4 bytes, Stack size 0 bytes, fattester.o(i.mf_fmkfs))
  [Stack]

  - Max Depth = 352
  - Call Chain = mf_fmkfs ⇒ f_mkfs ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_mkfs
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_getlabel (Thumb, 56 bytes, Stack size 32 bytes, fattester.o(i.mf_getlabel))
  [Stack]

  - Max Depth = 616
  - Call Chain = mf_getlabel ⇒ f_getlabel ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_getlabel
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_gets (Thumb, 36 bytes, Stack size 8 bytes, fattester.o(i.mf_gets))
  [Stack]

  - Max Depth = 424
  - Call Chain = mf_gets ⇒ f_gets ⇒ f_read ⇒ get_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_gets
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_lseek (Thumb, 12 bytes, Stack size 0 bytes, fattester.o(i.mf_lseek))
  [Stack]

  - Max Depth = 440
  - Call Chain = mf_lseek ⇒ f_lseek ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_lseek
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_mkdir (Thumb, 4 bytes, Stack size 0 bytes, fattester.o(i.mf_mkdir))
  [Stack]

  - Max Depth = 768
  - Call Chain = mf_mkdir ⇒ f_mkdir ⇒ dir_register ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_mkdir
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_mount (Thumb, 14 bytes, Stack size 0 bytes, fattester.o(i.mf_mount))
  [Stack]

  - Max Depth = 408
  - Call Chain = mf_mount ⇒ f_mount ⇒ find_volume ⇒ check_fs ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_mount
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_open (Thumb, 12 bytes, Stack size 0 bytes, fattester.o(i.mf_open))
  [Stack]

  - Max Depth = 768
  - Call Chain = mf_open ⇒ f_open ⇒ dir_register ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_open
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_opendir (Thumb, 8 bytes, Stack size 0 bytes, fattester.o(i.mf_opendir))
  [Stack]

  - Max Depth = 568
  - Call Chain = mf_opendir ⇒ f_opendir ⇒ follow_path ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_opendir
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_putc (Thumb, 14 bytes, Stack size 8 bytes, fattester.o(i.mf_putc))
  [Stack]

  - Max Depth = 536
  - Call Chain = mf_putc ⇒ f_putc ⇒ putc_bfd ⇒ f_write ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_putc
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_puts (Thumb, 14 bytes, Stack size 8 bytes, fattester.o(i.mf_puts))
  [Stack]

  - Max Depth = 544
  - Call Chain = mf_puts ⇒ f_puts ⇒ putc_bfd ⇒ f_write ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_puts
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_read (Thumb, 210 bytes, Stack size 40 bytes, fattester.o(i.mf_read))
  [Stack]

  - Max Depth = 424
  - Call Chain = mf_read ⇒ f_read ⇒ get_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_read
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_readdir (Thumb, 150 bytes, Stack size 8 bytes, fattester.o(i.mf_readdir))
  [Stack]

  - Max Depth = 512
  - Call Chain = mf_readdir ⇒ f_readdir ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_readdir
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_rename (Thumb, 4 bytes, Stack size 0 bytes, fattester.o(i.mf_rename))
  [Stack]

  - Max Depth = 880
  - Call Chain = mf_rename ⇒ f_rename ⇒ dir_register ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_rename
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_scan_files (Thumb, 66 bytes, Stack size 16 bytes, fattester.o(i.mf_scan_files))
  [Stack]

  - Max Depth = 584
  - Call Chain = mf_scan_files ⇒ f_opendir ⇒ follow_path ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_readdir
  - >> f_opendir
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_setlabel (Thumb, 28 bytes, Stack size 8 bytes, fattester.o(i.mf_setlabel))
  [Stack]

  - Max Depth = 608
  - Call Chain = mf_setlabel ⇒ f_setlabel ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_setlabel
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_showfree (Thumb, 64 bytes, Stack size 16 bytes, fattester.o(i.mf_showfree))
  [Stack]

  - Max Depth = 496
  - Call Chain = mf_showfree ⇒ f_getfree ⇒ find_volume ⇒ check_fs ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_getfree
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

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

  - usmart_config.o(.data)

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

  - usmart_config.o(.data)

  mf_unlink (Thumb, 4 bytes, Stack size 0 bytes, fattester.o(i.mf_unlink))
  [Stack]

  - Max Depth = 752
  - Call Chain = mf_unlink ⇒ f_unlink ⇒ follow_path ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_unlink
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  mf_write (Thumb, 64 bytes, Stack size 16 bytes, fattester.o(i.mf_write))
  [Stack]

  - Max Depth = 440
  - Call Chain = mf_write ⇒ f_write ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_write
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  model (Thumb, 190 bytes, Stack size 8 bytes, my.o(i.model))
  [Stack]

  - Max Depth = 16
  - Call Chain = model ⇒ strcmp
  [Calls]
  - >> strcmp
  [Called By]
  - >> model_write
  - >> model_read
  - >> model_info

  model_dataset (Thumb, 10 bytes, Stack size 0 bytes, my.o(i.model_dataset))
  [Stack]

  - Max Depth = 24
  - Call Chain = model_dataset ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  model_info (Thumb, 136 bytes, Stack size 8 bytes, my.o(i.model_info))
  [Stack]

  - Max Depth = 40 + In Cycle
  - Call Chain = model_info ⇒ model_info (Cycle)
  [Calls]
  - >> model_info
  - >> strcmp
  - >> model
  - >> __2printf
  [Called By]
  - >> model_write
  - >> model_info
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  model_init (Thumb, 192 bytes, Stack size 16 bytes, my.o(i.model_init))
  [Stack]

  - Max Depth = 88
  - Call Chain = model_init ⇒ modelmym_init ⇒ mymalloc ⇒ my_mem_malloc
  [Calls]
  - >> modelmym_init
  [Called By]
  - >> main
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  model_read (Thumb, 304 bytes, Stack size 48 bytes, my.o(i.model_read))
  [Stack]

  - Max Depth = 72 + In Cycle
  - Call Chain = model_read ⇒ model_read (Cycle)
  [Calls]
  - >> model_read
  - >> strcmp
  - >> __aeabi_f2d
  - >> model
  - >> __2printf
  [Called By]
  - >> model_read
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  model_switchdata (Thumb, 122 bytes, Stack size 24 bytes, my.o(i.model_switchdata))
  [Stack]

  - Max Depth = 952
  - Call Chain = model_switchdata ⇒ model_write ⇒ model_write (Cycle)
  [Calls]
  - >> model_write
  - >> f_open
  - >> modelmym_free
  - >> strlen
  - >> DEBUG_PRINTF
  - >> malloc
  - >> free
  - >> __2sprintf
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  model_write (Thumb, 596 bytes, Stack size 160 bytes, my.o(i.model_write))
  [Stack]

  - Max Depth = 1088 + In Cycle
  - Call Chain = model_write ⇒ model_write (Cycle)
  [Calls]
  - >> model_write
  - >> f_read
  - >> f_open
  - >> modelmym_init
  - >> model_info
  - >> SDRAM_USED
  - >> strcmp
  - >> strlen
  - >> strcat
  - >> __aeabi_memclr4
  - >> __hardfp_atof
  - >> __aeabi_d2f
  - >> DEBUG_PRINTF
  - >> model
  - >> malloc
  - >> free
  - >> __2sprintf
  - >> __2printf
  [Called By]
  - >> model_write
  - >> main
  - >> model_switchdata
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  modelmym_free (Thumb, 314 bytes, Stack size 16 bytes, my.o(i.modelmym_free))
  [Stack]

  - Max Depth = 48 + In Cycle
  - Call Chain = modelmym_free ⇒ modelmym_free (Cycle)
  [Calls]
  - >> modelmym_free
  - >> myfree
  - >> strcmp
  [Called By]
  - >> modelmym_free
  - >> model_switchdata
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  modelmym_init (Thumb, 624 bytes, Stack size 40 bytes, my.o(i.modelmym_init))
  [Stack]

  - Max Depth = 72
  - Call Chain = modelmym_init ⇒ mymalloc ⇒ my_mem_malloc
  [Calls]
  - >> mymalloc
  - >> strcmp
  [Called By]
  - >> model_write
  - >> model_init
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  my_mem_free (Thumb, 80 bytes, Stack size 16 bytes, malloc.o(i.my_mem_free))
  [Stack]

  - Max Depth = 16
  - Call Chain = my_mem_free
  [Called By]
  - >> myfree

  my_mem_init (Thumb, 36 bytes, Stack size 12 bytes, malloc.o(i.my_mem_init))
  [Stack]

  - Max Depth = 12
  - Call Chain = my_mem_init
  [Calls]
  - >> mymemset
  [Called By]
  - >> main
  [Address Reference Count : 1]
  - malloc.o(.data)

  my_mem_malloc (Thumb, 128 bytes, Stack size 24 bytes, malloc.o(i.my_mem_malloc))
  [Stack]

  - Max Depth = 24
  - Call Chain = my_mem_malloc
  [Called By]
  - >> mymalloc

  my_mem_perused (Thumb, 50 bytes, Stack size 8 bytes, malloc.o(i.my_mem_perused))
  [Stack]

  - Max Depth = 8
  - Call Chain = my_mem_perused
  [Called By]
  - >> SDRAM_USED
  [Address Reference Count : 1]
  - malloc.o(.data)

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

  - Max Depth = 16
  - Call Chain = myfree ⇒ my_mem_free
  [Calls]
  - >> my_mem_free
  [Called By]
  - >> cnn_run
  - >> FTL_Init
  - >> ff_memfree
  - >> modelmym_free
  - >> free2DArray

  mymalloc (Thumb, 28 bytes, Stack size 8 bytes, malloc.o(i.mymalloc))
  [Stack]

  - Max Depth = 32
  - Call Chain = mymalloc ⇒ my_mem_malloc
  [Calls]
  - >> my_mem_malloc
  [Called By]
  - >> exfuns_init
  - >> cnn_run
  - >> FTL_Init
  - >> main
  - >> ff_memalloc
  - >> modelmym_init
  - >> allocate2DArray

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

  - >> my_mem_init

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

  - usmart_config.o(.data)

  uart_init (Thumb, 28 bytes, Stack size 0 bytes, usart.o(i.uart_init))
  [Stack]

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

  usmart_cmd_rec (Thumb, 144 bytes, Stack size 96 bytes, usmart.o(i.usmart_cmd_rec))
  [Stack]

  - Max Depth = 360
  - Call Chain = usmart_cmd_rec ⇒ usmart_get_fparam ⇒ usmart_str2num
  [Calls]
  - >> usmart_strcmp
  - >> usmart_get_fparam
  - >> usmart_get_fname
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  usmart_exe (Thumb, 510 bytes, Stack size 128 bytes, usmart.o(i.usmart_exe))
  [Stack]

  - Max Depth = 188
  - Call Chain = usmart_exe ⇒ usmart_get_fname
  [Calls]
  - >> usmart_get_parmpos
  - >> usmart_get_fname
  - >> usmart_reset_runtime
  - >> usmart_get_runtime
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  usmart_get_aparm (Thumb, 156 bytes, Stack size 20 bytes, usmart_str.o(i.usmart_get_aparm))
  [Stack]

  - Max Depth = 20
  - Call Chain = usmart_get_aparm
  [Called By]
  - >> usmart_get_fparam
  - >> usmart_sys_cmd_exe

  usmart_get_cmdname (Thumb, 46 bytes, Stack size 12 bytes, usmart_str.o(i.usmart_get_cmdname))
  [Stack]

  - Max Depth = 12
  - Call Chain = usmart_get_cmdname
  [Called By]
  - >> usmart_sys_cmd_exe

  usmart_get_fname (Thumb, 352 bytes, Stack size 60 bytes, usmart_str.o(i.usmart_get_fname))
  [Stack]

  - Max Depth = 60
  - Call Chain = usmart_get_fname
  [Calls]
  - >> usmart_search_nextc
  - >> usmart_strcmp
  [Called By]
  - >> usmart_sys_cmd_exe
  - >> usmart_exe
  - >> usmart_cmd_rec

  usmart_get_fparam (Thumb, 202 bytes, Stack size 240 bytes, usmart_str.o(i.usmart_get_fparam))
  [Stack]

  - Max Depth = 264
  - Call Chain = usmart_get_fparam ⇒ usmart_str2num
  [Calls]
  - >> usmart_strlen
  - >> usmart_strcopy
  - >> usmart_str2num
  - >> usmart_get_parmpos
  - >> usmart_get_aparm
  [Called By]
  - >> usmart_cmd_rec

  usmart_get_parmpos (Thumb, 30 bytes, Stack size 8 bytes, usmart_str.o(i.usmart_get_parmpos))
  [Stack]

  - Max Depth = 8
  - Call Chain = usmart_get_parmpos
  [Called By]
  - >> usmart_get_fparam
  - >> usmart_exe

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

  - >> usmart_exe

  usmart_init (Thumb, 36 bytes, Stack size 8 bytes, usmart.o(i.usmart_init))
  [Stack]

  - Max Depth = 64
  - Call Chain = usmart_init ⇒ Timer4_Init ⇒ HAL_TIM_Base_Init ⇒ HAL_TIM_Base_MspInit ⇒ HAL_NVIC_SetPriority
  [Calls]
  - >> Timer4_Init
  [Address Reference Count : 1]
  - usmart_config.o(.data)

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

  - >> usmart_str2num

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

  - >> usmart_exe

  usmart_scan (Thumb, 94 bytes, Stack size 24 bytes, usmart.o(i.usmart_scan))
  [Stack]

  - Max Depth = 156
  - Call Chain = usmart_scan ⇒ usmart_sys_cmd_exe ⇒ usmart_get_fname
  [Calls]
  - >> usmart_sys_cmd_exe
  - >> __2printf
  [Address Reference Count : 1]
  - usmart_config.o(.data)

  usmart_search_nextc (Thumb, 16 bytes, Stack size 0 bytes, usmart_str.o(i.usmart_search_nextc))
  [Calls]

  - >> usmart_search_nextc
  [Called By]
  - >> usmart_search_nextc
  - >> usmart_get_fname

  usmart_str2num (Thumb, 160 bytes, Stack size 24 bytes, usmart_str.o(i.usmart_str2num))
  [Stack]

  - Max Depth = 24
  - Call Chain = usmart_str2num
  [Calls]
  - >> usmart_pow
  [Called By]
  - >> usmart_get_fparam
  - >> usmart_sys_cmd_exe

  usmart_strcmp (Thumb, 24 bytes, Stack size 0 bytes, usmart_str.o(i.usmart_strcmp))
  [Calls]

  - >> usmart_strcmp
  [Called By]
  - >> usmart_strcmp
  - >> usmart_get_fname
  - >> usmart_sys_cmd_exe
  - >> usmart_cmd_rec

  usmart_strcopy (Thumb, 18 bytes, Stack size 0 bytes, usmart_str.o(i.usmart_strcopy))
  [Calls]

  - >> usmart_strcopy
  [Called By]
  - >> usmart_strcopy
  - >> usmart_get_fparam

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

  - >> usmart_get_fparam

  usmart_sys_cmd_exe (Thumb, 1458 bytes, Stack size 72 bytes, usmart.o(i.usmart_sys_cmd_exe))
  [Stack]

  - Max Depth = 132
  - Call Chain = usmart_sys_cmd_exe ⇒ usmart_get_fname
  [Calls]
  - >> usmart_strcmp
  - >> usmart_str2num
  - >> usmart_get_fname
  - >> usmart_get_cmdname
  - >> usmart_get_aparm
  - >> __2printf
  [Called By]
  - >> usmart_scan

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

  - usmart_config.o(.data)

  ### Local Symbols

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

  - >> HAL_SYSTICK_Config
  - >> HAL_NVIC_SetPriority

  UART_Receive_IT (Thumb, 166 bytes, Stack size 8 bytes, stm32f4xx_hal_uart.o(i.UART_Receive_IT))
  [Stack]

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

  UART_SetConfig (Thumb, 364 bytes, Stack size 24 bytes, stm32f4xx_hal_uart.o(i.UART_SetConfig))
  [Stack]

  - Max Depth = 52
  - Call Chain = UART_SetConfig ⇒ HAL_RCC_GetPCLK2Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_RCC_GetPCLK2Freq
  - >> HAL_RCC_GetPCLK1Freq
  [Called By]
  - >> HAL_UART_Init

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

  - >> HAL_UART_IRQHandler

  UART_WaitOnFlagUntilTimeout (Thumb, 146 bytes, Stack size 32 bytes, stm32f4xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout))
  [Stack]

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

  SD_CmdResp1Error (Thumb, 230 bytes, Stack size 16 bytes, stm32f4xx_hal_sd.o(i.SD_CmdResp1Error))
  [Stack]

  - Max Depth = 24
  - Call Chain = SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> SDIO_GetResponse
  - >> SDIO_GetCommandResponse
  [Called By]
  - >> HAL_SD_WriteBlocks
  - >> HAL_SD_StopTransfer
  - >> HAL_SD_ReadBlocks
  - >> HAL_SD_Init
  - >> SD_WideBus_Enable
  - >> SD_WideBus_Disable
  - >> SD_PowerON
  - >> SD_FindSCR

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

  - >> SD_Initialize_Cards

  SD_CmdResp6Error (Thumb, 114 bytes, Stack size 24 bytes, stm32f4xx_hal_sd.o(i.SD_CmdResp6Error))
  [Stack]

  - Max Depth = 32
  - Call Chain = SD_CmdResp6Error ⇒ SDIO_GetResponse
  [Calls]
  - >> SDIO_GetResponse
  - >> SDIO_GetCommandResponse
  [Called By]
  - >> SD_Initialize_Cards

  SD_CmdResp7Error (Thumb, 70 bytes, Stack size 0 bytes, stm32f4xx_hal_sd.o(i.SD_CmdResp7Error))
  [Called By]

  - >> SD_PowerON

  SD_FindSCR (Thumb, 266 bytes, Stack size 88 bytes, stm32f4xx_hal_sd.o(i.SD_FindSCR))
  [Stack]

  - Max Depth = 112
  - Call Chain = SD_FindSCR ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> SD_CmdResp1Error
  - >> SDIO_SendCommand
  - >> SDIO_ReadFIFO
  - >> SDIO_DataConfig
  [Called By]
  - >> SD_WideBus_Enable
  - >> SD_WideBus_Disable

  SD_Initialize_Cards (Thumb, 220 bytes, Stack size 40 bytes, stm32f4xx_hal_sd.o(i.SD_Initialize_Cards))
  [Stack]

  - Max Depth = 72
  - Call Chain = SD_Initialize_Cards ⇒ SD_CmdResp6Error ⇒ SDIO_GetResponse
  [Calls]
  - >> SD_CmdResp6Error
  - >> SD_CmdResp2Error
  - >> SDIO_SendCommand
  - >> SDIO_GetResponse
  - >> SDIO_GetPowerState
  [Called By]
  - >> HAL_SD_Init

  SD_IsCardProgramming (Thumb, 310 bytes, Stack size 40 bytes, stm32f4xx_hal_sd.o(i.SD_IsCardProgramming))
  [Stack]

  - Max Depth = 48
  - Call Chain = SD_IsCardProgramming ⇒ SDIO_GetResponse
  [Calls]
  - >> SDIO_SendCommand
  - >> SDIO_GetResponse
  - >> SDIO_GetCommandResponse
  [Called By]
  - >> HAL_SD_WriteBlocks

  SD_PowerON (Thumb, 388 bytes, Stack size 64 bytes, stm32f4xx_hal_sd.o(i.SD_PowerON))
  [Stack]

  - Max Depth = 88
  - Call Chain = SD_PowerON ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> HAL_Delay
  - >> SD_CmdResp7Error
  - >> SD_CmdResp1Error
  - >> SDIO_SendCommand
  - >> SDIO_PowerState_ON
  - >> SDIO_GetResponse
  [Called By]
  - >> HAL_SD_Init

  SD_WideBus_Disable (Thumb, 114 bytes, Stack size 40 bytes, stm32f4xx_hal_sd.o(i.SD_WideBus_Disable))
  [Stack]

  - Max Depth = 152
  - Call Chain = SD_WideBus_Disable ⇒ SD_FindSCR ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> SD_FindSCR
  - >> SD_CmdResp1Error
  - >> SDIO_SendCommand
  - >> SDIO_GetResponse
  [Called By]
  - >> HAL_SD_WideBusOperation_Config

  SD_WideBus_Enable (Thumb, 116 bytes, Stack size 40 bytes, stm32f4xx_hal_sd.o(i.SD_WideBus_Enable))
  [Stack]

  - Max Depth = 152
  - Call Chain = SD_WideBus_Enable ⇒ SD_FindSCR ⇒ SD_CmdResp1Error ⇒ SDIO_GetResponse
  [Calls]
  - >> SD_FindSCR
  - >> SD_CmdResp1Error
  - >> SDIO_SendCommand
  - >> SDIO_GetResponse
  [Called By]
  - >> HAL_SD_WideBusOperation_Config

  SPI_WaitOnFlagUntilTimeout (Thumb, 158 bytes, Stack size 32 bytes, stm32f4xx_hal_spi.o(i.SPI_WaitOnFlagUntilTimeout))
  [Stack]

  - Max Depth = 32
  - Call Chain = SPI_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> HAL_SPI_TransmitReceive

  change_bitmap (Thumb, 118 bytes, Stack size 32 bytes, ff.o(i.change_bitmap))
  [Stack]

  - Max Depth = 344
  - Call Chain = change_bitmap ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> move_window
  [Called By]
  - >> remove_chain
  - >> create_chain

  check_fs (Thumb, 100 bytes, Stack size 16 bytes, ff.o(i.check_fs))
  [Stack]

  - Max Depth = 328
  - Call Chain = check_fs ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> move_window
  - >> mem_cmp
  - >> ld_word
  - >> ld_dword
  [Called By]
  - >> find_volume

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

  - >> f_setlabel
  - >> create_name

  clmt_clust (Thumb, 50 bytes, Stack size 16 bytes, ff.o(i.clmt_clust))
  [Stack]

  - Max Depth = 56
  - Call Chain = clmt_clust ⇒ __aeabi_uldivmod
  [Calls]
  - >> __aeabi_uldivmod
  [Called By]
  - >> f_write
  - >> f_read
  - >> f_lseek

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

  - >> f_write
  - >> f_rename
  - >> f_read
  - >> f_mkdir
  - >> f_lseek
  - >> find_volume
  - >> dir_sdi
  - >> dir_next

  cmp_lfn (Thumb, 128 bytes, Stack size 40 bytes, ff.o(i.cmp_lfn))
  [Stack]

  - Max Depth = 52
  - Call Chain = cmp_lfn ⇒ ff_wtoupper
  [Calls]
  - >> ff_wtoupper
  - >> ld_word
  [Called By]
  - >> dir_find

  create_chain (Thumb, 270 bytes, Stack size 32 bytes, ff.o(i.create_chain))
  [Stack]

  - Max Depth = 376
  - Call Chain = create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> put_fat
  - >> get_fat
  - >> find_bitmap
  - >> change_bitmap
  [Called By]
  - >> f_write
  - >> f_mkdir
  - >> f_lseek
  - >> dir_next

  create_name (Thumb, 514 bytes, Stack size 48 bytes, ff.o(i.create_name))
  [Stack]

  - Max Depth = 64
  - Call Chain = create_name ⇒ ff_convert
  [Calls]
  - >> ff_wtoupper
  - >> ff_convert
  - >> mem_set
  - >> chk_chr
  [Called By]
  - >> follow_path

  create_xdir (Thumb, 124 bytes, Stack size 40 bytes, ff.o(i.create_xdir))
  [Stack]

  - Max Depth = 68
  - Call Chain = create_xdir ⇒ xname_sum ⇒ ff_wtoupper
  [Calls]
  - >> xname_sum
  - >> st_word
  - >> mem_set
  [Called By]
  - >> dir_register

  dir_alloc (Thumb, 88 bytes, Stack size 24 bytes, ff.o(i.dir_alloc))
  [Stack]

  - Max Depth = 432
  - Call Chain = dir_alloc ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> move_window
  - >> dir_sdi
  - >> dir_next
  [Called By]
  - >> f_setlabel
  - >> dir_register

  dir_find (Thumb, 316 bytes, Stack size 40 bytes, ff.o(i.dir_find))
  [Stack]

  - Max Depth = 504
  - Call Chain = dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> ff_wtoupper
  - >> xname_sum
  - >> sum_sfn
  - >> move_window
  - >> mem_cmp
  - >> ld_word
  - >> dir_sdi
  - >> dir_read
  - >> dir_next
  - >> cmp_lfn
  [Called By]
  - >> follow_path
  - >> dir_register

  dir_next (Thumb, 260 bytes, Stack size 32 bytes, ff.o(i.dir_next))
  [Stack]

  - Max Depth = 408
  - Call Chain = dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> sync_window
  - >> mem_set
  - >> get_fat
  - >> create_chain
  - >> clust2sect
  [Called By]
  - >> f_readdir
  - >> store_xdir
  - >> load_xdir
  - >> dir_remove
  - >> dir_register
  - >> dir_read
  - >> dir_find
  - >> dir_alloc

  dir_read (Thumb, 230 bytes, Stack size 32 bytes, ff.o(i.dir_read))
  [Stack]

  - Max Depth = 464
  - Call Chain = dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> sum_sfn
  - >> pick_lfn
  - >> move_window
  - >> load_xdir
  - >> dir_next
  [Called By]
  - >> f_unlink
  - >> f_setlabel
  - >> f_readdir
  - >> f_getlabel
  - >> dir_find

  dir_register (Thumb, 566 bytes, Stack size 120 bytes, ff.o(i.dir_register))
  [Stack]

  - Max Depth = 624
  - Call Chain = dir_register ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> sum_sfn
  - >> store_xdir
  - >> st_word
  - >> st_qword
  - >> move_window
  - >> mem_set
  - >> mem_cpy
  - >> load_obj_dir
  - >> gen_numname
  - >> fill_fat_chain
  - >> dir_sdi
  - >> dir_next
  - >> dir_find
  - >> dir_alloc
  - >> create_xdir
  [Called By]
  - >> f_rename
  - >> f_open
  - >> f_mkdir

  dir_remove (Thumb, 94 bytes, Stack size 24 bytes, ff.o(i.dir_remove))
  [Stack]

  - Max Depth = 432
  - Call Chain = dir_remove ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> move_window
  - >> dir_sdi
  - >> dir_next
  [Called By]
  - >> f_unlink
  - >> f_rename

  dir_sdi (Thumb, 150 bytes, Stack size 24 bytes, ff.o(i.dir_sdi))
  [Stack]

  - Max Depth = 360
  - Call Chain = dir_sdi ⇒ get_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> get_fat
  - >> clust2sect
  [Called By]
  - >> f_unlink
  - >> f_setlabel
  - >> f_readdir
  - >> f_opendir
  - >> f_getlabel
  - >> store_xdir
  - >> load_obj_dir
  - >> follow_path
  - >> dir_remove
  - >> dir_register
  - >> dir_find
  - >> dir_alloc

  fill_fat_chain (Thumb, 46 bytes, Stack size 16 bytes, ff.o(i.fill_fat_chain))
  [Stack]

  - Max Depth = 360
  - Call Chain = fill_fat_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> put_fat
  [Called By]
  - >> f_sync
  - >> dir_register

  find_bitmap (Thumb, 146 bytes, Stack size 32 bytes, ff.o(i.find_bitmap))
  [Stack]

  - Max Depth = 344
  - Call Chain = find_bitmap ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> move_window
  [Called By]
  - >> create_chain

  find_volume (Thumb, 832 bytes, Stack size 56 bytes, ff.o(i.find_volume))
  [Stack]

  - Max Depth = 384
  - Call Chain = find_volume ⇒ check_fs ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> disk_status
  - >> disk_initialize
  - >> move_window
  - >> ld_word
  - >> ld_qword
  - >> ld_dword
  - >> get_ldnumber
  - >> clust2sect
  - >> check_fs
  [Called By]
  - >> f_mount
  - >> f_unlink
  - >> f_setlabel
  - >> f_rename
  - >> f_opendir
  - >> f_open
  - >> f_mkdir
  - >> f_getlabel
  - >> f_getfree

  follow_path (Thumb, 180 bytes, Stack size 24 bytes, ff.o(i.follow_path))
  [Stack]

  - Max Depth = 528
  - Call Chain = follow_path ⇒ dir_find ⇒ dir_read ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> ld_qword
  - >> ld_dword
  - >> ld_clust
  - >> dir_sdi
  - >> dir_find
  - >> create_name
  [Called By]
  - >> f_unlink
  - >> f_rename
  - >> f_opendir
  - >> f_open
  - >> f_mkdir

  gen_numname (Thumb, 134 bytes, Stack size 24 bytes, ff.o(i.gen_numname))
  [Stack]

  - Max Depth = 24
  - Call Chain = gen_numname
  [Calls]
  - >> mem_cpy
  [Called By]
  - >> dir_register

  get_fat (Thumb, 294 bytes, Stack size 24 bytes, ff.o(i.get_fat))
  [Stack]

  - Max Depth = 336
  - Call Chain = get_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> move_window
  - >> ld_word
  - >> ld_dword
  [Called By]
  - >> f_read
  - >> f_lseek
  - >> f_getfree
  - >> remove_chain
  - >> dir_sdi
  - >> dir_next
  - >> create_chain

  get_fileinfo (Thumb, 262 bytes, Stack size 32 bytes, ff.o(i.get_fileinfo))
  [Stack]

  - Max Depth = 72
  - Call Chain = get_fileinfo ⇒ get_xdir_info ⇒ ff_convert
  [Calls]
  - >> ff_convert
  - >> ld_word
  - >> ld_dword
  - >> get_xdir_info
  [Called By]
  - >> f_readdir

  get_ldnumber (Thumb, 60 bytes, Stack size 8 bytes, ff.o(i.get_ldnumber))
  [Stack]

  - Max Depth = 8
  - Call Chain = get_ldnumber
  [Called By]
  - >> f_mount
  - >> f_rename
  - >> f_mkfs
  - >> find_volume

  get_xdir_info (Thumb, 138 bytes, Stack size 24 bytes, ff.o(i.get_xdir_info))
  [Stack]

  - Max Depth = 40
  - Call Chain = get_xdir_info ⇒ ff_convert
  [Calls]
  - >> ff_convert
  - >> ld_word
  - >> ld_qword
  [Called By]
  - >> get_fileinfo

  ld_clust (Thumb, 38 bytes, Stack size 16 bytes, ff.o(i.ld_clust))
  [Stack]

  - Max Depth = 16
  - Call Chain = ld_clust
  [Calls]
  - >> ld_word
  [Called By]
  - >> f_unlink
  - >> f_rename
  - >> f_opendir
  - >> f_open
  - >> follow_path

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

  - >> f_unlink
  - >> f_opendir
  - >> f_open
  - >> f_getlabel
  - >> f_getfree
  - >> put_fat
  - >> get_fileinfo
  - >> get_fat
  - >> follow_path
  - >> find_volume
  - >> check_fs

  ld_qword (Thumb, 86 bytes, Stack size 8 bytes, ff.o(i.ld_qword))
  [Stack]

  - Max Depth = 8
  - Call Chain = ld_qword
  [Called By]
  - >> f_unlink
  - >> f_opendir
  - >> f_open
  - >> get_xdir_info
  - >> follow_path
  - >> find_volume

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

  - >> f_rename
  - >> f_getlabel
  - >> f_getfree
  - >> pick_lfn
  - >> load_xdir
  - >> ld_clust
  - >> get_xdir_info
  - >> get_fileinfo
  - >> get_fat
  - >> find_volume
  - >> dir_find
  - >> cmp_lfn
  - >> check_fs

  load_obj_dir (Thumb, 56 bytes, Stack size 8 bytes, ff.o(i.load_obj_dir))
  [Stack]

  - Max Depth = 440
  - Call Chain = load_obj_dir ⇒ load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> load_xdir
  - >> dir_sdi
  [Called By]
  - >> f_sync
  - >> dir_register

  load_xdir (Thumb, 170 bytes, Stack size 24 bytes, ff.o(i.load_xdir))
  [Stack]

  - Max Depth = 432
  - Call Chain = load_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> xdir_sum
  - >> move_window
  - >> mem_cpy
  - >> ld_word
  - >> dir_next
  [Called By]
  - >> load_obj_dir
  - >> dir_read

  mem_cmp (Thumb, 24 bytes, Stack size 8 bytes, ff.o(i.mem_cmp))
  [Stack]

  - Max Depth = 8
  - Call Chain = mem_cmp
  [Called By]
  - >> dir_find
  - >> check_fs

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

  - >> f_write
  - >> f_setlabel
  - >> f_rename
  - >> f_read
  - >> f_mkfs
  - >> f_mkdir
  - >> store_xdir
  - >> load_xdir
  - >> gen_numname
  - >> dir_register

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

  - >> f_setlabel
  - >> f_mkfs
  - >> f_mkdir
  - >> sync_fs
  - >> dir_register
  - >> dir_next
  - >> create_xdir
  - >> create_name

  move_window (Thumb, 50 bytes, Stack size 16 bytes, ff.o(i.move_window))
  [Stack]

  - Max Depth = 312
  - Call Chain = move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> disk_read
  - >> sync_window
  [Called By]
  - >> f_sync
  - >> f_rename
  - >> f_open
  - >> f_getlabel
  - >> f_getfree
  - >> store_xdir
  - >> put_fat
  - >> load_xdir
  - >> get_fat
  - >> find_volume
  - >> find_bitmap
  - >> dir_remove
  - >> dir_register
  - >> dir_read
  - >> dir_find
  - >> dir_alloc
  - >> check_fs
  - >> change_bitmap

  pick_lfn (Thumb, 108 bytes, Stack size 32 bytes, ff.o(i.pick_lfn))
  [Stack]

  - Max Depth = 32
  - Call Chain = pick_lfn
  [Calls]
  - >> ld_word
  [Called By]
  - >> dir_read

  put_fat (Thumb, 246 bytes, Stack size 32 bytes, ff.o(i.put_fat))
  [Stack]

  - Max Depth = 344
  - Call Chain = put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> st_word
  - >> st_dword
  - >> move_window
  - >> ld_dword
  [Called By]
  - >> remove_chain
  - >> fill_fat_chain
  - >> create_chain

  putc_bfd (Thumb, 58 bytes, Stack size 16 bytes, ff.o(i.putc_bfd))
  [Stack]

  - Max Depth = 440
  - Call Chain = putc_bfd ⇒ f_write ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> f_write
  [Called By]
  - >> f_puts
  - >> f_putc

  remove_chain (Thumb, 232 bytes, Stack size 32 bytes, ff.o(i.remove_chain))
  [Stack]

  - Max Depth = 376
  - Call Chain = remove_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> put_fat
  - >> get_fat
  - >> change_bitmap
  [Called By]
  - >> f_unlink
  - >> f_open
  - >> f_mkdir

  st_clust (Thumb, 40 bytes, Stack size 16 bytes, ff.o(i.st_clust))
  [Stack]

  - Max Depth = 16
  - Call Chain = st_clust
  [Calls]
  - >> st_word
  [Called By]
  - >> f_sync
  - >> f_rename
  - >> f_open
  - >> f_mkdir

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

  - >> f_sync
  - >> f_open
  - >> f_mkfs
  - >> f_mkdir
  - >> sync_fs
  - >> put_fat

  st_qword (Thumb, 74 bytes, Stack size 8 bytes, ff.o(i.st_qword))
  [Stack]

  - Max Depth = 8
  - Call Chain = st_qword
  [Called By]
  - >> f_sync
  - >> f_open
  - >> dir_register

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

  - >> f_sync
  - >> f_setlabel
  - >> f_rename
  - >> f_mkfs
  - >> sync_fs
  - >> store_xdir
  - >> st_clust
  - >> put_fat
  - >> dir_register
  - >> create_xdir

  store_xdir (Thumb, 108 bytes, Stack size 24 bytes, ff.o(i.store_xdir))
  [Stack]

  - Max Depth = 432
  - Call Chain = store_xdir ⇒ dir_next ⇒ create_chain ⇒ put_fat ⇒ move_window ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> xdir_sum
  - >> st_word
  - >> move_window
  - >> mem_cpy
  - >> dir_sdi
  - >> dir_next
  [Called By]
  - >> f_sync
  - >> f_rename
  - >> f_open
  - >> f_mkdir
  - >> dir_register

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

  - >> dir_register
  - >> dir_read
  - >> dir_find

  sync_fs (Thumb, 126 bytes, Stack size 16 bytes, ff.o(i.sync_fs))
  [Stack]

  - Max Depth = 312
  - Call Chain = sync_fs ⇒ sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> disk_write
  - >> disk_ioctl
  - >> sync_window
  - >> st_word
  - >> st_dword
  - >> mem_set
  [Called By]
  - >> f_unlink
  - >> f_sync
  - >> f_setlabel
  - >> f_rename
  - >> f_mkdir

  sync_window (Thumb, 82 bytes, Stack size 24 bytes, ff.o(i.sync_window))
  [Stack]

  - Max Depth = 296
  - Call Chain = sync_window ⇒ disk_write ⇒ FTL_WriteSectors ⇒ FTL_CopyAndWriteToBlock ⇒ FTL_FindSamePlaneUnusedBlock ⇒ FTL_FindUnusedBlock ⇒ NAND_ReadSpare ⇒ NAND_ReadPage ⇒ NAND_ECC_Correction ⇒ __2printf
  [Calls]
  - >> disk_write
  [Called By]
  - >> f_mkdir
  - >> sync_fs
  - >> move_window
  - >> dir_next

  validate (Thumb, 50 bytes, Stack size 16 bytes, ff.o(i.validate))
  [Stack]

  - Max Depth = 16
  - Call Chain = validate
  [Calls]
  - >> disk_status
  [Called By]
  - >> f_write
  - >> f_sync
  - >> f_readdir
  - >> f_read
  - >> f_lseek
  - >> f_closedir
  - >> f_close

  xdir_sum (Thumb, 52 bytes, Stack size 12 bytes, ff.o(i.xdir_sum))
  [Stack]

  - Max Depth = 12
  - Call Chain = xdir_sum
  [Called By]
  - >> store_xdir
  - >> load_xdir

  xname_sum (Thumb, 60 bytes, Stack size 16 bytes, ff.o(i.xname_sum))
  [Stack]

  - Max Depth = 28
  - Call Chain = xname_sum ⇒ ff_wtoupper
  [Calls]
  - >> ff_wtoupper
  [Called By]
  - >> dir_find
  - >> create_xdir

  _fp_digits (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
  [Calls]

  - >> __aeabi_dmul
  - >> __aeabi_uldivmod
  - >> __aeabi_ddiv
  - >> __aeabi_dadd
  - >> __aeabi_cdrcmple
  - >> __aeabi_d2ulz
  [Called By]
  - >> _printf_core

  _printf_core (Thumb, 1744 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  - >> __aeabi_uidivmod
  - >> _printf_pre_padding
  - >> _printf_post_padding
  - >> _fp_digits
  [Called By]
  - >> __0vprintf
  - >> __0sprintf
  - >> __0printf

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

  - >> _printf_core

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

  - >> _printf_core

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

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

  _local_sscanf (Thumb, 54 bytes, Stack size 56 bytes, strtod.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = _local_sscanf ⇒ _scanf_real
  [Calls]
  - >> _scanf_real
  [Called By]
  - >> __strtod_int

  _fp_value (Thumb, 256 bytes, Stack size 56 bytes, scanf_fp.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_dmul
  - >> __aeabi_ddiv
  - >> __aeabi_ul2d
  [Called By]
  - >> _scanf_really_real

  ### Undefined Global Symbols