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

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Fri Jun 20 23:27:50 2025

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

### Call chain for Maximum Stack Depth:

shellEnter ⇒ shellExec ⇒ shellRunCommand ⇒ shellExtRun ⇒ shellExtParsePara ⇒ shellExtParseVar ⇒ shellSeekCommand ⇒ strncmp

### Mutually Recursive functions

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

  ### Function Pointers

  - ADC1_2_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - ADC3_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - BusFault_Handler from stm32f10x_it.o(i.BusFault_Handler) referenced from startup_stm32f10x_hd.o(RESET)
  - CAN1_RX1_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - CAN1_SCE_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA1_Channel1_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA1_Channel2_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA1_Channel3_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA1_Channel4_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA1_Channel5_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA1_Channel6_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA1_Channel7_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA2_Channel1_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA2_Channel2_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA2_Channel3_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DMA2_Channel4_5_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - DebugMon_Handler from stm32f10x_it.o(i.DebugMon_Handler) referenced from startup_stm32f10x_hd.o(RESET)
  - EXTI0_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - EXTI15_10_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - EXTI1_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - EXTI2_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - EXTI3_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - EXTI4_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - EXTI9_5_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - FLASH_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - FSMC_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - HardFault_Handler from stm32f10x_it.o(i.HardFault_Handler) referenced from startup_stm32f10x_hd.o(RESET)
  - I2C1_ER_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - I2C1_EV_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - I2C2_ER_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - I2C2_EV_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - LetterShellIrqFunc from lettershell.o(i.LetterShellIrqFunc) referenced from lettershell.o(i.LetterShellInit)
  - MemManage_Handler from stm32f10x_it.o(i.MemManage_Handler) referenced from startup_stm32f10x_hd.o(RESET)
  - NMI_Handler from stm32f10x_it.o(i.NMI_Handler) referenced from startup_stm32f10x_hd.o(RESET)
  - PVD_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - PendSV_Handler from stm32f10x_it.o(i.PendSV_Handler) referenced from startup_stm32f10x_hd.o(RESET)
  - RCC_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - RTCAlarm_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - RTC_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - Reset_Handler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - SDIO_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - SPI1_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - SPI2_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - SPI3_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - SVC_Handler from stm32f10x_it.o(i.SVC_Handler) referenced from startup_stm32f10x_hd.o(RESET)
  - ShellWrite from lettershell.o(i.ShellWrite) referenced from lettershell.o(i.LetterShellInit)
  - SysTick_Handler from stm32f10x_it.o(i.SysTick_Handler) referenced from startup_stm32f10x_hd.o(RESET)
  - SystemInit from system_stm32f10x.o(i.SystemInit) referenced from startup_stm32f10x_hd.o(.text)
  - TAMPER_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM1_BRK_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM1_CC_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM1_TRG_COM_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM1_UP_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM2_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM3_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM4_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM5_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM6_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM7_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM8_BRK_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM8_CC_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM8_TRG_COM_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - TIM8_UP_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - UART4_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - UART5_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - USART1_IRQHandler from interrupt.o(i.USART1_IRQHandler) referenced from startup_stm32f10x_hd.o(RESET)
  - USART2_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - USART3_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - USBWakeUp_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - USB_HP_CAN1_TX_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - USB_LP_CAN1_RX0_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - UsageFault_Handler from stm32f10x_it.o(i.UsageFault_Handler) referenced from startup_stm32f10x_hd.o(RESET)
  - WWDG_IRQHandler from startup_stm32f10x_hd.o(.text) referenced from startup_stm32f10x_hd.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f10x_hd.o(.text)
  - doSet from lettershell.o(i.doSet) referenced from lettershell.o(shellCommand)
  - doToggle from lettershell.o(i.doToggle) referenced from lettershell.o(shellCommand)
  - fputc from bsp.o(i.fputc) referenced from printfa.o(i.__0printf)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - shellBackspace from shell.o(i.shellBackspace) referenced 2 times from shell.o(shellCommand)
  - shellClear from shell.o(i.shellClear) referenced from shell.o(shellCommand)
  - shellCmds from shell.o(i.shellCmds) referenced from shell.o(shellCommand)
  - shellDelete from shell.o(i.shellDelete) referenced from shell.o(shellCommand)
  - shellDown from shell.o(i.shellDown) referenced from shell.o(shellCommand)
  - shellEnter from shell.o(i.shellEnter) referenced 2 times from shell.o(shellCommand)
  - shellHelp from shell.o(i.shellHelp) referenced from shell.o(shellCommand)
  - shellKeys from shell.o(i.shellKeys) referenced from shell.o(shellCommand)
  - shellLeft from shell.o(i.shellLeft) referenced from shell.o(shellCommand)
  - shellRight from shell.o(i.shellRight) referenced from shell.o(shellCommand)
  - shellSetVar from shell.o(i.shellSetVar) referenced from shell.o(shellCommand)
  - shellTab from shell.o(i.shellTab) referenced from shell.o(shellCommand)
  - shellUp from shell.o(i.shellUp) referenced from shell.o(shellCommand)
  - shellUsers from shell.o(i.shellUsers) referenced from shell.o(shellCommand)
  - shellVars from shell.o(i.shellVars) referenced from shell.o(shellCommand)
  - version from lettershell.o(i.version) referenced from lettershell.o(shellCommand)

  ### Global Symbols

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

  - startup_stm32f10x_hd.o(.text)

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

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

  - >> __scatterload

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

  - >> __scatterload

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

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

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

  __rt_lib_shutdown_fini (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))

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

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

  Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_hd.o(.text))

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

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

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - >> _memset$wrapper
  - >> __aeabi_memclr

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

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

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

  - >> __aeabi_memset

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

  - >> shellExtRun

  __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

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

  - >> shellSetUser
  - >> shellRemoveParamQuotes

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

  - Max Depth = 8
  - Call Chain = strcmp
  [Called By]
  - >> shellSeekCommand
  - >> shellSetUser
  - >> shellHistoryAdd
  - >> shellCheckPassword

  strncmp (Thumb, 30 bytes, Stack size 12 bytes, strncmp.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = strncmp
  [Called By]
  - >> shellSeekCommand

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

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

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

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

  __aeabi_i2f (Thumb, 18 bytes, Stack size 0 bytes, fflti.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = __aeabi_i2f ⇒ _float_epilogue
  [Calls]
  - >> _float_epilogue
  [Called By]
  - >> shellExtParseNumber

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

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

  __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_uldivmod (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text), UNUSED)
  [Calls]

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

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

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

  - >> __aeabi_fdiv

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

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

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

  - >> __aeabi_lasr
  - >> __aeabi_llsl
  - >> _double_round
  - >> _double_epilogue
  [Called By]
  - >> __aeabi_drsub
  - >> __aeabi_dsub
  - >> _fp_digits

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

  - >> __aeabi_dadd

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

  - >> __aeabi_dadd

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

  - >> _double_epilogue
  [Called By]
  - >> _fp_digits

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

  - >> _double_round
  [Called By]
  - >> _fp_digits

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

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

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

  - >> _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_llsl (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
  [Called By]

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

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

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

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

  - >> __aeabi_dadd

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

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

  - >> _double_epilogue
  - >> __aeabi_ddiv
  - >> __aeabi_dadd

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

  - >> __aeabi_llsr
  - >> __aeabi_llsl
  - >> _double_round
  [Called By]
  - >> __aeabi_dmul
  - >> __aeabi_dadd

  BspConfigInit (Thumb, 92 bytes, Stack size 16 bytes, bsp.o(i.BspConfigInit))
  [Stack]

  - Max Depth = 48
  - Call Chain = BspConfigInit ⇒ GpioConfig ⇒ GPIO_Init
  [Calls]
  - >> SetGpioSts
  - >> IntCbInit
  - >> GpioConfig
  - >> DelayConfig
  - >> BspInitUsartClock
  - >> BspInitGpioClock
  [Called By]
  - >> main

  BspInitGpioClock (Thumb, 62 bytes, Stack size 8 bytes, gpio.o(i.BspInitGpioClock))
  [Stack]

  - Max Depth = 16
  - Call Chain = BspInitGpioClock ⇒ GpioClockEnable
  [Calls]
  - >> GpioClockEnable
  [Called By]
  - >> BspConfigInit

  BspInitUsartClock (Thumb, 8 bytes, Stack size 0 bytes, usart.o(i.BspInitUsartClock))
  [Stack]

  - Max Depth = 8
  - Call Chain = BspInitUsartClock ⇒ UsartClockEnable
  [Calls]
  - >> UsartClockEnable
  [Called By]
  - >> BspConfigInit

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

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

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

  - startup_stm32f10x_hd.o(RESET)

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

  - >> BspConfigInit

  DelayMs (Thumb, 10 bytes, Stack size 0 bytes, delay.o(i.DelayMs))
  [Stack]

  - Max Depth = 4
  - Call Chain = DelayMs ⇒ DelayUs
  [Calls]
  - >> DelayUs
  [Called By]
  - >> main

  DelayUs (Thumb, 32 bytes, Stack size 4 bytes, delay.o(i.DelayUs))
  [Stack]

  - Max Depth = 4
  - Call Chain = DelayUs
  [Calls]
  - >> GetDwtCnt
  [Called By]
  - >> DelayMs

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

  - Max Depth = 24
  - Call Chain = GPIO_Init
  [Called By]
  - >> GpioConfig

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

  - >> GetGpioSts

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

  - >> SetGpioSts

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

  - >> SetGpioSts

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

  - >> DelayUs

  GetGpioSts (Thumb, 4 bytes, Stack size 0 bytes, gpio.o(i.GetGpioSts))
  [Calls]

  - >> GPIO_ReadInputDataBit
  [Called By]
  - >> IoCtlLedToggle

  GpioClockEnable (Thumb, 106 bytes, Stack size 8 bytes, gpio.o(i.GpioClockEnable))
  [Stack]

  - Max Depth = 8
  - Call Chain = GpioClockEnable
  [Calls]
  - >> RCC_APB2PeriphClockCmd
  [Called By]
  - >> BspInitGpioClock

  GpioConfig (Thumb, 22 bytes, Stack size 8 bytes, gpio.o(i.GpioConfig))
  [Stack]

  - Max Depth = 32
  - Call Chain = GpioConfig ⇒ GPIO_Init
  [Calls]
  - >> GPIO_Init
  [Called By]
  - >> BspConfigInit

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

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

  IntCbInit (Thumb, 8 bytes, Stack size 0 bytes, interrupt.o(i.IntCbInit))
  [Calls]

  - >> NVIC_PriorityGroupConfig
  [Called By]
  - >> BspConfigInit

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

  - >> LetterShellInit

  IntSetLevel (Thumb, 28 bytes, Stack size 8 bytes, interrupt.o(i.IntSetLevel))
  [Stack]

  - Max Depth = 24
  - Call Chain = IntSetLevel ⇒ NVIC_Init
  [Calls]
  - >> NVIC_Init
  [Called By]
  - >> LetterShellInit

  IoCtl (Thumb, 46 bytes, Stack size 8 bytes, bsp.o(i.IoCtl))
  [Stack]

  - Max Depth = 8
  - Call Chain = IoCtl
  [Calls]
  - >> SetGpioSts
  [Called By]
  - >> doSet

  IoCtlLedToggle (Thumb, 54 bytes, Stack size 16 bytes, bsp.o(i.IoCtlLedToggle))
  [Stack]

  - Max Depth = 16
  - Call Chain = IoCtlLedToggle
  [Calls]
  - >> SetGpioSts
  - >> GetGpioSts
  [Called By]
  - >> main

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

  - >> doToggle

  LetterShellInit (Thumb, 50 bytes, Stack size 8 bytes, lettershell.o(i.LetterShellInit))
  [Stack]

  - Max Depth = 96
  - Call Chain = LetterShellInit ⇒ UsartStdConfig ⇒ UsartConfig ⇒ USART_Init ⇒ RCC_GetClocksFreq
  [Calls]
  - >> shellInit
  - >> UsartStdConfig
  - >> IntSetLevel
  - >> IntCbReg
  [Called By]
  - >> main

  LetterShellIrqFunc (Thumb, 18 bytes, Stack size 8 bytes, lettershell.o(i.LetterShellIrqFunc))
  [Stack]

  - Max Depth = 80
  - Call Chain = LetterShellIrqFunc ⇒ shellHandler ⇒ shellNormalInput ⇒ shellInsertByte ⇒ shellWritePrompt ⇒ shellWriteString
  [Calls]
  - >> shellHandler
  - >> UsartReceiveChar
  [Address Reference Count : 1]
  - lettershell.o(i.LetterShellInit)

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

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

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

  - startup_stm32f10x_hd.o(RESET)

  NVIC_Init (Thumb, 96 bytes, Stack size 16 bytes, misc.o(i.NVIC_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = NVIC_Init
  [Called By]
  - >> IntSetLevel

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

  - >> IntCbInit

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

  - startup_stm32f10x_hd.o(RESET)

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

  - >> UsartClockEnable

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

  - >> UsartClockEnable
  - >> GpioClockEnable

  RCC_GetClocksFreq (Thumb, 154 bytes, Stack size 8 bytes, stm32f10x_rcc.o(i.RCC_GetClocksFreq))
  [Stack]

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

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

  - startup_stm32f10x_hd.o(RESET)

  SetGpioSts (Thumb, 18 bytes, Stack size 0 bytes, gpio.o(i.SetGpioSts))
  [Calls]

  - >> GPIO_SetBits
  - >> GPIO_ResetBits
  [Called By]
  - >> IoCtl
  - >> IoCtlLedToggle
  - >> BspConfigInit

  ShellWrite (Thumb, 22 bytes, Stack size 8 bytes, lettershell.o(i.ShellWrite))
  [Stack]

  - Max Depth = 40
  - Call Chain = ShellWrite ⇒ UsartSendStr
  [Calls]
  - >> UsartSendStr
  [Address Reference Count : 1]
  - lettershell.o(i.LetterShellInit)

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

  - startup_stm32f10x_hd.o(RESET)

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

  - Max Depth = 8
  - Call Chain = SystemInit
  [Calls]
  - >> SetSysClock
  [Address Reference Count : 1]
  - startup_stm32f10x_hd.o(.text)

  USART1_IRQHandler (Thumb, 36 bytes, Stack size 8 bytes, interrupt.o(i.USART1_IRQHandler))
  [Stack]

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

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

  - >> USART1_IRQHandler

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

  - >> UsartConfig

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

  - >> UsartConfig
  - >> USART1_IRQHandler
  - >> UsartSendChar
  - >> UsartSendStr

  USART_ITConfig (Thumb, 54 bytes, Stack size 8 bytes, stm32f10x_usart.o(i.USART_ITConfig))
  [Stack]

  - Max Depth = 8
  - Call Chain = USART_ITConfig
  [Called By]
  - >> UsartConfig

  USART_Init (Thumb, 182 bytes, Stack size 32 bytes, stm32f10x_usart.o(i.USART_Init))
  [Stack]

  - Max Depth = 40
  - Call Chain = USART_Init ⇒ RCC_GetClocksFreq
  [Calls]
  - >> RCC_GetClocksFreq
  [Called By]
  - >> UsartConfig

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

  - >> UsartReceiveChar

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

  - >> UsartSendChar
  - >> UsartSendStr

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

  - >> UsartConfig

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

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

  UsartClockEnable (Thumb, 88 bytes, Stack size 8 bytes, usart.o(i.UsartClockEnable))
  [Stack]

  - Max Depth = 8
  - Call Chain = UsartClockEnable
  [Calls]
  - >> RCC_APB1PeriphClockCmd
  - >> RCC_APB2PeriphClockCmd
  [Called By]
  - >> BspInitUsartClock

  UsartConfig (Thumb, 86 bytes, Stack size 40 bytes, usart.o(i.UsartConfig))
  [Stack]

  - Max Depth = 80
  - Call Chain = UsartConfig ⇒ USART_Init ⇒ RCC_GetClocksFreq
  [Calls]
  - >> USART_StructInit
  - >> USART_Init
  - >> USART_ITConfig
  - >> USART_Cmd
  - >> USART_GetFlagStatus
  [Called By]
  - >> UsartStdConfig

  UsartReceiveChar (Thumb, 10 bytes, Stack size 8 bytes, usart.o(i.UsartReceiveChar))
  [Stack]

  - Max Depth = 8
  - Call Chain = UsartReceiveChar
  [Calls]
  - >> USART_ReceiveData
  [Called By]
  - >> LetterShellIrqFunc

  UsartSendChar (Thumb, 24 bytes, Stack size 8 bytes, usart.o(i.UsartSendChar))
  [Stack]

  - Max Depth = 8
  - Call Chain = UsartSendChar
  [Calls]
  - >> USART_SendData
  - >> USART_GetFlagStatus
  [Called By]
  - >> fputc

  UsartSendStr (Thumb, 58 bytes, Stack size 32 bytes, usart.o(i.UsartSendStr))
  [Stack]

  - Max Depth = 32
  - Call Chain = UsartSendStr
  [Calls]
  - >> USART_SendData
  - >> USART_GetFlagStatus
  [Called By]
  - >> ShellWrite

  UsartStdConfig (Thumb, 14 bytes, Stack size 8 bytes, usart.o(i.UsartStdConfig))
  [Stack]

  - Max Depth = 88
  - Call Chain = UsartStdConfig ⇒ UsartConfig ⇒ USART_Init ⇒ RCC_GetClocksFreq
  [Calls]
  - >> UsartConfig
  [Called By]
  - >> LetterShellInit

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

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

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

  doSet (Thumb, 10 bytes, Stack size 0 bytes, lettershell.o(i.doSet))
  [Stack]

  - Max Depth = 8
  - Call Chain = doSet ⇒ IoCtl
  [Calls]
  - >> IoCtl
  [Address Reference Count : 1]
  - lettershell.o(shellCommand)

  doToggle (Thumb, 4 bytes, Stack size 0 bytes, lettershell.o(i.doToggle))
  [Calls]

  - >> IoCtlToggleDo
  [Address Reference Count : 1]
  - lettershell.o(shellCommand)

  fputc (Thumb, 16 bytes, Stack size 8 bytes, bsp.o(i.fputc))
  [Stack]

  - Max Depth = 16
  - Call Chain = fputc ⇒ UsartSendChar
  [Calls]
  - >> UsartSendChar
  [Address Reference Count : 1]
  - printfa.o(i.__0printf)

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

  - Max Depth = 96
  - Call Chain = main ⇒ LetterShellInit ⇒ UsartStdConfig ⇒ UsartConfig ⇒ USART_Init ⇒ RCC_GetClocksFreq
  [Calls]
  - >> LetterShellInit
  - >> IoCtlLedToggle
  - >> DelayMs
  - >> BspConfigInit
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  shellBackspace (Thumb, 6 bytes, Stack size 0 bytes, shell.o(i.shellBackspace))
  [Stack]

  - Max Depth = 40
  - Call Chain = shellBackspace ⇒ shellDeleteByte ⇒ shellDeleteCommandLine ⇒ shellWriteString
  [Calls]
  - >> shellDeleteByte
  [Address Reference Count : 1]
  - shell.o(shellCommand)

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

  - >> shellHandler
  - >> shellTab
  - >> shellSeekCommand
  - >> shellListVar
  - >> shellListUser
  - >> shellListKey
  - >> shellListCommand

  shellClear (Thumb, 24 bytes, Stack size 8 bytes, shell.o(i.shellClear))
  [Stack]

  - Max Depth = 16
  - Call Chain = shellClear ⇒ shellWriteString
  [Calls]
  - >> shellWriteString
  - >> shellGetCurrent
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellClearCommandLine (Thumb, 42 bytes, Stack size 16 bytes, shell.o(i.shellClearCommandLine))
  [Stack]

  - Max Depth = 40
  - Call Chain = shellClearCommandLine ⇒ shellDeleteCommandLine ⇒ shellWriteString
  [Calls]
  - >> shellDeleteCommandLine
  - >> shellWriteByte
  [Called By]
  - >> shellTab
  - >> shellHistory

  shellCmds (Thumb, 20 bytes, Stack size 8 bytes, shell.o(i.shellCmds))
  [Stack]

  - Max Depth = 72
  - Call Chain = shellCmds ⇒ shellListCommand ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellListCommand
  - >> shellGetCurrent
  [Address Reference Count : 1]
  - shell.o(shellCommand)

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

  - shell.o(shellCommand)

  shellDeleteByte (Thumb, 190 bytes, Stack size 16 bytes, shell.o(i.shellDeleteByte))
  [Stack]

  - Max Depth = 40
  - Call Chain = shellDeleteByte ⇒ shellDeleteCommandLine ⇒ shellWriteString
  [Calls]
  - >> shellDeleteCommandLine
  - >> shellWriteByte
  [Called By]
  - >> shellBackspace

  shellDeleteCommandLine (Thumb, 24 bytes, Stack size 16 bytes, shell.o(i.shellDeleteCommandLine))
  [Stack]

  - Max Depth = 24
  - Call Chain = shellDeleteCommandLine ⇒ shellWriteString
  [Calls]
  - >> shellWriteString
  [Called By]
  - >> shellDeleteByte
  - >> shellClearCommandLine

  shellDown (Thumb, 8 bytes, Stack size 0 bytes, shell.o(i.shellDown))
  [Stack]

  - Max Depth = 56
  - Call Chain = shellDown ⇒ shellHistory ⇒ shellClearCommandLine ⇒ shellDeleteCommandLine ⇒ shellWriteString
  [Calls]
  - >> shellHistory
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellEnter (Thumb, 22 bytes, Stack size 8 bytes, shell.o(i.shellEnter))
  [Stack]

  - Max Depth = 180
  - Call Chain = shellEnter ⇒ shellExec ⇒ shellRunCommand ⇒ shellExtRun ⇒ shellExtParsePara ⇒ shellExtParseVar ⇒ shellSeekCommand ⇒ strncmp
  [Calls]
  - >> shellExec
  - >> shellWritePrompt
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellExec (Thumb, 106 bytes, Stack size 16 bytes, shell.o(i.shellExec))
  [Stack]

  - Max Depth = 172
  - Call Chain = shellExec ⇒ shellRunCommand ⇒ shellExtRun ⇒ shellExtParsePara ⇒ shellExtParseVar ⇒ shellSeekCommand ⇒ strncmp
  [Calls]
  - >> shellWriteString
  - >> shellSeekCommand
  - >> shellRunCommand
  - >> shellParserParam
  - >> shellHistoryAdd
  - >> shellCheckPassword
  [Called By]
  - >> shellEnter

  shellExtParsePara (Thumb, 60 bytes, Stack size 0 bytes, shell_ext.o(i.shellExtParsePara))
  [Stack]

  - Max Depth = 52
  - Call Chain = shellExtParsePara ⇒ shellExtParseVar ⇒ shellSeekCommand ⇒ strncmp
  [Calls]
  - >> shellExtParseVar
  - >> shellExtParseString
  - >> shellExtParseNumber
  - >> shellExtParseChar
  [Called By]
  - >> shellExtRun

  shellExtRun (Thumb, 190 bytes, Stack size 80 bytes, shell_ext.o(i.shellExtRun))
  [Stack]

  - Max Depth = 132
  - Call Chain = shellExtRun ⇒ shellExtParsePara ⇒ shellExtParseVar ⇒ shellSeekCommand ⇒ strncmp
  [Calls]
  - >> __aeabi_memclr4
  - >> shellExtParsePara
  [Called By]
  - >> shellRunCommand

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

  - >> shellVars
  - >> shellUsers
  - >> shellSetVar
  - >> shellKeys
  - >> shellHelp
  - >> shellCmds
  - >> shellClear

  shellGetVarValue (Thumb, 62 bytes, Stack size 0 bytes, shell.o(i.shellGetVarValue))
  [Called By]

  - >> shellExtParseVar
  - >> shellShowVar

  shellHandler (Thumb, 200 bytes, Stack size 40 bytes, shell.o(i.shellHandler))
  [Stack]

  - Max Depth = 72
  - Call Chain = shellHandler ⇒ shellNormalInput ⇒ shellInsertByte ⇒ shellWritePrompt ⇒ shellWriteString
  [Calls]
  - >> shellNormalInput
  - >> shellCheckPermission
  [Called By]
  - >> LetterShellIrqFunc

  shellHelp (Thumb, 40 bytes, Stack size 8 bytes, shell.o(i.shellHelp))
  [Stack]

  - Max Depth = 72
  - Call Chain = shellHelp ⇒ shellListAll ⇒ shellListCommand ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellListAll
  - >> shellGetCurrent
  - >> shellWriteCommandHelp
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellInit (Thumb, 118 bytes, Stack size 8 bytes, shell.o(i.shellInit))
  [Stack]

  - Max Depth = 52
  - Call Chain = shellInit ⇒ shellSeekCommand ⇒ strncmp
  [Calls]
  - >> shellSeekCommand
  - >> shellWritePrompt
  - >> shellSetUser
  - >> shellAdd
  [Called By]
  - >> LetterShellInit

  shellInsertByte (Thumb, 194 bytes, Stack size 16 bytes, shell.o(i.shellInsertByte))
  [Stack]

  - Max Depth = 32
  - Call Chain = shellInsertByte ⇒ shellWritePrompt ⇒ shellWriteString
  [Calls]
  - >> shellWriteString
  - >> shellWritePrompt
  - >> shellWriteByte
  [Called By]
  - >> shellNormalInput

  shellKeys (Thumb, 20 bytes, Stack size 8 bytes, shell.o(i.shellKeys))
  [Stack]

  - Max Depth = 72
  - Call Chain = shellKeys ⇒ shellListKey ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellListKey
  - >> shellGetCurrent
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellLeft (Thumb, 26 bytes, Stack size 8 bytes, shell.o(i.shellLeft))
  [Stack]

  - Max Depth = 24
  - Call Chain = shellLeft ⇒ shellWriteByte
  [Calls]
  - >> shellWriteByte
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellListAll (Thumb, 4 bytes, Stack size 0 bytes, shell.o(i.shellListAll))
  [Stack]

  - Max Depth = 64
  - Call Chain = shellListAll ⇒ shellListCommand ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellListCommand
  [Called By]
  - >> shellTab
  - >> shellHelp

  shellListCommand (Thumb, 70 bytes, Stack size 24 bytes, shell.o(i.shellListCommand))
  [Stack]

  - Max Depth = 64
  - Call Chain = shellListCommand ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellWriteString
  - >> shellListItem
  - >> shellCheckPermission
  [Called By]
  - >> shellListAll
  - >> shellCmds

  shellListItem (Thumb, 198 bytes, Stack size 24 bytes, shell.o(i.shellListItem))
  [Stack]

  - Max Depth = 40
  - Call Chain = shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellWriteString
  - >> shellWriteCommandDesc
  - >> shellWriteByte
  - >> shellGetCommandName
  - >> shellGetCommandDesc
  [Called By]
  - >> shellTab
  - >> shellListVar
  - >> shellListUser
  - >> shellListKey
  - >> shellListCommand

  shellListKey (Thumb, 74 bytes, Stack size 24 bytes, shell.o(i.shellListKey))
  [Stack]

  - Max Depth = 64
  - Call Chain = shellListKey ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellWriteString
  - >> shellListItem
  - >> shellCheckPermission
  [Called By]
  - >> shellKeys

  shellListUser (Thumb, 74 bytes, Stack size 24 bytes, shell.o(i.shellListUser))
  [Stack]

  - Max Depth = 64
  - Call Chain = shellListUser ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellWriteString
  - >> shellListItem
  - >> shellCheckPermission
  [Called By]
  - >> shellUsers

  shellListVar (Thumb, 72 bytes, Stack size 24 bytes, shell.o(i.shellListVar))
  [Stack]

  - Max Depth = 64
  - Call Chain = shellListVar ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellWriteString
  - >> shellListItem
  - >> shellCheckPermission
  [Called By]
  - >> shellVars

  shellNormalInput (Thumb, 16 bytes, Stack size 0 bytes, shell.o(i.shellNormalInput))
  [Stack]

  - Max Depth = 32
  - Call Chain = shellNormalInput ⇒ shellInsertByte ⇒ shellWritePrompt ⇒ shellWriteString
  [Calls]
  - >> shellInsertByte
  [Called By]
  - >> shellHandler

  shellRight (Thumb, 22 bytes, Stack size 0 bytes, shell.o(i.shellRight))
  [Stack]

  - Max Depth = 16
  - Call Chain = shellRight ⇒ shellWriteByte
  [Calls]
  - >> shellWriteByte
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellRunCommand (Thumb, 146 bytes, Stack size 24 bytes, shell.o(i.shellRunCommand))
  [Stack]

  - Max Depth = 156
  - Call Chain = shellRunCommand ⇒ shellExtRun ⇒ shellExtParsePara ⇒ shellExtParseVar ⇒ shellSeekCommand ⇒ strncmp
  [Calls]
  - >> shellExtRun
  - >> shellWriteReturnValue
  - >> shellShowVar
  - >> shellSetUser
  - >> shellRemoveParamQuotes
  [Called By]
  - >> shellExec

  shellSeekCommand (Thumb, 116 bytes, Stack size 32 bytes, shell.o(i.shellSeekCommand))
  [Stack]

  - Max Depth = 44
  - Call Chain = shellSeekCommand ⇒ strncmp
  [Calls]
  - >> strncmp
  - >> strcmp
  - >> shellCheckPermission
  - >> shellGetCommandName
  [Called By]
  - >> shellInit
  - >> shellExtParseVar
  - >> shellSetVar
  - >> shellExec
  - >> shellWriteCommandHelp

  shellSetVar (Thumb, 96 bytes, Stack size 24 bytes, shell.o(i.shellSetVar))
  [Stack]

  - Max Depth = 84
  - Call Chain = shellSetVar ⇒ shellSetVarValue ⇒ shellShowVar ⇒ shellToDec
  [Calls]
  - >> shellWriteString
  - >> shellSetVarValue
  - >> shellSeekCommand
  - >> shellGetCurrent
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellSetVarValue (Thumb, 118 bytes, Stack size 16 bytes, shell.o(i.shellSetVarValue))
  [Stack]

  - Max Depth = 60
  - Call Chain = shellSetVarValue ⇒ shellShowVar ⇒ shellToDec
  [Calls]
  - >> shellWriteString
  - >> shellStringCopy
  - >> shellShowVar
  [Called By]
  - >> shellSetVar

  shellTab (Thumb, 246 bytes, Stack size 40 bytes, shell.o(i.shellTab))
  [Stack]

  - Max Depth = 104
  - Call Chain = shellTab ⇒ shellListAll ⇒ shellListCommand ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellWriteString
  - >> shellListItem
  - >> shellListAll
  - >> shellClearCommandLine
  - >> shellCheckPermission
  - >> shellWritePrompt
  - >> shellStringCopy
  - >> shellStringCompare
  - >> shellGetCommandName
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellToDec (Thumb, 82 bytes, Stack size 12 bytes, shell.o(i.shellToDec))
  [Stack]

  - Max Depth = 12
  - Call Chain = shellToDec
  [Called By]
  - >> shellWriteReturnValue
  - >> shellShowVar

  shellToHex (Thumb, 42 bytes, Stack size 0 bytes, shell.o(i.shellToHex))
  [Called By]

  - >> shellWriteReturnValue
  - >> shellShowVar
  - >> shellGetCommandName

  shellUp (Thumb, 6 bytes, Stack size 0 bytes, shell.o(i.shellUp))
  [Stack]

  - Max Depth = 56
  - Call Chain = shellUp ⇒ shellHistory ⇒ shellClearCommandLine ⇒ shellDeleteCommandLine ⇒ shellWriteString
  [Calls]
  - >> shellHistory
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellUsers (Thumb, 20 bytes, Stack size 8 bytes, shell.o(i.shellUsers))
  [Stack]

  - Max Depth = 72
  - Call Chain = shellUsers ⇒ shellListUser ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellListUser
  - >> shellGetCurrent
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellVars (Thumb, 20 bytes, Stack size 8 bytes, shell.o(i.shellVars))
  [Stack]

  - Max Depth = 72
  - Call Chain = shellVars ⇒ shellListVar ⇒ shellListItem ⇒ shellWriteCommandDesc
  [Calls]
  - >> shellListVar
  - >> shellGetCurrent
  [Address Reference Count : 1]
  - shell.o(shellCommand)

  shellWriteString (Thumb, 40 bytes, Stack size 8 bytes, shell.o(i.shellWriteString))
  [Stack]

  - Max Depth = 8
  - Call Chain = shellWriteString
  [Called By]
  - >> shellTab
  - >> shellSetVarValue
  - >> shellSetVar
  - >> shellListVar
  - >> shellListUser
  - >> shellListKey
  - >> shellListItem
  - >> shellListCommand
  - >> shellInsertByte
  - >> shellExec
  - >> shellDeleteCommandLine
  - >> shellClear
  - >> shellWriteReturnValue
  - >> shellWritePrompt
  - >> shellWriteCommandHelp
  - >> shellShowVar
  - >> shellSetUser
  - >> shellHistory
  - >> shellCheckPassword

  version (Thumb, 14 bytes, Stack size 8 bytes, lettershell.o(i.version))
  [Stack]

  - Max Depth = 32
  - Call Chain = version ⇒ __2printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - lettershell.o(shellCommand)

  ### Local Symbols

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

  - >> SystemInit

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

  - >> shellInit

  shellCheckPassword (Thumb, 58 bytes, Stack size 8 bytes, shell.o(i.shellCheckPassword))
  [Stack]

  - Max Depth = 16
  - Call Chain = shellCheckPassword ⇒ strcmp
  [Calls]
  - >> strcmp
  - >> shellWriteString
  [Called By]
  - >> shellExec

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

  - >> shellListItem
  - >> shellWriteCommandHelp

  shellGetCommandName (Thumb, 60 bytes, Stack size 4 bytes, shell.o(i.shellGetCommandName))
  [Stack]

  - Max Depth = 4
  - Call Chain = shellGetCommandName
  [Calls]
  - >> shellToHex
  [Called By]
  - >> shellTab
  - >> shellSeekCommand
  - >> shellListItem
  - >> shellWriteCommandHelp

  shellHistory (Thumb, 154 bytes, Stack size 16 bytes, shell.o(i.shellHistory))
  [Stack]

  - Max Depth = 56
  - Call Chain = shellHistory ⇒ shellClearCommandLine ⇒ shellDeleteCommandLine ⇒ shellWriteString
  [Calls]
  - >> shellWriteString
  - >> shellClearCommandLine
  - >> shellStringCopy
  [Called By]
  - >> shellUp
  - >> shellDown

  shellHistoryAdd (Thumb, 108 bytes, Stack size 16 bytes, shell.o(i.shellHistoryAdd))
  [Stack]

  - Max Depth = 24
  - Call Chain = shellHistoryAdd ⇒ strcmp
  [Calls]
  - >> strcmp
  - >> shellStringCopy
  [Called By]
  - >> shellExec

  shellParserParam (Thumb, 118 bytes, Stack size 16 bytes, shell.o(i.shellParserParam))
  [Stack]

  - Max Depth = 16
  - Call Chain = shellParserParam
  [Called By]
  - >> shellExec

  shellRemoveParamQuotes (Thumb, 66 bytes, Stack size 24 bytes, shell.o(i.shellRemoveParamQuotes))
  [Stack]

  - Max Depth = 24
  - Call Chain = shellRemoveParamQuotes
  [Calls]
  - >> strlen
  [Called By]
  - >> shellRunCommand

  shellSetUser (Thumb, 90 bytes, Stack size 16 bytes, shell.o(i.shellSetUser))
  [Stack]

  - Max Depth = 24
  - Call Chain = shellSetUser ⇒ strcmp
  [Calls]
  - >> strcmp
  - >> strlen
  - >> shellWriteString
  [Called By]
  - >> shellInit
  - >> shellRunCommand

  shellShowVar (Thumb, 154 bytes, Stack size 32 bytes, shell.o(i.shellShowVar))
  [Stack]

  - Max Depth = 44
  - Call Chain = shellShowVar ⇒ shellToDec
  [Calls]
  - >> shellWriteString
  - >> shellToHex
  - >> shellToDec
  - >> shellGetVarValue
  [Called By]
  - >> shellSetVarValue
  - >> shellRunCommand

  shellStringCompare (Thumb, 36 bytes, Stack size 12 bytes, shell.o(i.shellStringCompare))
  [Stack]

  - Max Depth = 12
  - Call Chain = shellStringCompare
  [Called By]
  - >> shellTab

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

  - >> shellTab
  - >> shellSetVarValue
  - >> shellHistoryAdd
  - >> shellHistory

  shellWriteByte (Thumb, 12 bytes, Stack size 16 bytes, shell.o(i.shellWriteByte))
  [Stack]

  - Max Depth = 16
  - Call Chain = shellWriteByte
  [Called By]
  - >> shellRight
  - >> shellListItem
  - >> shellLeft
  - >> shellInsertByte
  - >> shellDeleteByte
  - >> shellClearCommandLine

  shellWriteCommandDesc (Thumb, 76 bytes, Stack size 16 bytes, shell.o(i.shellWriteCommandDesc))
  [Stack]

  - Max Depth = 16
  - Call Chain = shellWriteCommandDesc
  [Called By]
  - >> shellListItem

  shellWriteCommandHelp (Thumb, 88 bytes, Stack size 16 bytes, shell.o(i.shellWriteCommandHelp))
  [Stack]

  - Max Depth = 60
  - Call Chain = shellWriteCommandHelp ⇒ shellSeekCommand ⇒ strncmp
  [Calls]
  - >> shellWriteString
  - >> shellSeekCommand
  - >> shellGetCommandName
  - >> shellGetCommandDesc
  [Called By]
  - >> shellHelp

  shellWritePrompt (Thumb, 78 bytes, Stack size 8 bytes, shell.o(i.shellWritePrompt))
  [Stack]

  - Max Depth = 16
  - Call Chain = shellWritePrompt ⇒ shellWriteString
  [Calls]
  - >> shellWriteString
  [Called By]
  - >> shellInit
  - >> shellTab
  - >> shellInsertByte
  - >> shellEnter

  shellWriteReturnValue (Thumb, 98 bytes, Stack size 32 bytes, shell.o(i.shellWriteReturnValue))
  [Stack]

  - Max Depth = 44
  - Call Chain = shellWriteReturnValue ⇒ shellToDec
  [Calls]
  - >> shellWriteString
  - >> shellToHex
  - >> shellToDec
  [Called By]
  - >> shellRunCommand

  shellExtNumType (Thumb, 78 bytes, Stack size 0 bytes, shell_ext.o(i.shellExtNumType))
  [Called By]

  - >> shellExtParseNumber

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

  - >> shellExtParsePara
  - >> shellExtParseString

  shellExtParseNumber (Thumb, 194 bytes, Stack size 32 bytes, shell_ext.o(i.shellExtParseNumber))
  [Stack]

  - Max Depth = 40
  - Call Chain = shellExtParseNumber ⇒ __aeabi_fmul
  [Calls]
  - >> __aeabi_ui2f
  - >> __aeabi_i2f
  - >> __aeabi_fmul
  - >> __aeabi_fdiv
  - >> shellExtToNum
  - >> shellExtNumType
  [Called By]
  - >> shellExtParsePara

  shellExtParseString (Thumb, 70 bytes, Stack size 24 bytes, shell_ext.o(i.shellExtParseString))
  [Stack]

  - Max Depth = 24
  - Call Chain = shellExtParseString
  [Calls]
  - >> shellExtParseChar
  [Called By]
  - >> shellExtParsePara

  shellExtParseVar (Thumb, 34 bytes, Stack size 8 bytes, shell_ext.o(i.shellExtParseVar))
  [Stack]

  - Max Depth = 52
  - Call Chain = shellExtParseVar ⇒ shellSeekCommand ⇒ strncmp
  [Calls]
  - >> shellSeekCommand
  - >> shellGetVarValue
  [Called By]
  - >> shellExtParsePara

  shellExtToNum (Thumb, 44 bytes, Stack size 0 bytes, shell_ext.o(i.shellExtToNum))
  [Called By]

  - >> shellExtParseNumber

  _fp_digits (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  - >> __aeabi_dmul
  - >> __aeabi_ddiv
  - >> __aeabi_dadd
  - >> __aeabi_d2ulz
  - >> __aeabi_cdrcmple
  [Called By]
  - >> _printf_core

  _printf_core (Thumb, 1704 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]
  - >> __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

  ### Undefined Global Symbols