Static Call Graph - [STM324xG_EVAL\STM324xG_EVAL.axf]

# Static Call Graph for image STM324xG_EVAL\STM324xG_EVAL.axf

#<CALLGRAPH># ARM Linker, 5060422: Last Updated: Fri May 26 14:15:27 2017

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

### Call chain for Maximum Stack Depth:

ethernet_input ⇒ ip_input ⇒ tcp_input ⇒ tcp_process ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes

### Mutually Recursive functions

- SVC_Handler ⇒ SVC_Handler
- PendSV_Handler ⇒ PendSV_Handler
- ADC_IRQHandler ⇒ ADC_IRQHandler
- BusFault_Handler ⇒ BusFault_Handler
- HardFault_Handler ⇒ HardFault_Handler
- MemManage_Handler ⇒ MemManage_Handler
- UsageFault_Handler ⇒ UsageFault_Handler

  ### Function Pointers

  - ADC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - BusFault_Handler from stm32f4xx_it.o(i.BusFault_Handler) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_RX0_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_RX1_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_SCE_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN1_TX_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN2_RX0_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN2_RX1_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN2_SCE_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - CAN2_TX_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DCMI_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream0_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream1_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream4_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream5_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream6_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA1_Stream7_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream0_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream1_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream4_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream5_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream6_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DMA2_Stream7_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - DebugMon_Handler from stm32f4xx_it.o(i.DebugMon_Handler) referenced from startup_stm32f407xx.o(RESET)
  - ETH_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - ETH_WKUP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI0_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI15_10_IRQHandler from stm32f4xx_it.o(i.EXTI15_10_IRQHandler) referenced from startup_stm32f407xx.o(RESET)
  - EXTI1_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI4_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - EXTI9_5_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - FLASH_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - FMC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - FPU_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - HASH_RNG_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - HardFault_Handler from stm32f4xx_it.o(i.HardFault_Handler) referenced from startup_stm32f407xx.o(RESET)
  - I2C1_ER_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C1_EV_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C2_ER_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C2_EV_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C3_ER_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - I2C3_EV_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - MemManage_Handler from stm32f4xx_it.o(i.MemManage_Handler) referenced from startup_stm32f407xx.o(RESET)
  - NMI_Handler from stm32f4xx_it.o(i.NMI_Handler) referenced from startup_stm32f407xx.o(RESET)
  - OTG_FS_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - OTG_FS_WKUP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - OTG_HS_EP1_IN_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - OTG_HS_EP1_OUT_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - OTG_HS_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - OTG_HS_WKUP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - PVD_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - PendSV_Handler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - RCC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - RTC_Alarm_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - RTC_WKUP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - Reset_Handler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SDIO_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SPI1_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SPI2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SPI3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SVC_Handler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - SysTick_Handler from stm32f4xx_it.o(i.SysTick_Handler) referenced from startup_stm32f407xx.o(RESET)
  - SystemInit from system_stm32f4xx.o(i.SystemInit) referenced from startup_stm32f407xx.o(.text)
  - TAMP_STAMP_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM1_BRK_TIM9_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM1_CC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM1_TRG_COM_TIM11_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM1_UP_TIM10_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM4_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM5_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM6_DAC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM7_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM8_BRK_TIM12_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM8_CC_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM8_TRG_COM_TIM14_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - TIM8_UP_TIM13_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - UART4_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - UART5_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - USART1_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - USART2_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - USART3_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - USART6_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - UsageFault_Handler from stm32f4xx_it.o(i.UsageFault_Handler) referenced from startup_stm32f407xx.o(RESET)
  - WWDG_IRQHandler from startup_stm32f407xx.o(.text) referenced from startup_stm32f407xx.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f407xx.o(.text)
  - _sputc from printf2.o(i._sputc) referenced from printf2.o(i.__0sprintf$2)
  - arp_timer from lwip_timers.o(i.arp_timer) referenced from lwip_timers.o(i.arp_timer)
  - arp_timer from lwip_timers.o(i.arp_timer) referenced from lwip_timers.o(i.sys_timeouts_init)
  - conn_err from httpserver.o(i.conn_err) referenced from httpserver.o(i.http_accept)
  - dhcp_timer_coarse from lwip_timers.o(i.dhcp_timer_coarse) referenced from lwip_timers.o(i.dhcp_timer_coarse)
  - dhcp_timer_coarse from lwip_timers.o(i.dhcp_timer_coarse) referenced from lwip_timers.o(i.sys_timeouts_init)
  - dhcp_timer_fine from lwip_timers.o(i.dhcp_timer_fine) referenced from lwip_timers.o(i.dhcp_timer_fine)
  - dhcp_timer_fine from lwip_timers.o(i.dhcp_timer_fine) referenced from lwip_timers.o(i.sys_timeouts_init)
  - etharp_output from etharp.o(i.etharp_output) referenced from ethernetif.o(i.ethernetif_init)
  - ethernet_input from etharp.o(i.ethernet_input) referenced from main.o(i.Netif_Config)
  - ethernetif_init from ethernetif.o(i.ethernetif_init) referenced from main.o(i.Netif_Config)
  - ethernetif_update_config from ethernetif.o(i.ethernetif_update_config) referenced from main.o(i.Netif_Config)
  - http_accept from httpserver.o(i.http_accept) referenced from httpserver.o(i.IAP_httpd_init)
  - http_poll from httpserver.o(i.http_poll) referenced from httpserver.o(i.http_accept)
  - http_recv from httpserver.o(i.http_recv) referenced from httpserver.o(i.http_accept)
  - http_sent from httpserver.o(i.http_sent) referenced from httpserver.o(i.http_recv)
  - ip_reass_timer from lwip_timers.o(i.ip_reass_timer) referenced from lwip_timers.o(i.ip_reass_timer)
  - ip_reass_timer from lwip_timers.o(i.ip_reass_timer) referenced from lwip_timers.o(i.sys_timeouts_init)
  - ipfrag_free_pbuf_custom from ip_frag.o(i.ipfrag_free_pbuf_custom) referenced from ip_frag.o(i.ip_frag)
  - low_level_output from ethernetif.o(i.low_level_output) referenced from ethernetif.o(i.ethernetif_init)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - tcp_accept_null from tcp.o(i.tcp_accept_null) referenced from tcp.o(i.tcp_listen_with_backlog)
  - tcp_recv_null from tcp.o(i.tcp_recv_null) referenced from tcp.o(i.tcp_alloc)
  - tcpip_tcp_timer from lwip_timers.o(i.tcpip_tcp_timer) referenced from lwip_timers.o(i.tcp_timer_needed)
  - tcpip_tcp_timer from lwip_timers.o(i.tcpip_tcp_timer) referenced from lwip_timers.o(i.tcpip_tcp_timer)

  ### Global Symbols

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

  - startup_stm32f407xx.o(.text)

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

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

  - >> __scatterload

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

  - >> __scatterload

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

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

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

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

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

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

  - startup_stm32f407xx.o(RESET)

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

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

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

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

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

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

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

  - >> pbuf_copy_partial
  - >> ip_reass
  - >> ip_frag
  - >> ip_reass_free_complete_datagram
  - >> pbuf_copy
  - >> tcp_write
  - >> icmp_send_response
  - >> low_level_output
  - >> low_level_input

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

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

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

  - >> _memset$wrapper
  - >> __aeabi_memclr

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

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

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

  - >> __aeabi_memset

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

  - >> tcp_alloc
  - >> ip_reass

  __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

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

  - Max Depth = 8
  - Call Chain = strcmp
  [Called By]
  - >> fs_open

  memcmp (Thumb, 26 bytes, Stack size 12 bytes, memcmp.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = memcmp
  [Called By]
  - >> ethernet_input

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

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

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

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

  - >> EEPROM_WritePage

  BSP_EEPROM_WriteBuffer (Thumb, 248 bytes, Stack size 40 bytes, stm324xg_eval_eeprom.o(i.BSP_EEPROM_WriteBuffer))
  [Stack]

  - Max Depth = 184
  - Call Chain = BSP_EEPROM_WriteBuffer ⇒ EEPROM_WritePage ⇒ EEPROM_IO_WriteData ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> EEPROM_WritePage
  [Called By]
  - >> http_sent
  - >> http_recv
  - >> main
  - >> I2C_Config

  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_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

  EEPROM_IO_IsDeviceReady (Thumb, 12 bytes, Stack size 0 bytes, stm324xg_eval.o(i.EEPROM_IO_IsDeviceReady))
  [Stack]

  - Max Depth = 96
  - Call Chain = EEPROM_IO_IsDeviceReady ⇒ HAL_I2C_IsDeviceReady ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_IsDeviceReady
  [Called By]
  - >> EEPROM_WritePage

  EEPROM_IO_WriteData (Thumb, 40 bytes, Stack size 24 bytes, stm324xg_eval.o(i.EEPROM_IO_WriteData))
  [Stack]

  - Max Depth = 136
  - Call Chain = EEPROM_IO_WriteData ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_I2C_Mem_Write
  - >> HAL_I2C_DeInit
  [Called By]
  - >> EEPROM_WritePage

  EXTI15_10_IRQHandler (Thumb, 8 bytes, Stack size 0 bytes, stm32f4xx_it.o(i.EXTI15_10_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = EXTI15_10_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler
  [Calls]
  - >> HAL_GPIO_EXTI_IRQHandler
  [Address Reference Count : 1]
  - startup_stm32f407xx.o(RESET)

  FLASH_Erase_Sector (Thumb, 84 bytes, Stack size 0 bytes, stm32f4xx_hal_flash_ex.o(i.FLASH_Erase_Sector))
  [Called By]

  - >> HAL_FLASHEx_Erase

  FLASH_FlushCaches (Thumb, 80 bytes, Stack size 0 bytes, stm32f4xx_hal_flash_ex.o(i.FLASH_FlushCaches))
  [Called By]

  - >> HAL_FLASHEx_Erase

  FLASH_If_Erase (Thumb, 46 bytes, Stack size 32 bytes, flash_if.o(i.FLASH_If_Erase))
  [Stack]

  - Max Depth = 80
  - Call Chain = FLASH_If_Erase ⇒ HAL_FLASHEx_Erase ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> HAL_FLASHEx_Erase
  [Called By]
  - >> http_recv

  FLASH_If_Init (Thumb, 4 bytes, Stack size 0 bytes, flash_if.o(i.FLASH_If_Init))
  [Calls]

  - >> HAL_FLASH_Unlock
  [Called By]
  - >> http_recv

  FLASH_If_Write (Thumb, 76 bytes, Stack size 24 bytes, flash_if.o(i.FLASH_If_Write))
  [Stack]

  - Max Depth = 72
  - Call Chain = FLASH_If_Write ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> HAL_FLASH_Program
  [Called By]
  - >> IAP_HTTP_writedata

  FLASH_WaitForLastOperation (Thumb, 80 bytes, Stack size 16 bytes, stm32f4xx_hal_flash.o(i.FLASH_WaitForLastOperation))
  [Stack]

  - Max Depth = 16
  - Call Chain = FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_SetErrorCode
  - >> HAL_GetTick
  [Called By]
  - >> HAL_FLASH_Program
  - >> HAL_FLASHEx_Erase

  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]
  - >> Init_Config
  - >> http_sent
  - >> http_recv
  - >> HAL_ETH_Stop
  - >> HAL_ETH_Start
  - >> HAL_ETH_Init
  - >> HAL_ETH_ConfigMAC
  - >> ETH_MACDMAConfig
  - >> ETH_FlushTransmitFIFO
  - >> main

  HAL_ETH_ConfigMAC (Thumb, 300 bytes, Stack size 24 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_ConfigMAC))
  [Stack]

  - Max Depth = 40
  - Call Chain = HAL_ETH_ConfigMAC ⇒ HAL_Delay
  [Calls]
  - >> HAL_Delay
  [Called By]
  - >> ethernetif_update_config

  HAL_ETH_DMARxDescListInit (Thumb, 116 bytes, Stack size 28 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_DMARxDescListInit))
  [Stack]

  - Max Depth = 28
  - Call Chain = HAL_ETH_DMARxDescListInit
  [Called By]
  - >> low_level_init

  HAL_ETH_DMATxDescListInit (Thumb, 120 bytes, Stack size 28 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_DMATxDescListInit))
  [Stack]

  - Max Depth = 28
  - Call Chain = HAL_ETH_DMATxDescListInit
  [Called By]
  - >> low_level_init

  HAL_ETH_GetReceivedFrame (Thumb, 122 bytes, Stack size 8 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_GetReceivedFrame))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_ETH_GetReceivedFrame
  [Called By]
  - >> low_level_input

  HAL_ETH_Init (Thumb, 450 bytes, Stack size 40 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_Init))
  [Stack]

  - Max Depth = 80
  - Call Chain = HAL_ETH_Init ⇒ ETH_MACDMAConfig ⇒ HAL_Delay
  [Calls]
  - >> HAL_Delay
  - >> HAL_GetTick
  - >> HAL_RCC_GetHCLKFreq
  - >> HAL_ETH_MspInit
  - >> HAL_ETH_WritePHYRegister
  - >> HAL_ETH_ReadPHYRegister
  - >> ETH_MACDMAConfig
  [Called By]
  - >> low_level_init

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

  - >> HAL_ETH_Init

  HAL_ETH_ReadPHYRegister (Thumb, 132 bytes, Stack size 32 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_ReadPHYRegister))
  [Stack]

  - Max Depth = 32
  - Call Chain = HAL_ETH_ReadPHYRegister
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> ethernetif_update_config
  - >> low_level_init
  - >> HAL_ETH_Init

  HAL_ETH_Start (Thumb, 132 bytes, Stack size 24 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_Start))
  [Stack]

  - Max Depth = 56
  - Call Chain = HAL_ETH_Start ⇒ ETH_FlushTransmitFIFO ⇒ HAL_Delay
  [Calls]
  - >> HAL_Delay
  - >> ETH_FlushTransmitFIFO
  [Called By]
  - >> ethernetif_update_config
  - >> low_level_init

  HAL_ETH_Stop (Thumb, 132 bytes, Stack size 24 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_Stop))
  [Stack]

  - Max Depth = 56
  - Call Chain = HAL_ETH_Stop ⇒ ETH_FlushTransmitFIFO ⇒ HAL_Delay
  [Calls]
  - >> HAL_Delay
  - >> ETH_FlushTransmitFIFO
  [Called By]
  - >> ethernetif_update_config

  HAL_ETH_TransmitFrame (Thumb, 264 bytes, Stack size 20 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_TransmitFrame))
  [Stack]

  - Max Depth = 20
  - Call Chain = HAL_ETH_TransmitFrame
  [Called By]
  - >> low_level_output

  HAL_ETH_WritePHYRegister (Thumb, 120 bytes, Stack size 24 bytes, stm32f4xx_hal_eth.o(i.HAL_ETH_WritePHYRegister))
  [Stack]

  - Max Depth = 24
  - Call Chain = HAL_ETH_WritePHYRegister
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> ethernetif_update_config
  - >> low_level_init
  - >> HAL_ETH_Init

  HAL_FLASHEx_Erase (Thumb, 144 bytes, Stack size 32 bytes, stm32f4xx_hal_flash_ex.o(i.HAL_FLASHEx_Erase))
  [Stack]

  - Max Depth = 48
  - Call Chain = HAL_FLASHEx_Erase ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_WaitForLastOperation
  - >> FLASH_FlushCaches
  - >> FLASH_Erase_Sector
  - >> FLASH_MassErase
  [Called By]
  - >> FLASH_If_Erase

  HAL_FLASH_Program (Thumb, 116 bytes, Stack size 32 bytes, stm32f4xx_hal_flash.o(i.HAL_FLASH_Program))
  [Stack]

  - Max Depth = 48
  - Call Chain = HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_Program_Word
  - >> FLASH_Program_HalfWord
  - >> FLASH_Program_DoubleWord
  - >> FLASH_Program_Byte
  - >> FLASH_WaitForLastOperation
  [Called By]
  - >> FLASH_If_Write

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

  - >> FLASH_If_Init

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

  - >> HAL_GPIO_EXTI_IRQHandler

  HAL_GPIO_EXTI_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, stm32f4xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_GPIO_EXTI_IRQHandler
  [Calls]
  - >> HAL_GPIO_EXTI_Callback
  [Called By]
  - >> EXTI15_10_IRQHandler

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

  - Max Depth = 40
  - Call Chain = HAL_GPIO_Init
  [Called By]
  - >> Init_Config
  - >> main

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

  - >> main

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

  - >> Init_Config
  - >> http_sent
  - >> http_recv
  - >> main

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

  - >> SystemClock_Config

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

  - >> sys_now
  - >> HAL_Delay
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  - >> FLASH_WaitForLastOperation
  - >> I2C_WaitOnTXEFlagUntilTimeout
  - >> I2C_WaitOnMasterAddressFlagUntilTimeout
  - >> I2C_WaitOnFlagUntilTimeout
  - >> ethernetif_update_config
  - >> HAL_ETH_WritePHYRegister
  - >> HAL_ETH_ReadPHYRegister
  - >> HAL_ETH_Init
  - >> HAL_I2C_IsDeviceReady

  HAL_I2C_DeInit (Thumb, 50 bytes, Stack size 8 bytes, stm32f4xx_hal_i2c.o(i.HAL_I2C_DeInit))
  [Stack]

  - Max Depth = 8
  - Call Chain = HAL_I2C_DeInit
  [Calls]
  - >> HAL_I2C_MspDeInit
  [Called By]
  - >> EEPROM_IO_WriteData

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

  - >> I2C_Config

  HAL_I2C_Init (Thumb, 254 bytes, Stack size 16 bytes, stm32f4xx_hal_i2c.o(i.HAL_I2C_Init))
  [Stack]

  - Max Depth = 44
  - Call Chain = HAL_I2C_Init ⇒ HAL_RCC_GetPCLK1Freq ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_RCC_GetPCLK1Freq
  - >> HAL_I2C_MspInit
  [Called By]
  - >> I2C_Config

  HAL_I2C_IsDeviceReady (Thumb, 322 bytes, Stack size 56 bytes, stm32f4xx_hal_i2c.o(i.HAL_I2C_IsDeviceReady))
  [Stack]

  - Max Depth = 96
  - Call Chain = HAL_I2C_IsDeviceReady ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_GetTick
  - >> I2C_WaitOnFlagUntilTimeout
  [Called By]
  - >> EEPROM_IO_IsDeviceReady

  HAL_I2C_Mem_Write (Thumb, 236 bytes, Stack size 40 bytes, stm32f4xx_hal_i2c.o(i.HAL_I2C_Mem_Write))
  [Stack]

  - Max Depth = 112
  - Call Chain = HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> I2C_WaitOnTXEFlagUntilTimeout
  - >> I2C_WaitOnFlagUntilTimeout
  - >> I2C_RequestMemoryWrite
  [Called By]
  - >> EEPROM_IO_WriteData

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

  - >> HAL_I2C_DeInit

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

  - >> HAL_I2C_Init

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

  - >> SysTick_Handler

  HAL_Init (Thumb, 40 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_NVIC_SetPriorityGrouping
  - >> HAL_InitTick
  [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_NVIC_SetPriority
  - >> HAL_RCC_GetHCLKFreq
  [Called By]
  - >> HAL_Init
  - >> HAL_RCC_ClockConfig

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

  - >> HAL_Init

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

  - >> Init_Config

  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
  - >> Init_Config

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

  - >> HAL_Init

  HAL_RCC_ClockConfig (Thumb, 312 bytes, Stack size 32 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_ClockConfig))
  [Stack]

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

  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_InitTick
  - >> HAL_RCC_GetPCLK1Freq
  - >> HAL_ETH_Init

  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]
  - >> HAL_I2C_Init

  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, 722 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]
  - >> SystemClock_Config

  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

  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_stm32f407xx.o(RESET)

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

  - Max Depth = 200
  - Call Chain = I2C_Config ⇒ BSP_EEPROM_WriteBuffer ⇒ EEPROM_WritePage ⇒ EEPROM_IO_WriteData ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> BSP_EEPROM_WriteBuffer
  - >> HAL_I2C_Init
  - >> HAL_I2C_GetState
  [Called By]
  - >> Init_Config

  IAP_httpd_init (Thumb, 36 bytes, Stack size 8 bytes, httpserver.o(i.IAP_httpd_init))
  [Stack]

  - Max Depth = 372
  - Call Chain = IAP_httpd_init ⇒ tcp_new ⇒ tcp_alloc ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_new
  - >> tcp_listen_with_backlog
  - >> tcp_bind
  - >> tcp_accept
  [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_stm32f407xx.o(RESET)

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

  - startup_stm32f407xx.o(RESET)

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

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

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

  - startup_stm32f407xx.o(.text)

  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_stm32f407xx.o(RESET)

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

  - >> main

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

  - >> _sputc
  - >> _printf_core

  __1sprintf$2 (Thumb, 0 bytes, Stack size 24 bytes, printf2.o(i.__0sprintf$2), UNUSED)

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

  - Max Depth = 24
  - Call Chain = __2sprintf
  [Called By]
  - >> http_recv

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

  dhcp_arp_reply (Thumb, 30 bytes, Stack size 0 bytes, dhcp.o(i.dhcp_arp_reply))
  [Stack]

  - Max Depth = 260
  - Call Chain = dhcp_arp_reply ⇒ dhcp_decline ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> dhcp_decline
  [Called By]
  - >> etharp_arp_input

  dhcp_coarse_tmr (Thumb, 90 bytes, Stack size 8 bytes, dhcp.o(i.dhcp_coarse_tmr))
  [Stack]

  - Max Depth = 268
  - Call Chain = dhcp_coarse_tmr ⇒ dhcp_renew ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> dhcp_renew
  - >> dhcp_rebind
  [Called By]
  - >> dhcp_timer_coarse

  dhcp_fine_tmr (Thumb, 46 bytes, Stack size 16 bytes, dhcp.o(i.dhcp_fine_tmr))
  [Stack]

  - Max Depth = 412
  - Call Chain = dhcp_fine_tmr ⇒ dhcp_timeout ⇒ dhcp_bind ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> dhcp_timeout
  [Called By]
  - >> dhcp_timer_fine

  dhcp_release (Thumb, 160 bytes, Stack size 24 bytes, dhcp.o(i.dhcp_release))
  [Stack]

  - Max Depth = 380
  - Call Chain = dhcp_release ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> udp_sendto_if
  - >> netif_set_netmask
  - >> netif_set_ipaddr
  - >> netif_set_gw
  - >> netif_set_down
  - >> dhcp_set_state
  - >> dhcp_option_trailer
  - >> dhcp_delete_msg
  - >> dhcp_create_msg
  - >> pbuf_realloc
  [Called By]
  - >> dhcp_timeout

  dhcp_renew (Thumb, 132 bytes, Stack size 24 bytes, dhcp.o(i.dhcp_renew))
  [Stack]

  - Max Depth = 260
  - Call Chain = dhcp_renew ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> udp_sendto_if
  - >> dhcp_set_state
  - >> dhcp_option_trailer
  - >> dhcp_option_short
  - >> dhcp_option
  - >> dhcp_delete_msg
  - >> dhcp_create_msg
  - >> pbuf_realloc
  [Called By]
  - >> dhcp_timeout
  - >> dhcp_coarse_tmr

  etharp_cleanup_netif (Thumb, 42 bytes, Stack size 16 bytes, etharp.o(i.etharp_cleanup_netif))
  [Stack]

  - Max Depth = 60
  - Call Chain = etharp_cleanup_netif ⇒ etharp_free_entry ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_free_entry
  [Called By]
  - >> netif_set_down

  etharp_output (Thumb, 246 bytes, Stack size 32 bytes, etharp.o(i.etharp_output))
  [Stack]

  - Max Depth = 212
  - Call Chain = etharp_output ⇒ etharp_query ⇒ etharp_request ⇒ etharp_raw ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_query
  - >> pbuf_header
  - >> ip4_addr_isbroadcast
  - >> etharp_send_ip
  - >> etharp_output_to_arp_index
  [Address Reference Count : 1]
  - ethernetif.o(i.ethernetif_init)

  etharp_query (Thumb, 228 bytes, Stack size 56 bytes, etharp.o(i.etharp_query))
  [Stack]

  - Max Depth = 180
  - Call Chain = etharp_query ⇒ etharp_request ⇒ etharp_raw ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> pbuf_free
  - >> ip4_addr_isbroadcast
  - >> pbuf_ref
  - >> pbuf_copy
  - >> etharp_request
  - >> etharp_send_ip
  - >> etharp_find_entry
  [Called By]
  - >> dhcp_check
  - >> etharp_output

  etharp_request (Thumb, 32 bytes, Stack size 24 bytes, etharp.o(i.etharp_request))
  [Stack]

  - Max Depth = 124
  - Call Chain = etharp_request ⇒ etharp_raw ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_raw
  [Called By]
  - >> netif_set_up
  - >> etharp_query
  - >> etharp_output_to_arp_index

  etharp_tmr (Thumb, 68 bytes, Stack size 16 bytes, etharp.o(i.etharp_tmr))
  [Stack]

  - Max Depth = 60
  - Call Chain = etharp_tmr ⇒ etharp_free_entry ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_free_entry
  [Called By]
  - >> arp_timer

  ethernet_input (Thumb, 138 bytes, Stack size 16 bytes, etharp.o(i.ethernet_input))
  [Stack]

  - Max Depth = 484
  - Call Chain = ethernet_input ⇒ ip_input ⇒ tcp_input ⇒ tcp_process ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_header
  - >> pbuf_free
  - >> ip_input
  - >> etharp_arp_input
  - >> memcmp
  [Address Reference Count : 1]
  - main.o(i.Netif_Config)

  ethernetif_init (Thumb, 30 bytes, Stack size 8 bytes, ethernetif.o(i.ethernetif_init))
  [Stack]

  - Max Depth = 112
  - Call Chain = ethernetif_init ⇒ low_level_init ⇒ HAL_ETH_Init ⇒ ETH_MACDMAConfig ⇒ HAL_Delay
  [Calls]
  - >> low_level_init
  [Address Reference Count : 1]
  - main.o(i.Netif_Config)

  ethernetif_input (Thumb, 34 bytes, Stack size 16 bytes, ethernetif.o(i.ethernetif_input))
  [Stack]

  - Max Depth = 116
  - Call Chain = ethernetif_input ⇒ low_level_input ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  - >> low_level_input
  [Called By]
  - >> main

  ethernetif_notify_conn_changed (Thumb, 54 bytes, Stack size 24 bytes, app_ethernet.o(i.ethernetif_notify_conn_changed))
  [Stack]

  - Max Depth = 396
  - Call Chain = ethernetif_notify_conn_changed ⇒ netif_set_addr ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> netif_set_up
  - >> netif_set_down
  - >> netif_set_addr
  [Called By]
  - >> ethernetif_update_config

  ethernetif_update_config (Thumb, 170 bytes, Stack size 32 bytes, ethernetif.o(i.ethernetif_update_config))
  [Stack]

  - Max Depth = 428
  - Call Chain = ethernetif_update_config ⇒ ethernetif_notify_conn_changed ⇒ netif_set_addr ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> HAL_GetTick
  - >> HAL_ETH_WritePHYRegister
  - >> HAL_ETH_Stop
  - >> HAL_ETH_Start
  - >> HAL_ETH_ReadPHYRegister
  - >> HAL_ETH_ConfigMAC
  - >> ethernetif_notify_conn_changed
  [Address Reference Count : 1]
  - main.o(i.Netif_Config)

  icmp_dest_unreach (Thumb, 8 bytes, Stack size 0 bytes, icmp.o(i.icmp_dest_unreach))
  [Stack]

  - Max Depth = 268
  - Call Chain = icmp_dest_unreach ⇒ icmp_send_response ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> icmp_send_response
  [Called By]
  - >> udp_input
  - >> ip_input

  icmp_input (Thumb, 242 bytes, Stack size 48 bytes, icmp.o(i.icmp_input))
  [Stack]

  - Max Depth = 236
  - Call Chain = icmp_input ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> ip_output_if
  - >> pbuf_alloc
  - >> pbuf_header
  - >> pbuf_free
  - >> ip4_addr_isbroadcast
  - >> inet_chksum_pbuf
  - >> pbuf_copy
  [Called By]
  - >> ip_input

  icmp_time_exceeded (Thumb, 8 bytes, Stack size 0 bytes, icmp.o(i.icmp_time_exceeded))
  [Stack]

  - Max Depth = 268
  - Call Chain = icmp_time_exceeded ⇒ icmp_send_response ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> icmp_send_response
  [Called By]
  - >> ip_reass_free_complete_datagram

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

  - Max Depth = 20
  - Call Chain = inet_chksum ⇒ lwip_standard_chksum
  [Calls]
  - >> lwip_standard_chksum
  [Called By]
  - >> ip_reass
  - >> ip_frag
  - >> icmp_send_response

  inet_chksum_pbuf (Thumb, 72 bytes, Stack size 16 bytes, inet_chksum.o(i.inet_chksum_pbuf))
  [Stack]

  - Max Depth = 28
  - Call Chain = inet_chksum_pbuf ⇒ lwip_standard_chksum
  [Calls]
  - >> lwip_standard_chksum
  [Called By]
  - >> icmp_input

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

  - >> udp_input
  - >> etharp_query
  - >> tcp_input
  - >> icmp_input
  - >> ip_input
  - >> etharp_output
  - >> etharp_update_arp_entry

  ip_frag (Thumb, 352 bytes, Stack size 88 bytes, ip_frag.o(i.ip_frag))
  [Stack]

  - Max Depth = 148
  - Call Chain = ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> memp_malloc
  - >> pbuf_free
  - >> lwip_ntohs
  - >> lwip_htons
  - >> ip_frag_free_pbuf_custom_ref
  - >> inet_chksum
  - >> pbuf_ref
  - >> pbuf_alloced_custom
  - >> pbuf_cat
  - >> __aeabi_memcpy
  [Called By]
  - >> ip_output_if

  ip_input (Thumb, 372 bytes, Stack size 40 bytes, ip.o(i.ip_input))
  [Stack]

  - Max Depth = 468
  - Call Chain = ip_input ⇒ tcp_input ⇒ tcp_process ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> icmp_dest_unreach
  - >> udp_input
  - >> pbuf_realloc
  - >> pbuf_free
  - >> lwip_ntohs
  - >> ip4_addr_isbroadcast
  - >> tcp_input
  - >> icmp_input
  - >> ip_reass
  - >> raw_input
  [Called By]
  - >> ethernet_input

  ip_output (Thumb, 52 bytes, Stack size 40 bytes, ip.o(i.ip_output))
  [Stack]

  - Max Depth = 228
  - Call Chain = ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> ip_route
  - >> ip_output_if
  [Called By]
  - >> tcp_send_empty_ack
  - >> tcp_rst
  - >> tcp_output_segment
  - >> tcp_zero_window_probe
  - >> tcp_keepalive
  - >> icmp_send_response

  ip_output_if (Thumb, 164 bytes, Stack size 40 bytes, ip.o(i.ip_output_if))
  [Stack]

  - Max Depth = 188
  - Call Chain = ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_header
  - >> lwip_htons
  - >> ip_frag
  [Called By]
  - >> udp_sendto_if
  - >> icmp_input
  - >> ip_output

  ip_reass (Thumb, 392 bytes, Stack size 40 bytes, ip_frag.o(i.ip_reass))
  [Stack]

  - Max Depth = 356
  - Call Chain = ip_reass ⇒ ip_reass_remove_oldest_datagram ⇒ ip_reass_free_complete_datagram ⇒ icmp_time_exceeded ⇒ icmp_send_response ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> memp_malloc
  - >> pbuf_header
  - >> pbuf_free
  - >> pbuf_clen
  - >> lwip_ntohs
  - >> lwip_htons
  - >> ip_reass_remove_oldest_datagram
  - >> ip_reass_dequeue_datagram
  - >> ip_reass_chain_frag_into_datagram_and_validate
  - >> inet_chksum
  - >> pbuf_cat
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> ip_input

  ip_reass_tmr (Thumb, 40 bytes, Stack size 16 bytes, ip_frag.o(i.ip_reass_tmr))
  [Stack]

  - Max Depth = 308
  - Call Chain = ip_reass_tmr ⇒ ip_reass_free_complete_datagram ⇒ icmp_time_exceeded ⇒ icmp_send_response ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> ip_reass_free_complete_datagram
  [Called By]
  - >> ip_reass_timer

  ip_route (Thumb, 54 bytes, Stack size 8 bytes, ip.o(i.ip_route))
  [Stack]

  - Max Depth = 8
  - Call Chain = ip_route
  [Called By]
  - >> tcp_eff_send_mss
  - >> ip_output
  - >> tcp_output_segment

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

  - >> dhcp_create_msg
  - >> tcp_send_empty_ack
  - >> tcp_rst
  - >> tcp_output_segment
  - >> tcp_output_alloc_header
  - >> tcp_create_segment
  - >> tcp_keepalive

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

  - >> ip_output_if
  - >> udp_sendto_if
  - >> tcp_rst
  - >> tcp_output
  - >> tcp_receive
  - >> ip_reass
  - >> ip_frag
  - >> tcp_write
  - >> tcp_output_segment
  - >> tcp_output_alloc_header
  - >> tcp_create_segment
  - >> tcp_zero_window_probe
  - >> tcp_send_fin
  - >> etharp_raw
  - >> etharp_arp_input

  lwip_init (Thumb, 30 bytes, Stack size 8 bytes, init.o(i.lwip_init))
  [Stack]

  - Max Depth = 32
  - Call Chain = lwip_init ⇒ sys_timeouts_init ⇒ sys_timeout
  [Calls]
  - >> udp_init
  - >> memp_init
  - >> sys_timeouts_init
  - >> tcp_init
  - >> netif_init
  - >> mem_init
  [Called By]
  - >> main

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

  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_decline
  - >> tcp_rexmit
  - >> tcp_output
  - >> tcp_input
  - >> tcp_receive
  - >> tcp_process
  - >> tcp_output_segment

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

  - >> udp_input
  - >> tcp_output
  - >> tcp_input
  - >> tcp_receive
  - >> tcp_parseopt
  - >> ip_input
  - >> ip_reass
  - >> ip_frag
  - >> ip_reass_chain_frag_into_datagram_and_validate
  - >> tcp_zero_window_probe
  - >> tcp_send_fin

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

  - Max Depth = 468
  - Call Chain = main ⇒ Netif_Config ⇒ netif_add ⇒ netif_set_addr ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> sys_check_timeouts
  - >> lwip_init
  - >> HAL_GPIO_WritePin
  - >> HAL_GPIO_ReadPin
  - >> HAL_Delay
  - >> HAL_Init
  - >> HAL_GPIO_Init
  - >> SystemClock_Config
  - >> Netif_Config
  - >> Init_Config
  - >> ethernetif_input
  - >> BSP_EEPROM_WriteBuffer
  - >> IAP_httpd_init
  - >> User_notification
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  mem_free (Thumb, 40 bytes, Stack size 0 bytes, mem.o(i.mem_free))
  [Stack]

  - Max Depth = 12
  - Call Chain = mem_free ⇒ plug_holes
  [Calls]
  - >> plug_holes
  [Called By]
  - >> pbuf_free
  - >> conn_err
  - >> close_conn

  mem_init (Thumb, 42 bytes, Stack size 8 bytes, mem.o(i.mem_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = mem_init
  [Called By]
  - >> lwip_init

  mem_malloc (Thumb, 162 bytes, Stack size 20 bytes, mem.o(i.mem_malloc))
  [Stack]

  - Max Depth = 20
  - Call Chain = mem_malloc
  [Called By]
  - >> pbuf_alloc
  - >> http_accept

  mem_trim (Thumb, 200 bytes, Stack size 32 bytes, mem.o(i.mem_trim))
  [Stack]

  - Max Depth = 32
  - Call Chain = mem_trim
  [Called By]
  - >> pbuf_realloc

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

  - >> sys_check_timeouts
  - >> tcp_seg_free
  - >> tcp_abandon
  - >> pbuf_free
  - >> tcp_input
  - >> ip_reass_dequeue_datagram
  - >> ip_frag_free_pbuf_custom_ref
  - >> tcp_slowtmr
  - >> tcp_listen_with_backlog
  - >> tcp_close_shutdown

  memp_init (Thumb, 78 bytes, Stack size 20 bytes, memp.o(i.memp_init))
  [Stack]

  - Max Depth = 20
  - Call Chain = memp_init
  [Called By]
  - >> lwip_init

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

  - >> pbuf_alloc
  - >> sys_timeout
  - >> tcp_alloc
  - >> ip_reass
  - >> ip_frag
  - >> tcp_create_segment
  - >> tcp_listen_with_backlog

  netif_add (Thumb, 72 bytes, Stack size 24 bytes, netif.o(i.netif_add))
  [Stack]

  - Max Depth = 396
  - Call Chain = netif_add ⇒ netif_set_addr ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> netif_set_addr
  [Called By]
  - >> Netif_Config

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

  - >> lwip_init

  netif_set_addr (Thumb, 32 bytes, Stack size 16 bytes, netif.o(i.netif_set_addr))
  [Stack]

  - Max Depth = 372
  - Call Chain = netif_set_addr ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> netif_set_netmask
  - >> netif_set_ipaddr
  - >> netif_set_gw
  [Called By]
  - >> netif_add
  - >> ethernetif_notify_conn_changed

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

  - >> Netif_Config

  netif_set_down (Thumb, 26 bytes, Stack size 0 bytes, netif.o(i.netif_set_down))
  [Stack]

  - Max Depth = 60
  - Call Chain = netif_set_down ⇒ etharp_cleanup_netif ⇒ etharp_free_entry ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_cleanup_netif
  [Called By]
  - >> dhcp_release
  - >> Netif_Config
  - >> ethernetif_notify_conn_changed

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

  - >> dhcp_release
  - >> dhcp_bind
  - >> netif_set_addr

  netif_set_ipaddr (Thumb, 96 bytes, Stack size 16 bytes, netif.o(i.netif_set_ipaddr))
  [Stack]

  - Max Depth = 356
  - Call Chain = netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_abort
  [Called By]
  - >> dhcp_release
  - >> dhcp_bind
  - >> netif_set_addr

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

  - >> Netif_Config

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

  - >> dhcp_release
  - >> dhcp_bind
  - >> netif_set_addr

  netif_set_up (Thumb, 32 bytes, Stack size 0 bytes, netif.o(i.netif_set_up))
  [Stack]

  - Max Depth = 124
  - Call Chain = netif_set_up ⇒ etharp_request ⇒ etharp_raw ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_request
  [Called By]
  - >> dhcp_bind
  - >> Netif_Config
  - >> ethernetif_notify_conn_changed

  pbuf_alloc (Thumb, 280 bytes, Stack size 32 bytes, pbuf.o(i.pbuf_alloc))
  [Stack]

  - Max Depth = 60
  - Call Chain = pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> mem_malloc
  - >> memp_malloc
  - >> pbuf_free
  [Called By]
  - >> udp_sendto_if
  - >> etharp_query
  - >> dhcp_create_msg
  - >> tcp_rst
  - >> tcp_enqueue_flags
  - >> icmp_input
  - >> ip_frag
  - >> tcp_write
  - >> tcp_pbuf_prealloc
  - >> tcp_output_alloc_header
  - >> etharp_raw
  - >> icmp_send_response
  - >> low_level_input

  pbuf_alloced_custom (Thumb, 84 bytes, Stack size 16 bytes, pbuf.o(i.pbuf_alloced_custom))
  [Stack]

  - Max Depth = 16
  - Call Chain = pbuf_alloced_custom
  [Called By]
  - >> ip_frag

  pbuf_cat (Thumb, 40 bytes, Stack size 8 bytes, pbuf.o(i.pbuf_cat))
  [Stack]

  - Max Depth = 8
  - Call Chain = pbuf_cat
  [Called By]
  - >> pbuf_chain
  - >> ip_reass
  - >> ip_frag
  - >> tcp_write

  pbuf_chain (Thumb, 18 bytes, Stack size 8 bytes, pbuf.o(i.pbuf_chain))
  [Stack]

  - Max Depth = 16
  - Call Chain = pbuf_chain ⇒ pbuf_cat
  [Calls]
  - >> pbuf_ref
  - >> pbuf_cat
  [Called By]
  - >> udp_sendto_if

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

  - >> tcp_enqueue_flags
  - >> tcp_receive
  - >> ip_reass
  - >> ip_reass_free_complete_datagram
  - >> ip_reass_chain_frag_into_datagram_and_validate
  - >> tcp_write

  pbuf_copy (Thumb, 154 bytes, Stack size 32 bytes, pbuf.o(i.pbuf_copy))
  [Stack]

  - Max Depth = 32
  - Call Chain = pbuf_copy
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> etharp_query
  - >> icmp_input

  pbuf_copy_partial (Thumb, 104 bytes, Stack size 32 bytes, pbuf.o(i.pbuf_copy_partial))
  [Stack]

  - Max Depth = 32
  - Call Chain = pbuf_copy_partial
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> tcp_zero_window_probe

  pbuf_free (Thumb, 80 bytes, Stack size 16 bytes, pbuf.o(i.pbuf_free))
  [Stack]

  - Max Depth = 28
  - Call Chain = pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> mem_free
  - >> memp_free
  [Called By]
  - >> udp_input
  - >> udp_sendto_if
  - >> pbuf_alloc
  - >> etharp_query
  - >> dhcp_delete_msg
  - >> tcp_send_empty_ack
  - >> tcp_seg_free
  - >> tcp_rst
  - >> tcp_recv_null
  - >> tcp_pcb_purge
  - >> pbuf_realloc
  - >> tcp_input
  - >> icmp_input
  - >> ip_input
  - >> ip_reass
  - >> ip_frag
  - >> ipfrag_free_pbuf_custom
  - >> ip_reass_free_complete_datagram
  - >> ip_reass_chain_frag_into_datagram_and_validate
  - >> tcp_write
  - >> tcp_create_segment
  - >> tcp_zero_window_probe
  - >> tcp_keepalive
  - >> ethernet_input
  - >> etharp_update_arp_entry
  - >> etharp_raw
  - >> etharp_free_entry
  - >> etharp_arp_input
  - >> icmp_send_response
  - >> ethernetif_input
  - >> http_recv

  pbuf_header (Thumb, 96 bytes, Stack size 8 bytes, pbuf.o(i.pbuf_header))
  [Stack]

  - Max Depth = 8
  - Call Chain = pbuf_header
  [Called By]
  - >> ip_output_if
  - >> udp_input
  - >> udp_sendto_if
  - >> tcp_input
  - >> tcp_receive
  - >> icmp_input
  - >> ip_reass
  - >> tcp_create_segment
  - >> ethernet_input
  - >> etharp_output

  pbuf_realloc (Thumb, 78 bytes, Stack size 16 bytes, pbuf.o(i.pbuf_realloc))
  [Stack]

  - Max Depth = 48
  - Call Chain = pbuf_realloc ⇒ mem_trim
  [Calls]
  - >> pbuf_free
  - >> mem_trim
  [Called By]
  - >> dhcp_renew
  - >> dhcp_release
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_rebind
  - >> dhcp_discover
  - >> dhcp_decline
  - >> tcp_receive
  - >> ip_input

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

  - >> pbuf_chain
  - >> etharp_query
  - >> ip_frag

  raw_input (Thumb, 104 bytes, Stack size 32 bytes, raw.o(i.raw_input))
  [Stack]

  - Max Depth = 32
  - Call Chain = raw_input
  [Called By]
  - >> ip_input

  sys_check_timeouts (Thumb, 68 bytes, Stack size 24 bytes, lwip_timers.o(i.sys_check_timeouts))
  [Stack]

  - Max Depth = 24
  - Call Chain = sys_check_timeouts
  [Calls]
  - >> sys_now
  - >> memp_free
  [Called By]
  - >> main

  sys_now (Thumb, 4 bytes, Stack size 0 bytes, ethernetif.o(i.sys_now))
  [Calls]

  - >> HAL_GetTick
  [Called By]
  - >> sys_timeouts_init
  - >> sys_check_timeouts

  sys_timeout (Thumb, 88 bytes, Stack size 16 bytes, lwip_timers.o(i.sys_timeout))
  [Stack]

  - Max Depth = 16
  - Call Chain = sys_timeout
  [Calls]
  - >> memp_malloc
  [Called By]
  - >> sys_timeouts_init
  - >> tcpip_tcp_timer
  - >> ip_reass_timer
  - >> dhcp_timer_fine
  - >> dhcp_timer_coarse
  - >> arp_timer
  - >> tcp_timer_needed

  sys_timeouts_init (Thumb, 60 bytes, Stack size 8 bytes, lwip_timers.o(i.sys_timeouts_init))
  [Stack]

  - Max Depth = 24
  - Call Chain = sys_timeouts_init ⇒ sys_timeout
  [Calls]
  - >> sys_now
  - >> sys_timeout
  [Called By]
  - >> lwip_init

  tcp_abandon (Thumb, 136 bytes, Stack size 40 bytes, tcp.o(i.tcp_abandon))
  [Stack]

  - Max Depth = 340
  - Call Chain = tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_rst
  - >> tcp_pcb_remove
  - >> memp_free
  - >> tcp_segs_free
  [Called By]
  - >> tcp_abort
  - >> tcp_listen_input

  tcp_abort (Thumb, 6 bytes, Stack size 0 bytes, tcp.o(i.tcp_abort))
  [Stack]

  - Max Depth = 340
  - Call Chain = tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_abandon
  [Called By]
  - >> netif_set_ipaddr
  - >> tcp_alloc
  - >> tcp_input
  - >> tcp_process

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

  - >> IAP_httpd_init

  tcp_alloc (Thumb, 236 bytes, Stack size 24 bytes, tcp.o(i.tcp_alloc))
  [Stack]

  - Max Depth = 364
  - Call Chain = tcp_alloc ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> memp_malloc
  - >> tcp_abort
  - >> tcp_next_iss
  - >> __aeabi_memclr4
  [Called By]
  - >> tcp_listen_input
  - >> tcp_new

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

  - >> http_accept
  - >> close_conn

  tcp_bind (Thumb, 122 bytes, Stack size 24 bytes, tcp.o(i.tcp_bind))
  [Stack]

  - Max Depth = 44
  - Call Chain = tcp_bind ⇒ tcp_new_port
  [Calls]
  - >> tcp_timer_needed
  - >> tcp_new_port
  [Called By]
  - >> IAP_httpd_init

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

  - >> tcp_recv_null
  - >> http_poll
  - >> close_conn

  tcp_eff_send_mss (Thumb, 32 bytes, Stack size 8 bytes, tcp.o(i.tcp_eff_send_mss))
  [Stack]

  - Max Depth = 16
  - Call Chain = tcp_eff_send_mss ⇒ ip_route
  [Calls]
  - >> ip_route
  [Called By]
  - >> tcp_process
  - >> tcp_listen_input
  - >> tcp_output_segment

  tcp_enqueue_flags (Thumb, 166 bytes, Stack size 24 bytes, tcp_out.o(i.tcp_enqueue_flags))
  [Stack]

  - Max Depth = 92
  - Call Chain = tcp_enqueue_flags ⇒ tcp_create_segment ⇒ tcp_seg_free ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> pbuf_clen
  - >> tcp_create_segment
  [Called By]
  - >> tcp_listen_input
  - >> tcp_send_fin

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

  - >> http_accept

  tcp_fasttmr (Thumb, 90 bytes, Stack size 24 bytes, tcp.o(i.tcp_fasttmr))
  [Stack]

  - Max Depth = 348
  - Call Chain = tcp_fasttmr ⇒ tcp_process_refused_data ⇒ tcp_recv_null ⇒ tcp_recved ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_process_refused_data
  - >> tcp_output
  [Called By]
  - >> tcp_tmr

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

  - >> lwip_init

  tcp_input (Thumb, 758 bytes, Stack size 40 bytes, tcp_in.o(i.tcp_input))
  [Stack]

  - Max Depth = 428
  - Call Chain = tcp_input ⇒ tcp_process ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_rst
  - >> tcp_recv_null
  - >> tcp_process_refused_data
  - >> tcp_pcb_remove
  - >> tcp_output
  - >> tcp_abort
  - >> pbuf_header
  - >> pbuf_free
  - >> memp_free
  - >> lwip_ntohs
  - >> lwip_ntohl
  - >> ip4_addr_isbroadcast
  - >> tcp_timewait_input
  - >> tcp_process
  - >> tcp_listen_input
  [Called By]
  - >> ip_input

  tcp_keepalive (Thumb, 60 bytes, Stack size 24 bytes, tcp_out.o(i.tcp_keepalive))
  [Stack]

  - Max Depth = 252
  - Call Chain = tcp_keepalive ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> lwip_htonl
  - >> pbuf_free
  - >> ip_output
  - >> tcp_output_alloc_header
  [Called By]
  - >> tcp_slowtmr

  tcp_listen_with_backlog (Thumb, 126 bytes, Stack size 16 bytes, tcp.o(i.tcp_listen_with_backlog))
  [Stack]

  - Max Depth = 32
  - Call Chain = tcp_listen_with_backlog ⇒ tcp_timer_needed ⇒ sys_timeout
  [Calls]
  - >> memp_malloc
  - >> tcp_timer_needed
  - >> memp_free
  [Called By]
  - >> IAP_httpd_init

  tcp_new (Thumb, 6 bytes, Stack size 0 bytes, tcp.o(i.tcp_new))
  [Stack]

  - Max Depth = 364
  - Call Chain = tcp_new ⇒ tcp_alloc ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_alloc
  [Called By]
  - >> IAP_httpd_init

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

  - >> tcp_alloc

  tcp_output (Thumb, 392 bytes, Stack size 32 bytes, tcp_out.o(i.tcp_output))
  [Stack]

  - Max Depth = 284
  - Call Chain = tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_send_empty_ack
  - >> tcp_seg_free
  - >> lwip_ntohs
  - >> lwip_ntohl
  - >> lwip_htons
  - >> tcp_output_segment
  [Called By]
  - >> tcp_pcb_remove
  - >> tcp_input
  - >> tcp_timewait_input
  - >> tcp_listen_input
  - >> tcp_rexmit_rto
  - >> tcp_slowtmr
  - >> tcp_recved
  - >> tcp_fasttmr
  - >> tcp_close_shutdown

  tcp_pcb_purge (Thumb, 58 bytes, Stack size 16 bytes, tcp.o(i.tcp_pcb_purge))
  [Stack]

  - Max Depth = 60
  - Call Chain = tcp_pcb_purge ⇒ tcp_segs_free ⇒ tcp_seg_free ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  - >> tcp_segs_free
  [Called By]
  - >> tcp_pcb_remove
  - >> tcp_process
  - >> tcp_slowtmr
  - >> tcp_close_shutdown

  tcp_pcb_remove (Thumb, 82 bytes, Stack size 16 bytes, tcp.o(i.tcp_pcb_remove))
  [Stack]

  - Max Depth = 300
  - Call Chain = tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_pcb_purge
  - >> tcp_output
  [Called By]
  - >> tcp_abandon
  - >> tcp_input
  - >> tcp_close_shutdown

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

  - >> http_accept

  tcp_process_refused_data (Thumb, 102 bytes, Stack size 24 bytes, tcp.o(i.tcp_process_refused_data))
  [Stack]

  - Max Depth = 324
  - Call Chain = tcp_process_refused_data ⇒ tcp_recv_null ⇒ tcp_recved ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_recv_null
  [Called By]
  - >> tcp_input
  - >> tcp_fasttmr

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

  - >> http_accept
  - >> close_conn

  tcp_recv_null (Thumb, 36 bytes, Stack size 8 bytes, tcp.o(i.tcp_recv_null))
  [Stack]

  - Max Depth = 300
  - Call Chain = tcp_recv_null ⇒ tcp_recved ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  - >> tcp_recved
  - >> tcp_close
  [Called By]
  - >> tcp_process_refused_data
  - >> tcp_input
  [Address Reference Count : 1]
  - tcp.o(i.tcp_alloc)

  tcp_recved (Thumb, 56 bytes, Stack size 8 bytes, tcp.o(i.tcp_recved))
  [Stack]

  - Max Depth = 292
  - Call Chain = tcp_recved ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_update_rcv_ann_wnd
  - >> tcp_output
  [Called By]
  - >> tcp_recv_null
  - >> http_recv

  tcp_rexmit (Thumb, 82 bytes, Stack size 24 bytes, tcp_out.o(i.tcp_rexmit))
  [Stack]

  - Max Depth = 24
  - Call Chain = tcp_rexmit
  [Calls]
  - >> lwip_ntohl
  [Called By]
  - >> tcp_rexmit_fast
  - >> tcp_process

  tcp_rexmit_fast (Thumb, 88 bytes, Stack size 8 bytes, tcp_out.o(i.tcp_rexmit_fast))
  [Stack]

  - Max Depth = 32
  - Call Chain = tcp_rexmit_fast ⇒ tcp_rexmit
  [Calls]
  - >> tcp_rexmit
  [Called By]
  - >> tcp_receive

  tcp_rexmit_rto (Thumb, 46 bytes, Stack size 0 bytes, tcp_out.o(i.tcp_rexmit_rto))
  [Stack]

  - Max Depth = 284
  - Call Chain = tcp_rexmit_rto ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_output
  [Called By]
  - >> tcp_slowtmr

  tcp_rst (Thumb, 118 bytes, Stack size 48 bytes, tcp_out.o(i.tcp_rst))
  [Stack]

  - Max Depth = 276
  - Call Chain = tcp_rst ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> lwip_htonl
  - >> pbuf_free
  - >> lwip_htons
  - >> ip_output
  [Called By]
  - >> tcp_abandon
  - >> tcp_input
  - >> tcp_timewait_input
  - >> tcp_process
  - >> tcp_listen_input
  - >> tcp_slowtmr
  - >> tcp_close_shutdown

  tcp_seg_free (Thumb, 28 bytes, Stack size 8 bytes, tcp.o(i.tcp_seg_free))
  [Stack]

  - Max Depth = 36
  - Call Chain = tcp_seg_free ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  - >> memp_free
  [Called By]
  - >> tcp_output
  - >> tcp_receive
  - >> tcp_process
  - >> tcp_create_segment
  - >> tcp_segs_free

  tcp_segs_free (Thumb, 18 bytes, Stack size 8 bytes, tcp.o(i.tcp_segs_free))
  [Stack]

  - Max Depth = 44
  - Call Chain = tcp_segs_free ⇒ tcp_seg_free ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_seg_free
  [Called By]
  - >> tcp_pcb_purge
  - >> tcp_abandon
  - >> tcp_write

  tcp_send_empty_ack (Thumb, 72 bytes, Stack size 24 bytes, tcp_out.o(i.tcp_send_empty_ack))
  [Stack]

  - Max Depth = 252
  - Call Chain = tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> lwip_htonl
  - >> pbuf_free
  - >> ip_output
  - >> tcp_output_alloc_header
  [Called By]
  - >> tcp_output
  - >> tcp_receive

  tcp_send_fin (Thumb, 68 bytes, Stack size 16 bytes, tcp_out.o(i.tcp_send_fin), UNUSED)
  [Calls]

  - >> tcp_enqueue_flags
  - >> lwip_ntohs
  - >> lwip_htons
  [Called By]
  - >> tcp_close_shutdown

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

  - >> http_recv
  - >> close_conn

  tcp_slowtmr (Thumb, 588 bytes, Stack size 40 bytes, tcp.o(i.tcp_slowtmr))
  [Stack]

  - Max Depth = 324
  - Call Chain = tcp_slowtmr ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_rst
  - >> tcp_pcb_purge
  - >> tcp_output
  - >> memp_free
  - >> tcp_zero_window_probe
  - >> tcp_rexmit_rto
  - >> tcp_keepalive
  [Called By]
  - >> tcp_tmr

  tcp_timer_needed (Thumb, 36 bytes, Stack size 0 bytes, lwip_timers.o(i.tcp_timer_needed))
  [Stack]

  - Max Depth = 16
  - Call Chain = tcp_timer_needed ⇒ sys_timeout
  [Calls]
  - >> sys_timeout
  [Called By]
  - >> tcp_process
  - >> tcp_listen_input
  - >> tcp_listen_with_backlog
  - >> tcp_bind
  - >> tcp_close_shutdown

  tcp_tmr (Thumb, 28 bytes, Stack size 8 bytes, tcp.o(i.tcp_tmr))
  [Stack]

  - Max Depth = 356
  - Call Chain = tcp_tmr ⇒ tcp_fasttmr ⇒ tcp_process_refused_data ⇒ tcp_recv_null ⇒ tcp_recved ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_slowtmr
  - >> tcp_fasttmr
  [Called By]
  - >> tcpip_tcp_timer

  tcp_update_rcv_ann_wnd (Thumb, 52 bytes, Stack size 16 bytes, tcp.o(i.tcp_update_rcv_ann_wnd))
  [Stack]

  - Max Depth = 16
  - Call Chain = tcp_update_rcv_ann_wnd
  [Called By]
  - >> tcp_receive
  - >> tcp_recved

  tcp_write (Thumb, 764 bytes, Stack size 96 bytes, tcp_out.o(i.tcp_write))
  [Stack]

  - Max Depth = 180
  - Call Chain = tcp_write ⇒ tcp_pbuf_prealloc ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> pbuf_free
  - >> pbuf_clen
  - >> lwip_htons
  - >> pbuf_cat
  - >> tcp_pbuf_prealloc
  - >> tcp_create_segment
  - >> tcp_segs_free
  - >> __aeabi_memcpy
  [Called By]
  - >> send_data

  tcp_zero_window_probe (Thumb, 138 bytes, Stack size 32 bytes, tcp_out.o(i.tcp_zero_window_probe))
  [Stack]

  - Max Depth = 260
  - Call Chain = tcp_zero_window_probe ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_copy_partial
  - >> pbuf_free
  - >> lwip_ntohs
  - >> lwip_htons
  - >> ip_output
  - >> tcp_output_alloc_header
  [Called By]
  - >> tcp_slowtmr

  udp_bind (Thumb, 148 bytes, Stack size 32 bytes, udp.o(i.udp_bind))
  [Stack]

  - Max Depth = 32
  - Call Chain = udp_bind
  [Called By]
  - >> udp_sendto_if

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

  - >> lwip_init

  udp_input (Thumb, 364 bytes, Stack size 40 bytes, udp.o(i.udp_input))
  [Stack]

  - Max Depth = 308
  - Call Chain = udp_input ⇒ icmp_dest_unreach ⇒ icmp_send_response ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> icmp_dest_unreach
  - >> pbuf_header
  - >> pbuf_free
  - >> lwip_ntohs
  - >> ip4_addr_isbroadcast
  [Called By]
  - >> ip_input

  udp_sendto_if (Thumb, 182 bytes, Stack size 48 bytes, udp.o(i.udp_sendto_if))
  [Stack]

  - Max Depth = 236
  - Call Chain = udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_chain
  - >> ip_output_if
  - >> udp_bind
  - >> pbuf_alloc
  - >> pbuf_header
  - >> pbuf_free
  - >> lwip_htons
  [Called By]
  - >> dhcp_renew
  - >> dhcp_release
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_rebind
  - >> dhcp_discover
  - >> dhcp_decline

  ### Local Symbols

  tcp_listen_input (Thumb, 208 bytes, Stack size 24 bytes, tcp_in.o(i.tcp_listen_input))
  [Stack]

  - Max Depth = 388
  - Call Chain = tcp_listen_input ⇒ tcp_alloc ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_timer_needed
  - >> tcp_rst
  - >> tcp_output
  - >> tcp_enqueue_flags
  - >> tcp_eff_send_mss
  - >> tcp_alloc
  - >> tcp_abandon
  - >> tcp_parseopt
  [Called By]
  - >> tcp_input

  tcp_parseopt (Thumb, 122 bytes, Stack size 16 bytes, tcp_in.o(i.tcp_parseopt))
  [Stack]

  - Max Depth = 16
  - Call Chain = tcp_parseopt
  [Calls]
  - >> lwip_ntohs
  [Called By]
  - >> tcp_process
  - >> tcp_listen_input

  tcp_process (Thumb, 788 bytes, Stack size 48 bytes, tcp_in.o(i.tcp_process))
  [Stack]

  - Max Depth = 388
  - Call Chain = tcp_process ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_timer_needed
  - >> tcp_seg_free
  - >> tcp_rst
  - >> tcp_rexmit
  - >> tcp_pcb_purge
  - >> tcp_eff_send_mss
  - >> tcp_abort
  - >> lwip_ntohl
  - >> tcp_receive
  - >> tcp_parseopt
  [Called By]
  - >> tcp_input

  tcp_receive (Thumb, 1042 bytes, Stack size 24 bytes, tcp_in.o(i.tcp_receive))
  [Stack]

  - Max Depth = 276
  - Call Chain = tcp_receive ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_update_rcv_ann_wnd
  - >> tcp_send_empty_ack
  - >> tcp_seg_free
  - >> tcp_rexmit_fast
  - >> pbuf_realloc
  - >> pbuf_header
  - >> pbuf_clen
  - >> lwip_ntohs
  - >> lwip_ntohl
  - >> lwip_htons
  [Called By]
  - >> tcp_process

  tcp_timewait_input (Thumb, 92 bytes, Stack size 16 bytes, tcp_in.o(i.tcp_timewait_input))
  [Stack]

  - Max Depth = 300
  - Call Chain = tcp_timewait_input ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_rst
  - >> tcp_output
  [Called By]
  - >> tcp_input

  arp_timer (Thumb, 22 bytes, Stack size 8 bytes, lwip_timers.o(i.arp_timer))
  [Stack]

  - Max Depth = 68
  - Call Chain = arp_timer ⇒ etharp_tmr ⇒ etharp_free_entry ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_tmr
  - >> sys_timeout
  [Address Reference Count : 2]
  - lwip_timers.o(i.arp_timer)
  - lwip_timers.o(i.sys_timeouts_init)

  dhcp_timer_coarse (Thumb, 22 bytes, Stack size 8 bytes, lwip_timers.o(i.dhcp_timer_coarse))
  [Stack]

  - Max Depth = 276
  - Call Chain = dhcp_timer_coarse ⇒ dhcp_coarse_tmr ⇒ dhcp_renew ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> dhcp_coarse_tmr
  - >> sys_timeout
  [Address Reference Count : 2]
  - lwip_timers.o(i.dhcp_timer_coarse)
  - lwip_timers.o(i.sys_timeouts_init)

  dhcp_timer_fine (Thumb, 22 bytes, Stack size 8 bytes, lwip_timers.o(i.dhcp_timer_fine))
  [Stack]

  - Max Depth = 420
  - Call Chain = dhcp_timer_fine ⇒ dhcp_fine_tmr ⇒ dhcp_timeout ⇒ dhcp_bind ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> dhcp_fine_tmr
  - >> sys_timeout
  [Address Reference Count : 2]
  - lwip_timers.o(i.dhcp_timer_fine)
  - lwip_timers.o(i.sys_timeouts_init)

  ip_reass_timer (Thumb, 22 bytes, Stack size 8 bytes, lwip_timers.o(i.ip_reass_timer))
  [Stack]

  - Max Depth = 316
  - Call Chain = ip_reass_timer ⇒ ip_reass_tmr ⇒ ip_reass_free_complete_datagram ⇒ icmp_time_exceeded ⇒ icmp_send_response ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> ip_reass_tmr
  - >> sys_timeout
  [Address Reference Count : 2]
  - lwip_timers.o(i.ip_reass_timer)
  - lwip_timers.o(i.sys_timeouts_init)

  tcpip_tcp_timer (Thumb, 40 bytes, Stack size 8 bytes, lwip_timers.o(i.tcpip_tcp_timer))
  [Stack]

  - Max Depth = 364
  - Call Chain = tcpip_tcp_timer ⇒ tcp_tmr ⇒ tcp_fasttmr ⇒ tcp_process_refused_data ⇒ tcp_recv_null ⇒ tcp_recved ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_tmr
  - >> sys_timeout
  [Address Reference Count : 2]
  - lwip_timers.o(i.tcp_timer_needed)
  - lwip_timers.o(i.tcpip_tcp_timer)

  dhcp_bind (Thumb, 192 bytes, Stack size 32 bytes, dhcp.o(i.dhcp_bind))
  [Stack]

  - Max Depth = 388
  - Call Chain = dhcp_bind ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> netif_set_up
  - >> netif_set_netmask
  - >> netif_set_ipaddr
  - >> netif_set_gw
  - >> dhcp_set_state
  [Called By]
  - >> dhcp_timeout

  dhcp_check (Thumb, 48 bytes, Stack size 16 bytes, dhcp.o(i.dhcp_check))
  [Stack]

  - Max Depth = 196
  - Call Chain = dhcp_check ⇒ etharp_query ⇒ etharp_request ⇒ etharp_raw ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_query
  - >> dhcp_set_state
  [Called By]
  - >> dhcp_timeout

  dhcp_create_msg (Thumb, 282 bytes, Stack size 24 bytes, dhcp.o(i.dhcp_create_msg))
  [Stack]

  - Max Depth = 84
  - Call Chain = dhcp_create_msg ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> dhcp_option_byte
  - >> dhcp_option
  - >> lwip_htonl
  [Called By]
  - >> dhcp_renew
  - >> dhcp_release
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_rebind
  - >> dhcp_discover
  - >> dhcp_decline

  dhcp_decline (Thumb, 114 bytes, Stack size 24 bytes, dhcp.o(i.dhcp_decline))
  [Stack]

  - Max Depth = 260
  - Call Chain = dhcp_decline ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> udp_sendto_if
  - >> dhcp_set_state
  - >> dhcp_option_trailer
  - >> dhcp_option_long
  - >> dhcp_option
  - >> dhcp_delete_msg
  - >> dhcp_create_msg
  - >> pbuf_realloc
  - >> lwip_ntohl
  [Called By]
  - >> dhcp_arp_reply

  dhcp_delete_msg (Thumb, 22 bytes, Stack size 8 bytes, dhcp.o(i.dhcp_delete_msg))
  [Stack]

  - Max Depth = 36
  - Call Chain = dhcp_delete_msg ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  [Called By]
  - >> dhcp_renew
  - >> dhcp_release
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_rebind
  - >> dhcp_discover
  - >> dhcp_decline

  dhcp_discover (Thumb, 184 bytes, Stack size 24 bytes, dhcp.o(i.dhcp_discover))
  [Stack]

  - Max Depth = 260
  - Call Chain = dhcp_discover ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> udp_sendto_if
  - >> dhcp_set_state
  - >> dhcp_option_trailer
  - >> dhcp_option_short
  - >> dhcp_option_byte
  - >> dhcp_option
  - >> dhcp_delete_msg
  - >> dhcp_create_msg
  - >> pbuf_realloc
  [Called By]
  - >> dhcp_timeout

  dhcp_option (Thumb, 32 bytes, Stack size 8 bytes, dhcp.o(i.dhcp_option))
  [Stack]

  - Max Depth = 8
  - Call Chain = dhcp_option
  [Called By]
  - >> dhcp_renew
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_rebind
  - >> dhcp_discover
  - >> dhcp_decline
  - >> dhcp_create_msg

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

  - >> dhcp_select
  - >> dhcp_discover
  - >> dhcp_create_msg

  dhcp_option_long (Thumb, 66 bytes, Stack size 8 bytes, dhcp.o(i.dhcp_option_long))
  [Stack]

  - Max Depth = 8
  - Call Chain = dhcp_option_long
  [Called By]
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_decline

  dhcp_option_short (Thumb, 34 bytes, Stack size 8 bytes, dhcp.o(i.dhcp_option_short))
  [Stack]

  - Max Depth = 8
  - Call Chain = dhcp_option_short
  [Called By]
  - >> dhcp_renew
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_rebind
  - >> dhcp_discover

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

  - >> dhcp_renew
  - >> dhcp_release
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_rebind
  - >> dhcp_discover
  - >> dhcp_decline

  dhcp_rebind (Thumb, 130 bytes, Stack size 24 bytes, dhcp.o(i.dhcp_rebind))
  [Stack]

  - Max Depth = 260
  - Call Chain = dhcp_rebind ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> udp_sendto_if
  - >> dhcp_set_state
  - >> dhcp_option_trailer
  - >> dhcp_option_short
  - >> dhcp_option
  - >> dhcp_delete_msg
  - >> dhcp_create_msg
  - >> pbuf_realloc
  [Called By]
  - >> dhcp_timeout
  - >> dhcp_coarse_tmr

  dhcp_reboot (Thumb, 156 bytes, Stack size 24 bytes, dhcp.o(i.dhcp_reboot))
  [Stack]

  - Max Depth = 260
  - Call Chain = dhcp_reboot ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> udp_sendto_if
  - >> dhcp_set_state
  - >> dhcp_option_trailer
  - >> dhcp_option_short
  - >> dhcp_option_long
  - >> dhcp_option
  - >> dhcp_delete_msg
  - >> dhcp_create_msg
  - >> pbuf_realloc
  - >> lwip_ntohl
  [Called By]
  - >> dhcp_timeout

  dhcp_select (Thumb, 228 bytes, Stack size 24 bytes, dhcp.o(i.dhcp_select))
  [Stack]

  - Max Depth = 260
  - Call Chain = dhcp_select ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> udp_sendto_if
  - >> dhcp_set_state
  - >> dhcp_option_trailer
  - >> dhcp_option_short
  - >> dhcp_option_long
  - >> dhcp_option_byte
  - >> dhcp_option
  - >> dhcp_delete_msg
  - >> dhcp_create_msg
  - >> pbuf_realloc
  - >> lwip_ntohl
  [Called By]
  - >> dhcp_timeout

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

  - >> dhcp_renew
  - >> dhcp_release
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_rebind
  - >> dhcp_discover
  - >> dhcp_decline
  - >> dhcp_check
  - >> dhcp_bind

  dhcp_timeout (Thumb, 136 bytes, Stack size 8 bytes, dhcp.o(i.dhcp_timeout))
  [Stack]

  - Max Depth = 396
  - Call Chain = dhcp_timeout ⇒ dhcp_bind ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> dhcp_renew
  - >> dhcp_release
  - >> dhcp_select
  - >> dhcp_reboot
  - >> dhcp_rebind
  - >> dhcp_discover
  - >> dhcp_check
  - >> dhcp_bind
  [Called By]
  - >> dhcp_fine_tmr

  plug_holes (Thumb, 78 bytes, Stack size 12 bytes, mem.o(i.plug_holes))
  [Stack]

  - Max Depth = 12
  - Call Chain = plug_holes
  [Called By]
  - >> mem_free

  tcp_accept_null (Thumb, 6 bytes, Stack size 0 bytes, tcp.o(i.tcp_accept_null))
  [Address Reference Count : 1]

  - tcp.o(i.tcp_listen_with_backlog)

  tcp_close_shutdown (Thumb, 290 bytes, Stack size 40 bytes, tcp.o(i.tcp_close_shutdown), UNUSED)
  [Calls]

  - >> tcp_timer_needed
  - >> tcp_rst
  - >> tcp_pcb_remove
  - >> tcp_pcb_purge
  - >> tcp_output
  - >> memp_free
  - >> tcp_send_fin

  tcp_new_port (Thumb, 82 bytes, Stack size 20 bytes, tcp.o(i.tcp_new_port))
  [Stack]

  - Max Depth = 20
  - Call Chain = tcp_new_port
  [Called By]
  - >> tcp_bind

  tcp_create_segment (Thumb, 156 bytes, Stack size 32 bytes, tcp_out.o(i.tcp_create_segment))
  [Stack]

  - Max Depth = 68
  - Call Chain = tcp_create_segment ⇒ tcp_seg_free ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> memp_malloc
  - >> lwip_htonl
  - >> tcp_seg_free
  - >> pbuf_header
  - >> pbuf_free
  - >> lwip_htons
  [Called By]
  - >> tcp_enqueue_flags
  - >> tcp_write

  tcp_output_alloc_header (Thumb, 106 bytes, Stack size 24 bytes, tcp_out.o(i.tcp_output_alloc_header))
  [Stack]

  - Max Depth = 84
  - Call Chain = tcp_output_alloc_header ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> lwip_htonl
  - >> lwip_htons
  [Called By]
  - >> tcp_send_empty_ack
  - >> tcp_zero_window_probe
  - >> tcp_keepalive

  tcp_output_segment (Thumb, 170 bytes, Stack size 24 bytes, tcp_out.o(i.tcp_output_segment))
  [Stack]

  - Max Depth = 252
  - Call Chain = tcp_output_segment ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> ip_route
  - >> lwip_htonl
  - >> tcp_eff_send_mss
  - >> lwip_ntohl
  - >> lwip_htons
  - >> ip_output
  [Called By]
  - >> tcp_output

  tcp_pbuf_prealloc (Thumb, 78 bytes, Stack size 24 bytes, tcp_out.o(i.tcp_pbuf_prealloc))
  [Stack]

  - Max Depth = 84
  - Call Chain = tcp_pbuf_prealloc ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  [Called By]
  - >> tcp_write

  lwip_standard_chksum (Thumb, 88 bytes, Stack size 12 bytes, inet_chksum.o(i.lwip_standard_chksum))
  [Stack]

  - Max Depth = 12
  - Call Chain = lwip_standard_chksum
  [Called By]
  - >> inet_chksum_pbuf
  - >> inet_chksum

  ip_frag_free_pbuf_custom_ref (Thumb, 8 bytes, Stack size 0 bytes, ip_frag.o(i.ip_frag_free_pbuf_custom_ref))
  [Calls]

  - >> memp_free
  [Called By]
  - >> ip_frag
  - >> ipfrag_free_pbuf_custom

  ip_reass_chain_frag_into_datagram_and_validate (Thumb, 228 bytes, Stack size 32 bytes, ip_frag.o(i.ip_reass_chain_frag_into_datagram_and_validate))
  [Stack]

  - Max Depth = 60
  - Call Chain = ip_reass_chain_frag_into_datagram_and_validate ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  - >> pbuf_clen
  - >> lwip_ntohs
  [Called By]
  - >> ip_reass

  ip_reass_dequeue_datagram (Thumb, 30 bytes, Stack size 8 bytes, ip_frag.o(i.ip_reass_dequeue_datagram))
  [Stack]

  - Max Depth = 8
  - Call Chain = ip_reass_dequeue_datagram
  [Calls]
  - >> memp_free
  [Called By]
  - >> ip_reass
  - >> ip_reass_free_complete_datagram

  ip_reass_free_complete_datagram (Thumb, 108 bytes, Stack size 24 bytes, ip_frag.o(i.ip_reass_free_complete_datagram))
  [Stack]

  - Max Depth = 292
  - Call Chain = ip_reass_free_complete_datagram ⇒ icmp_time_exceeded ⇒ icmp_send_response ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  - >> pbuf_clen
  - >> icmp_time_exceeded
  - >> ip_reass_dequeue_datagram
  - >> __aeabi_memcpy
  [Called By]
  - >> ip_reass_tmr
  - >> ip_reass_remove_oldest_datagram

  ip_reass_remove_oldest_datagram (Thumb, 104 bytes, Stack size 24 bytes, ip_frag.o(i.ip_reass_remove_oldest_datagram))
  [Stack]

  - Max Depth = 316
  - Call Chain = ip_reass_remove_oldest_datagram ⇒ ip_reass_free_complete_datagram ⇒ icmp_time_exceeded ⇒ icmp_send_response ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> ip_reass_free_complete_datagram
  [Called By]
  - >> ip_reass

  ipfrag_free_pbuf_custom (Thumb, 22 bytes, Stack size 8 bytes, ip_frag.o(i.ipfrag_free_pbuf_custom))
  [Stack]

  - Max Depth = 36
  - Call Chain = ipfrag_free_pbuf_custom ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  - >> ip_frag_free_pbuf_custom_ref
  [Address Reference Count : 1]
  - ip_frag.o(i.ip_frag)

  icmp_send_response (Thumb, 100 bytes, Stack size 40 bytes, icmp.o(i.icmp_send_response))
  [Stack]

  - Max Depth = 268
  - Call Chain = icmp_send_response ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> pbuf_free
  - >> inet_chksum
  - >> ip_output
  - >> __aeabi_memcpy
  [Called By]
  - >> icmp_dest_unreach
  - >> icmp_time_exceeded

  etharp_arp_input (Thumb, 206 bytes, Stack size 40 bytes, etharp.o(i.etharp_arp_input))
  [Stack]

  - Max Depth = 300
  - Call Chain = etharp_arp_input ⇒ dhcp_arp_reply ⇒ dhcp_decline ⇒ udp_sendto_if ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> dhcp_arp_reply
  - >> pbuf_free
  - >> lwip_htons
  - >> etharp_update_arp_entry
  [Called By]
  - >> ethernet_input

  etharp_find_entry (Thumb, 216 bytes, Stack size 48 bytes, etharp.o(i.etharp_find_entry))
  [Stack]

  - Max Depth = 92
  - Call Chain = etharp_find_entry ⇒ etharp_free_entry ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_free_entry
  [Called By]
  - >> etharp_query
  - >> etharp_update_arp_entry

  etharp_free_entry (Thumb, 50 bytes, Stack size 16 bytes, etharp.o(i.etharp_free_entry))
  [Stack]

  - Max Depth = 44
  - Call Chain = etharp_free_entry ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  [Called By]
  - >> etharp_tmr
  - >> etharp_cleanup_netif
  - >> etharp_find_entry

  etharp_output_to_arp_index (Thumb, 62 bytes, Stack size 16 bytes, etharp.o(i.etharp_output_to_arp_index))
  [Stack]

  - Max Depth = 140
  - Call Chain = etharp_output_to_arp_index ⇒ etharp_request ⇒ etharp_raw ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> etharp_request
  - >> etharp_send_ip
  [Called By]
  - >> etharp_output

  etharp_raw (Thumb, 160 bytes, Stack size 40 bytes, etharp.o(i.etharp_raw))
  [Stack]

  - Max Depth = 100
  - Call Chain = etharp_raw ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> pbuf_free
  - >> lwip_htons
  [Called By]
  - >> etharp_request

  etharp_send_ip (Thumb, 32 bytes, Stack size 8 bytes, etharp.o(i.etharp_send_ip))
  [Stack]

  - Max Depth = 8
  - Call Chain = etharp_send_ip
  [Called By]
  - >> etharp_query
  - >> etharp_output
  - >> etharp_update_arp_entry
  - >> etharp_output_to_arp_index

  etharp_update_arp_entry (Thumb, 118 bytes, Stack size 24 bytes, etharp.o(i.etharp_update_arp_entry))
  [Stack]

  - Max Depth = 116
  - Call Chain = etharp_update_arp_entry ⇒ etharp_find_entry ⇒ etharp_free_entry ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  - >> ip4_addr_isbroadcast
  - >> etharp_send_ip
  - >> etharp_find_entry
  [Called By]
  - >> etharp_arp_input

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

  - >> HAL_FLASHEx_Erase

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

  - >> HAL_FLASH_Program

  FLASH_Program_DoubleWord (Thumb, 34 bytes, Stack size 8 bytes, stm32f4xx_hal_flash.o(i.FLASH_Program_DoubleWord))
  [Stack]

  - Max Depth = 8
  - Call Chain = FLASH_Program_DoubleWord
  [Called By]
  - >> HAL_FLASH_Program

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

  - >> HAL_FLASH_Program

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

  - >> HAL_FLASH_Program

  FLASH_SetErrorCode (Thumb, 128 bytes, Stack size 0 bytes, stm32f4xx_hal_flash.o(i.FLASH_SetErrorCode))
  [Called By]

  - >> FLASH_WaitForLastOperation

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

  - >> HAL_SYSTICK_Config
  - >> HAL_NVIC_SetPriority

  I2C_IsAcknowledgeFailed (Thumb, 40 bytes, Stack size 0 bytes, stm32f4xx_hal_i2c.o(i.I2C_IsAcknowledgeFailed))
  [Called By]

  - >> I2C_WaitOnTXEFlagUntilTimeout

  I2C_RequestMemoryWrite (Thumb, 146 bytes, Stack size 32 bytes, stm32f4xx_hal_i2c.o(i.I2C_RequestMemoryWrite))
  [Stack]

  - Max Depth = 72
  - Call Chain = I2C_RequestMemoryWrite ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> I2C_WaitOnTXEFlagUntilTimeout
  - >> I2C_WaitOnMasterAddressFlagUntilTimeout
  - >> I2C_WaitOnFlagUntilTimeout
  [Called By]
  - >> HAL_I2C_Mem_Write

  I2C_WaitOnFlagUntilTimeout (Thumb, 142 bytes, Stack size 40 bytes, stm32f4xx_hal_i2c.o(i.I2C_WaitOnFlagUntilTimeout))
  [Stack]

  - Max Depth = 40
  - Call Chain = I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> I2C_RequestMemoryWrite
  - >> HAL_I2C_Mem_Write
  - >> HAL_I2C_IsDeviceReady

  I2C_WaitOnMasterAddressFlagUntilTimeout (Thumb, 140 bytes, Stack size 32 bytes, stm32f4xx_hal_i2c.o(i.I2C_WaitOnMasterAddressFlagUntilTimeout))
  [Stack]

  - Max Depth = 32
  - Call Chain = I2C_WaitOnMasterAddressFlagUntilTimeout
  [Calls]
  - >> HAL_GetTick
  [Called By]
  - >> I2C_RequestMemoryWrite

  I2C_WaitOnTXEFlagUntilTimeout (Thumb, 82 bytes, Stack size 16 bytes, stm32f4xx_hal_i2c.o(i.I2C_WaitOnTXEFlagUntilTimeout))
  [Stack]

  - Max Depth = 16
  - Call Chain = I2C_WaitOnTXEFlagUntilTimeout
  [Calls]
  - >> HAL_GetTick
  - >> I2C_IsAcknowledgeFailed
  [Called By]
  - >> I2C_RequestMemoryWrite
  - >> HAL_I2C_Mem_Write

  ETH_FlushTransmitFIFO (Thumb, 46 bytes, Stack size 16 bytes, stm32f4xx_hal_eth.o(i.ETH_FlushTransmitFIFO))
  [Stack]

  - Max Depth = 32
  - Call Chain = ETH_FlushTransmitFIFO ⇒ HAL_Delay
  [Calls]
  - >> HAL_Delay
  [Called By]
  - >> HAL_ETH_Stop
  - >> HAL_ETH_Start

  ETH_MACDMAConfig (Thumb, 266 bytes, Stack size 24 bytes, stm32f4xx_hal_eth.o(i.ETH_MACDMAConfig))
  [Stack]

  - Max Depth = 40
  - Call Chain = ETH_MACDMAConfig ⇒ HAL_Delay
  [Calls]
  - >> HAL_Delay
  [Called By]
  - >> HAL_ETH_Init

  IAP_HTTP_writedata (Thumb, 130 bytes, Stack size 32 bytes, httpserver.o(i.IAP_HTTP_writedata))
  [Stack]

  - Max Depth = 104
  - Call Chain = IAP_HTTP_writedata ⇒ FLASH_If_Write ⇒ HAL_FLASH_Program ⇒ FLASH_WaitForLastOperation
  [Calls]
  - >> FLASH_If_Write
  [Called By]
  - >> http_recv

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

  - >> http_sent
  - >> http_recv

  Parse_Content_Length (Thumb, 102 bytes, Stack size 40 bytes, httpserver.o(i.Parse_Content_Length))
  [Stack]

  - Max Depth = 52
  - Call Chain = Parse_Content_Length ⇒ strncmp
  [Calls]
  - >> strncmp
  [Called By]
  - >> http_recv

  close_conn (Thumb, 44 bytes, Stack size 16 bytes, httpserver.o(i.close_conn))
  [Stack]

  - Max Depth = 28
  - Call Chain = close_conn ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> mem_free
  - >> tcp_sent
  - >> tcp_recv
  - >> tcp_close
  - >> tcp_arg
  [Called By]
  - >> http_sent
  - >> http_recv

  conn_err (Thumb, 4 bytes, Stack size 0 bytes, httpserver.o(i.conn_err))
  [Stack]

  - Max Depth = 12
  - Call Chain = conn_err ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> mem_free
  [Address Reference Count : 1]
  - httpserver.o(i.http_accept)

  fs_open (Thumb, 42 bytes, Stack size 16 bytes, httpserver.o(i.fs_open))
  [Stack]

  - Max Depth = 24
  - Call Chain = fs_open ⇒ strcmp
  [Calls]
  - >> strcmp
  [Called By]
  - >> http_recv

  http_accept (Thumb, 62 bytes, Stack size 8 bytes, httpserver.o(i.http_accept))
  [Stack]

  - Max Depth = 28
  - Call Chain = http_accept ⇒ mem_malloc
  [Calls]
  - >> mem_malloc
  - >> tcp_recv
  - >> tcp_poll
  - >> tcp_err
  - >> tcp_arg
  [Address Reference Count : 1]
  - httpserver.o(i.IAP_httpd_init)

  http_poll (Thumb, 26 bytes, Stack size 8 bytes, httpserver.o(i.http_poll))
  [Stack]

  - Max Depth = 204
  - Call Chain = http_poll ⇒ send_data ⇒ tcp_write ⇒ tcp_pbuf_prealloc ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_close
  - >> send_data
  [Address Reference Count : 1]
  - httpserver.o(i.http_accept)

  http_recv (Thumb, 874 bytes, Stack size 128 bytes, httpserver.o(i.http_recv))
  [Stack]

  - Max Depth = 420
  - Call Chain = http_recv ⇒ tcp_recved ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_free
  - >> tcp_sent
  - >> tcp_recved
  - >> HAL_GPIO_WritePin
  - >> HAL_Delay
  - >> FLASH_If_Init
  - >> FLASH_If_Erase
  - >> BSP_EEPROM_WriteBuffer
  - >> send_data
  - >> fs_open
  - >> close_conn
  - >> Parse_Content_Length
  - >> NVIC_SystemReset
  - >> IAP_HTTP_writedata
  - >> __2sprintf
  - >> strncmp
  [Address Reference Count : 1]
  - httpserver.o(i.http_accept)

  http_sent (Thumb, 100 bytes, Stack size 16 bytes, httpserver.o(i.http_sent))
  [Stack]

  - Max Depth = 212
  - Call Chain = http_sent ⇒ send_data ⇒ tcp_write ⇒ tcp_pbuf_prealloc ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> HAL_Delay
  - >> BSP_EEPROM_WriteBuffer
  - >> send_data
  - >> close_conn
  - >> NVIC_SystemReset
  [Address Reference Count : 1]
  - httpserver.o(i.http_recv)

  send_data (Thumb, 44 bytes, Stack size 16 bytes, httpserver.o(i.send_data))
  [Stack]

  - Max Depth = 196
  - Call Chain = send_data ⇒ tcp_write ⇒ tcp_pbuf_prealloc ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> tcp_write
  [Called By]
  - >> http_sent
  - >> http_recv
  - >> http_poll

  low_level_init (Thumb, 178 bytes, Stack size 24 bytes, ethernetif.o(i.low_level_init))
  [Stack]

  - Max Depth = 104
  - Call Chain = low_level_init ⇒ HAL_ETH_Init ⇒ ETH_MACDMAConfig ⇒ HAL_Delay
  [Calls]
  - >> HAL_ETH_WritePHYRegister
  - >> HAL_ETH_Start
  - >> HAL_ETH_ReadPHYRegister
  - >> HAL_ETH_Init
  - >> HAL_ETH_DMATxDescListInit
  - >> HAL_ETH_DMARxDescListInit
  [Called By]
  - >> ethernetif_init

  low_level_input (Thumb, 172 bytes, Stack size 40 bytes, ethernetif.o(i.low_level_input))
  [Stack]

  - Max Depth = 100
  - Call Chain = low_level_input ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> pbuf_alloc
  - >> HAL_ETH_GetReceivedFrame
  - >> __aeabi_memcpy
  [Called By]
  - >> ethernetif_input

  low_level_output (Thumb, 162 bytes, Stack size 40 bytes, ethernetif.o(i.low_level_output))
  [Stack]

  - Max Depth = 60
  - Call Chain = low_level_output ⇒ HAL_ETH_TransmitFrame
  [Calls]
  - >> HAL_ETH_TransmitFrame
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - ethernetif.o(i.ethernetif_init)

  Init_Config (Thumb, 308 bytes, Stack size 56 bytes, main.o(i.Init_Config))
  [Stack]

  - Max Depth = 256
  - Call Chain = Init_Config ⇒ I2C_Config ⇒ BSP_EEPROM_WriteBuffer ⇒ EEPROM_WritePage ⇒ EEPROM_IO_WriteData ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> HAL_GPIO_WritePin
  - >> HAL_Delay
  - >> HAL_NVIC_SetPriority
  - >> HAL_GPIO_Init
  - >> HAL_NVIC_EnableIRQ
  - >> I2C_Config
  [Called By]
  - >> main

  Netif_Config (Thumb, 80 bytes, Stack size 32 bytes, main.o(i.Netif_Config))
  [Stack]

  - Max Depth = 428
  - Call Chain = Netif_Config ⇒ netif_add ⇒ netif_set_addr ⇒ netif_set_ipaddr ⇒ tcp_abort ⇒ tcp_abandon ⇒ tcp_pcb_remove ⇒ tcp_output ⇒ tcp_send_empty_ack ⇒ ip_output ⇒ ip_output_if ⇒ ip_frag ⇒ pbuf_alloc ⇒ pbuf_free ⇒ mem_free ⇒ plug_holes
  [Calls]
  - >> netif_set_up
  - >> netif_set_down
  - >> netif_set_link_callback
  - >> netif_set_default
  - >> netif_add
  [Called By]
  - >> main

  SystemClock_Config (Thumb, 130 bytes, Stack size 88 bytes, main.o(i.SystemClock_Config))
  [Stack]

  - Max Depth = 148
  - Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_RCC_GetHCLKFreq ⇒ HAL_RCC_GetSysClockFreq
  [Calls]
  - >> HAL_GetREVID
  - >> HAL_RCC_OscConfig
  - >> HAL_RCC_ClockConfig
  [Called By]
  - >> main

  EEPROM_WritePage (Thumb, 50 bytes, Stack size 8 bytes, stm324xg_eval_eeprom.o(i.EEPROM_WritePage))
  [Stack]

  - Max Depth = 144
  - Call Chain = EEPROM_WritePage ⇒ EEPROM_IO_WriteData ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnFlagUntilTimeout
  [Calls]
  - >> BSP_EEPROM_TIMEOUT_UserCallback
  - >> EEPROM_IO_WriteData
  - >> EEPROM_IO_IsDeviceReady
  [Called By]
  - >> BSP_EEPROM_WriteBuffer

  _printf_core (Thumb, 214 bytes, Stack size 40 bytes, printf2.o(i._printf_core), UNUSED)
  [Called By]

  - >> __0sprintf$2

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

  - >> __0sprintf$2
  [Address Reference Count : 1]
  - printf2.o(i.__0sprintf$2)

  ### Undefined Global Symbols