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

#<CALLGRAPH># ARM Linker, 5060061: Last Updated: Fri Nov 18 12:36:09 2016

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

### Call chain for Maximum Stack Depth:

tk_netmain ⇒ pktdemux ⇒ ip_rcv ⇒ ip_rcv_phase2 ⇒ ip_reassm ⇒ ip_reasm_process_subsequent_fragments ⇒ ip_reasm_proc_complete_rcvd_pkt ⇒ ip_demux ⇒ tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf

### Functions with no stack information

- TIMER0_IRQHandler
- TIMER1_IRQHandler
- TIMER2_IRQHandler
- TIMER3_IRQHandler
- UART1_IRQHandler
- UART2_IRQHandler
- PWM1_IRQHandler
- I2C1_IRQHandler
- I2C2_IRQHandler
- SPI_IRQHandler
- SSP0_IRQHandler
- SSP1_IRQHandler
- PLL0_IRQHandler
- RTC_IRQHandler
- EINT0_IRQHandler
- EINT1_IRQHandler
- EINT2_IRQHandler
- EINT3_IRQHandler
- ADC_IRQHandler
- BOD_IRQHandler
- USB_IRQHandler
- CAN_IRQHandler
- DMA_IRQHandler
- I2S_IRQHandler
- MCPWM_IRQHandler
- QEI_IRQHandler
- PLL1_IRQHandler
- USBActivity_IRQHandler
- CANActivity_IRQHandler
- __user_initial_stackheap

### Mutually Recursive functions

- in_loop ⇒ in_loop
- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- MemManage_Handler ⇒ MemManage_Handler
- BusFault_Handler ⇒ BusFault_Handler
- UsageFault_Handler ⇒ UsageFault_Handler
- DebugMon_Handler ⇒ DebugMon_Handler
- UnHandled_Vector ⇒ UnHandled_Vector
- WDT_IRQHandler ⇒ WDT_IRQHandler
- TIMER0_IRQHandler ⇒ TIMER0_IRQHandler
- TIMER1_IRQHandler ⇒ TIMER1_IRQHandler
- TIMER2_IRQHandler ⇒ TIMER2_IRQHandler
- TIMER3_IRQHandler ⇒ TIMER3_IRQHandler
- UART1_IRQHandler ⇒ UART1_IRQHandler
- UART2_IRQHandler ⇒ UART2_IRQHandler
- PWM1_IRQHandler ⇒ PWM1_IRQHandler
- I2C1_IRQHandler ⇒ I2C1_IRQHandler
- I2C2_IRQHandler ⇒ I2C2_IRQHandler
- SPI_IRQHandler ⇒ SPI_IRQHandler
- SSP0_IRQHandler ⇒ SSP0_IRQHandler
- SSP1_IRQHandler ⇒ SSP1_IRQHandler
- PLL0_IRQHandler ⇒ PLL0_IRQHandler
- RTC_IRQHandler ⇒ RTC_IRQHandler
- EINT0_IRQHandler ⇒ EINT0_IRQHandler
- EINT1_IRQHandler ⇒ EINT1_IRQHandler
- EINT2_IRQHandler ⇒ EINT2_IRQHandler
- EINT3_IRQHandler ⇒ EINT3_IRQHandler
- ADC_IRQHandler ⇒ ADC_IRQHandler
- BOD_IRQHandler ⇒ BOD_IRQHandler
- USB_IRQHandler ⇒ USB_IRQHandler
- CAN_IRQHandler ⇒ CAN_IRQHandler
- DMA_IRQHandler ⇒ DMA_IRQHandler
- I2S_IRQHandler ⇒ I2S_IRQHandler
- MCPWM_IRQHandler ⇒ MCPWM_IRQHandler
- QEI_IRQHandler ⇒ QEI_IRQHandler
- PLL1_IRQHandler ⇒ PLL1_IRQHandler
- USBActivity_IRQHandler ⇒ USBActivity_IRQHandler
- CANActivity_IRQHandler ⇒ CANActivity_IRQHandler
- t_send ⇒ t_sendto
- icmp_destun ⇒ ip_write
- _sys_exit ⇒ _sys_exit

  ### Function Pointers

  - ADC_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - BOD_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - BusFault_Handler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - CANActivity_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - CAN_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - Chip_I2C_EventHandler from i2c_17xx_40xx.o(i.Chip_I2C_EventHandler) referenced 6 times from i2c_17xx_40xx.o(.data)
  - Chip_I2C_EventHandler from i2c_17xx_40xx.o(i.Chip_I2C_EventHandler) referenced from smbus.o(i.i2c_set_mode)
  - Chip_I2C_EventHandlerPolling from i2c_17xx_40xx.o(i.Chip_I2C_EventHandlerPolling) referenced from smbus.o(i.i2c_set_mode)
  - DMA_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - DebugMon_Handler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - EINT0_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - EINT1_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - EINT2_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - EINT3_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - ENET_IRQHandler from emac.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - HardFault_Handler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - I2C0_IRQHandler from smbus.o(i.I2C0_IRQHandler) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - I2C1_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - I2C2_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - I2S_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - MCPWM_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - MemManage_Handler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - NMI_Handler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - PLL0_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - PLL1_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - PWM1_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - PendSV_Handler from port.o(.emb_text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - QEI_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - RIT_IRQHandler from smbus.o(i.RIT_IRQHandler) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - RTC_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - Reset_Handler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - SPI_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - SSP0_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - SSP1_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - SVC_Handler from port.o(.emb_text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - SysTick_Handler from port.o(i.SysTick_Handler) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - SystemInit from sysinit.o(i.SystemInit) referenced from keil_startup_lpc17xx_40xx.o(.text)
  - TIMER0_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - TIMER1_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - TIMER2_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - TIMER3_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - UART0_IRQHandler from uart.o(i.UART0_IRQHandler) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - UART1_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - UART2_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - UART3_IRQHandler from uart.o(i.UART3_IRQHandler) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - USBActivity_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - USB_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - UnHandled_Vector from keil_startup_lpc17xx_40xx.o(.text) referenced 4 times from keil_startup_lpc17xx_40xx.o(RESET)
  - UsageFault_Handler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - WDT_IRQHandler from keil_startup_lpc17xx_40xx.o(.text) referenced from keil_startup_lpc17xx_40xx.o(RESET)
  - __main from __main.o(!!!main) referenced from keil_startup_lpc17xx_40xx.o(.text)
  - _get_lc_ctype from lc_ctype_c.o(locale$$code) referenced from rt_ctype_table.o(.text)
  - _printf_input_char from _printf_char_common.o(.text) referenced from _printf_char_common.o(.text)
  - _sbackspace from _sgetc.o(.text) referenced from __0sscanf.o(.text)
  - _scanf_char_input from scanf_char.o(.text) referenced from scanf_char.o(.text)
  - _sgetc from _sgetc.o(.text) referenced from __0sscanf.o(.text)
  - _sputc from _sputc.o(.text) referenced 2 times from c89vsprintf.o(.text)
  - batteryTask from batman.o(i.batteryTask) referenced from batman.o(i.main)
  - cb_arpent_tmo from et_arp.o(.text) referenced from et_arp.o(.text)
  - cli_mod_close from cli_mod.o(.text) referenced 2 times from cli_mod.o(.data)
  - cli_mod_prep from cli_mod.o(.text) referenced 2 times from cli_mod.o(.data)
  - cli_nt_help from cli_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - commTask from batman.o(i.commTask) referenced from batman.o(i.main)
  - console_close from console_mod.o(.text) referenced 2 times from console_mod.o(.data)
  - console_init from console_mod.o(.text) referenced 2 times from console_mod.o(.data)
  - console_prep from console_mod.o(.text) referenced 2 times from console_mod.o(.data)
  - console_start from console_mod.o(.text) referenced 2 times from console_mod.o(.data)
  - console_task from console_mod.o(.text) referenced 2 times from console_mod.o(.data)
  - dhc_upcall from dhcpclnt.o(.text) referenced from dhcpclnt.o(.text)
  - dhcpc_netstat from dc_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - dumpqueuesCTX from netmain_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - eth_close from emac.o(.text) referenced from emac.o(.text)
  - eth_init from emac.o(.text) referenced from emac.o(.text)
  - eth_pkt_send from emac.o(.text) referenced from emac.o(.text)
  - eth_prep from emac.o(.text) referenced 2 times from ininit.o(.data)
  - eth_refill from emac.o(.text) referenced from emac.o(.text)
  - eth_stats from emac.o(.text) referenced from emac.o(.text)
  - fputc from board.o(i.fputc) referenced from _printf_char_file.o(.text)
  - gio_stdin from gio.o(.text) referenced 2 times from gio.o(.data)
  - gio_stdin from gio.o(.text) referenced from console_mod.o(.text)
  - gio_stdout from gio.o(.text) referenced 2 times from gio.o(.data)
  - gio_stdout from gio.o(.text) referenced from console_mod.o(.text)
  - handle_battery_requests from batman.o(i.handle_battery_requests) referenced from batman.o(i.main_task_setup)
  - handle_ctl_requests from batman.o(i.handle_ctl_requests) referenced from batman.o(i.main_task_setup)
  - in_loop from asm_cksum_cm3.o(.itext) referenced from asm_cksum_cm3.o(.text)
  - isspace from isspace.o(.text) referenced from scanf_char.o(.text)
  - lb_close from macloop.o(.text) referenced from macloop.o(.text)
  - lb_init from macloop.o(.text) referenced from macloop.o(.text)
  - lb_pkt_send from macloop.o(.text) referenced from macloop.o(.text)
  - lb_prep from macloop.o(.text) referenced 2 times from ininit.o(.data)
  - netdiag_arp from diag_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - netdiag_dnssvr from diag_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - netdiag_nslookup from diag_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - netmain_close from netmain_mod.o(.text) referenced 2 times from netmain_mod.o(.data)
  - netmain_iface from netmain_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - netmain_init from netmain_mod.o(.text) referenced 2 times from netmain_mod.o(.data)
  - netmain_linkstats from netmain_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - netmain_menu from netmain_nt.o(.text) referenced 2 times from netmain_mod.o(.data)
  - netmain_netstat from netmain_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - netmain_prep from netmain_mod.o(.text) referenced 2 times from netmain_mod.o(.data)
  - netmain_setip from netmain_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - netmain_start from netmain_mod.o(.text) referenced 2 times from netmain_mod.o(.data)
  - netmain_status from netmain_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - netmain_task from netmain_mod.o(.text) referenced 2 times from netmain_mod.o(.data)
  - ping_cbk from diag_nt.o(.text) referenced from diag_nt.o(.text)
  - ping_cli from diag_nt.o(.text) referenced 2 times from tcpdata.o(.data)
  - prvIdleTask from tasks.o(i.prvIdleTask) referenced from tasks.o(i.vTaskStartScheduler)
  - send_to_uart from batman.o(i.send_to_uart) referenced from batman.o(i.main_task_setup)
  - tcp_fasttimo from tcp_timr.o(.text) referenced 2 times from nptcp.o(.data)
  - tcp_init from tcp_subr.o(.text) referenced 2 times from nptcp.o(.data)
  - tcp_input from tcp_in.o(.text) referenced 2 times from nptcp.o(.data)
  - tcp_slowtimo from tcp_timr.o(.text) referenced 2 times from nptcp.o(.data)
  - tcp_usrreq from tcp_usr.o(.text) referenced 2 times from nptcp.o(.data)
  - tk_console from console_mod.o(.text) referenced from console_mod.o(.text)
  - tk_netmain from netmain_mod.o(.text) referenced from netmain_mod.o(.text)
  - tk_nettick from netmain_mod.o(.text) referenced from netmain_mod.o(.text)
  - udp_soinput from udpsock.o(.text) referenced 2 times from nptcp.o(.text)
  - udp_usrreq from udpsock.o(.text) referenced 2 times from nptcp.o(.data)
  - upnp_callback from tcpdata.o(i.upnp_callback) referenced 2 times from upnp.o(.data)
  - upnp_recv_dhcp_status from upnp.o(.text) referenced from upnp.o(.text)
  - user1_cli from tcpdata.o(i.user1_cli) referenced 2 times from tcpdata.o(.data)

  ### Global Symbols

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

  - >> __rt_entry
  - >> __scatterload

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

  - >> __main

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

  - >> __rt_entry

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

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

  __decompress (Thumb, 90 bytes, Stack size unknown bytes, __dczerorl2.o(!!dczerorl2), UNUSED)

  __decompress1 (Thumb, 0 bytes, Stack size unknown bytes, __dczerorl2.o(!!dczerorl2), UNUSED)

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

  _printf_n (Thumb, 0 bytes, Stack size unknown bytes, _printf_n.o(.ARM.Collect$$_printf_percent$$00000001))
  [Calls]

  - >> _printf_charcount

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

  - >> __printf

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

  - Max Depth = 64 + Unknown Stack Size
  - Call Chain = _printf_p ⇒ _printf_hex_ptr ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_hex_ptr

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

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = _printf_f ⇒ _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e
  [Calls]
  - >> _printf_fp_dec

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

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = _printf_e ⇒ _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e
  [Calls]
  - >> _printf_fp_dec

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

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = _printf_g ⇒ _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e
  [Calls]
  - >> _printf_fp_dec

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

  - Max Depth = 112 + Unknown Stack Size
  - Call Chain = _printf_a ⇒ _printf_fp_hex ⇒ _printf_fp_hex_real ⇒ _printf_fp_infnan ⇒ _printf_post_padding
  [Calls]
  - >> _printf_fp_hex

  _printf_ll (Thumb, 0 bytes, Stack size unknown bytes, _printf_ll.o(.ARM.Collect$$_printf_percent$$00000007))

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

  - Max Depth = 72 + Unknown Stack Size
  - Call Chain = _printf_i ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_int_dec

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

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

  _printf_u (Thumb, 0 bytes, Stack size unknown bytes, _printf_u.o(.ARM.Collect$$_printf_percent$$0000000A))
  [Stack]

  - Max Depth = 72 + Unknown Stack Size
  - Call Chain = _printf_u ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_int_dec

  _printf_o (Thumb, 0 bytes, Stack size unknown bytes, _printf_o.o(.ARM.Collect$$_printf_percent$$0000000B))
  [Stack]

  - Max Depth = 64 + Unknown Stack Size
  - Call Chain = _printf_o ⇒ _printf_int_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_int_oct

  _printf_x (Thumb, 0 bytes, Stack size unknown bytes, _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C))
  [Stack]

  - Max Depth = 80 + Unknown Stack Size
  - Call Chain = _printf_x ⇒ _printf_int_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_int_hex

  _printf_lli (Thumb, 0 bytes, Stack size unknown bytes, _printf_lli.o(.ARM.Collect$$_printf_percent$$0000000D))
  [Stack]

  - Max Depth = 72 + Unknown Stack Size
  - Call Chain = _printf_lli ⇒ _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_longlong_dec

  _printf_lld (Thumb, 0 bytes, Stack size unknown bytes, _printf_lld.o(.ARM.Collect$$_printf_percent$$0000000E))
  [Stack]

  - Max Depth = 72 + Unknown Stack Size
  - Call Chain = _printf_lld ⇒ _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_longlong_dec

  _printf_llu (Thumb, 0 bytes, Stack size unknown bytes, _printf_llu.o(.ARM.Collect$$_printf_percent$$0000000F))
  [Stack]

  - Max Depth = 72 + Unknown Stack Size
  - Call Chain = _printf_llu ⇒ _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_longlong_dec

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

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = _printf_llo ⇒ _printf_ll_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_ll_oct

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

  - Max Depth = 64 + Unknown Stack Size
  - Call Chain = _printf_llx ⇒ _printf_ll_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_ll_hex

  _printf_l (Thumb, 0 bytes, Stack size unknown bytes, _printf_l.o(.ARM.Collect$$_printf_percent$$00000012))

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

  - Max Depth = 40 + Unknown Stack Size
  - Call Chain = _printf_c ⇒ _printf_char ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding
  [Calls]
  - >> _printf_char

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

  - Max Depth = 40 + Unknown Stack Size
  - Call Chain = _printf_s ⇒ _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding
  [Calls]
  - >> _printf_string

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

  - Max Depth = 88 + Unknown Stack Size
  - Call Chain = _printf_lc ⇒ _printf_wchar ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb ⇒ __rt_ctype_table
  [Calls]
  - >> _printf_wchar

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

  - Max Depth = 88 + Unknown Stack Size
  - Call Chain = _printf_ls ⇒ _printf_wstring ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb ⇒ __rt_ctype_table
  [Calls]
  - >> _printf_wstring

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

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

  - >> __rt_entry_li

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

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

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

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

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

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

  - >> __rt_locale

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  - >> __main
  - >> __scatterload_rt2

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

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

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

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

  - >> __rt_lib_init

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

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

  - Max Depth = 464 + Unknown Stack Size
  - Call Chain = __rt_entry_main ⇒ main ⇒ nichestack_init ⇒ post_task_setup ⇒ user_post_setup ⇒ dnc_init ⇒ t_socket ⇒ socreate ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> exit
  - >> main

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

  SVC_Handler (Thumb, 28 bytes, Stack size 0 bytes, port.o(.emb_text))
  [Address Reference Count : 1]

  - keil_startup_lpc17xx_40xx.o(RESET)

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

  - >> xPortStartScheduler

  PendSV_Handler (Thumb, 56 bytes, Stack size 0 bytes, port.o(.emb_text))
  [Stack]

  - Max Depth = 168 + Unknown Stack Size
  - Call Chain = PendSV_Handler ⇒ vTaskSwitchContext ⇒ vApplicationStackOverflowHook ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vTaskSwitchContext
  [Address Reference Count : 1]
  - keil_startup_lpc17xx_40xx.o(RESET)

  vPortSetInterruptMask (Thumb, 14 bytes, Stack size 0 bytes, port.o(.emb_text))
  [Called By]

  - >> xQueueGenericSendFromISR
  - >> vTaskStartScheduler
  - >> vPortEnterCritical
  - >> SysTick_Handler

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

  - >> xQueueGenericSendFromISR
  - >> vPortExitCritical
  - >> SysTick_Handler

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

  in_loop (Thumb, 10 bytes, Stack size 0 bytes, asm_cksum_cm3.o(.itext))
  [Stack]

  - Max Depth = 12 + In Cycle
  - Call Chain = in_loop ⇒ in_loop (Cycle)
  [Calls]
  - >> in_loop
  - >> strcpy
  [Called By]
  - >> in_loop
  [Address Reference Count : 1]
  - asm_cksum_cm3.o(.text)

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

  - keil_startup_lpc17xx_40xx.o(RESET)

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

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

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

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

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

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

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

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

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

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

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

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

  UnHandled_Vector (Thumb, 2 bytes, Stack size 0 bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  WDT_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  TIMER0_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  TIMER1_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  TIMER2_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  TIMER3_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  UART1_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  UART2_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  PWM1_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  I2C1_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  I2C2_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  SPI_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  SSP0_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  SSP1_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  PLL0_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  RTC_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  EINT0_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  EINT1_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  EINT2_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  EINT3_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

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

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

  BOD_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  USB_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  CAN_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  DMA_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  I2S_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  MCPWM_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  QEI_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  PLL1_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  USBActivity_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

  CANActivity_IRQHandler (Thumb, 0 bytes, Stack size unknown bytes, keil_startup_lpc17xx_40xx.o(.text))
  [Calls]

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

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

  - >> __user_setup_stackheap

  cli_get_errstr (Thumb, 48 bytes, Stack size 8 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 144 + Unknown Stack Size
  - Call Chain = cli_get_errstr ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> __2sprintf
  - >> strcat
  - >> strcpy
  [Called By]
  - >> cli_command

  cli_install_menu (Thumb, 96 bytes, Stack size 24 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 52
  - Call Chain = cli_install_menu ⇒ stricmp ⇒ strnicmp
  [Calls]
  - >> stricmp
  [Called By]
  - >> netmain_prep

  cli_uninstall_menu (Thumb, 46 bytes, Stack size 16 bytes, cli.o(.text), UNUSED)

  cli_parse_ipaddr (Thumb, 172 bytes, Stack size 48 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 216
  - Call Chain = cli_parse_ipaddr ⇒ inet_pton ⇒ parse_ipad ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> inet_pton
  - >> cli_countchr
  - >> __rt_ctype_table
  - >> strtoul
  [Called By]
  - >> netdiag_arp
  - >> cli_parse_arg

  cli_defined (Thumb, 16 bytes, Stack size 0 bytes, cli.o(.text))
  [Called By]

  - >> ping_cli
  - >> netmain_status
  - >> netmain_setip
  - >> netmain_netstat
  - >> netmain_linkstats
  - >> netmain_iface
  - >> netdiag_nslookup
  - >> netdiag_dnssvr
  - >> netdiag_arp
  - >> dumpqueuesCTX
  - >> cli_nt_help
  - >> user1_cli
  - >> prot_stat
  - >> sock_info
  - >> netdiag_gratarp
  - >> ping_start
  - >> cli_nt_echo
  - >> cli_nt_config
  - >> cli_parse_args

  cli_showcommands (Thumb, 162 bytes, Stack size 40 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 416 + Unknown Stack Size
  - Call Chain = cli_showcommands ⇒ cli_usage ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vTaskDelay
  - >> stricmp
  - >> gio_printf
  - >> cli_cmdlookup
  - >> cli_usage
  [Called By]
  - >> cli_nt_help
  - >> cli_command

  cli_command (Thumb, 226 bytes, Stack size 24 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 440 + Unknown Stack Size
  - Call Chain = cli_command ⇒ cli_showcommands ⇒ cli_usage ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  - >> gio_out
  - >> cli_showcommands
  - >> cli_get_errstr
  - >> cli_cmdlookup
  - >> cli_parse_args
  - >> cli_nexttoken
  - >> cli_usage
  - >> strlen
  [Called By]
  - >> kbdio

  cli_get_param (Thumb, 44 bytes, Stack size 8 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = cli_get_param
  [Called By]
  - >> cli_get_value

  cli_get_value (Thumb, 14 bytes, Stack size 4 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = cli_get_value ⇒ cli_get_param
  [Calls]
  - >> cli_get_param
  [Called By]
  - >> netmain_setip
  - >> netmain_linkstats
  - >> netmain_iface
  - >> netdiag_nslookup
  - >> netdiag_dnssvr
  - >> netdiag_arp
  - >> cli_nt_help
  - >> user1_cli
  - >> prot_stat
  - >> sock_info
  - >> netdiag_gratarp
  - >> ping_start
  - >> cli_nt_echo
  - >> cli_nt_config

  cli_get_context (Thumb, 54 bytes, Stack size 8 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = cli_get_context ⇒ npalloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npfree
  - >> npalloc
  - >> strcpy
  [Called By]
  - >> console_init

  cli_free_context (Thumb, 40 bytes, Stack size 16 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = cli_free_context ⇒ npfree ⇒ vPortFree ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npfree
  [Called By]
  - >> console_init

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

  - >> netmain_menu

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

  - Max Depth = 32
  - Call Chain = cli_calc_menu
  [Called By]
  - >> pre_task_setup

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

  - >> netmain_status
  - >> netmain_setip
  - >> netmain_netstat
  - >> netmain_linkstats
  - >> netmain_iface
  - >> netdiag_nslookup
  - >> netdiag_dnssvr
  - >> netdiag_arp
  - >> dumpqueuesCTX
  - >> dhcpc_netstat
  - >> cli_nt_help
  - >> user1_cli
  - >> netdiag_gratarp
  - >> cli_nt_echo
  - >> cli_nt_config

  cli_count (Thumb, 4 bytes, Stack size 0 bytes, cli.o(.text))
  [Called By]

  - >> netmain_status
  - >> netmain_netstat

  cli_mod_prep (Thumb, 50 bytes, Stack size 8 bytes, cli_mod.o(.text))
  [Stack]

  - Max Depth = 152 + Unknown Stack Size
  - Call Chain = cli_mod_prep ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npalloc
  - >> panic
  - >> strcpy
  [Address Reference Count : 1]
  - cli_mod.o(.data)

  cli_mod_close (Thumb, 4 bytes, Stack size 0 bytes, cli_mod.o(.text))
  [Address Reference Count : 1]

  - cli_mod.o(.data)

  cli_nt_config (Thumb, 92 bytes, Stack size 24 bytes, cli_nt.o(.text), UNUSED)
  [Calls]

  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> gio_printf
  - >> strcat
  - >> strlen
  - >> strcpy

  cli_nt_echo (Thumb, 52 bytes, Stack size 16 bytes, cli_nt.o(.text), UNUSED)
  [Calls]

  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> gio_printf

  cli_nt_help (Thumb, 68 bytes, Stack size 16 bytes, cli_nt.o(.text))
  [Stack]

  - Max Depth = 432 + Unknown Stack Size
  - Call Chain = cli_nt_help ⇒ cli_showcommands ⇒ cli_usage ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> cli_showcommands
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  eth_reset (Thumb, 160 bytes, Stack size 16 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 216 + Unknown Stack Size
  - Call Chain = eth_reset ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_free
  - >> getq
  [Called By]
  - >> eth_close
  - >> eth_init

  eth_init (Thumb, 212 bytes, Stack size 16 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 280 + Unknown Stack Size
  - Call Chain = eth_init ⇒ eth_rxtx_init ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> usleep
  - >> emac_phy_init
  - >> get_mac_address
  - >> eth_reset
  - >> eth_rxtx_init
  - >> eth_phy_status
  [Address Reference Count : 1]
  - emac.o(.text)

  eth_close (Thumb, 50 bytes, Stack size 8 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 224 + Unknown Stack Size
  - Call Chain = eth_close ⇒ eth_reset ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> eth_reset
  - >> eth_phy_status
  [Address Reference Count : 1]
  - emac.o(.text)

  eth_send (Thumb, 178 bytes, Stack size 24 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = eth_send
  [Calls]
  - >> getq_from_isr
  [Called By]
  - >> eth_isr
  - >> eth_pkt_send

  eth_pkt_send (Thumb, 64 bytes, Stack size 16 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = eth_pkt_send ⇒ eth_send
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> eth_send
  - >> putq_from_isr
  [Address Reference Count : 1]
  - emac.o(.text)

  eth_recv (Thumb, 296 bytes, Stack size 24 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = eth_recv
  [Calls]
  - >> getq_from_isr
  [Called By]
  - >> eth_isr

  eth_isr (Thumb, 612 bytes, Stack size 40 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = eth_isr ⇒ tk_sem_post_isr ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ vTaskPriorityDisinherit
  [Calls]
  - >> vPortYieldFromISR
  - >> tk_sem_post_isr
  - >> eth_recv
  - >> eth_send
  - >> putq_from_isr
  [Called By]
  - >> ENET_IRQHandler

  ENET_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = ENET_IRQHandler ⇒ eth_isr ⇒ tk_sem_post_isr ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ vTaskPriorityDisinherit
  [Calls]
  - >> eth_isr
  [Address Reference Count : 1]
  - keil_startup_lpc17xx_40xx.o(RESET)

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

  - >> emac_phy_init
  - >> check_phy

  emac_phy_write (Thumb, 28 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> emac_phy_init

  eth_setlink (Thumb, 92 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> check_phy

  eth_stats (Thumb, 130 bytes, Stack size 16 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = eth_stats ⇒ vPortExitCritical
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Address Reference Count : 1]
  - emac.o(.text)

  eth_refill (Thumb, 192 bytes, Stack size 24 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = eth_refill ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> putq
  - >> pk_free
  - >> pk_alloc_internal
  - >> getq
  [Address Reference Count : 1]
  - emac.o(.text)

  eth_prep (Thumb, 226 bytes, Stack size 16 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = eth_prep ⇒ ahb_alloc
  [Calls]
  - >> ahb_alloc
  - >> __aeabi_memclr4
  [Address Reference Count : 1]
  - ininit.o(.data)

  eth_dumpqueues (Thumb, 2 bytes, Stack size 0 bytes, emac.o(.text), UNUSED)

  start_modules (Thumb, 36 bytes, Stack size 16 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = start_modules
  [Called By]
  - >> nichestack_init

  post_task_setup (Thumb, 10 bytes, Stack size 0 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 384 + Unknown Stack Size
  - Call Chain = post_task_setup ⇒ user_post_setup ⇒ dnc_init ⇒ t_socket ⇒ socreate ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> user_post_setup
  [Called By]
  - >> nichestack_init

  init_modules (Thumb, 58 bytes, Stack size 24 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = init_modules
  [Called By]
  - >> nichestack_init

  init_devices (Thumb, 222 bytes, Stack size 32 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 208
  - Call Chain = init_devices ⇒ Upnp_initialize ⇒ dhc_init ⇒ udp_open ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> upnp_if_setup
  - >> fixup_subnet_mask
  - >> Upnp_initialize
  [Called By]
  - >> nichestack_init

  init_packets (Thumb, 68 bytes, Stack size 16 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = init_packets ⇒ pk_init ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_init
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> nichestack_init

  prep_devices (Thumb, 176 bytes, Stack size 32 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = prep_devices ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ahb_alloc
  - >> panic
  - >> fixup_subnet_mask
  - >> putq
  [Called By]
  - >> nichestack_init

  prep_modules (Thumb, 32 bytes, Stack size 16 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = prep_modules
  [Called By]
  - >> nichestack_init

  pre_task_setup (Thumb, 84 bytes, Stack size 16 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 224 + Unknown Stack Size
  - Call Chain = pre_task_setup ⇒ user_pre_setup ⇒ in_v4addrcfg ⇒ inet_pton ⇒ parse_ipad ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> npalloc
  - >> user_pre_setup
  - >> panic
  - >> tk_mutex_create
  - >> tk_calc_memory
  - >> cli_calc_menu
  [Called By]
  - >> nichestack_init

  nichestack_init (Thumb, 140 bytes, Stack size 24 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 408 + Unknown Stack Size
  - Call Chain = nichestack_init ⇒ post_task_setup ⇒ user_post_setup ⇒ dnc_init ⇒ t_socket ⇒ socreate ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> clock_init
  - >> pre_task_setup
  - >> prep_modules
  - >> prep_devices
  - >> init_packets
  - >> init_devices
  - >> init_modules
  - >> post_task_setup
  - >> start_modules
  - >> __2sprintf
  [Called By]
  - >> main

  in_v4addrcfg (Thumb, 100 bytes, Stack size 32 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 200
  - Call Chain = in_v4addrcfg ⇒ inet_pton ⇒ parse_ipad ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> inet_pton
  - >> strcmp
  [Called By]
  - >> user_pre_setup

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

  - >> nichestack_init

  clock_c (Thumb, 10 bytes, Stack size 0 bytes, intimer.o(.text), UNUSED)
  [Calls]

  - >> write_leds

  embTCP_tick_hook (Thumb, 74 bytes, Stack size 8 bytes, intimer.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = embTCP_tick_hook
  [Calls]
  - >> write_leds
  [Called By]
  - >> vApplicationTickHook

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

  - Max Depth = 192 + Unknown Stack Size
  - Call Chain = tk_suspend ⇒ vTaskSuspend ⇒ vTaskSwitchContext ⇒ vApplicationStackOverflowHook ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_current_task
  - >> vTaskSuspend
  [Called By]
  - >> tk_new

  tk_sem_create (Thumb, 40 bytes, Stack size 8 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = tk_sem_create ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xQueueCreate
  - >> xQueueGenericSend
  - >> xQueueGenericReceive
  [Called By]
  - >> tk_new
  - >> socreate
  - >> sonewconn

  tk_new (Thumb, 122 bytes, Stack size 40 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 232 + Unknown Stack Size
  - Call Chain = tk_new ⇒ tk_suspend ⇒ vTaskSuspend ⇒ vTaskSwitchContext ⇒ vApplicationStackOverflowHook ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> xTaskGenericCreate
  - >> tk_sem_create
  - >> tk_suspend
  - >> vTaskDelete
  [Called By]
  - >> main
  - >> netmain_init
  - >> console_init

  tk_sem_free (Thumb, 10 bytes, Stack size 0 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = tk_sem_free ⇒ vQueueDelete ⇒ vPortFree ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vQueueDelete
  [Called By]
  - >> tk_del
  - >> sofree

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

  - Max Depth = 112
  - Call Chain = tk_sem_pend ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xQueueGenericReceive
  - >> tk_current_task
  [Called By]
  - >> tk_netmain
  - >> tcp_sleep

  tk_sem_post (Thumb, 44 bytes, Stack size 16 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = tk_sem_post ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xQueueGenericSend
  - >> tk_current_task
  [Called By]
  - >> tcp_wakeup
  - >> lb_pkt_send
  - >> ip_write_internal

  tk_sem_post_isr (Thumb, 24 bytes, Stack size 8 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = tk_sem_post_isr ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ vTaskPriorityDisinherit
  [Calls]
  - >> xQueueGenericSendFromISR
  [Called By]
  - >> eth_isr

  tk_mutex_create (Thumb, 4 bytes, Stack size 0 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = tk_mutex_create ⇒ xQueueCreateMutex ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xQueueCreateMutex
  [Called By]
  - >> pre_task_setup

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

  - >> vQueueDelete

  tk_mutex_pend (Thumb, 48 bytes, Stack size 8 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = tk_mutex_pend ⇒ xQueueTakeMutexRecursive ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xQueueTakeMutexRecursive
  [Called By]
  - >> tk_res_lock

  tk_mutex_post (Thumb, 24 bytes, Stack size 8 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xQueueGiveMutexRecursive
  [Called By]
  - >> tk_res_unlock

  tk_del (Thumb, 30 bytes, Stack size 8 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = tk_del ⇒ tk_sem_free ⇒ vQueueDelete ⇒ vPortFree ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_sem_free
  - >> tk_current_task
  - >> vTaskDelete
  [Called By]
  - >> netmain_close
  - >> tk_console
  - >> console_close

  tk_wake (Thumb, 6 bytes, Stack size 0 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = tk_wake ⇒ vTaskResume ⇒ vPortExitCritical
  [Calls]
  - >> vTaskResume
  [Called By]
  - >> netmain_start
  - >> console_start

  tk_sleep (Thumb, 24 bytes, Stack size 0 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = tk_sleep ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vTaskDelay
  [Called By]
  - >> task_sleep
  - >> t_select
  - >> tk_netmain
  - >> tk_nettick
  - >> gethostbyname
  - >> ping_start

  tk_res_lock (Thumb, 18 bytes, Stack size 0 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = tk_res_lock ⇒ tk_mutex_pend ⇒ xQueueTakeMutexRecursive ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_mutex_pend
  [Called By]
  - >> ping_init
  - >> dnc_init
  - >> t_socket
  - >> t_setsockopt
  - >> t_send
  - >> t_select
  - >> t_recv
  - >> t_listen
  - >> t_errno
  - >> t_bind
  - >> t_accept
  - >> t_socketclose
  - >> sosend
  - >> soreceive
  - >> m_getnbuf
  - >> t_shutdown
  - >> t_connect
  - >> t_getname
  - >> ping_close
  - >> ping_tmo
  - >> pingapp_rcv
  - >> in_addrconf_release
  - >> in_addrconf_acquire
  - >> dump_buf_estats
  - >> mbuf_list
  - >> pktdemux
  - >> t_sendto
  - >> t_recvfrom
  - >> t_getsockopt
  - >> dnc_tmo
  - >> dnc_rx
  - >> dnc_shutdown
  - >> ping_send
  - >> grat_arp
  - >> gethostbyname
  - >> udpsock_getstats
  - >> tcpsock_getstats
  - >> dnc_setparm
  - >> dnc_getstats
  - >> dnc_getparm
  - >> dnc_clrtab
  - >> dnc_clrstats
  - >> arp_clrtab
  - >> tcp_sleep
  - >> pk_init
  - >> init_packets
  - >> eth_refill
  - >> eth_rxtx_init
  - >> AutoIp_send_arp_probe
  - >> udp4_socksend
  - >> sorflush
  - >> udp_usrreq
  - >> udp_soinput
  - >> m_free
  - >> pk_delQ
  - >> pk_prepend
  - >> pk_Qdelete
  - >> udp_open
  - >> dhc_upcall
  - >> udp_close
  - >> udp_alloc
  - >> udp_send
  - >> udp_free
  - >> udpdemux
  - >> tcp_rcv
  - >> err_ip_rcv
  - >> ip_demux
  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_compute_overlap
  - >> ip_reasm_delete_ire
  - >> ip_reasm_process_first_fragment
  - >> pk_copyPkt
  - >> ip2mac
  - >> ip_write2
  - >> ip_write_internal
  - >> ip_fragment
  - >> so_icmpdu
  - >> icmp_timex
  - >> icmp_destun
  - >> icmprcv
  - >> AutoIp_arp_response
  - >> send_via_arp
  - >> arprcv
  - >> arpReply
  - >> send_arp
  - >> et_send
  - >> cb_arpent_tmo
  - >> arp_free_pending
  - >> upnp_loop
  - >> tcp_tick
  - >> ip_reasm_process_timer_tick

  tk_res_unlock (Thumb, 14 bytes, Stack size 0 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_mutex_post
  [Called By]
  - >> ping_init
  - >> dnc_init
  - >> t_socket
  - >> t_setsockopt
  - >> t_send
  - >> t_select
  - >> t_recv
  - >> t_listen
  - >> t_errno
  - >> t_bind
  - >> t_accept
  - >> t_socketclose
  - >> sosend
  - >> soreceive
  - >> m_getnbuf
  - >> t_shutdown
  - >> t_connect
  - >> t_getname
  - >> ping_close
  - >> ping_tmo
  - >> pingapp_rcv
  - >> in_addrconf_release
  - >> in_addrconf_acquire
  - >> dump_buf_estats
  - >> mbuf_list
  - >> pktdemux
  - >> t_sendto
  - >> t_recvfrom
  - >> t_getsockopt
  - >> dnc_tmo
  - >> dnc_rx
  - >> dnc_shutdown
  - >> ping_send
  - >> grat_arp
  - >> gethostbyname
  - >> udpsock_getstats
  - >> tcpsock_getstats
  - >> dnc_setparm
  - >> dnc_getstats
  - >> dnc_getparm
  - >> dnc_clrtab
  - >> dnc_clrstats
  - >> arp_clrtab
  - >> tcp_sleep
  - >> pk_init
  - >> init_packets
  - >> eth_refill
  - >> eth_rxtx_init
  - >> AutoIp_send_arp_probe
  - >> udp4_socksend
  - >> sorflush
  - >> udp_usrreq
  - >> udp_soinput
  - >> m_free
  - >> pk_delQ
  - >> pk_prepend
  - >> pk_Qdelete
  - >> udp_open
  - >> dhc_upcall
  - >> udp_close
  - >> udp_alloc
  - >> udp_send
  - >> udp_free
  - >> udpdemux
  - >> tcp_rcv
  - >> err_ip_rcv
  - >> ip_demux
  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_compute_overlap
  - >> ip_reasm_delete_ire
  - >> ip_reasm_process_first_fragment
  - >> pk_copyPkt
  - >> ip2mac
  - >> ip_write2
  - >> ip_write_internal
  - >> ip_fragment
  - >> so_icmpdu
  - >> icmp_timex
  - >> icmp_destun
  - >> icmprcv
  - >> AutoIp_arp_response
  - >> send_via_arp
  - >> arprcv
  - >> arpReply
  - >> send_arp
  - >> et_send
  - >> cb_arpent_tmo
  - >> arp_free_pending
  - >> upnp_loop
  - >> tcp_tick
  - >> ip_reasm_process_timer_tick

  tcp_sleep (Thumb, 44 bytes, Stack size 16 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = tcp_sleep ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_sem_pend
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> t_select
  - >> t_accept
  - >> sosend
  - >> soreceive
  - >> soclose
  - >> t_connect

  tcp_wakeup (Thumb, 16 bytes, Stack size 0 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = tcp_wakeup ⇒ tk_sem_post ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_sem_post
  [Called By]
  - >> tcp_notify
  - >> soisdisconnected
  - >> soisdisconnecting
  - >> soisconnected
  - >> soisconnecting
  - >> udp_soinput
  - >> tcp_slowtimo
  - >> sbwakeup

  console_prep (Thumb, 12 bytes, Stack size 0 bytes, console_mod.o(.text))
  [Address Reference Count : 1]

  - console_mod.o(.data)

  console_close (Thumb, 20 bytes, Stack size 8 bytes, console_mod.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = console_close ⇒ tk_del ⇒ tk_sem_free ⇒ vQueueDelete ⇒ vPortFree ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_del
  [Called By]
  - >> console_init
  [Address Reference Count : 1]
  - console_mod.o(.data)

  tk_console (Thumb, 28 bytes, Stack size 0 bytes, console_mod.o(.text))
  [Stack]

  - Max Depth = 472 + Unknown Stack Size
  - Call Chain = tk_console ⇒ kbdio ⇒ cli_command ⇒ cli_showcommands ⇒ cli_usage ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vTaskDelay
  - >> kbdio
  - >> tk_del
  [Address Reference Count : 1]
  - console_mod.o(.text)

  console_init (Thumb, 102 bytes, Stack size 32 bytes, console_mod.o(.text))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = console_init ⇒ tk_new ⇒ tk_suspend ⇒ vTaskSuspend ⇒ vTaskSwitchContext ⇒ vApplicationStackOverflowHook ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_new
  - >> gio_push
  - >> console_close
  - >> cli_free_context
  - >> cli_get_context
  [Address Reference Count : 1]
  - console_mod.o(.data)

  console_start (Thumb, 16 bytes, Stack size 8 bytes, console_mod.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = console_start ⇒ tk_wake ⇒ vTaskResume ⇒ vPortExitCritical
  [Calls]
  - >> tk_wake
  [Address Reference Count : 1]
  - console_mod.o(.data)

  console_task (Thumb, 18 bytes, Stack size 0 bytes, console_mod.o(.text))
  [Address Reference Count : 1]

  - console_mod.o(.data)

  in_getparm (Thumb, 78 bytes, Stack size 8 bytes, stkdata.o(.text), UNUSED)
  [Calls]

  - >> udp_getparm
  - >> tcp_getparm
  - >> ipv4_getparm
  - >> if_getparm
  - >> icmp_getparm
  - >> dnc_getparm
  - >> dhcpc_getparm

  in_setparm (Thumb, 76 bytes, Stack size 8 bytes, stkdata.o(.text), UNUSED)
  [Calls]

  - >> udp_setparm
  - >> tcp_setparm
  - >> ipv4_setparm
  - >> if_setparm
  - >> icmp_setparm
  - >> dnc_setparm
  - >> dhcpc_setparm

  in_clrstats (Thumb, 90 bytes, Stack size 8 bytes, stkdata.o(.text), UNUSED)
  [Calls]

  - >> udp_clrstats
  - >> tcp_clrstats
  - >> ipv4_clrstats
  - >> if_clrstats
  - >> icmp_clrstats
  - >> dnc_clrstats
  - >> dhcpc_clrstats
  - >> arp_clrstats

  in_getstats (Thumb, 132 bytes, Stack size 8 bytes, stkdata.o(.text))
  [Stack]

  - Max Depth = 168
  - Call Chain = in_getstats ⇒ tcpsock_getstats ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> udpsock_getstats
  - >> udp_getstats
  - >> tcpsock_getstats
  - >> tcp_getstats
  - >> queue_getstats
  - >> ipv4_getstats
  - >> if_getstats
  - >> icmp_getstats
  - >> dnc_getstats
  - >> dhcpc_getstats
  - >> arp_getstats
  [Called By]
  - >> netmain_linkstats

  in_clrtab (Thumb, 24 bytes, Stack size 0 bytes, stkdata.o(.text), UNUSED)
  [Calls]

  - >> dnc_clrtab
  - >> arp_clrtab

  in_cfgstack (Thumb, 188 bytes, Stack size 24 bytes, stkdata.o(.text))
  [Stack]

  - Max Depth = 192
  - Call Chain = in_cfgstack ⇒ inet_pton ⇒ parse_ipad ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> inet_pton
  - >> __aeabi_memcpy
  [Called By]
  - >> user_pre_setup

  dhcpc_netstat (Thumb, 408 bytes, Stack size 72 bytes, dc_nt.o(.text))
  [Stack]

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = dhcpc_netstat ⇒ upnp_ifstats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> upnp_ifstats
  - >> gio_printf
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  netdiag_arp (Thumb, 164 bytes, Stack size 48 bytes, diag_nt.o(.text))
  [Stack]

  - Max Depth = 304 + Unknown Stack Size
  - Call Chain = netdiag_arp ⇒ clear_arp_entries ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> if_getbyname
  - >> clear_arp_entries
  - >> arp_stats
  - >> stricmp
  - >> gio_printf
  - >> cli_parse_ipaddr
  - >> __rt_ctype_table
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  netdiag_nslookup (Thumb, 96 bytes, Stack size 16 bytes, diag_nt.o(.text))
  [Stack]

  - Max Depth = 640 + Unknown Stack Size
  - Call Chain = netdiag_nslookup ⇒ gethostbyname ⇒ dnc_txreq_a ⇒ t_sendto ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> gethostbyname
  - >> dnc_free_hostent
  - >> dnc_dump_status
  - >> dnc_dump_hostent
  - >> gio_printf
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  netdiag_dnssvr (Thumb, 280 bytes, Stack size 40 bytes, diag_nt.o(.text))
  [Stack]

  - Max Depth = 224 + Unknown Stack Size
  - Call Chain = netdiag_dnssvr ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> gio_printf
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  ping_cbk (Thumb, 176 bytes, Stack size 56 bytes, diag_nt.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = ping_cbk ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Address Reference Count : 1]
  - diag_nt.o(.text)

  ping_start (Thumb, 172 bytes, Stack size 56 bytes, diag_nt.o(.text))
  [Stack]

  - Max Depth = 744 + Unknown Stack Size
  - Call Chain = ping_start ⇒ ping_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_sleep
  - >> cli_get_value
  - >> cli_defined
  - >> ping_send
  - >> gio_printf
  [Called By]
  - >> ping_cli

  ping_cli (Thumb, 48 bytes, Stack size 16 bytes, diag_nt.o(.text))
  [Stack]

  - Max Depth = 760 + Unknown Stack Size
  - Call Chain = ping_cli ⇒ ping_start ⇒ ping_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_defined
  - >> ping_dump
  - >> ping_start
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  netdiag_gratarp (Thumb, 90 bytes, Stack size 16 bytes, diag_nt.o(.text), UNUSED)
  [Calls]

  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> grat_arp

  dnc_init (Thumb, 198 bytes, Stack size 40 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 376 + Unknown Stack Size
  - Call Chain = dnc_init ⇒ t_socket ⇒ socreate ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npfree
  - >> npalloc
  - >> t_socket
  - >> t_setsockopt
  - >> t_bind
  - >> t_socketclose
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> user_post_setup

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

  - Max Depth = 32
  - Call Chain = dnc_as2dns ⇒ strlen
  [Calls]
  - >> __aeabi_memcpy
  - >> strlen
  - >> strchr
  [Called By]
  - >> dnc_txreq_a

  dnc_dns2as (Thumb, 138 bytes, Stack size 40 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = dnc_dns2as
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> dnc_proc_answer_rr
  - >> dnc_proc_question

  dnc_type2str (Thumb, 38 bytes, Stack size 0 bytes, dnc.o(.text), UNUSED)

  dnc_class2str (Thumb, 14 bytes, Stack size 0 bytes, dnc.o(.text), UNUSED)

  dnc_proc_question (Thumb, 76 bytes, Stack size 32 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = dnc_proc_question ⇒ dnc_dns2as
  [Calls]
  - >> dnc_dns2as
  [Called By]
  - >> dnc_rx

  dnc_proc_answer_rr (Thumb, 514 bytes, Stack size 256 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 336
  - Call Chain = dnc_proc_answer_rr ⇒ npalloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  - >> dnc_dns2as
  - >> stricmp
  - >> strcmp
  - >> strlen
  - >> strcpy
  [Called By]
  - >> dnc_rx

  dnc_txreq_a (Thumb, 164 bytes, Stack size 152 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 584 + Unknown Stack Size
  - Call Chain = dnc_txreq_a ⇒ t_sendto ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> npfree
  - >> npalloc
  - >> t_sendto
  - >> dnc_as2dns
  - >> __aeabi_memcpy
  - >> strlen
  [Called By]
  - >> dnc_tmo
  - >> gethostbyname

  dnc_chk_resolved (Thumb, 88 bytes, Stack size 32 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 60
  - Call Chain = dnc_chk_resolved ⇒ stricmp ⇒ strnicmp
  [Calls]
  - >> stricmp
  - >> strcmp
  [Called By]
  - >> gethostbyname

  dnc_cp2hostent (Thumb, 188 bytes, Stack size 32 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = dnc_cp2hostent ⇒ npalloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  - >> strlen
  - >> strcpy
  [Called By]
  - >> gethostbyname

  dnc_get_srvaddr (Thumb, 68 bytes, Stack size 12 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = dnc_get_srvaddr
  [Called By]
  - >> dnc_tmo
  - >> gethostbyname

  dnc_cleanup_entry (Thumb, 44 bytes, Stack size 16 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = dnc_cleanup_entry ⇒ npfree ⇒ vPortFree ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npfree
  - >> __aeabi_memclr4
  [Called By]
  - >> dnc_tmo
  - >> gethostbyname

  gethostbyname (Thumb, 406 bytes, Stack size 40 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 624 + Unknown Stack Size
  - Call Chain = gethostbyname ⇒ dnc_txreq_a ⇒ t_sendto ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> tk_sleep
  - >> dnc_cleanup_entry
  - >> dnc_get_srvaddr
  - >> dnc_cp2hostent
  - >> dnc_chk_resolved
  - >> dnc_txreq_a
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> stricmp
  - >> strcmp
  - >> strlen
  - >> strcpy
  [Called By]
  - >> netdiag_nslookup

  dnc_clrtab (Thumb, 132 bytes, Stack size 24 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = dnc_clrtab ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npfree
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> strcmp
  - >> __aeabi_memclr4
  [Called By]
  - >> dnc_shutdown
  - >> in_clrtab

  dnc_shutdown (Thumb, 62 bytes, Stack size 16 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 344 + Unknown Stack Size
  - Call Chain = dnc_shutdown ⇒ t_socketclose ⇒ soclose ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npfree
  - >> t_socketclose
  - >> dnc_clrtab
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> __aeabi_memclr4
  [Called By]
  - >> dnc_rx

  dnc_rx (Thumb, 410 bytes, Stack size 176 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 624 + Unknown Stack Size
  - Call Chain = dnc_rx ⇒ t_recvfrom ⇒ soreceive ⇒ m_copy ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> t_recvfrom
  - >> t_getsockopt
  - >> dnc_shutdown
  - >> dnc_proc_answer_rr
  - >> dnc_proc_question
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> stricmp
  - >> strcmp
  [Called By]
  - >> dnc_tmo

  dnc_tmo (Thumb, 282 bytes, Stack size 32 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 656 + Unknown Stack Size
  - Call Chain = dnc_tmo ⇒ dnc_rx ⇒ t_recvfrom ⇒ soreceive ⇒ m_copy ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dnc_rx
  - >> dnc_cleanup_entry
  - >> dnc_get_srvaddr
  - >> dnc_txreq_a
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> strcmp
  [Called By]
  - >> inet_timer

  dnc_free_hostent (Thumb, 40 bytes, Stack size 16 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = dnc_free_hostent ⇒ npfree ⇒ vPortFree ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npfree
  [Called By]
  - >> netdiag_nslookup

  dnc_dump_hostent (Thumb, 118 bytes, Stack size 32 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 216 + Unknown Stack Size
  - Call Chain = dnc_dump_hostent ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> netdiag_nslookup

  dnc_dump_status (Thumb, 752 bytes, Stack size 48 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 232 + Unknown Stack Size
  - Call Chain = dnc_dump_status ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  - >> strcmp
  [Called By]
  - >> netdiag_nslookup

  dnc_clrstats (Thumb, 30 bytes, Stack size 8 bytes, dnc.o(.text), UNUSED)
  [Calls]

  - >> tk_res_unlock
  - >> tk_res_lock
  - >> __aeabi_memclr4
  [Called By]
  - >> in_clrstats

  dnc_getstats (Thumb, 38 bytes, Stack size 8 bytes, dnc.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = dnc_getstats ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> __aeabi_memcpy
  [Called By]
  - >> in_getstats

  dnc_getparm (Thumb, 84 bytes, Stack size 16 bytes, dnc.o(.text), UNUSED)
  [Calls]

  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> in_getparm

  dnc_setparm (Thumb, 86 bytes, Stack size 16 bytes, dnc.o(.text), UNUSED)
  [Calls]

  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> in_setparm

  netmain_prep (Thumb, 70 bytes, Stack size 8 bytes, netmain_mod.o(.text))
  [Stack]

  - Max Depth = 76
  - Call Chain = netmain_prep ⇒ devlock_validate ⇒ devlock_decode
  [Calls]
  - >> dhcpc_prep
  - >> devlock_validate
  - >> cli_install_menu
  - >> __aeabi_memclr4
  [Address Reference Count : 1]
  - netmain_mod.o(.data)

  netmain_close (Thumb, 38 bytes, Stack size 16 bytes, netmain_mod.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = netmain_close ⇒ dhcpc_close ⇒ udp_close ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> dhcpc_close
  - >> tk_del
  [Called By]
  - >> netmain_init
  [Address Reference Count : 1]
  - netmain_mod.o(.data)

  tk_nettick (Thumb, 28 bytes, Stack size 0 bytes, netmain_mod.o(.text))
  [Stack]

  - Max Depth = 824 + Unknown Stack Size
  - Call Chain = tk_nettick ⇒ inet_timer ⇒ tcp_tick ⇒ tcp_slowtimo ⇒ tcp_usrreq ⇒ tcp_timers ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_sleep
  - >> inet_timer
  [Address Reference Count : 1]
  - netmain_mod.o(.text)

  tk_netmain (Thumb, 38 bytes, Stack size 0 bytes, netmain_mod.o(.text))
  [Stack]

  - Max Depth = 968 + Unknown Stack Size
  - Call Chain = tk_netmain ⇒ pktdemux ⇒ ip_rcv ⇒ ip_rcv_phase2 ⇒ ip_reassm ⇒ ip_reasm_process_subsequent_fragments ⇒ ip_reasm_proc_complete_rcvd_pkt ⇒ ip_demux ⇒ tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_sleep
  - >> pktdemux
  - >> tk_sem_pend
  [Address Reference Count : 1]
  - netmain_mod.o(.text)

  netmain_init (Thumb, 124 bytes, Stack size 32 bytes, netmain_mod.o(.text))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = netmain_init ⇒ tk_new ⇒ tk_suspend ⇒ vTaskSuspend ⇒ vTaskSwitchContext ⇒ vApplicationStackOverflowHook ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_new
  - >> tcpinit
  - >> ip_init
  - >> ip_exit
  - >> etainit
  - >> netmain_close
  [Address Reference Count : 1]
  - netmain_mod.o(.data)

  netmain_start (Thumb, 32 bytes, Stack size 16 bytes, netmain_mod.o(.text))
  [Stack]

  - Max Depth = 800 + Unknown Stack Size
  - Call Chain = netmain_start ⇒ dhcpc_start ⇒ upnp_loop ⇒ Upnp_tick ⇒ dhc_second ⇒ dhc_renew ⇒ dhc_reclaim ⇒ dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dhcpc_start
  - >> tk_wake
  [Address Reference Count : 1]
  - netmain_mod.o(.data)

  netmain_task (Thumb, 18 bytes, Stack size 0 bytes, netmain_mod.o(.text))
  [Address Reference Count : 1]

  - netmain_mod.o(.data)

  netmain_menu (Thumb, 24 bytes, Stack size 8 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = netmain_menu
  [Calls]
  - >> cli_calc_args
  [Address Reference Count : 1]
  - netmain_mod.o(.data)

  netmain_iface (Thumb, 432 bytes, Stack size 112 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 400 + Unknown Stack Size
  - Call Chain = netmain_iface ⇒ gio_hexdump ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> sysuptime
  - >> print_uptime
  - >> in_bit2str
  - >> gio_hexdump
  - >> gio_printf
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  netmain_linkstats (Thumb, 186 bytes, Stack size 96 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 280 + Unknown Stack Size
  - Call Chain = netmain_linkstats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> in_getstats
  - >> gio_printf
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  mbuf_stat (Thumb, 122 bytes, Stack size 24 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = mbuf_stat ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> netmain_status
  - >> netmain_netstat

  netmain_netstat (Thumb, 120 bytes, Stack size 16 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 296 + Unknown Stack Size
  - Call Chain = netmain_netstat ⇒ prot_stat ⇒ ipr_stats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_defined
  - >> dumpqueues
  - >> dump_buf_estats
  - >> mbuf_stat
  - >> prot_stat
  - >> sock_info
  - >> cli_count
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  netmain_setip_prot2mask (Thumb, 56 bytes, Stack size 24 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 68
  - Call Chain = netmain_setip_prot2mask ⇒ str2bit ⇒ stricmp ⇒ strnicmp
  [Calls]
  - >> str2bit
  - >> strchr
  [Called By]
  - >> netmain_setip

  netmain_setip (Thumb, 1212 bytes, Stack size 80 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 800 + Unknown Stack Size
  - Call Chain = netmain_setip ⇒ in_addrconf_release ⇒ dhc_release ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> upnp_wr_ifparm
  - >> in_addrconf_release
  - >> in_addrconf_acquire
  - >> netmain_setip_prot2mask
  - >> gio_printf
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  netmain_status (Thumb, 118 bytes, Stack size 16 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 248 + Unknown Stack Size
  - Call Chain = netmain_status ⇒ dumpqueues ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_defined
  - >> station_state
  - >> ip_stats
  - >> dumpqueues
  - >> mbuf_stat
  - >> gio_printf
  - >> cli_count
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  mbuf_list (Thumb, 158 bytes, Stack size 32 bytes, netmain_nt.o(.text), UNUSED)
  [Calls]

  - >> tk_res_unlock
  - >> tk_res_lock
  - >> gio_printf

  dumpqueuesCTX (Thumb, 42 bytes, Stack size 16 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 248 + Unknown Stack Size
  - Call Chain = dumpqueuesCTX ⇒ dumpqueues ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_defined
  - >> resetqueues
  - >> dumpqueues
  - >> dump_buf_estats
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  ping_init (Thumb, 72 bytes, Stack size 8 bytes, ping.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = ping_init ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> user_post_setup

  ping_match (Thumb, 12 bytes, Stack size 0 bytes, ping.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = ping_match ⇒ cb_bcmp ⇒ memcmp
  [Calls]
  - >> cb_ncmp
  - >> cb_bcmp
  [Called By]
  - >> pingapp_rcv

  pingapp_rcv (Thumb, 428 bytes, Stack size 80 bytes, ping.o(.text))
  [Stack]

  - Max Depth = 280 + Unknown Stack Size
  - Call Chain = pingapp_rcv ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npfree
  - >> npalloc
  - >> cb_write
  - >> ping_match
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  [Called By]
  - >> icmprcv

  ping_send (Thumb, 580 bytes, Stack size 96 bytes, ping.o(.text))
  [Stack]

  - Max Depth = 688 + Unknown Stack Size
  - Call Chain = ping_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_chkSumPkt
  - >> ip_write
  - >> ip_mymach
  - >> in_bcast
  - >> cb_writey
  - >> cb_writex
  - >> cb_read
  - >> cb_nset
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_alloc_internal
  [Called By]
  - >> ping_start

  ping_tmo (Thumb, 154 bytes, Stack size 40 bytes, ping.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = ping_tmo ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> inet_timer

  ping_close (Thumb, 140 bytes, Stack size 48 bytes, ping.o(.text), UNUSED)
  [Calls]

  - >> npfree
  - >> tk_res_unlock
  - >> tk_res_lock

  ping_dump (Thumb, 236 bytes, Stack size 72 bytes, ping.o(.text))
  [Stack]

  - Max Depth = 256 + Unknown Stack Size
  - Call Chain = ping_dump ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> ping_cli

  domain_check (Thumb, 2 bytes, Stack size 0 bytes, sockcall.o(.text), UNUSED)

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

  - >> t_setsockopt
  - >> t_send
  - >> t_select
  - >> t_listen
  - >> t_bind
  - >> t_accept
  - >> t_socketclose
  - >> t_shutdown
  - >> t_connect
  - >> t_getname
  - >> t_sendto
  - >> t_recvfrom
  - >> t_getsockopt

  t_socket (Thumb, 56 bytes, Stack size 16 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 336 + Unknown Stack Size
  - Call Chain = t_socket ⇒ socreate ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> socreate
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> dnc_init
  - >> tcp_srv_init

  t_bind (Thumb, 122 bytes, Stack size 40 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = t_bind ⇒ sockargs ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> sobind
  - >> m_freem
  - >> soc_check
  - >> sockargs
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> dnc_init
  - >> tcp_srv_init

  t_listen (Thumb, 66 bytes, Stack size 16 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = t_listen ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> solisten
  - >> soc_check
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> tcp_srv_init

  t_accept (Thumb, 182 bytes, Stack size 24 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 288 + Unknown Stack Size
  - Call Chain = t_accept ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> soqremque
  - >> soaccept
  - >> m_getnbuf
  - >> m_freem
  - >> soc_check
  - >> tcp_sleep
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> __aeabi_memcpy
  [Called By]
  - >> commTask

  t_connect (Thumb, 140 bytes, Stack size 24 bytes, sockcall.o(.text), UNUSED)
  [Calls]

  - >> soconnect
  - >> m_freem
  - >> soc_check
  - >> sockargs
  - >> tcp_sleep
  - >> tk_res_unlock
  - >> tk_res_lock

  t_getpeername (Thumb, 4 bytes, Stack size 0 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 296 + Unknown Stack Size
  - Call Chain = t_getpeername ⇒ t_getname ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> t_getname
  [Called By]
  - >> parse_ctl_cmd

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

  - >> t_getname

  t_setsockopt (Thumb, 206 bytes, Stack size 32 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 152
  - Call Chain = t_setsockopt ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  - >> sosetopt
  - >> soc_check
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> dnc_init
  - >> tcp_srv_init

  t_getsockopt (Thumb, 130 bytes, Stack size 32 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 152
  - Call Chain = t_getsockopt ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> sogetopt
  - >> soc_check
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> dnc_rx

  t_recv (Thumb, 84 bytes, Stack size 40 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 432 + Unknown Stack Size
  - Call Chain = t_recv ⇒ soreceive ⇒ m_copy ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> soreceive
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> commTask
  - >> gio_sockin

  t_recvfrom (Thumb, 114 bytes, Stack size 56 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 448 + Unknown Stack Size
  - Call Chain = t_recvfrom ⇒ soreceive ⇒ m_copy ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> soreceive
  - >> m_freem
  - >> soc_check
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> __aeabi_memcpy
  [Called By]
  - >> dnc_rx

  t_send (Thumb, 220 bytes, Stack size 48 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 384 + Unknown Stack Size + In Cycle
  - Call Chain = t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> sosend
  - >> soc_check
  - >> t_sendto
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> tcp_srv_respond
  - >> t_sendto
  - >> gio_sockout

  t_sendto (Thumb, 176 bytes, Stack size 48 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 432 + Unknown Stack Size
  - Call Chain = t_sendto ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> t_send
  - >> udp_maxalloc
  - >> sosend
  - >> m_freem
  - >> soc_check
  - >> sockargs
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> t_send
  - >> dnc_txreq_a

  t_shutdown (Thumb, 72 bytes, Stack size 24 bytes, sockcall.o(.text), UNUSED)
  [Calls]

  - >> soshutdown
  - >> soc_check
  - >> tk_res_unlock
  - >> tk_res_lock

  t_socketclose (Thumb, 60 bytes, Stack size 16 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 328 + Unknown Stack Size
  - Call Chain = t_socketclose ⇒ soclose ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> soclose
  - >> soc_check
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> dnc_init
  - >> commTask
  - >> parse_ctl_cmd
  - >> dnc_shutdown

  t_errno (Thumb, 62 bytes, Stack size 16 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = t_errno ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> soconverr
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> tcp_srv_respond
  - >> gio_sockout
  - >> gio_sockin

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

  - >> commTask
  - >> parse_ctl_cmd
  - >> sock_selscan

  sock_select (Thumb, 116 bytes, Stack size 8 bytes, soselect.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = sock_select
  [Called By]
  - >> sock_selscan

  sock_selscan (Thumb, 108 bytes, Stack size 36 bytes, soselect.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = sock_selscan ⇒ sock_select
  [Calls]
  - >> ifd_set
  - >> sock_select
  [Called By]
  - >> t_select

  t_select (Thumb, 452 bytes, Stack size 368 bytes, soselect.o(.text))
  [Stack]

  - Max Depth = 504
  - Call Chain = t_select ⇒ tcp_sleep ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_sleep
  - >> sock_selscan
  - >> soc_check
  - >> tcp_sleep
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy4
  [Called By]
  - >> commTask

  in_pcbnotify (Thumb, 50 bytes, Stack size 24 bytes, soselect.o(.text), UNUSED)

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

  - >> tcp_wakeup

  ifd_clr (Thumb, 54 bytes, Stack size 8 bytes, soselect.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = ifd_clr
  [Called By]
  - >> commTask
  - >> parse_ctl_cmd

  ifd_isset (Thumb, 32 bytes, Stack size 8 bytes, soselect.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = ifd_isset
  [Called By]
  - >> commTask

  ifd_get (Thumb, 20 bytes, Stack size 0 bytes, soselect.o(.text), UNUSED)

  icmp_port_du (Thumb, 2 bytes, Stack size 0 bytes, allports.o(.text), UNUSED)

  station_state (Thumb, 90 bytes, Stack size 24 bytes, allports.o(.text))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = station_state ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  - >> print_ipad
  [Called By]
  - >> netmain_status

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

  - >> netmain_iface
  - >> dhc_discover
  - >> dhc_release

  packet_check (Thumb, 26 bytes, Stack size 8 bytes, allports.o(.text), UNUSED)
  [Calls]

  - >> pktdemux

  inet_timer (Thumb, 68 bytes, Stack size 8 bytes, timeouts.o(.text))
  [Stack]

  - Max Depth = 824 + Unknown Stack Size
  - Call Chain = inet_timer ⇒ tcp_tick ⇒ tcp_slowtimo ⇒ tcp_usrreq ⇒ tcp_timers ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ping_tmo
  - >> dnc_tmo
  - >> upnp_loop
  - >> tcp_tick
  - >> ip_reasm_process_timer_tick
  - >> check_interval_timers
  [Called By]
  - >> tk_nettick

  in_timerset (Thumb, 80 bytes, Stack size 12 bytes, timeouts.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = in_timerset
  [Called By]
  - >> make_arp_entry

  in_timerkill (Thumb, 50 bytes, Stack size 0 bytes, timeouts.o(.text))
  [Called By]

  - >> arp_clrtab
  - >> cb_arpent_tmo

  Upnp_initialize (Thumb, 44 bytes, Stack size 8 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 176
  - Call Chain = Upnp_initialize ⇒ dhc_init ⇒ udp_open ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> dhc_init
  - >> AutoIp_init
  [Called By]
  - >> init_devices

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

  - >> upnp_ifp_setup

  upnp_recv_dhcp_status (Thumb, 40 bytes, Stack size 8 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = upnp_recv_dhcp_status
  [Calls]
  - >> dhc_main_ipset
  [Address Reference Count : 1]
  - upnp.o(.text)

  upnp_ifp_setup (Thumb, 116 bytes, Stack size 16 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = upnp_ifp_setup ⇒ dhc_state_init ⇒ dhc_set_state
  [Calls]
  - >> dhc_state_init
  - >> dhc_set_callback
  - >> upnp_set_addressing_method
  - >> upnp_write_dyn_intf_cfg_to_db
  [Called By]
  - >> in_addrconf_release
  - >> upnp_if_setup

  upnp_if_setup (Thumb, 34 bytes, Stack size 8 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = upnp_if_setup ⇒ upnp_ifp_setup ⇒ dhc_state_init ⇒ dhc_set_state
  [Calls]
  - >> dhc_ifp_setup
  - >> AutoIp_ifp_setup
  - >> upnp_ifp_setup
  [Called By]
  - >> in_addrconf_acquire
  - >> init_devices
  - >> Upnp_tick

  upnp_set_state (Thumb, 16 bytes, Stack size 0 bytes, upnp.o(.text))
  [Called By]

  - >> Upnp_tick
  - >> upnp_cleanup_check

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

  - Max Depth = 32
  - Call Chain = upnp_cleanup_check ⇒ dhc_halt ⇒ dhc_set_state
  [Calls]
  - >> dhc_halt
  - >> upnp_set_state
  [Called By]
  - >> Upnp_tick

  Upnp_tick (Thumb, 344 bytes, Stack size 32 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 760 + Unknown Stack Size
  - Call Chain = Upnp_tick ⇒ dhc_second ⇒ dhc_renew ⇒ dhc_reclaim ⇒ dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> upnp_if_setup
  - >> dhc_second
  - >> dhc_halt
  - >> AutoIp_tick
  - >> AutoIp_get_state
  - >> upnp_cleanup_check
  - >> upnp_set_state
  - >> upnp_read_static_intf_cfg_from_db
  - >> upnp_write_dyn_intf_cfg_to_db
  [Called By]
  - >> upnp_loop

  upnp_wr_ifparm3 (Thumb, 24 bytes, Stack size 8 bytes, upnp.o(.text), UNUSED)
  [Called By]

  - >> if_setparm

  upnp_wr_ifparm (Thumb, 44 bytes, Stack size 8 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = upnp_wr_ifparm
  [Called By]
  - >> netmain_setip
  - >> if_setparm

  upnp_loop (Thumb, 52 bytes, Stack size 16 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 776 + Unknown Stack Size
  - Call Chain = upnp_loop ⇒ Upnp_tick ⇒ dhc_second ⇒ dhc_renew ⇒ dhc_reclaim ⇒ dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> Upnp_tick
  [Called By]
  - >> inet_timer
  - >> dhcpc_start

  in_addrconf_acquire (Thumb, 132 bytes, Stack size 24 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 720 + Unknown Stack Size
  - Call Chain = in_addrconf_acquire ⇒ dhc_release ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> if_getbyname
  - >> upnp_if_setup
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> if_nametoindex
  - >> dhc_release
  - >> dhc_halt
  [Called By]
  - >> netmain_setip

  in_addrconf_release (Thumb, 218 bytes, Stack size 24 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 720 + Unknown Stack Size
  - Call Chain = in_addrconf_release ⇒ dhc_release ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> if_getbyname
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> if_nametoindex
  - >> dhc_release
  - >> dhc_halt
  - >> AutoIp_ifp_setup
  - >> upnp_ifp_setup
  - >> upnp_read_static_intf_cfg_from_db
  [Called By]
  - >> netmain_setip

  upnp_ifstats (Thumb, 474 bytes, Stack size 64 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 248 + Unknown Stack Size
  - Call Chain = upnp_ifstats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> dhcpc_netstat

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

  - Max Depth = 24
  - Call Chain = etainit ⇒ reg_type
  [Calls]
  - >> reg_type
  [Called By]
  - >> netmain_init

  arp_free_pending (Thumb, 52 bytes, Stack size 24 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 224 + Unknown Stack Size
  - Call Chain = arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  [Called By]
  - >> clear_arp_entries
  - >> make_arp_entry
  - >> find_oldest_arp
  - >> cb_arpent_tmo

  cb_arpent_tmo (Thumb, 114 bytes, Stack size 24 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 248 + Unknown Stack Size
  - Call Chain = cb_arpent_tmo ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> arp_free_pending
  - >> in_timerkill
  [Address Reference Count : 1]
  - et_arp.o(.text)

  find_oldest_arp (Thumb, 138 bytes, Stack size 40 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> arp_free_pending
  [Called By]
  - >> send_via_arp
  - >> make_arp_entry

  make_arp_entry (Thumb, 96 bytes, Stack size 24 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 288 + Unknown Stack Size
  - Call Chain = make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> find_oldest_arp
  - >> arp_free_pending
  - >> in_timerset
  [Called By]
  - >> arprcv
  - >> send_arp
  - >> et_special

  et_special (Thumb, 88 bytes, Stack size 16 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 304 + Unknown Stack Size
  - Call Chain = et_special ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> make_arp_entry
  - >> __aeabi_memset
  [Called By]
  - >> send_via_arp

  et_send (Thumb, 142 bytes, Stack size 24 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 224 + Unknown Stack Size
  - Call Chain = et_send ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> __aeabi_memmove
  [Called By]
  - >> send_via_arp
  - >> arp_send_pending

  arp_send_pending (Thumb, 28 bytes, Stack size 16 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = arp_send_pending ⇒ et_send ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> et_send
  [Called By]
  - >> arprcv

  send_arp (Thumb, 350 bytes, Stack size 40 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 328 + Unknown Stack Size
  - Call Chain = send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_alloc_internal
  - >> make_arp_entry
  - >> __aeabi_memset
  - >> __aeabi_memmove
  [Called By]
  - >> AutoIp_send_arp_probe
  - >> send_via_arp

  arpReply (Thumb, 302 bytes, Stack size 40 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 280 + Unknown Stack Size
  - Call Chain = arpReply ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_alloc_internal
  - >> __aeabi_memmove4
  - >> __aeabi_memmove
  [Called By]
  - >> arprcv

  arprcv (Thumb, 310 bytes, Stack size 24 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 312 + Unknown Stack Size
  - Call Chain = arprcv ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> AutoIp_arp_response
  - >> arpReply
  - >> arp_send_pending
  - >> make_arp_entry
  - >> __aeabi_memmove
  - >> memcmp
  [Called By]
  - >> pktdemux

  send_via_arp (Thumb, 184 bytes, Stack size 32 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 360 + Unknown Stack Size
  - Call Chain = send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_poll
  - >> pk_minBlkSz
  - >> send_arp
  - >> et_send
  - >> et_special
  - >> find_oldest_arp
  [Called By]
  - >> ip2mac

  arp_stats (Thumb, 210 bytes, Stack size 56 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = arp_stats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  - >> if_netnumber
  [Called By]
  - >> netdiag_arp

  clear_arp_entries (Thumb, 70 bytes, Stack size 32 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 256 + Unknown Stack Size
  - Call Chain = clear_arp_entries ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> arp_free_pending
  [Called By]
  - >> netdiag_arp

  find_arp_pkt (Thumb, 54 bytes, Stack size 24 bytes, et_arp.o(.text), UNUSED)
  [Calls]

  - >> pk_member
  [Called By]
  - >> qname

  grat_arp (Thumb, 580 bytes, Stack size 40 bytes, et_arp.o(.text), UNUSED)
  [Calls]

  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_alloc_internal
  - >> __aeabi_memset
  - >> __aeabi_memmove
  [Called By]
  - >> netdiag_gratarp

  arp_clrstats (Thumb, 8 bytes, Stack size 0 bytes, et_arp.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memclr4
  [Called By]
  - >> in_clrstats

  arp_clrtab (Thumb, 58 bytes, Stack size 16 bytes, et_arp.o(.text), UNUSED)
  [Calls]

  - >> tk_res_unlock
  - >> tk_res_lock
  - >> in_timerkill
  - >> __aeabi_memclr4
  [Called By]
  - >> in_clrtab

  arp_getstats (Thumb, 14 bytes, Stack size 0 bytes, et_arp.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = arp_getstats ⇒ __aeabi_memcpy4
  [Calls]
  - >> __aeabi_memcpy4
  [Called By]
  - >> in_getstats

  icmp_du (Thumb, 28 bytes, Stack size 16 bytes, icmp.o(.text))
  [Stack]

  - Max Depth = 368 + Unknown Stack Size
  - Call Chain = icmp_du ⇒ so_icmpdu ⇒ tcp_close ⇒ in_pcbdetach ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> so_icmpdu
  [Called By]
  - >> icmprcv

  icmprcv (Thumb, 438 bytes, Stack size 40 bytes, icmp.o(.text))
  [Stack]

  - Max Depth = 632 + Unknown Stack Size
  - Call Chain = icmprcv ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_chkSumPkt
  - >> ip_write
  - >> pingapp_rcv
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> icmp_du
  [Called By]
  - >> ip_demux

  icmp_clrstats (Thumb, 8 bytes, Stack size 0 bytes, icmp.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memclr4
  [Called By]
  - >> in_clrstats

  icmp_getstats (Thumb, 14 bytes, Stack size 0 bytes, icmp.o(.text))
  [Calls]

  - >> __aeabi_memcpy
  [Called By]
  - >> in_getstats

  icmp_getparm (Thumb, 34 bytes, Stack size 0 bytes, icmp.o(.text), UNUSED)
  [Called By]

  - >> in_getparm

  icmp_setparm (Thumb, 34 bytes, Stack size 0 bytes, icmp.o(.text), UNUSED)
  [Called By]

  - >> in_setparm

  icmp_destun (Thumb, 256 bytes, Stack size 56 bytes, icmp.o(.text))
  [Stack]

  - Max Depth = 296 + Unknown Stack Size + In Cycle
  - Call Chain = icmp_destun ⇒ ip_write (Cycle)
  [Calls]
  - >> ip_write
  - >> cb_write
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_alloc_internal
  - >> cksum
  - >> __aeabi_memcpy4
  [Called By]
  - >> udpdemux
  - >> ip_demux
  - >> ip_fragment

  icmp_timex (Thumb, 226 bytes, Stack size 40 bytes, icmp.o(.text))
  [Stack]

  - Max Depth = 632 + Unknown Stack Size
  - Call Chain = icmp_timex ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ip_write
  - >> cb_write
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_alloc_internal
  - >> cksum
  [Called By]
  - >> ip_reasm_send_icmp_timex

  icmp_stats (Thumb, 152 bytes, Stack size 24 bytes, icmp.o(.text))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = icmp_stats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> prot_stat

  if_getbynum (Thumb, 22 bytes, Stack size 0 bytes, iface.o(.text))
  [Called By]

  - >> if_netbytext

  isbcast (Thumb, 58 bytes, Stack size 0 bytes, iface.o(.text))
  [Called By]

  - >> pktdemux

  reg_type (Thumb, 34 bytes, Stack size 16 bytes, iface.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = reg_type
  [Called By]
  - >> ip_init
  - >> etainit

  if_netbytext (Thumb, 72 bytes, Stack size 16 bytes, iface.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = if_netbytext ⇒ __rt_ctype_table
  [Calls]
  - >> __rt_ctype_table
  - >> if_getbynum
  - >> strcmp
  - >> strlen
  [Called By]
  - >> if_setparm
  - >> if_getstats
  - >> if_getparm
  - >> if_clrstats

  in_bcast (Thumb, 50 bytes, Stack size 8 bytes, iface.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = in_bcast
  [Called By]
  - >> ping_send

  if_clrstats (Thumb, 28 bytes, Stack size 8 bytes, iface.o(.text), UNUSED)
  [Calls]

  - >> if_netbytext
  - >> __aeabi_memclr4
  [Called By]
  - >> in_clrstats

  if_getstats (Thumb, 38 bytes, Stack size 8 bytes, iface.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = if_getstats ⇒ if_netbytext ⇒ __rt_ctype_table
  [Calls]
  - >> if_netbytext
  - >> __aeabi_memcpy4
  [Called By]
  - >> in_getstats

  if_getparm (Thumb, 146 bytes, Stack size 16 bytes, iface.o(.text), UNUSED)
  [Calls]

  - >> if_netbytext
  [Called By]
  - >> in_getparm

  if_setparm (Thumb, 132 bytes, Stack size 24 bytes, iface.o(.text), UNUSED)
  [Calls]

  - >> upnp_wr_ifparm
  - >> if_netbytext
  - >> if_netnumber
  - >> upnp_wr_ifparm3
  [Called By]
  - >> in_setparm

  if_killsocks (Thumb, 36 bytes, Stack size 16 bytes, iface.o(.text), UNUSED)
  [Calls]

  - >> soabort

  if_getbyname (Thumb, 38 bytes, Stack size 16 bytes, iface.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = if_getbyname ⇒ strncmp
  [Calls]
  - >> strncmp
  - >> strlen
  [Called By]
  - >> netdiag_arp
  - >> in_addrconf_release
  - >> in_addrconf_acquire

  ip_init (Thumb, 44 bytes, Stack size 8 bytes, ip.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = ip_init ⇒ reg_type
  [Calls]
  - >> reg_type
  - >> __aeabi_memclr4
  [Called By]
  - >> netmain_init

  ip_bldhead (Thumb, 88 bytes, Stack size 16 bytes, ip.o(.text), UNUSED)
  [Calls]

  - >> cksum

  ip_fragment (Thumb, 1218 bytes, Stack size 176 bytes, ip.o(.text))
  [Stack]

  - Max Depth = 560 + Unknown Stack Size
  - Call Chain = ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cb_write
  - >> cb_read
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_alloc_internal
  - >> ip2mac
  - >> cksum
  - >> icmp_destun
  - >> __aeabi_memcpy
  [Called By]
  - >> ip_write_internal

  iproute (Thumb, 78 bytes, Stack size 16 bytes, ip.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = iproute
  [Called By]
  - >> ip_mymach
  - >> tcp_output
  - >> in_pcbconnect
  - >> ip_write_internal

  ip_write_internal (Thumb, 182 bytes, Stack size 16 bytes, ip.o(.text))
  [Stack]

  - Max Depth = 576 + Unknown Stack Size
  - Call Chain = ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_sem_post
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> putq
  - >> pk_free
  - >> ip2mac
  - >> iproute
  - >> ip_fragment
  [Called By]
  - >> ip_write
  - >> ip_write2

  ip_write (Thumb, 108 bytes, Stack size 16 bytes, ip.o(.text))
  [Stack]

  - Max Depth = 592 + Unknown Stack Size
  - Call Chain = ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ip_write_internal
  - >> cksum
  [Called By]
  - >> ping_send
  - >> ip_output
  - >> udp_send
  - >> icmp_timex
  - >> icmp_destun
  - >> icmprcv

  ip_write2 (Thumb, 418 bytes, Stack size 88 bytes, ip.o(.text), UNUSED)
  [Calls]

  - >> cb_writey
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_alloc_internal
  - >> cb_spacef
  - >> ip_write_internal
  - >> cksum

  ip_mymach (Thumb, 16 bytes, Stack size 8 bytes, ip.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = ip_mymach ⇒ iproute
  [Calls]
  - >> iproute
  [Called By]
  - >> ping_send
  - >> udp4_sockbind
  - >> in_pcbbind
  - >> udp_send

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

  - >> pk_copyPkt

  ipv4_clrstats (Thumb, 26 bytes, Stack size 8 bytes, ip.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memclr4
  [Called By]
  - >> in_clrstats

  ipv4_getstats (Thumb, 8 bytes, Stack size 0 bytes, ip.o(.text))
  [Calls]

  - >> __aeabi_memcpy
  [Called By]
  - >> in_getstats

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

  - >> in_getparm

  ipv4_setparm (Thumb, 46 bytes, Stack size 0 bytes, ip.o(.text), UNUSED)
  [Called By]

  - >> in_setparm

  ip_reasm_match_frag_with_ire (Thumb, 48 bytes, Stack size 12 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = ip_reasm_match_frag_with_ire
  [Called By]
  - >> ip_reassm

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

  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_compute_overlap
  - >> ip_reasm_process_first_fragment

  ip_reasm_check_mem_useage (Thumb, 52 bytes, Stack size 8 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = ip_reasm_check_mem_useage
  [Called By]
  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_process_first_fragment

  ip_reasm_incr_mem_useage (Thumb, 50 bytes, Stack size 12 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = ip_reasm_incr_mem_useage
  [Called By]
  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_process_first_fragment

  ip_reasm_decr_mem_useage (Thumb, 48 bytes, Stack size 8 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = ip_reasm_decr_mem_useage
  [Called By]
  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_compute_overlap
  - >> ip_reasm_delete_ire

  ip_reasm_process_first_fragment (Thumb, 238 bytes, Stack size 32 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 272 + Unknown Stack Size
  - Call Chain = ip_reasm_process_first_fragment ⇒ cb_truncf ⇒ cb_trimf ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npalloc
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_get_length
  - >> cb_truncf
  - >> ip_reasm_incr_mem_useage
  - >> ip_reasm_check_mem_useage
  - >> ip_reasm_determine_type_of_frag
  [Called By]
  - >> ip_reassm

  ip_reasm_proc_complete_rcvd_pkt (Thumb, 4 bytes, Stack size 0 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 832 + Unknown Stack Size
  - Call Chain = ip_reasm_proc_complete_rcvd_pkt ⇒ ip_demux ⇒ tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ip_demux
  [Called By]
  - >> ip_reasm_process_subsequent_fragments

  ip_reasm_delete_ire (Thumb, 200 bytes, Stack size 40 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = ip_reasm_delete_ire ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npfree
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_get_length
  - >> ip_reasm_decr_mem_useage
  [Called By]
  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_process_timer_tick

  ip_reasm_thread_queued_fragments_into_reassd_pkt (Thumb, 128 bytes, Stack size 16 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = ip_reasm_thread_queued_fragments_into_reassd_pkt ⇒ cksum ⇒ asm_cksum ⇒ alt_check ⇒ alt_format
  [Calls]
  - >> cksum
  [Called By]
  - >> ip_reasm_process_subsequent_fragments

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

  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_compute_overlap
  - >> ip_reasm_mark_compact_rfq

  ip_reasm_mark_compact_rfq (Thumb, 92 bytes, Stack size 12 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = ip_reasm_mark_compact_rfq
  [Calls]
  - >> ip_reasm_find_ire
  [Called By]
  - >> ip_reasm_process_subsequent_fragments

  ip_reasm_sort_rfq (Thumb, 304 bytes, Stack size 32 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = ip_reasm_sort_rfq
  [Called By]
  - >> ip_reasm_process_subsequent_fragments

  ip_reasm_compute_overlap (Thumb, 528 bytes, Stack size 64 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 304 + Unknown Stack Size
  - Call Chain = ip_reasm_compute_overlap ⇒ cb_truncf ⇒ cb_trimf ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_get_length
  - >> cb_truncf
  - >> cb_trunc
  - >> ip_reasm_find_ire
  - >> ip_reasm_decr_mem_useage
  - >> ip_reasm_determine_type_of_frag
  [Called By]
  - >> ip_reasm_process_subsequent_fragments

  ip_reasm_process_subsequent_fragments (Thumb, 510 bytes, Stack size 64 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 896 + Unknown Stack Size
  - Call Chain = ip_reasm_process_subsequent_fragments ⇒ ip_reasm_proc_complete_rcvd_pkt ⇒ ip_demux ⇒ tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npalloc
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_get_length
  - >> ip_reasm_compute_overlap
  - >> ip_reasm_sort_rfq
  - >> ip_reasm_mark_compact_rfq
  - >> ip_reasm_find_ire
  - >> ip_reasm_thread_queued_fragments_into_reassd_pkt
  - >> ip_reasm_delete_ire
  - >> ip_reasm_proc_complete_rcvd_pkt
  - >> ip_reasm_decr_mem_useage
  - >> ip_reasm_incr_mem_useage
  - >> ip_reasm_check_mem_useage
  - >> ip_reasm_determine_type_of_frag
  [Called By]
  - >> ip_reassm

  ip_reassm (Thumb, 30 bytes, Stack size 8 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 904 + Unknown Stack Size
  - Call Chain = ip_reassm ⇒ ip_reasm_process_subsequent_fragments ⇒ ip_reasm_proc_complete_rcvd_pkt ⇒ ip_demux ⇒ tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_process_first_fragment
  - >> ip_reasm_match_frag_with_ire
  [Called By]
  - >> ip_rcv_phase2

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

  - Max Depth = 640 + Unknown Stack Size
  - Call Chain = ip_reasm_send_icmp_timex ⇒ icmp_timex ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> icmp_timex
  [Called By]
  - >> ip_reasm_process_timer_tick

  ip_reasm_process_timer_tick (Thumb, 96 bytes, Stack size 24 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 664 + Unknown Stack Size
  - Call Chain = ip_reasm_process_timer_tick ⇒ ip_reasm_send_icmp_timex ⇒ icmp_timex ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> ip_reasm_send_icmp_timex
  - >> ip_reasm_delete_ire
  [Called By]
  - >> inet_timer

  ipr_stats (Thumb, 242 bytes, Stack size 64 bytes, ip_reasm.o(.text))
  [Stack]

  - Max Depth = 248 + Unknown Stack Size
  - Call Chain = ipr_stats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> prot_stat

  err_ip_rcv (Thumb, 30 bytes, Stack size 8 bytes, ipdemux.o(.text))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = err_ip_rcv ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  [Called By]
  - >> ip_rcv
  - >> ip_rcv_phase2
  - >> ip_demux

  ip_demux (Thumb, 190 bytes, Stack size 24 bytes, ipdemux.o(.text))
  [Stack]

  - Max Depth = 832 + Unknown Stack Size
  - Call Chain = ip_demux ⇒ tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> udpdemux
  - >> tcp_rcv
  - >> err_ip_rcv
  - >> icmp_destun
  - >> icmprcv
  [Called By]
  - >> ip_rcv_phase2
  - >> ip_reasm_proc_complete_rcvd_pkt

  ip_rcv_phase2 (Thumb, 96 bytes, Stack size 16 bytes, ipdemux.o(.text))
  [Stack]

  - Max Depth = 920 + Unknown Stack Size
  - Call Chain = ip_rcv_phase2 ⇒ ip_reassm ⇒ ip_reasm_process_subsequent_fragments ⇒ ip_reasm_proc_complete_rcvd_pkt ⇒ ip_demux ⇒ tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> err_ip_rcv
  - >> ip_demux
  - >> ip_reassm
  [Called By]
  - >> ip_rcv

  ip_rcv (Thumb, 150 bytes, Stack size 24 bytes, ipdemux.o(.text))
  [Stack]

  - Max Depth = 944 + Unknown Stack Size
  - Call Chain = ip_rcv ⇒ ip_rcv_phase2 ⇒ ip_reassm ⇒ ip_reasm_process_subsequent_fragments ⇒ ip_reasm_proc_complete_rcvd_pkt ⇒ ip_demux ⇒ tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ip_rcv_phase2
  - >> err_ip_rcv
  - >> cb_trunc
  - >> cksum
  [Called By]
  - >> pktdemux

  ip_stats (Thumb, 134 bytes, Stack size 16 bytes, ipdemux.o(.text))
  [Stack]

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = ip_stats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> netmain_status
  - >> prot_stat

  fixup_subnet_mask (Thumb, 46 bytes, Stack size 0 bytes, ipnet.o(.text))
  [Called By]

  - >> prep_devices
  - >> init_devices
  - >> dhc_setip
  - >> upnp_read_static_intf_cfg_from_db

  netclose (Thumb, 32 bytes, Stack size 16 bytes, ipnet.o(.text), UNUSED)

  pktdemux (Thumb, 264 bytes, Stack size 24 bytes, ipnet.o(.text))
  [Stack]

  - Max Depth = 968 + Unknown Stack Size
  - Call Chain = pktdemux ⇒ ip_rcv ⇒ ip_rcv_phase2 ⇒ ip_reassm ⇒ ip_reasm_process_subsequent_fragments ⇒ ip_reasm_proc_complete_rcvd_pkt ⇒ ip_demux ⇒ tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> getq
  - >> ip_rcv
  - >> isbcast
  - >> arprcv
  [Called By]
  - >> tk_netmain
  - >> packet_check

  ip2mac (Thumb, 236 bytes, Stack size 24 bytes, ipnet.o(.text))
  [Stack]

  - Max Depth = 384 + Unknown Stack Size
  - Call Chain = ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_gather
  - >> send_via_arp
  [Called By]
  - >> ip_write_internal
  - >> ip_fragment

  exit_hook (Thumb, 32 bytes, Stack size 16 bytes, ipstart.o(.text), UNUSED)
  [Calls]

  - >> panic

  ip_exit (Thumb, 30 bytes, Stack size 16 bytes, ipstart.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = ip_exit
  [Called By]
  - >> netmain_init

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

  - >> arp_stats
  - >> if_setparm
  - >> lb_ifsetup
  - >> dhc_upcall
  - >> AutoIp_arp_response

  udp_free (Thumb, 30 bytes, Stack size 8 bytes, udp.o(.text))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = udp_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  [Called By]
  - >> dhc_discover
  - >> dhc_upcall
  - >> dhc_decline
  - >> dhc_request
  - >> udp_send
  - >> udpdemux
  - >> dhc_release

  udpswap (Thumb, 26 bytes, Stack size 0 bytes, udp.o(.text))
  [Called By]

  - >> udp_send
  - >> udpdemux

  udpdemux (Thumb, 556 bytes, Stack size 144 bytes, udp.o(.text))
  [Stack]

  - Max Depth = 440 + Unknown Stack Size
  - Call Chain = udpdemux ⇒ icmp_destun ⇒ ip_write (Cycle)
  [Calls]
  - >> pk_chkSumPkt
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> cb_pullup
  - >> udpswap
  - >> udp_free
  - >> cb_truncf
  - >> cb_trunc
  - >> cksum
  - >> icmp_destun
  - >> __aeabi_memcpy4
  [Called By]
  - >> ip_demux

  udp_send (Thumb, 186 bytes, Stack size 32 bytes, udp.o(.text))
  [Stack]

  - Max Depth = 624 + Unknown Stack Size
  - Call Chain = udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_chkSumPkt
  - >> ip_write
  - >> ip_mymach
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> udpswap
  - >> udp_free
  - >> cksum
  [Called By]
  - >> udp4_socksend
  - >> dhc_discover
  - >> dhc_decline
  - >> dhc_request
  - >> dhc_release

  udp_socket (Thumb, 70 bytes, Stack size 8 bytes, udp.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = udp_socket
  [Called By]
  - >> udp4_sockbind
  - >> udp_usrreq

  udp_alloc (Thumb, 68 bytes, Stack size 16 bytes, udp.o(.text))
  [Stack]

  - Max Depth = 256 + Unknown Stack Size
  - Call Chain = udp_alloc ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_alloc_internal
  [Called By]
  - >> udp4_socksend
  - >> dhc_discover
  - >> dhc_decline
  - >> dhc_request
  - >> udp_clone
  - >> dhc_release

  udp_clone (Thumb, 90 bytes, Stack size 32 bytes, udp.o(.text), UNUSED)
  [Calls]

  - >> udp_alloc
  - >> __aeabi_memcpy4
  - >> __aeabi_memcpy

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

  - Max Depth = 24
  - Call Chain = udp_maxalloc ⇒ pk_maxfree
  [Calls]
  - >> pk_maxfree
  [Called By]
  - >> t_sendto
  - >> udp4_socksend
  - >> udp_usrreq

  udp_getparm (Thumb, 28 bytes, Stack size 0 bytes, udp.o(.text), UNUSED)
  [Called By]

  - >> in_getparm

  udp_setparm (Thumb, 30 bytes, Stack size 0 bytes, udp.o(.text), UNUSED)
  [Called By]

  - >> in_setparm

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

  - >> in_clrstats

  udp_getstats (Thumb, 14 bytes, Stack size 0 bytes, udp.o(.text))
  [Calls]

  - >> __aeabi_memcpy
  [Called By]
  - >> in_getstats

  udp_stats (Thumb, 42 bytes, Stack size 16 bytes, udp.o(.text))
  [Stack]

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = udp_stats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> prot_stat

  udpsock_list (Thumb, 154 bytes, Stack size 32 bytes, udp.o(.text))
  [Stack]

  - Max Depth = 216 + Unknown Stack Size
  - Call Chain = udpsock_list ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> sock_info

  devlock_validate (Thumb, 76 bytes, Stack size 48 bytes, devlock.o(.text))
  [Stack]

  - Max Depth = 68
  - Call Chain = devlock_validate ⇒ devlock_decode
  [Calls]
  - >> alt_dev
  - >> devlock_decode
  [Called By]
  - >> netmain_prep

  alt_format (Thumb, 870 bytes, Stack size 80 bytes, devlock.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = alt_format
  [Called By]
  - >> alt_check

  cb_read (Thumb, 144 bytes, Stack size 32 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = cb_read
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> ping_send
  - >> udp4_socksend
  - >> pk_copy
  - >> ip_fragment

  cb_write (Thumb, 98 bytes, Stack size 24 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = cb_write
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> pingapp_rcv
  - >> dhcp_read
  - >> pk_gather
  - >> tcp_rcv
  - >> ip_fragment
  - >> icmp_timex
  - >> icmp_destun

  cb_writex (Thumb, 136 bytes, Stack size 56 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = cb_writex
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> ping_send
  - >> dhcp_write

  cb_writey (Thumb, 152 bytes, Stack size 56 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = cb_writey
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> ping_send
  - >> ip_write2

  cb_copyl (Thumb, 188 bytes, Stack size 40 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = cb_copyl
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> dhc_decline

  cb_nset (Thumb, 118 bytes, Stack size 56 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = cb_nset
  [Calls]
  - >> __aeabi_memset
  [Called By]
  - >> ping_send
  - >> dhc_buildheader

  cb_spacef (Thumb, 44 bytes, Stack size 8 bytes, cb.o(.text), UNUSED)
  [Called By]

  - >> ip_write2

  cb_trim (Thumb, 154 bytes, Stack size 40 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = cb_trim ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_free
  - >> __aeabi_memcpy
  [Called By]
  - >> cb_trunc

  cb_trunc (Thumb, 4 bytes, Stack size 0 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = cb_trunc ⇒ cb_trim ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cb_trim
  [Called By]
  - >> udpdemux
  - >> ip_rcv
  - >> ip_reasm_compute_overlap

  cb_trimf (Thumb, 144 bytes, Stack size 40 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = cb_trimf ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_free
  - >> __aeabi_memcpy
  [Called By]
  - >> cb_truncf

  cb_truncf (Thumb, 4 bytes, Stack size 0 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = cb_truncf ⇒ cb_trimf ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cb_trimf
  [Called By]
  - >> lb_pkt_send
  - >> udpdemux
  - >> ip_reasm_compute_overlap
  - >> ip_reasm_process_first_fragment

  cb_pullup (Thumb, 250 bytes, Stack size 40 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 280 + Unknown Stack Size
  - Call Chain = cb_pullup ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_free
  - >> pk_alloc_internal
  - >> __aeabi_memcpy
  [Called By]
  - >> udpdemux
  - >> tcp_rcv

  cb_ncmp (Thumb, 76 bytes, Stack size 16 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = cb_ncmp
  [Called By]
  - >> ping_match

  cb_bcmp (Thumb, 118 bytes, Stack size 32 bytes, cb.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = cb_bcmp ⇒ memcmp
  [Calls]
  - >> memcmp
  [Called By]
  - >> ping_match

  cb_dumpx (Thumb, 74 bytes, Stack size 24 bytes, cb.o(.text), UNUSED)
  [Calls]

  - >> gio_hexdump
  - >> __2printf

  gio_dev (Thumb, 62 bytes, Stack size 24 bytes, gio.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = gio_dev ⇒ npalloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  [Called By]
  - >> gio_push

  gio_push (Thumb, 84 bytes, Stack size 40 bytes, gio.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = gio_push ⇒ gio_dev ⇒ npalloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  - >> gio_dev
  - >> __aeabi_memcpy4
  [Called By]
  - >> console_init

  gio_pop (Thumb, 48 bytes, Stack size 16 bytes, gio.o(.text), UNUSED)
  [Calls]

  - >> npfree
  - >> __aeabi_memcpy4

  gio_io_done (Thumb, 16 bytes, Stack size 0 bytes, gio.o(.text), UNUSED)

  gio_stdin (Thumb, 66 bytes, Stack size 24 bytes, gio.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = gio_stdin ⇒ getch ⇒ uart_getc
  [Calls]
  - >> kbhit
  - >> getch
  [Address Reference Count : 2]
  - console_mod.o(.text)
  - gio.o(.data)

  gio_stdout (Thumb, 36 bytes, Stack size 16 bytes, gio.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = gio_stdout ⇒ dputchar
  [Calls]
  - >> dputchar
  [Address Reference Count : 2]
  - console_mod.o(.text)
  - gio.o(.data)

  gio_sockin (Thumb, 30 bytes, Stack size 8 bytes, gio.o(.text), UNUSED)
  [Calls]

  - >> t_recv
  - >> t_errno

  gio_sockout (Thumb, 30 bytes, Stack size 8 bytes, gio.o(.text), UNUSED)
  [Calls]

  - >> t_send
  - >> t_errno

  gio_nullin (Thumb, 6 bytes, Stack size 0 bytes, gio.o(.text), UNUSED)

  gio_nullout (Thumb, 4 bytes, Stack size 0 bytes, gio.o(.text), UNUSED)

  gio_in (Thumb, 82 bytes, Stack size 24 bytes, gio.o(.text), UNUSED)
  [Calls]

  - >> vTaskDelay

  gio_out (Thumb, 86 bytes, Stack size 24 bytes, gio.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = gio_out ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vTaskDelay
  [Called By]
  - >> gio_hexdump
  - >> kbdio
  - >> gio_printf
  - >> cli_command

  gio_printf (Thumb, 138 bytes, Stack size 40 bytes, gio.o(.text))
  [Stack]

  - Max Depth = 184 + Unknown Stack Size
  - Call Chain = gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npfree
  - >> npalloc
  - >> panic
  - >> gio_out
  - >> __c89vsprintf
  - >> strlen
  [Called By]
  - >> netmain_status
  - >> netmain_setip
  - >> netmain_linkstats
  - >> netmain_iface
  - >> netdiag_nslookup
  - >> netdiag_dnssvr
  - >> netdiag_arp
  - >> dhcpc_netstat
  - >> udpsock_list
  - >> udp_stats
  - >> tcpsock_list
  - >> station_state
  - >> ipr_stats
  - >> ip_stats
  - >> icmp_stats
  - >> dumpqueues
  - >> dump_buf_estats
  - >> mbuf_list
  - >> mbuf_stat
  - >> ping_dump
  - >> dnc_dump_status
  - >> dnc_dump_hostent
  - >> arp_stats
  - >> ping_start
  - >> ping_cbk
  - >> upnp_ifstats
  - >> kbdio
  - >> cli_nt_echo
  - >> cli_nt_config
  - >> cli_command
  - >> cli_showcommands
  - >> cli_usage
  - >> tcp_mibstat
  - >> tcp_bsdconnstat
  - >> tcp_bsdsendstat
  - >> tcp_bsdrcvstat

  kbdio (Thumb, 244 bytes, Stack size 32 bytes, gio.o(.text))
  [Stack]

  - Max Depth = 472 + Unknown Stack Size
  - Call Chain = kbdio ⇒ cli_command ⇒ cli_showcommands ⇒ cli_usage ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  - >> gio_out
  - >> cli_command
  - >> kbhit
  - >> getch
  - >> strlen
  - >> putc
  [Called By]
  - >> tk_console

  do_trap (Thumb, 4 bytes, Stack size 0 bytes, in_utils.o(.text), UNUSED)

  nextarg (Thumb, 22 bytes, Stack size 0 bytes, in_utils.o(.text), UNUSED)

  gio_hexdump (Thumb, 210 bytes, Stack size 152 bytes, in_utils.o(.text))
  [Stack]

  - Max Depth = 288 + Unknown Stack Size
  - Call Chain = gio_hexdump ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_out
  - >> __2sprintf
  [Called By]
  - >> netmain_iface
  - >> cb_dumpx

  print_ipad (Thumb, 30 bytes, Stack size 16 bytes, in_utils.o(.text))
  [Stack]

  - Max Depth = 152 + Unknown Stack Size
  - Call Chain = print_ipad ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> __2sprintf
  [Called By]
  - >> station_state
  - >> AutoIp_set_net_vars
  - >> print46_addr
  - >> inet_ntop

  print_uptime (Thumb, 78 bytes, Stack size 16 bytes, in_utils.o(.text))
  [Stack]

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

  print_eth (Thumb, 76 bytes, Stack size 12 bytes, in_utils.o(.text), UNUSED)

  uslash (Thumb, 22 bytes, Stack size 0 bytes, in_utils.o(.text), UNUSED)

  qname (Thumb, 106 bytes, Stack size 16 bytes, in_utils.o(.text), UNUSED)
  [Calls]

  - >> socket_queue_name
  - >> pk_Qname
  - >> pk_member
  - >> find_arp_pkt
  - >> strcpy

  dumpqueues (Thumb, 188 bytes, Stack size 48 bytes, in_utils.o(.text))
  [Stack]

  - Max Depth = 232 + Unknown Stack Size
  - Call Chain = dumpqueues ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> netmain_status
  - >> netmain_netstat
  - >> dumpqueuesCTX

  resetqueues (Thumb, 50 bytes, Stack size 8 bytes, in_utils.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = resetqueues
  [Called By]
  - >> dumpqueuesCTX

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

  bit2chr (Thumb, 26 bytes, Stack size 0 bytes, in_utils.o(.text), UNUSED)

  str2bit (Thumb, 36 bytes, Stack size 16 bytes, in_utils.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = str2bit ⇒ stricmp ⇒ strnicmp
  [Calls]
  - >> stricmp
  [Called By]
  - >> netmain_setip_prot2mask

  bit2str (Thumb, 26 bytes, Stack size 0 bytes, in_utils.o(.text), UNUSED)

  in_bit2chr (Thumb, 56 bytes, Stack size 20 bytes, in_utils.o(.text), UNUSED)

  in_bit2str (Thumb, 80 bytes, Stack size 40 bytes, in_utils.o(.text))
  [Stack]

  - Max Depth = 52
  - Call Chain = in_bit2str ⇒ strcpy
  [Calls]
  - >> strlen
  - >> strcpy
  [Called By]
  - >> netmain_iface

  parse_ipad (Thumb, 220 bytes, Stack size 40 bytes, parseip.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = parse_ipad ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> atoi
  [Called By]
  - >> inet_pton
  - >> inet_addr

  inet_addr (Thumb, 30 bytes, Stack size 16 bytes, parseip.o(.text), UNUSED)
  [Calls]

  - >> parse_ipad
  - >> strcpy
  [Called By]
  - >> inet46_addr

  hextoa (Thumb, 18 bytes, Stack size 0 bytes, parseip.o(.text), UNUSED)

  inet_pton (Thumb, 248 bytes, Stack size 40 bytes, parseip.o(.text))
  [Stack]

  - Max Depth = 168
  - Call Chain = inet_pton ⇒ parse_ipad ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> atoh
  - >> parse_ipad
  - >> strchr
  [Called By]
  - >> in_v4addrcfg
  - >> in_cfgstack
  - >> cli_parse_ipaddr

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

  - >> print_ipad
  - >> strlen
  - >> strcpy

  if_nametoindex (Thumb, 46 bytes, Stack size 24 bytes, parseip.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = if_nametoindex
  [Calls]
  - >> strcmp
  [Called By]
  - >> in_addrconf_release
  - >> in_addrconf_acquire

  if_nameindex (Thumb, 60 bytes, Stack size 16 bytes, parseip.o(.text), UNUSED)
  [Calls]

  - >> npalloc

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

  - >> npfree

  if_indextoname (Thumb, 46 bytes, Stack size 8 bytes, parseip.o(.text), UNUSED)
  [Calls]

  - >> strcpy

  print46_addr (Thumb, 16 bytes, Stack size 0 bytes, parseip.o(.text), UNUSED)
  [Calls]

  - >> print_ipad

  inet46_addr (Thumb, 44 bytes, Stack size 16 bytes, parseip.o(.text), UNUSED)
  [Calls]

  - >> inet_addr

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

  convert_ip (Thumb, 66 bytes, Stack size 20 bytes, parseip.o(.text), UNUSED)

  strnicmp (Thumb, 64 bytes, Stack size 12 bytes, strilib.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = strnicmp
  [Called By]
  - >> stricmp
  - >> cli_cmdlookup
  - >> stristr

  stricmp (Thumb, 36 bytes, Stack size 16 bytes, strilib.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = stricmp ⇒ strnicmp
  [Calls]
  - >> strnicmp
  - >> strlen
  [Called By]
  - >> netdiag_arp
  - >> str2bit
  - >> prot_stat
  - >> sock_info
  - >> dnc_rx
  - >> dnc_chk_resolved
  - >> dnc_proc_answer_rr
  - >> gethostbyname
  - >> cli_showcommands
  - >> cli_install_menu
  - >> cli_cmdlookup
  - >> qname2qptr

  stristr (Thumb, 72 bytes, Stack size 16 bytes, strilib.o(.text), UNUSED)
  [Calls]

  - >> strnicmp
  - >> strlen

  dhcpc_prep (Thumb, 70 bytes, Stack size 8 bytes, dc_mod.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = dhcpc_prep ⇒ __aeabi_memclr4
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> netmain_prep

  dhcpc_start (Thumb, 10 bytes, Stack size 8 bytes, dc_mod.o(.text))
  [Stack]

  - Max Depth = 784 + Unknown Stack Size
  - Call Chain = dhcpc_start ⇒ upnp_loop ⇒ Upnp_tick ⇒ dhc_second ⇒ dhc_renew ⇒ dhc_reclaim ⇒ dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> upnp_loop
  [Called By]
  - >> netmain_start

  dhcpc_close (Thumb, 84 bytes, Stack size 16 bytes, dc_mod.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = dhcpc_close ⇒ udp_close ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> udp_close
  - >> __aeabi_memclr4
  [Called By]
  - >> netmain_close

  dhcp_read (Thumb, 20 bytes, Stack size 8 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = dhcp_read ⇒ cb_write
  [Calls]
  - >> cb_write
  [Called By]
  - >> dhc_upcall
  - >> dhc_rx_offer
  - >> dhcp_wr_opt_tlv
  - >> dhcp_find_opt

  dhcp_find_opt (Thumb, 184 bytes, Stack size 72 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = dhcp_find_opt ⇒ dhcp_read ⇒ cb_write
  [Calls]
  - >> dhcp_read
  [Called By]
  - >> dhcp_det_opt_len
  - >> dhcp_rd_opt_tlv

  dhcp_rd_opt_tlv (Thumb, 170 bytes, Stack size 80 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 184
  - Call Chain = dhcp_rd_opt_tlv ⇒ dhcp_find_opt ⇒ dhcp_read ⇒ cb_write
  [Calls]
  - >> dhcp_find_opt
  [Called By]
  - >> dhc_upcall
  - >> dhc_decline
  - >> dhc_extract_opts
  - >> dhc_get_srv_ipaddr

  dhc_get_srv_ipaddr (Thumb, 28 bytes, Stack size 16 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 200
  - Call Chain = dhc_get_srv_ipaddr ⇒ dhcp_rd_opt_tlv ⇒ dhcp_find_opt ⇒ dhcp_read ⇒ cb_write
  [Calls]
  - >> dhcp_rd_opt_tlv
  [Called By]
  - >> dhc_upcall

  dhc_set_state (Thumb, 34 bytes, Stack size 8 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = dhc_set_state
  [Called By]
  - >> dhc_renew
  - >> dhc_discover
  - >> dhc_upcall
  - >> dhc_state_init
  - >> dhc_second
  - >> dhc_halt

  dhc_setip (Thumb, 74 bytes, Stack size 16 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = dhc_setip
  [Calls]
  - >> fixup_subnet_mask
  [Called By]
  - >> dhc_upcall

  dhc_extract_opts (Thumb, 132 bytes, Stack size 64 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 248
  - Call Chain = dhc_extract_opts ⇒ dhcp_rd_opt_tlv ⇒ dhcp_find_opt ⇒ dhcp_read ⇒ cb_write
  [Calls]
  - >> dhcp_rd_opt_tlv
  - >> __aeabi_memcpy4
  [Called By]
  - >> dhc_upcall
  - >> dhc_rx_offer

  dhcp_write (Thumb, 36 bytes, Stack size 16 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = dhcp_write ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cb_writex
  - >> __2printf
  [Called By]
  - >> dhc_discover
  - >> dhc_decline
  - >> dhc_request
  - >> dhc_buildheader
  - >> dhcp_wr_opt_tlv
  - >> dhc_release

  dhcp_wr_opt_tlv (Thumb, 232 bytes, Stack size 56 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 216 + Unknown Stack Size
  - Call Chain = dhcp_wr_opt_tlv ⇒ dhcp_write ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dhcp_write
  - >> dhcp_read
  [Called By]
  - >> dhc_discover
  - >> dhc_request
  - >> dhc_release

  dhc_buildheader (Thumb, 174 bytes, Stack size 40 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = dhc_buildheader ⇒ dhcp_write ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cb_nset
  - >> dhcp_write
  [Called By]
  - >> dhc_discover
  - >> dhc_request
  - >> dhc_release

  dhc_request (Thumb, 626 bytes, Stack size 64 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 688 + Unknown Stack Size
  - Call Chain = dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dhc_buildheader
  - >> dhcp_wr_opt_tlv
  - >> dhcp_write
  - >> udp_alloc
  - >> udp_send
  - >> udp_free
  [Called By]
  - >> dhc_reclaim
  - >> dhc_rx_offer
  - >> dhc_second

  dhc_decline (Thumb, 154 bytes, Stack size 40 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 664 + Unknown Stack Size
  - Call Chain = dhc_decline ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dhcp_write
  - >> dhcp_rd_opt_tlv
  - >> cb_copyl
  - >> udp_alloc
  - >> udp_send
  - >> udp_free
  [Called By]
  - >> dhc_rx_offer

  dhc_rx_offer (Thumb, 100 bytes, Stack size 24 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 712 + Unknown Stack Size
  - Call Chain = dhc_rx_offer ⇒ dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dhc_decline
  - >> dhc_request
  - >> dhc_extract_opts
  - >> dhcp_read
  [Called By]
  - >> dhc_upcall

  dhc_upcall (Thumb, 684 bytes, Stack size 80 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 792 + Unknown Stack Size
  - Call Chain = dhc_upcall ⇒ dhc_rx_offer ⇒ dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> dhc_rx_offer
  - >> dhc_extract_opts
  - >> dhc_setip
  - >> dhc_set_state
  - >> dhc_get_srv_ipaddr
  - >> dhcp_rd_opt_tlv
  - >> dhcp_read
  - >> udp_free
  - >> if_netnumber
  - >> memcmp
  [Address Reference Count : 1]
  - dhcpclnt.o(.text)

  dhc_init (Thumb, 66 bytes, Stack size 8 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 168
  - Call Chain = dhc_init ⇒ udp_open ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> udp_open
  [Called By]
  - >> Upnp_initialize

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

  - >> upnp_ifp_setup

  dhc_discover (Thumb, 334 bytes, Stack size 56 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 680 + Unknown Stack Size
  - Call Chain = dhc_discover ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> sysuptime
  - >> dhc_buildheader
  - >> dhcp_wr_opt_tlv
  - >> dhcp_write
  - >> dhc_set_state
  - >> udp_alloc
  - >> udp_send
  - >> udp_free
  [Called By]
  - >> dhc_second

  dhc_release (Thumb, 320 bytes, Stack size 72 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 696 + Unknown Stack Size
  - Call Chain = dhc_release ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> sysuptime
  - >> dhc_buildheader
  - >> dhcp_wr_opt_tlv
  - >> dhcp_write
  - >> udp_alloc
  - >> udp_send
  - >> udp_free
  [Called By]
  - >> in_addrconf_release
  - >> in_addrconf_acquire

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

  - >> dhc_renew

  dhc_reclaim (Thumb, 48 bytes, Stack size 8 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 696 + Unknown Stack Size
  - Call Chain = dhc_reclaim ⇒ dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dhc_request
  [Called By]
  - >> dhc_renew
  - >> dhc_second

  dhc_renew (Thumb, 74 bytes, Stack size 8 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 704 + Unknown Stack Size
  - Call Chain = dhc_renew ⇒ dhc_reclaim ⇒ dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dhc_reclaim
  - >> dhc_resetip
  - >> dhc_set_state
  [Called By]
  - >> dhc_second

  dhc_second (Thumb, 382 bytes, Stack size 24 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 728 + Unknown Stack Size
  - Call Chain = dhc_second ⇒ dhc_renew ⇒ dhc_reclaim ⇒ dhc_request ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dhc_renew
  - >> dhc_reclaim
  - >> dhc_discover
  - >> dhc_request
  - >> dhc_set_state
  [Called By]
  - >> Upnp_tick

  dhc_halt (Thumb, 38 bytes, Stack size 8 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = dhc_halt ⇒ dhc_set_state
  [Calls]
  - >> dhc_set_state
  - >> __aeabi_memclr4
  [Called By]
  - >> in_addrconf_release
  - >> in_addrconf_acquire
  - >> Upnp_tick
  - >> upnp_cleanup_check

  dhc_state_init (Thumb, 54 bytes, Stack size 8 bytes, dhcpclnt.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = dhc_state_init ⇒ dhc_set_state
  [Calls]
  - >> dhc_set_state
  [Called By]
  - >> dhc_ifp_setup
  - >> upnp_ifp_setup

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

  - >> dhc_alldone

  dhc_alldone (Thumb, 24 bytes, Stack size 4 bytes, dhcpclnt.o(.text), UNUSED)
  [Calls]

  - >> dhc_ifacedone

  dhcp_det_opt_len (Thumb, 146 bytes, Stack size 40 bytes, dhcpclnt.o(.text), UNUSED)
  [Calls]

  - >> __2printf
  - >> dhcp_find_opt

  dhcpc_clrstats (Thumb, 10 bytes, Stack size 0 bytes, dhcpclnt.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memclr4
  [Called By]
  - >> in_clrstats

  dhcpc_getstats (Thumb, 16 bytes, Stack size 0 bytes, dhcpclnt.o(.text))
  [Calls]

  - >> __aeabi_memcpy
  [Called By]
  - >> in_getstats

  dhcpc_getparm (Thumb, 22 bytes, Stack size 0 bytes, dhcpclnt.o(.text), UNUSED)
  [Called By]

  - >> in_getparm

  dhcpc_setparm (Thumb, 22 bytes, Stack size 0 bytes, dhcpclnt.o(.text), UNUSED)
  [Called By]

  - >> in_setparm

  lb_close (Thumb, 28 bytes, Stack size 0 bytes, macloop.o(.text))
  [Address Reference Count : 1]

  - macloop.o(.text)

  lb_pkt_send (Thumb, 110 bytes, Stack size 16 bytes, macloop.o(.text))
  [Stack]

  - Max Depth = 256 + Unknown Stack Size
  - Call Chain = lb_pkt_send ⇒ cb_truncf ⇒ cb_trimf ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_sem_post
  - >> putq
  - >> cb_truncf
  [Address Reference Count : 1]
  - macloop.o(.text)

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

  - macloop.o(.text)

  lb_ifsetup (Thumb, 134 bytes, Stack size 16 bytes, macloop.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = lb_ifsetup
  [Calls]
  - >> if_netnumber
  [Called By]
  - >> lb_prep

  lb_prep (Thumb, 32 bytes, Stack size 8 bytes, macloop.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = lb_prep ⇒ lb_ifsetup
  [Calls]
  - >> lb_ifsetup
  [Address Reference Count : 1]
  - ininit.o(.data)

  lb_reg_type (Thumb, 28 bytes, Stack size 0 bytes, macloop.o(.text), UNUSED)

  pk_init (Thumb, 386 bytes, Stack size 40 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 184 + Unknown Stack Size
  - Call Chain = pk_init ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ahb_alloc
  - >> panic
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> putq
  - >> __2sprintf
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy4
  [Called By]
  - >> init_packets

  pk_get_mbuf (Thumb, 6 bytes, Stack size 0 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = pk_get_mbuf ⇒ getq ⇒ vPortExitCritical
  [Calls]
  - >> getq
  [Called By]
  - >> m_getnbuf

  pk_put_mbuf (Thumb, 72 bytes, Stack size 16 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 192 + Unknown Stack Size
  - Call Chain = pk_put_mbuf ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> putq
  - >> pk_Qdelete
  [Called By]
  - >> m_free

  pk_validate (Thumb, 164 bytes, Stack size 32 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = pk_validate ⇒ vPortExitCritical
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> pk_free

  pk_free (Thumb, 186 bytes, Stack size 24 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> putq
  - >> pk_validate
  - >> pk_Qdelete
  [Called By]
  - >> sosend
  - >> soreceive
  - >> m_getnbuf
  - >> pingapp_rcv
  - >> pktdemux
  - >> ping_send
  - >> grat_arp
  - >> pk_alloc_internal
  - >> eth_refill
  - >> eth_reset
  - >> udp4_socksend
  - >> m_free
  - >> pk_prepend
  - >> pk_copyOut
  - >> pk_copy
  - >> cb_trimf
  - >> cb_trim
  - >> cb_pullup
  - >> udp_free
  - >> pk_gather
  - >> tcp_rcv
  - >> err_ip_rcv
  - >> ip_demux
  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_compute_overlap
  - >> ip_reasm_delete_ire
  - >> ip_reasm_process_first_fragment
  - >> ip2mac
  - >> ip_write2
  - >> ip_write_internal
  - >> ip_fragment
  - >> so_icmpdu
  - >> icmprcv
  - >> send_via_arp
  - >> arprcv
  - >> arpReply
  - >> send_arp
  - >> et_send
  - >> arp_free_pending

  pk_alloc_internal (Thumb, 338 bytes, Stack size 40 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_free
  - >> getq
  [Called By]
  - >> sosend
  - >> m_getnbuf
  - >> ping_send
  - >> grat_arp
  - >> eth_refill
  - >> eth_rxtx_init
  - >> copypartdata
  - >> AutoIp_send_arp_probe
  - >> pk_prepend
  - >> pk_copy
  - >> cb_pullup
  - >> udp_alloc
  - >> pk_gather
  - >> pk_copyPkt
  - >> ip_write2
  - >> ip_fragment
  - >> icmp_timex
  - >> icmp_destun
  - >> arpReply
  - >> send_arp

  pk_poll (Thumb, 46 bytes, Stack size 0 bytes, pktalloc.o(.text))
  [Called By]

  - >> tcp_output
  - >> send_via_arp

  pk_maxfree (Thumb, 42 bytes, Stack size 16 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = pk_maxfree
  [Called By]
  - >> udp_maxalloc

  pk_maxblk (Thumb, 20 bytes, Stack size 0 bytes, pktalloc.o(.text), UNUSED)

  pk_maxBlkSz (Thumb, 40 bytes, Stack size 12 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = pk_maxBlkSz
  [Called By]
  - >> sosend

  pk_minBlkSz (Thumb, 44 bytes, Stack size 0 bytes, pktalloc.o(.text))
  [Called By]

  - >> send_via_arp

  pk_Qname (Thumb, 124 bytes, Stack size 24 bytes, pktalloc.o(.text), UNUSED)
  [Calls]

  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> strcpy
  [Called By]
  - >> qname

  pk_copy (Thumb, 62 bytes, Stack size 24 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = pk_copy ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cb_read
  - >> pk_free
  - >> pk_alloc_internal
  [Called By]
  - >> tcp_output

  pk_copyOut (Thumb, 94 bytes, Stack size 32 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 232 + Unknown Stack Size
  - Call Chain = pk_copyOut ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_free
  - >> __aeabi_memcpy
  [Called By]
  - >> soreceive

  pk_copyPkt (Thumb, 298 bytes, Stack size 56 bytes, pktalloc.o(.text), UNUSED)
  [Calls]

  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_alloc_internal
  - >> __aeabi_memcpy
  [Called By]
  - >> ip_copypkt

  pk_sumChk (Thumb, 22 bytes, Stack size 0 bytes, pktalloc.o(.text), UNUSED)

  pk_dmpChain (Thumb, 10 bytes, Stack size 0 bytes, pktalloc.o(.text), UNUSED)

  pk_member (Thumb, 18 bytes, Stack size 0 bytes, pktalloc.o(.text), UNUSED)
  [Called By]

  - >> qname
  - >> find_arp_pkt

  pk_chkSumPkt (Thumb, 162 bytes, Stack size 40 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = pk_chkSumPkt
  [Calls]
  - >> shortSum
  [Called By]
  - >> ping_send
  - >> udp_cksum
  - >> tcp_cksum
  - >> udp_send
  - >> udpdemux
  - >> icmprcv

  pk_prepend (Thumb, 94 bytes, Stack size 16 bytes, pktalloc.o(.text), UNUSED)
  [Calls]

  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_alloc_internal

  pk_gather (Thumb, 78 bytes, Stack size 16 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 256 + Unknown Stack Size
  - Call Chain = pk_gather ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cb_write
  - >> pk_free
  - >> pk_alloc_internal
  [Called By]
  - >> ip2mac

  pk_get_max_intrsafe_buf_len (Thumb, 38 bytes, Stack size 12 bytes, pktalloc.o(.text), UNUSED)

  dump_buf_estats (Thumb, 72 bytes, Stack size 24 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = dump_buf_estats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> gio_printf
  [Called By]
  - >> netmain_netstat
  - >> dumpqueuesCTX

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

  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_compute_overlap
  - >> ip_reasm_delete_ire
  - >> ip_reasm_process_first_fragment

  pk_delQ (Thumb, 224 bytes, Stack size 32 bytes, pktalloc.o(.text), UNUSED)
  [Calls]

  - >> tk_res_unlock
  - >> tk_res_lock
  - >> putq
  - >> getq
  - >> qdel
  - >> pk_Qdelete

  qname2qptr (Thumb, 50 bytes, Stack size 16 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = qname2qptr ⇒ stricmp ⇒ strnicmp
  [Calls]
  - >> stricmp
  [Called By]
  - >> queue_getstats

  queue_getstats (Thumb, 166 bytes, Stack size 40 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 84
  - Call Chain = queue_getstats ⇒ qname2qptr ⇒ stricmp ⇒ strnicmp
  [Calls]
  - >> qname2qptr
  - >> strcpy
  [Called By]
  - >> in_getstats

  getq (Thumb, 48 bytes, Stack size 16 bytes, q.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = getq ⇒ vPortExitCritical
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> pktdemux
  - >> pk_alloc_internal
  - >> eth_refill
  - >> eth_reset
  - >> pk_delQ
  - >> pk_get_mbuf

  putq (Thumb, 50 bytes, Stack size 16 bytes, q.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = putq ⇒ vPortExitCritical
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> socreate
  - >> m_getnbuf
  - >> pk_init
  - >> prep_devices
  - >> pk_free
  - >> eth_refill
  - >> eth_rxtx_init
  - >> sonewconn
  - >> pk_delQ
  - >> pk_put_mbuf
  - >> lb_pkt_send
  - >> ip_write_internal

  qdel (Thumb, 76 bytes, Stack size 16 bytes, q.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = qdel ⇒ vPortExitCritical
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> sonewconn
  - >> sofree
  - >> m_free
  - >> pk_delQ

  pffindtype (Thumb, 26 bytes, Stack size 0 bytes, nptcp.o(.text))
  [Called By]

  - >> socreate
  - >> pffindproto

  pffindproto (Thumb, 10 bytes, Stack size 0 bytes, nptcp.o(.text))
  [Calls]

  - >> pffindtype
  [Called By]
  - >> socreate

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

  - Max Depth = 12
  - Call Chain = nptcp_init ⇒ __aeabi_memclr4
  [Calls]
  - >> tcp_init
  - >> __aeabi_memclr4
  [Called By]
  - >> tcpinit

  m_free (Thumb, 82 bytes, Stack size 16 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 216 + Unknown Stack Size
  - Call Chain = m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> qdel
  - >> pk_put_mbuf
  [Called By]
  - >> soreceive
  - >> m_freem
  - >> udp4_socksend
  - >> tcp_dooptions
  - >> sbdroprecord
  - >> sbcompress
  - >> sbdrop
  - >> tcp_input
  - >> ip_output
  - >> tcp_rcv

  m_getnbuf (Thumb, 150 bytes, Stack size 24 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> putq
  - >> pk_free
  - >> pk_alloc_internal
  - >> pk_get_mbuf
  [Called By]
  - >> t_accept
  - >> sosend
  - >> soreceive
  - >> sockargs
  - >> t_getname
  - >> fix_mbuf
  - >> tcp_respond
  - >> sbappendaddr
  - >> udp_soinput
  - >> tcp_input
  - >> m_copy
  - >> tcp_rcv

  tcp_rcv (Thumb, 388 bytes, Stack size 48 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 808 + Unknown Stack Size
  - Call Chain = tcp_rcv ⇒ tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> m_getnbuf
  - >> cb_write
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> tcp_input
  - >> tcp_cksum
  - >> m_free
  - >> cb_pullup
  [Called By]
  - >> ip_demux

  ip_output (Thumb, 106 bytes, Stack size 16 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 608 + Unknown Stack Size
  - Call Chain = ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> ip_write
  - >> tcp_cksum
  - >> m_free
  [Called By]
  - >> tcp_respond
  - >> tcp_output

  in_broadcast (Thumb, 12 bytes, Stack size 0 bytes, nptcp.o(.text))
  [Called By]

  - >> tcp_input

  np_stripoptions (Thumb, 56 bytes, Stack size 16 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = np_stripoptions
  [Calls]
  - >> __aeabi_memmove
  [Called By]
  - >> tcp_input

  tcp_bsdrcvstat (Thumb, 608 bytes, Stack size 16 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = tcp_bsdrcvstat ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> tcp_stats

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

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = tcp_bsdsendstat ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> tcp_stats

  tcp_bsdconnstat (Thumb, 118 bytes, Stack size 16 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = tcp_bsdconnstat ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> tcp_stats

  tcp_mibstat (Thumb, 92 bytes, Stack size 16 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 200 + Unknown Stack Size
  - Call Chain = tcp_mibstat ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> tcp_stats

  tcp_stats (Thumb, 30 bytes, Stack size 8 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = tcp_stats ⇒ tcp_mibstat ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tcp_mibstat
  - >> tcp_bsdconnstat
  - >> tcp_bsdsendstat
  - >> tcp_bsdrcvstat
  [Called By]
  - >> prot_stat

  tcpsock_list (Thumb, 1140 bytes, Stack size 40 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 224 + Unknown Stack Size
  - Call Chain = tcpsock_list ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  [Called By]
  - >> sock_info

  search_mbuf_queue (Thumb, 16 bytes, Stack size 0 bytes, nptcp.o(.text), UNUSED)
  [Called By]

  - >> socket_queue_name

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

  - >> search_mbuf_queue
  [Called By]
  - >> qname

  so_icmpdu (Thumb, 184 bytes, Stack size 32 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 352 + Unknown Stack Size
  - Call Chain = so_icmpdu ⇒ tcp_close ⇒ in_pcbdetach ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> tcp_close
  - >> sbwakeup
  - >> in_pcblookup
  [Called By]
  - >> icmp_du

  tcp_tick (Thumb, 82 bytes, Stack size 16 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 816 + Unknown Stack Size
  - Call Chain = tcp_tick ⇒ tcp_slowtimo ⇒ tcp_usrreq ⇒ tcp_timers ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> tcp_slowtimo
  - >> tcp_fasttimo
  [Called By]
  - >> inet_timer

  m_freem (Thumb, 16 bytes, Stack size 8 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 224 + Unknown Stack Size
  - Call Chain = m_freem ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> m_free
  [Called By]
  - >> t_bind
  - >> t_accept
  - >> sosend
  - >> soreceive
  - >> t_connect
  - >> t_getname
  - >> t_sendto
  - >> t_recvfrom
  - >> tcp_respond
  - >> tcp_output
  - >> tcp_reass
  - >> sbdropend
  - >> udp_soinput
  - >> tcp_usrreq
  - >> tcp_input
  - >> tcp_close
  - >> m_copy

  m_copy (Thumb, 238 bytes, Stack size 40 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 304 + Unknown Stack Size
  - Call Chain = m_copy ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> m_getnbuf
  - >> m_freem
  - >> __aeabi_memcpy
  [Called By]
  - >> soreceive

  m_adj (Thumb, 174 bytes, Stack size 12 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = m_adj
  [Called By]
  - >> tcp_reass
  - >> sbdropend
  - >> tcp_input

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

  - >> tcp_usrreq

  dtom (Thumb, 38 bytes, Stack size 8 bytes, nptcp.o(.text))
  [Stack]

  - Max Depth = 152 + Unknown Stack Size
  - Call Chain = dtom ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  [Called By]
  - >> tcp_reass
  - >> tcp_close

  remque (Thumb, 22 bytes, Stack size 0 bytes, nptcp.o(.text))
  [Called By]

  - >> in_pcbdetach
  - >> tcp_reass
  - >> tcp_close

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

  - >> in_pcballoc
  - >> tcp_reass

  sorflush (Thumb, 78 bytes, Stack size 16 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 272 + Unknown Stack Size
  - Call Chain = sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> socantrcvmore
  - >> sbrelease
  - >> sbwakeup
  - >> __aeabi_memclr4
  [Called By]
  - >> soshutdown
  - >> sofree

  sofree (Thumb, 108 bytes, Stack size 16 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 288 + Unknown Stack Size
  - Call Chain = sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npfree
  - >> panic
  - >> soqremque
  - >> tk_sem_free
  - >> sbrelease
  - >> sorflush
  - >> qdel
  [Called By]
  - >> socreate
  - >> soclose
  - >> in_pcbdetach

  socreate (Thumb, 140 bytes, Stack size 32 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = socreate ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npalloc
  - >> tk_sem_create
  - >> putq
  - >> sofree
  - >> pffindproto
  - >> pffindtype
  [Called By]
  - >> t_socket

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

  - >> t_bind

  solisten (Thumb, 62 bytes, Stack size 16 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = solisten
  [Called By]
  - >> t_listen

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

  - >> soconnect
  - >> soclose

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

  - >> soclose
  - >> tcp_input
  - >> if_killsocks

  soclose (Thumb, 236 bytes, Stack size 24 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 312 + Unknown Stack Size
  - Call Chain = soclose ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tcp_sleep
  - >> sodisconnect
  - >> sofree
  - >> soabort
  [Called By]
  - >> t_socketclose

  soaccept (Thumb, 46 bytes, Stack size 16 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = soaccept ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  [Called By]
  - >> t_accept

  soconnect (Thumb, 64 bytes, Stack size 16 bytes, socket.o(.text), UNUSED)
  [Calls]

  - >> sodisconnect
  [Called By]
  - >> t_connect

  sosend (Thumb, 1054 bytes, Stack size 72 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 336 + Unknown Stack Size
  - Call Chain = sosend ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vTaskDelay
  - >> m_getnbuf
  - >> m_freem
  - >> tcp_sleep
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> pk_alloc_internal
  - >> pk_maxBlkSz
  - >> __aeabi_memcpy
  [Called By]
  - >> t_send
  - >> t_sendto

  soreceive (Thumb, 980 bytes, Stack size 88 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 392 + Unknown Stack Size
  - Call Chain = soreceive ⇒ m_copy ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> vTaskDelay
  - >> m_getnbuf
  - >> m_freem
  - >> tcp_sleep
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> m_copy
  - >> m_free
  - >> pk_copyOut
  - >> __aeabi_memcpy
  [Called By]
  - >> t_recv
  - >> t_recvfrom

  soshutdown (Thumb, 44 bytes, Stack size 16 bytes, socket.o(.text), UNUSED)
  [Calls]

  - >> sorflush
  [Called By]
  - >> t_shutdown

  sosetopt (Thumb, 280 bytes, Stack size 16 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = sosetopt
  [Calls]
  - >> sbreserve
  [Called By]
  - >> t_setsockopt

  soconverr (Thumb, 76 bytes, Stack size 0 bytes, socket.o(.text))
  [Called By]

  - >> t_errno
  - >> sogetopt

  sogetopt (Thumb, 348 bytes, Stack size 20 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = sogetopt
  [Calls]
  - >> soconverr
  [Called By]
  - >> t_getsockopt

  sohasoutofband (Thumb, 12 bytes, Stack size 0 bytes, socket.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = sohasoutofband ⇒ sbwakeup ⇒ tcp_wakeup ⇒ tk_sem_post ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> sbwakeup
  [Called By]
  - >> tcp_input

  sovalid (Thumb, 22 bytes, Stack size 0 bytes, socket.o(.text))
  [Called By]

  - >> udpsock_getstats
  - >> tcpsock_getstats

  soisconnecting (Thumb, 16 bytes, Stack size 0 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = soisconnecting ⇒ tcp_wakeup ⇒ tk_sem_post ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tcp_wakeup
  [Called By]
  - >> tcp_usrreq

  soqinsque (Thumb, 42 bytes, Stack size 0 bytes, socket2.o(.text))
  [Called By]

  - >> sonewconn
  - >> soisconnected

  soqremque (Thumb, 74 bytes, Stack size 8 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = soqremque
  [Called By]
  - >> t_accept
  - >> sonewconn
  - >> soisconnected
  - >> sofree

  soisconnected (Thumb, 64 bytes, Stack size 16 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = soisconnected ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> soqremque
  - >> tcp_wakeup
  - >> soqinsque
  [Called By]
  - >> tcp_input

  soisdisconnecting (Thumb, 16 bytes, Stack size 0 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = soisdisconnecting ⇒ tcp_wakeup ⇒ tk_sem_post ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tcp_wakeup
  [Called By]
  - >> tcp_disconnect

  soisdisconnected (Thumb, 30 bytes, Stack size 0 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = soisdisconnected ⇒ tcp_wakeup ⇒ tk_sem_post ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tcp_wakeup
  [Called By]
  - >> tcp_usrclosed
  - >> tcp_input
  - >> tcp_close

  sbdrop (Thumb, 164 bytes, Stack size 24 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> m_free
  [Called By]
  - >> sbflush
  - >> tcp_input

  sbflush (Thumb, 50 bytes, Stack size 8 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 248 + Unknown Stack Size
  - Call Chain = sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> sbdrop
  [Called By]
  - >> udp4_sockbind
  - >> tcp_disconnect
  - >> sbrelease
  - >> tcp_input

  sbrelease (Thumb, 16 bytes, Stack size 8 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 256 + Unknown Stack Size
  - Call Chain = sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> sbflush
  [Called By]
  - >> soreserve
  - >> sofree
  - >> sorflush
  - >> tcp_input

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

  - >> sosetopt
  - >> soreserve

  soreserve (Thumb, 42 bytes, Stack size 16 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 272 + Unknown Stack Size
  - Call Chain = soreserve ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> sbreserve
  - >> sbrelease
  [Called By]
  - >> tcp_attach
  - >> sonewconn

  sonewconn (Thumb, 170 bytes, Stack size 16 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 288 + Unknown Stack Size
  - Call Chain = sonewconn ⇒ soreserve ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npfree
  - >> npalloc
  - >> soqremque
  - >> tk_sem_create
  - >> putq
  - >> soreserve
  - >> soqinsque
  - >> qdel
  [Called By]
  - >> tcp_input

  sbwakeup (Thumb, 30 bytes, Stack size 0 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = sbwakeup ⇒ tcp_wakeup ⇒ tk_sem_post ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tcp_wakeup
  [Called By]
  - >> tcp_reass
  - >> socantsendmore
  - >> socantrcvmore
  - >> sohasoutofband
  - >> sorflush
  - >> tcp_input
  - >> so_icmpdu

  socantsendmore (Thumb, 14 bytes, Stack size 0 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = socantsendmore ⇒ sbwakeup ⇒ tcp_wakeup ⇒ tk_sem_post ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> sbwakeup
  [Called By]
  - >> tcp_usrreq
  - >> tcp_input

  socantrcvmore (Thumb, 14 bytes, Stack size 0 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = socantrcvmore ⇒ sbwakeup ⇒ tcp_wakeup ⇒ tk_sem_post ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> sbwakeup
  [Called By]
  - >> sorflush
  - >> tcp_input

  sbcompress (Thumb, 180 bytes, Stack size 32 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 248 + Unknown Stack Size
  - Call Chain = sbcompress ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> m_free
  - >> __aeabi_memcpy
  [Called By]
  - >> sbappendrecord
  - >> sbappend

  sbappend (Thumb, 82 bytes, Stack size 24 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 272 + Unknown Stack Size
  - Call Chain = sbappend ⇒ sbcompress ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> sbcompress
  [Called By]
  - >> tcp_reass
  - >> tcp_usrreq
  - >> tcp_input

  sbappendrecord (Thumb, 80 bytes, Stack size 16 bytes, socket2.o(.text), UNUSED)
  [Calls]

  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> sbcompress

  sbappendaddr (Thumb, 172 bytes, Stack size 24 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 288 + Unknown Stack Size
  - Call Chain = sbappendaddr ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> m_getnbuf
  - >> __aeabi_memcpy
  [Called By]
  - >> udp_soinput

  sbdropend (Thumb, 78 bytes, Stack size 16 bytes, socket2.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = sbdropend ⇒ m_freem ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> m_freem
  - >> m_adj
  [Called By]
  - >> tcp_usrreq

  sbdroprecord (Thumb, 40 bytes, Stack size 8 bytes, socket2.o(.text), UNUSED)
  [Calls]

  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> m_free

  tcp_reass (Thumb, 342 bytes, Stack size 32 bytes, tcp_in.o(.text))
  [Stack]

  - Max Depth = 304 + Unknown Stack Size
  - Call Chain = tcp_reass ⇒ sbappend ⇒ sbcompress ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> m_freem
  - >> sbappend
  - >> sbwakeup
  - >> insque
  - >> remque
  - >> dtom
  - >> m_adj
  [Called By]
  - >> tcp_input

  tcp_pulloutofband (Thumb, 88 bytes, Stack size 8 bytes, tcp_in.o(.text))
  [Stack]

  - Max Depth = 152 + Unknown Stack Size
  - Call Chain = tcp_pulloutofband ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> __aeabi_memcpy
  [Called By]
  - >> tcp_input

  tcp_xmit_timer (Thumb, 182 bytes, Stack size 8 bytes, tcp_in.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = tcp_xmit_timer
  [Called By]
  - >> tcp_input

  ip4_tcpmss (Thumb, 28 bytes, Stack size 0 bytes, tcp_in.o(.text))
  [Called By]

  - >> tcp_mss

  tcp_mss (Thumb, 92 bytes, Stack size 12 bytes, tcp_in.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = tcp_mss
  [Calls]
  - >> ip4_tcpmss
  [Called By]
  - >> tcp_output
  - >> tcp_dooptions
  - >> tcp_input

  tcp_dooptions (Thumb, 108 bytes, Stack size 32 bytes, tcp_in.o(.text))
  [Stack]

  - Max Depth = 248 + Unknown Stack Size
  - Call Chain = tcp_dooptions ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tcp_mss
  - >> m_free
  [Called By]
  - >> tcp_input

  tcp_input (Thumb, 3480 bytes, Stack size 72 bytes, tcp_in.o(.text))
  [Stack]

  - Max Depth = 760 + Unknown Stack Size
  - Call Chain = tcp_input ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> m_getnbuf
  - >> m_freem
  - >> tcp_template
  - >> tcp_respond
  - >> tcp_output
  - >> tcp_drop
  - >> tcp_canceltimers
  - >> in_pcbconnect
  - >> tcp_dooptions
  - >> tcp_mss
  - >> tcp_xmit_timer
  - >> tcp_pulloutofband
  - >> tcp_reass
  - >> sbappend
  - >> socantsendmore
  - >> sonewconn
  - >> sbflush
  - >> sbdrop
  - >> soisdisconnected
  - >> soisconnected
  - >> socantrcvmore
  - >> sbrelease
  - >> sohasoutofband
  - >> tcp_close
  - >> sbwakeup
  - >> in_pcblookup
  - >> m_adj
  - >> np_stripoptions
  - >> in_broadcast
  - >> m_free
  - >> soabort
  - >> __aeabi_memcpy
  [Called By]
  - >> tcp_rcv
  [Address Reference Count : 1]
  - nptcp.o(.data)

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

  - >> nptcp_init
  [Address Reference Count : 1]
  - nptcp.o(.data)

  tcp_template (Thumb, 68 bytes, Stack size 8 bytes, tcp_subr.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = tcp_template ⇒ npalloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  [Called By]
  - >> tcp_usrreq
  - >> tcp_input

  tcp_respond (Thumb, 296 bytes, Stack size 56 bytes, tcp_subr.o(.text))
  [Stack]

  - Max Depth = 664 + Unknown Stack Size
  - Call Chain = tcp_respond ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> m_getnbuf
  - >> m_freem
  - >> ip_output
  - >> __aeabi_memcpy4
  - >> __aeabi_memmove
  [Called By]
  - >> tcp_timers
  - >> tcp_input

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

  - Max Depth = 88
  - Call Chain = tcp_newtcpcb ⇒ npalloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  [Called By]
  - >> tcp_attach

  tcp_close (Thumb, 88 bytes, Stack size 24 bytes, tcp_subr.o(.text))
  [Stack]

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = tcp_close ⇒ in_pcbdetach ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npfree
  - >> m_freem
  - >> in_pcbdetach
  - >> soisdisconnected
  - >> remque
  - >> dtom
  [Called By]
  - >> tcp_disconnect
  - >> tcp_usrclosed
  - >> tcp_timers
  - >> tcp_drop
  - >> tcp_usrreq
  - >> tcp_input
  - >> so_icmpdu

  tcp_drop (Thumb, 56 bytes, Stack size 24 bytes, tcp_subr.o(.text))
  [Stack]

  - Max Depth = 688 + Unknown Stack Size
  - Call Chain = tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tcp_output
  - >> tcp_close
  [Called By]
  - >> tcp_disconnect
  - >> tcp_timers
  - >> tcp_usrreq
  - >> tcp_input
  - >> tcp_fasttimo

  tcp_quench (Thumb, 12 bytes, Stack size 0 bytes, tcp_subr.o(.text))
  [Called By]

  - >> tcp_output

  tcp_putseq (Thumb, 20 bytes, Stack size 0 bytes, tcp_subr.o(.text), UNUSED)

  tcp_getseq (Thumb, 22 bytes, Stack size 0 bytes, tcp_subr.o(.text), UNUSED)

  tcp_fasttimo (Thumb, 260 bytes, Stack size 24 bytes, tcp_timr.o(.text))
  [Stack]

  - Max Depth = 712 + Unknown Stack Size
  - Call Chain = tcp_fasttimo ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tcp_output
  - >> tcp_drop
  [Called By]
  - >> tcp_tick
  [Address Reference Count : 1]
  - nptcp.o(.data)

  tcp_slowtimo (Thumb, 152 bytes, Stack size 40 bytes, tcp_timr.o(.text))
  [Stack]

  - Max Depth = 800 + Unknown Stack Size
  - Call Chain = tcp_slowtimo ⇒ tcp_usrreq ⇒ tcp_timers ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tcp_wakeup
  - >> tcp_usrreq
  [Called By]
  - >> tcp_tick
  [Address Reference Count : 1]
  - nptcp.o(.data)

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

  - >> tcp_input

  tcp_timers (Thumb, 234 bytes, Stack size 32 bytes, tcp_timr.o(.text))
  [Stack]

  - Max Depth = 720 + Unknown Stack Size
  - Call Chain = tcp_timers ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tcp_setpersist
  - >> tcp_respond
  - >> tcp_output
  - >> tcp_drop
  - >> tcp_close
  [Called By]
  - >> tcp_usrreq

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

  - Max Depth = 328 + Unknown Stack Size
  - Call Chain = tcp_usrclosed ⇒ tcp_close ⇒ in_pcbdetach ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> soisdisconnected
  - >> tcp_close
  [Called By]
  - >> tcp_disconnect
  - >> tcp_usrreq

  tcp_disconnect (Thumb, 112 bytes, Stack size 16 bytes, tcp_usr.o(.text))
  [Stack]

  - Max Depth = 704 + Unknown Stack Size
  - Call Chain = tcp_disconnect ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tcp_usrclosed
  - >> tcp_output
  - >> tcp_drop
  - >> sbflush
  - >> soisdisconnecting
  - >> tcp_close
  [Called By]
  - >> tcp_usrreq

  tcp_attach (Thumb, 86 bytes, Stack size 16 bytes, tcp_usr.o(.text))
  [Stack]

  - Max Depth = 312 + Unknown Stack Size
  - Call Chain = tcp_attach ⇒ in_pcbdetach ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> in_pcballoc
  - >> in_pcbdetach
  - >> tcp_newtcpcb
  - >> soreserve
  [Called By]
  - >> tcp_usrreq

  tcp_usrreq (Thumb, 630 bytes, Stack size 40 bytes, tcp_usr.o(.text))
  [Stack]

  - Max Depth = 760 + Unknown Stack Size
  - Call Chain = tcp_usrreq ⇒ tcp_timers ⇒ tcp_drop ⇒ tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> m_freem
  - >> in_setsockaddr
  - >> in_setpeeraddr
  - >> in_pcbdisconnect
  - >> in_pcbbind
  - >> tcp_attach
  - >> tcp_disconnect
  - >> tcp_usrclosed
  - >> tcp_timers
  - >> tcp_template
  - >> tcp_output
  - >> tcp_drop
  - >> in_pcbconnect
  - >> sbdropend
  - >> sbappend
  - >> socantsendmore
  - >> soisconnecting
  - >> tcp_close
  - >> mbuf_len
  [Called By]
  - >> tcp_slowtimo
  [Address Reference Count : 1]
  - nptcp.o(.data)

  tcp_getstats (Thumb, 44 bytes, Stack size 8 bytes, tcp_usr.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = tcp_getstats
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> in_getstats

  tcp_clrstats (Thumb, 30 bytes, Stack size 8 bytes, tcp_usr.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memclr4
  [Called By]
  - >> in_clrstats

  tcp_getparm (Thumb, 78 bytes, Stack size 8 bytes, tcp_usr.o(.text), UNUSED)
  [Called By]

  - >> in_getparm

  tcp_setparm (Thumb, 84 bytes, Stack size 8 bytes, tcp_usr.o(.text), UNUSED)
  [Called By]

  - >> in_setparm

  tcpsock_getstats (Thumb, 248 bytes, Stack size 40 bytes, tcp_usr.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = tcpsock_getstats ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> sovalid
  [Called By]
  - >> in_getstats

  tcpinit (Thumb, 4 bytes, Stack size 0 bytes, tcpport.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = tcpinit ⇒ nptcp_init ⇒ __aeabi_memclr4
  [Calls]
  - >> nptcp_init
  [Called By]
  - >> netmain_init

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

  - >> udp4_sockbind
  - >> udp4_socksend
  - >> udp4_sockaddr
  - >> udp_usrreq

  udp_soinerr (Thumb, 36 bytes, Stack size 12 bytes, udpsock.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = udp_soinerr
  [Called By]
  - >> udp_soinput

  udp_soinput (Thumb, 184 bytes, Stack size 32 bytes, udpsock.o(.text))
  [Stack]

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = udp_soinput ⇒ sbappendaddr ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> m_getnbuf
  - >> m_freem
  - >> tcp_wakeup
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> udp_soinerr
  - >> sbappendaddr
  [Address Reference Count : 2]
  - udpsock.o(.text)
  - nptcp.o(.text)

  udp4_sockaddr (Thumb, 56 bytes, Stack size 12 bytes, udpsock.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = udp4_sockaddr
  [Calls]
  - >> udp_lookup
  [Called By]
  - >> udp_usrreq

  udp4_socksend (Thumb, 310 bytes, Stack size 32 bytes, udpsock.o(.text))
  [Stack]

  - Max Depth = 656 + Unknown Stack Size
  - Call Chain = udp4_socksend ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> udp_maxalloc
  - >> cb_read
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_free
  - >> udp_lookup
  - >> m_free
  - >> udp_alloc
  - >> udp_send
  [Called By]
  - >> udp_usrreq

  udp4_sockbind (Thumb, 186 bytes, Stack size 24 bytes, udpsock.o(.text))
  [Stack]

  - Max Depth = 272 + Unknown Stack Size
  - Call Chain = udp4_sockbind ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ip_mymach
  - >> udp_lookup
  - >> sbflush
  - >> udp_socket
  [Called By]
  - >> udp_usrreq

  udp_usrreq (Thumb, 194 bytes, Stack size 24 bytes, udpsock.o(.text))
  [Stack]

  - Max Depth = 680 + Unknown Stack Size
  - Call Chain = udp_usrreq ⇒ udp4_socksend ⇒ udp_send ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> udp_maxalloc
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> udp4_sockbind
  - >> udp4_socksend
  - >> udp4_sockaddr
  - >> udp_lookup
  - >> udp_open
  - >> udp_close
  - >> udp_socket
  [Address Reference Count : 1]
  - nptcp.o(.data)

  udpsock_getstats (Thumb, 162 bytes, Stack size 32 bytes, udpsock.o(.text))
  [Stack]

  - Max Depth = 152
  - Call Chain = udpsock_getstats ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> sovalid
  [Called By]
  - >> in_getstats

  AutoIp_ifp_setup (Thumb, 52 bytes, Stack size 0 bytes, autoip.o(.text))
  [Called By]

  - >> in_addrconf_release
  - >> upnp_if_setup
  - >> AutoIp_init

  AutoIp_init (Thumb, 80 bytes, Stack size 20 bytes, autoip.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = AutoIp_init
  [Calls]
  - >> AutoIp_ifp_setup
  [Called By]
  - >> Upnp_initialize

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

  - Max Depth = 344 + Unknown Stack Size
  - Call Chain = AutoIp_send_arp_probe ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> pk_alloc_internal
  - >> send_arp
  [Called By]
  - >> AutoIp_tick

  AutoIp_tick (Thumb, 210 bytes, Stack size 24 bytes, autoip.o(.text))
  [Stack]

  - Max Depth = 368 + Unknown Stack Size
  - Call Chain = AutoIp_tick ⇒ AutoIp_send_arp_probe ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> AutoIp_send_arp_probe
  - >> AutoIp_set_net_vars
  [Called By]
  - >> Upnp_tick

  AutoIp_arp_response (Thumb, 66 bytes, Stack size 16 bytes, autoip.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = AutoIp_arp_response ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> if_netnumber
  [Called By]
  - >> arprcv

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

  - >> Upnp_tick

  dhc_hostname (Thumb, 6 bytes, Stack size 0 bytes, autoip.o(.text), UNUSED)

  asm_cksum (Thumb, 136 bytes, Stack size 0 bytes, asm_cksum_cm3.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = asm_cksum ⇒ alt_check ⇒ alt_format
  [Calls]
  - >> alt_check
  [Called By]
  - >> cksum

  alt_dev (Thumb, 22 bytes, Stack size 0 bytes, asm_cksum_cm3.o(.text))
  [Called By]

  - >> devlock_validate

  uart_init (Thumb, 108 bytes, Stack size 16 bytes, in_uart.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memclr4

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

  - >> dputchar

  uart_getc (Thumb, 46 bytes, Stack size 8 bytes, in_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = uart_getc
  [Called By]
  - >> getch

  uart_ready (Thumb, 20 bytes, Stack size 0 bytes, in_uart.o(.text), UNUSED)

  uart_gotc (Thumb, 22 bytes, Stack size 0 bytes, in_uart.o(.text))
  [Called By]

  - >> kbhit

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

  uart_echo (Thumb, 10 bytes, Stack size 0 bytes, in_uart.o(.text), UNUSED)

  kbhit (Thumb, 4 bytes, Stack size 0 bytes, in_uart.o(.text))
  [Calls]

  - >> uart_gotc
  [Called By]
  - >> kbdio
  - >> gio_stdin
  - >> getch

  getch (Thumb, 24 bytes, Stack size 4 bytes, in_uart.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = getch ⇒ uart_getc
  [Calls]
  - >> uart_getc
  - >> kbhit
  [Called By]
  - >> kbdio
  - >> gio_stdin

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

  - Max Depth = 8
  - Call Chain = dputchar
  [Calls]
  - >> uart_putc
  [Called By]
  - >> gio_stdout
  - >> decho

  decho (Thumb, 12 bytes, Stack size 0 bytes, in_uart.o(.text), UNUSED)
  [Calls]

  - >> dputchar

  ishexdigit (Thumb, 34 bytes, Stack size 8 bytes, ascii_utils.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = ishexdigit ⇒ __rt_ctype_table
  [Calls]
  - >> __rt_ctype_table
  [Called By]
  - >> hex2bin
  - >> atohl
  - >> atoh

  hexnibble (Thumb, 16 bytes, Stack size 0 bytes, ascii_utils.o(.text))
  [Called By]

  - >> hex2bin
  - >> atohl
  - >> atoh

  atohl (Thumb, 62 bytes, Stack size 16 bytes, ascii_utils.o(.text), UNUSED)
  [Calls]

  - >> hexnibble
  - >> ishexdigit

  hex2bin (Thumb, 76 bytes, Stack size 24 bytes, ascii_utils.o(.text), UNUSED)
  [Calls]

  - >> hexnibble
  - >> ishexdigit

  atoh (Thumb, 62 bytes, Stack size 16 bytes, ascii_utils.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = atoh ⇒ ishexdigit ⇒ __rt_ctype_table
  [Calls]
  - >> hexnibble
  - >> ishexdigit
  [Called By]
  - >> inet_pton

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

  - >> pk_chkSumPkt

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

  - >> cksum

  cksum (Thumb, 14 bytes, Stack size 0 bytes, cksum.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = cksum ⇒ asm_cksum ⇒ alt_check ⇒ alt_format
  [Calls]
  - >> ccksum
  - >> asm_cksum
  [Called By]
  - >> ip_write
  - >> udp_send
  - >> udpdemux
  - >> ip_rcv
  - >> ip_reasm_thread_queued_fragments_into_reassd_pkt
  - >> ip_write2
  - >> ip_fragment
  - >> ip_bldhead
  - >> icmp_timex
  - >> icmp_destun

  dhc_ifp_setup (Thumb, 50 bytes, Stack size 8 bytes, dhcsetup.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = dhc_ifp_setup ⇒ dhc_state_init ⇒ dhc_set_state
  [Calls]
  - >> dhc_state_init
  [Called By]
  - >> upnp_if_setup

  dhc_main_ipset (Thumb, 4 bytes, Stack size 0 bytes, dhcsetup.o(.text))
  [Called By]

  - >> upnp_recv_dhcp_status

  tcp_cksum (Thumb, 72 bytes, Stack size 16 bytes, tcpcksum.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = tcp_cksum ⇒ pk_chkSumPkt
  [Calls]
  - >> pk_chkSumPkt
  [Called By]
  - >> ip_output
  - >> tcp_rcv

  udp_cksum (Thumb, 68 bytes, Stack size 16 bytes, tcpcksum.o(.text), UNUSED)
  [Calls]

  - >> pk_chkSumPkt

  udp_open (Thumb, 126 bytes, Stack size 40 bytes, udp_open.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = udp_open ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> udp_usrreq
  - >> dhc_init

  udp_close (Thumb, 68 bytes, Stack size 8 bytes, udp_open.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = udp_close ⇒ tk_res_unlock ⇒ tk_mutex_post ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npfree
  - >> tk_res_unlock
  - >> tk_res_lock
  [Called By]
  - >> dhcpc_close
  - >> udp_usrreq

  in_pcballoc (Thumb, 44 bytes, Stack size 16 bytes, in_pcb.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = in_pcballoc ⇒ npalloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> npalloc
  - >> insque
  [Called By]
  - >> tcp_attach

  in_pcbdetach (Thumb, 30 bytes, Stack size 8 bytes, in_pcb.o(.text))
  [Stack]

  - Max Depth = 296 + Unknown Stack Size
  - Call Chain = in_pcbdetach ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> npfree
  - >> sofree
  - >> remque
  [Called By]
  - >> in_pcbdisconnect
  - >> tcp_attach
  - >> tcp_close

  in_pcblookup (Thumb, 178 bytes, Stack size 32 bytes, in_pcb.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = in_pcblookup
  [Called By]
  - >> in_pcbbind
  - >> in_pcbconnect
  - >> tcp_input
  - >> so_icmpdu

  in_pcbbind (Thumb, 170 bytes, Stack size 40 bytes, in_pcb.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = in_pcbbind ⇒ in_pcblookup
  [Calls]
  - >> ip_mymach
  - >> in_pcblookup
  [Called By]
  - >> in_pcbconnect
  - >> tcp_usrreq

  in_pcbconnect (Thumb, 128 bytes, Stack size 24 bytes, in_pcb.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = in_pcbconnect ⇒ in_pcbbind ⇒ in_pcblookup
  [Calls]
  - >> in_pcbbind
  - >> in_pcblookup
  - >> iproute
  [Called By]
  - >> tcp_usrreq
  - >> tcp_input

  in_pcbdisconnect (Thumb, 18 bytes, Stack size 0 bytes, in_pcb.o(.text))
  [Stack]

  - Max Depth = 296 + Unknown Stack Size
  - Call Chain = in_pcbdisconnect ⇒ in_pcbdetach ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> in_pcbdetach
  [Called By]
  - >> tcp_usrreq

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

  - >> tcp_usrreq

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

  - >> tcp_usrreq

  tcp_setpersist (Thumb, 52 bytes, Stack size 0 bytes, tcp_out.o(.text))
  [Called By]

  - >> tcp_timers
  - >> tcp_output

  tcp_output (Thumb, 1270 bytes, Stack size 56 bytes, tcp_out.o(.text))
  [Stack]

  - Max Depth = 664 + Unknown Stack Size
  - Call Chain = tcp_output ⇒ ip_output ⇒ ip_write ⇒ ip_write_internal ⇒ ip_fragment ⇒ ip2mac ⇒ send_via_arp ⇒ send_arp ⇒ make_arp_entry ⇒ find_oldest_arp ⇒ arp_free_pending ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> m_freem
  - >> fix_mbuf
  - >> tcp_setpersist
  - >> tcp_quench
  - >> tcp_mss
  - >> ip_output
  - >> pk_copy
  - >> iproute
  - >> pk_poll
  - >> __aeabi_memcpy4
  [Called By]
  - >> tcp_disconnect
  - >> tcp_timers
  - >> tcp_drop
  - >> tcp_usrreq
  - >> tcp_input
  - >> tcp_fasttimo

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

  - Max Depth = 8
  - Call Chain = __rt_ctype_table
  [Calls]
  - >> __rt_locale
  [Called By]
  - >> netdiag_arp
  - >> cli_parse_ipaddr
  - >> tolower
  - >> ishexdigit
  - >> if_netbytext
  - >> _wcrtomb
  - >> isspace
  - >> strtoul
  - >> strtol

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

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

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

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

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

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

  __c89vsprintf (Thumb, 32 bytes, Stack size 16 bytes, c89vsprintf.o(.text))
  [Stack]

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

  __2printf (Thumb, 20 bytes, Stack size 24 bytes, __2printf.o(.text))
  [Stack]

  - Max Depth = 144 + Unknown Stack Size
  - Call Chain = __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> _printf_char_file
  [Called By]
  - >> ahb_free
  - >> user_post_setup
  - >> user1_cli
  - >> upnp_callback
  - >> panic
  - >> exit
  - >> dtrap
  - >> tcp_srv_respond
  - >> update_battery_status
  - >> i2c_set_mode
  - >> AutoIp_set_net_vars
  - >> dhcp_det_opt_len
  - >> dhcp_write
  - >> cb_dumpx

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

  - Max Depth = 136 + Unknown Stack Size
  - Call Chain = __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> _sputc
  - >> _printf_char_common
  [Called By]
  - >> set_uart_config
  - >> nichestack_init
  - >> main
  - >> handle_ctl_requests
  - >> handle_battery_requests
  - >> commTask
  - >> parse_ctl_cmd
  - >> parse_battery_cmd
  - >> decode_ip
  - >> set_pack_state
  - >> print_uptime
  - >> gio_hexdump
  - >> pk_init
  - >> cli_get_errstr
  - >> print_ipad

  _printf_pre_padding (Thumb, 44 bytes, Stack size 16 bytes, _printf_pad.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = _printf_pre_padding
  [Called By]
  - >> _printf_str
  - >> _printf_fp_infnan
  - >> _printf_wctomb
  - >> _printf_fp_dec_real
  - >> _printf_int_common
  - >> _printf_fp_hex_real

  _printf_post_padding (Thumb, 34 bytes, Stack size 16 bytes, _printf_pad.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = _printf_post_padding
  [Called By]
  - >> _printf_str
  - >> _printf_fp_infnan
  - >> _printf_wctomb
  - >> _printf_fp_dec_real
  - >> _printf_int_common
  - >> _printf_fp_hex_real

  _printf_str (Thumb, 82 bytes, Stack size 16 bytes, _printf_str.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = _printf_str ⇒ _printf_post_padding
  [Calls]
  - >> _printf_post_padding
  - >> _printf_pre_padding
  [Called By]
  - >> _printf_cs_common

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

  - Max Depth = 72
  - Call Chain = _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_int_common
  - >> _printf_truncate_unsigned
  - >> _printf_truncate_signed
  [Called By]
  - >> _printf_i
  - >> _printf_u
  - >> _printf_d

  _printf_longlong_dec (Thumb, 108 bytes, Stack size 24 bytes, _printf_longlong_dec.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_int_common
  - >> _ll_udiv10
  [Called By]
  - >> _printf_lld
  - >> _printf_lli
  - >> _printf_llu

  _printf_longlong_hex (Thumb, 86 bytes, Stack size 16 bytes, _printf_hex_int_ll_ptr.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_int_common
  [Called By]
  - >> _printf_hex_ptr
  - >> _printf_ll_hex
  - >> _printf_int_hex

  _printf_int_hex (Thumb, 28 bytes, Stack size 16 bytes, _printf_hex_int_ll_ptr.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = _printf_int_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_truncate_unsigned
  - >> _printf_longlong_hex
  [Called By]
  - >> _printf_x

  _printf_ll_hex (Thumb, 12 bytes, Stack size 0 bytes, _printf_hex_int_ll_ptr.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = _printf_ll_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_longlong_hex
  [Called By]
  - >> _printf_llx

  _printf_hex_ptr (Thumb, 18 bytes, Stack size 0 bytes, _printf_hex_int_ll_ptr.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = _printf_hex_ptr ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_longlong_hex
  [Called By]
  - >> _printf_p

  __printf (Thumb, 388 bytes, Stack size 40 bytes, __printf_flags_ss_wp.o(.text))
  [Stack]

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

  __0sscanf (Thumb, 52 bytes, Stack size 72 bytes, __0sscanf.o(.text))
  [Stack]

  - Max Depth = 224
  - Call Chain = __0sscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_int
  [Calls]
  - >> __vfscanf_char
  [Called By]
  - >> parse_battery_cmd

  _scanf_int (Thumb, 332 bytes, Stack size 56 bytes, _scanf_int.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = _scanf_int
  [Calls]
  - >> _chval
  [Called By]
  - >> __vfscanf

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

  - Max Depth = 88
  - Call Chain = atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> __aeabi_errno_addr
  - >> strtol
  [Called By]
  - >> parse_ip_octet
  - >> parse_ctl_cmd
  - >> parse_ipad

  strtol (Thumb, 112 bytes, Stack size 32 bytes, strtol.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = strtol ⇒ _strtoul
  [Calls]
  - >> __rt_ctype_table
  - >> _strtoul
  - >> __aeabi_errno_addr
  [Called By]
  - >> parse_ctl_cmd
  - >> cli_parse_arg
  - >> atoi

  strtoul (Thumb, 114 bytes, Stack size 40 bytes, strtoul.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = strtoul ⇒ _strtoul
  [Calls]
  - >> __rt_ctype_table
  - >> _strtoul
  - >> __aeabi_errno_addr
  [Called By]
  - >> cli_parse_ipaddr
  - >> cli_parse_arg

  perror (Thumb, 42 bytes, Stack size 8 bytes, perror.o(.text))
  [Stack]

  - Max Depth = 152 + Unknown Stack Size
  - Call Chain = perror ⇒ fprintf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> strerror
  - >> fprintf
  - >> __aeabi_errno_addr
  [Called By]
  - >> commTask

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

  - Max Depth = 4
  - Call Chain = putc ⇒ fputc
  [Calls]
  - >> fputc
  [Called By]
  - >> kbdio

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

  - >> netmain_setip_prot2mask
  - >> dnc_as2dns
  - >> inet_pton

  memcmp (Thumb, 88 bytes, Stack size 8 bytes, memcmp.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = memcmp
  [Called By]
  - >> parse_ctl_cmd
  - >> cb_bcmp
  - >> dhc_upcall
  - >> arprcv

  strcpy (Thumb, 72 bytes, Stack size 12 bytes, strcpy.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = strcpy
  [Called By]
  - >> main_task_setup
  - >> parse_ctl_cmd
  - >> in_bit2str
  - >> dnc_cp2hostent
  - >> dnc_proc_answer_rr
  - >> gethostbyname
  - >> queue_getstats
  - >> cli_nt_config
  - >> cli_mod_prep
  - >> cli_get_context
  - >> cli_get_errstr
  - >> cli_usage
  - >> in_loop
  - >> if_indextoname
  - >> inet_ntop
  - >> inet_addr
  - >> pk_Qname
  - >> qname

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

  - Max Depth = 8
  - Call Chain = strlen
  [Called By]
  - >> set_uart_config
  - >> tcp_srv_respond_term
  - >> parse_ip_octet
  - >> parse_ctl_cmd
  - >> is_cmd
  - >> in_bit2str
  - >> dnc_cp2hostent
  - >> dnc_txreq_a
  - >> dnc_proc_answer_rr
  - >> dnc_as2dns
  - >> if_getbyname
  - >> gethostbyname
  - >> kbdio
  - >> cli_nt_config
  - >> stricmp
  - >> gio_printf
  - >> cli_command
  - >> cli_parse_arg
  - >> cli_cmdlookup
  - >> cli_usage
  - >> stristr
  - >> inet_ntop
  - >> if_netbytext

  strncmp (Thumb, 150 bytes, Stack size 16 bytes, strncmp.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = strncmp
  [Called By]
  - >> parse_ip_octet
  - >> parse_ctl_cmd
  - >> parse_battery_cmd
  - >> is_cmd
  - >> if_getbyname

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

  - >> cli_nt_config
  - >> cli_get_errstr

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

  - >> RingBuffer_PopMult
  - >> in_cfgstack
  - >> prvCopyDataToQueue
  - >> prvCopyDataFromQueue
  - >> t_accept
  - >> load_flash_config
  - >> sosend
  - >> soreceive
  - >> sockargs
  - >> t_getname
  - >> cb_writey
  - >> cb_writex
  - >> cb_write
  - >> cb_read
  - >> t_recvfrom
  - >> dnc_txreq_a
  - >> dnc_dns2as
  - >> dnc_as2dns
  - >> udp_getstats
  - >> tcp_getstats
  - >> ipv4_getstats
  - >> icmp_getstats
  - >> dnc_getstats
  - >> dhcpc_getstats
  - >> RingBuffer_Pop
  - >> RingBuffer_InsertMult
  - >> RingBuffer_Insert
  - >> copypartdata
  - >> tcp_pulloutofband
  - >> sbappendaddr
  - >> sbcompress
  - >> tcp_input
  - >> m_copy
  - >> pk_copyOut
  - >> cb_trimf
  - >> cb_trim
  - >> cb_copyl
  - >> cb_pullup
  - >> udp_clone
  - >> pk_copyPkt
  - >> ip_fragment
  - >> __rt_memmove

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

  - >> __aeabi_memcpy4

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

  __aeabi_memmove (Thumb, 0 bytes, Stack size 0 bytes, rt_memmove_v6.o(.text))
  [Called By]

  - >> grat_arp
  - >> tcp_respond
  - >> np_stripoptions
  - >> arprcv
  - >> arpReply
  - >> send_arp
  - >> et_send

  __rt_memmove (Thumb, 132 bytes, Stack size 0 bytes, rt_memmove_v6.o(.text), UNUSED)
  [Calls]

  - >> __memmove_aligned
  - >> __aeabi_memcpy

  __memmove_lastfew (Thumb, 0 bytes, Stack size unknown bytes, rt_memmove_v6.o(.text), UNUSED)

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

  - Max Depth = 8
  - Call Chain = __aeabi_memcpy4
  [Called By]
  - >> t_select
  - >> commTask
  - >> if_getstats
  - >> arp_getstats
  - >> gio_push
  - >> pk_init
  - >> tcp_respond
  - >> tcp_output
  - >> pk_Qdelete
  - >> dhc_extract_opts
  - >> gio_pop
  - >> udp_clone
  - >> udpdemux
  - >> icmp_destun
  - >> __rt_memmove_w
  - >> __rt_memcpy

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

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

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

  __aeabi_memmove4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memmove_w.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_memmove4
  [Called By]
  - >> arpReply

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

  __rt_memmove_w (Thumb, 122 bytes, Stack size 8 bytes, rt_memmove_w.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memcpy4

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

  - >> __rt_memmove

  __memmove_lastfew_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memmove_w.o(.text), UNUSED)

  __aeabi_memset (Thumb, 16 bytes, Stack size 0 bytes, aeabi_memset.o(.text))
  [Calls]

  - >> _memset
  [Called By]
  - >> prvAllocateTCBAndStack
  - >> cb_nset
  - >> grat_arp
  - >> send_arp
  - >> et_special

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

  - >> npalloc
  - >> ahb_alloc
  - >> main_task_setup
  - >> init_batteries
  - >> strncpy

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

  - >> _memset_w

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

  - >> __aeabi_memset

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

  - Max Depth = 4
  - Call Chain = __aeabi_memclr4
  [Called By]
  - >> setup_uart3
  - >> setup_uart0
  - >> t_select
  - >> load_flash_config
  - >> main_task_setup
  - >> Chip_I2C_MasterSend
  - >> Chip_I2C_MasterRead
  - >> Chip_I2C_MasterCmdRead
  - >> ip_init
  - >> dhcpc_prep
  - >> dhcpc_close
  - >> netmain_prep
  - >> dnc_shutdown
  - >> dnc_cleanup_entry
  - >> tcp_clrstats
  - >> ipv4_clrstats
  - >> if_clrstats
  - >> icmp_clrstats
  - >> dnc_clrtab
  - >> dnc_clrstats
  - >> dhcpc_clrstats
  - >> arp_clrtab
  - >> arp_clrstats
  - >> pk_init
  - >> eth_prep
  - >> uart_init
  - >> sorflush
  - >> nptcp_init
  - >> dhc_halt

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

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

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

  - >> __rt_memclr

  strncpy (Thumb, 86 bytes, Stack size 8 bytes, strncpy.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = strncpy
  [Calls]
  - >> __aeabi_memclr
  [Called By]
  - >> prvInitialiseTCBVariables
  - >> parse_ctl_cmd

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

  - >> in_v4addrcfg
  - >> parse_ctl_cmd
  - >> dnc_tmo
  - >> dnc_rx
  - >> dnc_chk_resolved
  - >> dnc_proc_answer_rr
  - >> gethostbyname
  - >> dnc_dump_status
  - >> dnc_clrtab
  - >> if_netbytext
  - >> if_nametoindex
  - >> _get_lc_numeric
  - >> _get_lc_ctype

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

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

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

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

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

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

  - >> __rt_ctype_table
  - >> __rt_lib_init_lc_common
  - >> _printf_fp_dec_real

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

  - >> _strtoul
  - >> perror
  - >> strtoul
  - >> strtol
  - >> atoi

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

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

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

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

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

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

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

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

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

  - >> __rt_SIGRTMEM

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

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

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

  - >> _init_alloc

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

  _ll_udiv10 (Thumb, 138 bytes, Stack size 12 bytes, lludiv10.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = _ll_udiv10
  [Called By]
  - >> _printf_longlong_dec
  - >> _fp_digits

  fprintf (Thumb, 20 bytes, Stack size 24 bytes, fprintf.o(.text))
  [Stack]

  - Max Depth = 144 + Unknown Stack Size
  - Call Chain = fprintf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> _printf_char_file
  [Called By]
  - >> perror

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

  - >> _printf_int_dec

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

  - >> _printf_int_dec
  - >> _printf_int_oct
  - >> _printf_int_hex

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

  - Max Depth = 48
  - Call Chain = _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_post_padding
  - >> _printf_pre_padding
  [Called By]
  - >> _printf_longlong_dec
  - >> _printf_int_dec
  - >> _printf_longlong_oct
  - >> _printf_longlong_hex

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

  - >> _printf_n

  __lib_sel_fp_printf (Thumb, 2 bytes, Stack size 0 bytes, _printf_fp_dec.o(.text), UNUSED)

  _printf_fp_dec_real (Thumb, 620 bytes, Stack size 104 bytes, _printf_fp_dec.o(.text))
  [Stack]

  - Max Depth = 320
  - Call Chain = _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e
  [Calls]
  - >> _printf_post_padding
  - >> _printf_pre_padding
  - >> _printf_fp_infnan
  - >> _fp_digits
  - >> __rt_locale
  - >> __ARM_fpclassify
  [Called By]
  - >> _printf_fp_dec

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

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

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

  - >> __2sprintf
  - >> __c89vsprintf
  [Address Reference Count : 2]
  - __2sprintf.o(.text)
  - c89vsprintf.o(.text)

  _printf_cs_common (Thumb, 20 bytes, Stack size 8 bytes, _printf_char.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding
  [Calls]
  - >> _printf_str
  [Called By]
  - >> _printf_string
  - >> _printf_char

  _printf_char (Thumb, 16 bytes, Stack size 0 bytes, _printf_char.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _printf_char ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding
  [Calls]
  - >> _printf_cs_common
  [Called By]
  - >> _printf_c

  _printf_string (Thumb, 8 bytes, Stack size 0 bytes, _printf_char.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding
  [Calls]
  - >> _printf_cs_common
  [Called By]
  - >> _printf_s

  _printf_char_file (Thumb, 32 bytes, Stack size 16 bytes, _printf_char_file.o(.text))
  [Stack]

  - Max Depth = 120 + Unknown Stack Size
  - Call Chain = _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ferror
  - >> _printf_char_common
  [Called By]
  - >> __2printf
  - >> fprintf

  _printf_wctomb (Thumb, 182 bytes, Stack size 56 bytes, _printf_wctomb.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = _printf_wctomb ⇒ _wcrtomb ⇒ __rt_ctype_table
  [Calls]
  - >> _printf_post_padding
  - >> _printf_pre_padding
  - >> _wcrtomb
  [Called By]
  - >> _printf_lcs_common

  _printf_longlong_oct (Thumb, 68 bytes, Stack size 8 bytes, _printf_oct_int_ll.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_int_common
  [Called By]
  - >> _printf_ll_oct
  - >> _printf_int_oct

  _printf_int_oct (Thumb, 24 bytes, Stack size 8 bytes, _printf_oct_int_ll.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = _printf_int_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_longlong_oct
  - >> _printf_truncate_unsigned
  [Called By]
  - >> _printf_o

  _printf_ll_oct (Thumb, 12 bytes, Stack size 0 bytes, _printf_oct_int_ll.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = _printf_ll_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_longlong_oct
  [Called By]
  - >> _printf_llo

  _chval (Thumb, 28 bytes, Stack size 0 bytes, _chval.o(.text))
  [Called By]

  - >> _strtoul
  - >> _scanf_int

  __vfscanf_char (Thumb, 24 bytes, Stack size 0 bytes, scanf_char.o(.text))
  [Stack]

  - Max Depth = 152
  - Call Chain = __vfscanf_char ⇒ __vfscanf ⇒ _scanf_int
  [Calls]
  - >> __vfscanf
  [Called By]
  - >> __0sscanf

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

  - __0sscanf.o(.text)

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

  - __0sscanf.o(.text)

  _strtoul (Thumb, 158 bytes, Stack size 40 bytes, _strtoul.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _strtoul
  [Calls]
  - >> _chval
  - >> __aeabi_errno_addr
  [Called By]
  - >> strtoul
  - >> strtol

  strerror (Thumb, 44 bytes, Stack size 0 bytes, strerror.o(.text))
  [Called By]

  - >> perror

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

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

  - >> __user_setup_stackheap

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

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

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

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

  - Max Depth = 16
  - Call Chain = isspace ⇒ __rt_ctype_table
  [Calls]
  - >> __rt_ctype_table
  [Address Reference Count : 1]
  - scanf_char.o(.text)

  _printf_fp_infnan (Thumb, 112 bytes, Stack size 24 bytes, _printf_fp_infnan.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _printf_fp_infnan ⇒ _printf_post_padding
  [Calls]
  - >> _printf_post_padding
  - >> _printf_pre_padding
  [Called By]
  - >> _printf_fp_dec_real
  - >> _printf_fp_hex_real

  _printf_lcs_common (Thumb, 20 bytes, Stack size 8 bytes, _printf_wchar.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb ⇒ __rt_ctype_table
  [Calls]
  - >> _printf_wctomb
  [Called By]
  - >> _printf_wstring
  - >> _printf_wchar

  _printf_wchar (Thumb, 16 bytes, Stack size 0 bytes, _printf_wchar.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = _printf_wchar ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb ⇒ __rt_ctype_table
  [Calls]
  - >> _printf_lcs_common
  [Called By]
  - >> _printf_lc

  _printf_wstring (Thumb, 8 bytes, Stack size 0 bytes, _printf_wchar.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = _printf_wstring ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb ⇒ __rt_ctype_table
  [Calls]
  - >> _printf_lcs_common
  [Called By]
  - >> _printf_ls

  __vfscanf (Thumb, 878 bytes, Stack size 96 bytes, _scanf.o(.text))
  [Stack]

  - Max Depth = 152
  - Call Chain = __vfscanf ⇒ _scanf_int
  [Calls]
  - >> _scanf_int
  [Called By]
  - >> __vfscanf_char

  _btod_etento (Thumb, 216 bytes, Stack size 72 bytes, bigflt0.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = _btod_etento ⇒ _btod_emul ⇒ _e2e
  [Calls]
  - >> _btod_emul
  - >> _btod_ediv
  [Called By]
  - >> _fp_digits

  _wcrtomb (Thumb, 64 bytes, Stack size 16 bytes, _wcrtomb.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = _wcrtomb ⇒ __rt_ctype_table
  [Calls]
  - >> __rt_ctype_table
  [Called By]
  - >> _printf_wctomb

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

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

  __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

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

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

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

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

  _printf_fp_hex_real (Thumb, 754 bytes, Stack size 72 bytes, _printf_fp_hex.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = _printf_fp_hex_real ⇒ _printf_fp_infnan ⇒ _printf_post_padding
  [Calls]
  - >> _printf_post_padding
  - >> _printf_pre_padding
  - >> _printf_fp_infnan
  - >> __ARM_fpclassify
  [Called By]
  - >> _printf_fp_hex

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

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

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

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

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

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

  _ttywrch (Thumb, 14 bytes, Stack size 8 bytes, sys_wrch.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = _ttywrch
  [Called By]
  - >> __default_signal_display

  _btod_d2e (Thumb, 62 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e))
  [Calls]

  - >> _d2e_norm_op1
  [Called By]
  - >> _fp_digits

  _d2e_denorm_low (Thumb, 70 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_denorm_low))
  [Called By]

  - >> _d2e_norm_op1

  _d2e_norm_op1 (Thumb, 96 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_norm_op1))
  [Calls]

  - >> _d2e_denorm_low
  [Called By]
  - >> _btod_d2e

  __btod_div_common (Thumb, 696 bytes, Stack size 24 bytes, btod.o(CL$$btod_div_common))
  [Stack]

  - Max Depth = 24
  - Call Chain = __btod_div_common
  [Called By]
  - >> _btod_ediv

  _e2e (Thumb, 198 bytes, Stack size 24 bytes, btod.o(CL$$btod_e2e))
  [Stack]

  - Max Depth = 24
  - Call Chain = _e2e
  [Called By]
  - >> _btod_emul
  - >> _btod_ediv

  _btod_ediv (Thumb, 40 bytes, Stack size 24 bytes, btod.o(CL$$btod_ediv))
  [Stack]

  - Max Depth = 48
  - Call Chain = _btod_ediv ⇒ _e2e
  [Calls]
  - >> _e2e
  - >> __btod_div_common
  [Called By]
  - >> _btod_etento
  - >> _fp_digits

  _btod_emul (Thumb, 40 bytes, Stack size 24 bytes, btod.o(CL$$btod_emul))
  [Stack]

  - Max Depth = 48
  - Call Chain = _btod_emul ⇒ _e2e
  [Calls]
  - >> __btod_mult_common
  - >> _e2e
  [Called By]
  - >> _btod_etento
  - >> _fp_digits

  __btod_mult_common (Thumb, 580 bytes, Stack size 16 bytes, btod.o(CL$$btod_mult_common))
  [Stack]

  - Max Depth = 16
  - Call Chain = __btod_mult_common
  [Called By]
  - >> _btod_emul

  Board_Debug_Init (Thumb, 34 bytes, Stack size 8 bytes, board.o(i.Board_Debug_Init))
  [Stack]

  - Max Depth = 44
  - Call Chain = Board_Debug_Init ⇒ Chip_UART_SetBaud ⇒ Chip_Clock_GetPeripheralClockRate ⇒ Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_UART_TXEnable
  - >> Chip_UART_SetBaud
  - >> Chip_UART_Init
  [Called By]
  - >> Board_Init

  Board_I2C_Init (Thumb, 146 bytes, Stack size 16 bytes, board.o(i.Board_I2C_Init))
  [Stack]

  - Max Depth = 32
  - Call Chain = Board_I2C_Init ⇒ Chip_IOCON_PinMux
  [Calls]
  - >> Chip_IOCON_PinMux
  - >> Chip_IOCON_EnableOD
  [Called By]
  - >> smbus_setup

  Board_Init (Thumb, 26 bytes, Stack size 8 bytes, board.o(i.Board_Init))
  [Stack]

  - Max Depth = 52
  - Call Chain = Board_Init ⇒ Board_Debug_Init ⇒ Chip_UART_SetBaud ⇒ Chip_Clock_GetPeripheralClockRate ⇒ Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Board_LED_Init
  - >> Chip_Clock_EnablePeriphClock
  - >> Board_Debug_Init
  [Called By]
  - >> prvSetupHardware

  Board_LED_Color (Thumb, 80 bytes, Stack size 16 bytes, board.o(i.Board_LED_Color))
  [Stack]

  - Max Depth = 16
  - Call Chain = Board_LED_Color
  [Calls]
  - >> Chip_PWM_SetMatch
  - >> Chip_PWM_LatchEnable
  [Called By]
  - >> set_status_led

  Board_SetupClocking (Thumb, 22 bytes, Stack size 8 bytes, board_sysinit.o(i.Board_SetupClocking))
  [Stack]

  - Max Depth = 16
  - Call Chain = Board_SetupClocking ⇒ Chip_SetupXtalClocking
  [Calls]
  - >> Chip_SetupXtalClocking
  [Called By]
  - >> Board_SystemInit

  Board_SetupMuxing (Thumb, 10 bytes, Stack size 0 bytes, board_sysinit.o(i.Board_SetupMuxing))
  [Stack]

  - Max Depth = 48
  - Call Chain = Board_SetupMuxing ⇒ Chip_IOCON_SetPinMuxing ⇒ Chip_IOCON_PinMuxSet ⇒ Chip_IOCON_PinMux
  [Calls]
  - >> Chip_IOCON_SetPinMuxing
  [Called By]
  - >> Board_SystemInit

  Board_SystemInit (Thumb, 14 bytes, Stack size 8 bytes, board_sysinit.o(i.Board_SystemInit))
  [Stack]

  - Max Depth = 56
  - Call Chain = Board_SystemInit ⇒ Board_SetupMuxing ⇒ Chip_IOCON_SetPinMuxing ⇒ Chip_IOCON_PinMuxSet ⇒ Chip_IOCON_PinMux
  [Calls]
  - >> Board_SetupMuxing
  - >> Board_SetupClocking
  [Called By]
  - >> SystemInit

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

  - >> fputc

  Chip_Clock_DisablePLL (Thumb, 18 bytes, Stack size 0 bytes, clock_17xx_40xx.o(i.Chip_Clock_DisablePLL))
  [Calls]

  - >> Chip_Clock_FeedPLL
  [Called By]
  - >> Chip_SetupXtalClocking

  Chip_Clock_EnablePLL (Thumb, 18 bytes, Stack size 0 bytes, clock_17xx_40xx.o(i.Chip_Clock_EnablePLL))
  [Calls]

  - >> Chip_Clock_FeedPLL
  [Called By]
  - >> Chip_SetupXtalClocking

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

  - >> Chip_UART_Init
  - >> Board_Init
  - >> Chip_RIT_Init
  - >> Chip_I2C_Init
  - >> Chip_PWM_Init

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

  - >> Chip_Clock_GetSystemClockRate

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

  - >> Chip_Clock_GetMainClockRate

  Chip_Clock_GetMainClockRate (Thumb, 32 bytes, Stack size 4 bytes, clock_17xx_40xx.o(i.Chip_Clock_GetMainClockRate))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_Clock_GetSYSCLKRate
  - >> Chip_Clock_GetMainPLLOutClockRate
  - >> Chip_Clock_GetCPUClockSource
  [Called By]
  - >> Chip_Clock_GetSystemClockRate

  Chip_Clock_GetMainPLLOutClockRate (Thumb, 50 bytes, Stack size 4 bytes, clock_17xx_40xx.o(i.Chip_Clock_GetMainPLLOutClockRate))
  [Stack]

  - Max Depth = 4
  - Call Chain = Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_Clock_GetSYSCLKRate
  [Called By]
  - >> Chip_Clock_GetMainClockRate

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

  - >> Chip_Clock_GetPeripheralClockRate

  Chip_Clock_GetPeripheralClockRate (Thumb, 22 bytes, Stack size 8 bytes, clock_17xx_40xx.o(i.Chip_Clock_GetPeripheralClockRate))
  [Stack]

  - Max Depth = 20
  - Call Chain = Chip_Clock_GetPeripheralClockRate ⇒ Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_Clock_GetSystemClockRate
  - >> Chip_Clock_GetPCLKDiv
  [Called By]
  - >> Chip_UART_SetBaud
  - >> init_wdt
  - >> Chip_RIT_SetTimerInterval
  - >> getClkRate

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

  - >> Chip_Clock_GetMainPLLOutClockRate
  - >> Chip_Clock_GetMainClockRate

  Chip_Clock_GetSystemClockRate (Thumb, 18 bytes, Stack size 4 bytes, clock_17xx_40xx.o(i.Chip_Clock_GetSystemClockRate))
  [Stack]

  - Max Depth = 12
  - Call Chain = Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_Clock_GetMainClockRate
  - >> Chip_Clock_GetCPUClockDiv
  [Called By]
  - >> SystemCoreClockUpdate
  - >> Chip_Clock_GetPeripheralClockRate

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

  - >> Chip_SetupXtalClocking

  Chip_Clock_SetupPLL (Thumb, 32 bytes, Stack size 0 bytes, clock_17xx_40xx.o(i.Chip_Clock_SetupPLL))
  [Calls]

  - >> Chip_Clock_FeedPLL
  [Called By]
  - >> Chip_SetupXtalClocking

  Chip_I2C_EventHandler (Thumb, 26 bytes, Stack size 0 bytes, i2c_17xx_40xx.o(i.Chip_I2C_EventHandler))
  [Address Reference Count : 2]

  - smbus.o(i.i2c_set_mode)
  - i2c_17xx_40xx.o(.data)

  Chip_I2C_EventHandlerPolling (Thumb, 46 bytes, Stack size 16 bytes, i2c_17xx_40xx.o(i.Chip_I2C_EventHandlerPolling))
  [Stack]

  - Max Depth = 44
  - Call Chain = Chip_I2C_EventHandlerPolling ⇒ Chip_I2C_MasterStateHandler ⇒ handleMasterXferState
  [Calls]
  - >> Chip_I2C_MasterStateHandler
  - >> Chip_I2C_IsStateChanged
  [Address Reference Count : 1]
  - smbus.o(i.i2c_set_mode)

  Chip_I2C_Init (Thumb, 28 bytes, Stack size 16 bytes, i2c_17xx_40xx.o(i.Chip_I2C_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = Chip_I2C_Init
  [Calls]
  - >> Chip_Clock_EnablePeriphClock
  [Called By]
  - >> smbus_setup

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

  - >> i2c_state_handling

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

  - >> Chip_I2C_EventHandlerPolling

  Chip_I2C_MasterCmdRead (Thumb, 56 bytes, Stack size 64 bytes, i2c_17xx_40xx.o(i.Chip_I2C_MasterCmdRead))
  [Stack]

  - Max Depth = 80
  - Call Chain = Chip_I2C_MasterCmdRead ⇒ Chip_I2C_MasterTransfer
  [Calls]
  - >> Chip_I2C_MasterTransfer
  - >> __aeabi_memclr4
  [Called By]
  - >> smbus_read_reg

  Chip_I2C_MasterRead (Thumb, 48 bytes, Stack size 48 bytes, i2c_17xx_40xx.o(i.Chip_I2C_MasterRead))
  [Stack]

  - Max Depth = 64
  - Call Chain = Chip_I2C_MasterRead ⇒ Chip_I2C_MasterTransfer
  [Calls]
  - >> Chip_I2C_MasterTransfer
  - >> __aeabi_memclr4
  [Called By]
  - >> update_battery_status

  Chip_I2C_MasterSend (Thumb, 48 bytes, Stack size 48 bytes, i2c_17xx_40xx.o(i.Chip_I2C_MasterSend))
  [Stack]

  - Max Depth = 64
  - Call Chain = Chip_I2C_MasterSend ⇒ Chip_I2C_MasterTransfer
  [Calls]
  - >> Chip_I2C_MasterTransfer
  - >> __aeabi_memclr4
  [Called By]
  - >> setSmbusMux
  - >> update_battery_status
  - >> shutdown_packs
  - >> set_pack_state

  Chip_I2C_MasterStateHandler (Thumb, 42 bytes, Stack size 16 bytes, i2c_17xx_40xx.o(i.Chip_I2C_MasterStateHandler))
  [Stack]

  - Max Depth = 28
  - Call Chain = Chip_I2C_MasterStateHandler ⇒ handleMasterXferState
  [Calls]
  - >> handleMasterXferState
  [Called By]
  - >> i2c_state_handling
  - >> Chip_I2C_EventHandlerPolling

  Chip_I2C_MasterTransfer (Thumb, 96 bytes, Stack size 16 bytes, i2c_17xx_40xx.o(i.Chip_I2C_MasterTransfer))
  [Stack]

  - Max Depth = 16
  - Call Chain = Chip_I2C_MasterTransfer
  [Called By]
  - >> Chip_I2C_MasterSend
  - >> Chip_I2C_MasterRead
  - >> Chip_I2C_MasterCmdRead

  Chip_I2C_SetClockRate (Thumb, 40 bytes, Stack size 16 bytes, i2c_17xx_40xx.o(i.Chip_I2C_SetClockRate))
  [Stack]

  - Max Depth = 36
  - Call Chain = Chip_I2C_SetClockRate ⇒ getClkRate ⇒ Chip_Clock_GetPeripheralClockRate ⇒ Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> getClkRate
  [Called By]
  - >> smbus_setup

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

  - >> i2c_set_mode

  Chip_I2C_SlaveStateHandler (Thumb, 96 bytes, Stack size 16 bytes, i2c_17xx_40xx.o(i.Chip_I2C_SlaveStateHandler))
  [Stack]

  - Max Depth = 32
  - Call Chain = Chip_I2C_SlaveStateHandler ⇒ getSlaveIndex ⇒ lookupSlaveIndex
  [Calls]
  - >> handleSlaveXferState
  - >> getSlaveIndex
  [Called By]
  - >> i2c_state_handling

  Chip_IOCON_PinMux (Thumb, 50 bytes, Stack size 16 bytes, iocon_17xx_40xx.o(i.Chip_IOCON_PinMux))
  [Stack]

  - Max Depth = 16
  - Call Chain = Chip_IOCON_PinMux
  [Called By]
  - >> send_break
  - >> Board_I2C_Init
  - >> Board_LED_Init
  - >> Chip_IOCON_PinMuxSet

  Chip_IOCON_PinMuxSet (Thumb, 16 bytes, Stack size 12 bytes, iocon_17xx_40xx.o(i.Chip_IOCON_PinMuxSet))
  [Stack]

  - Max Depth = 28
  - Call Chain = Chip_IOCON_PinMuxSet ⇒ Chip_IOCON_PinMux
  [Calls]
  - >> Chip_IOCON_PinMux
  [Called By]
  - >> Chip_IOCON_SetPinMuxing

  Chip_IOCON_SetPinMuxing (Thumb, 40 bytes, Stack size 20 bytes, iocon_17xx_40xx.o(i.Chip_IOCON_SetPinMuxing))
  [Stack]

  - Max Depth = 48
  - Call Chain = Chip_IOCON_SetPinMuxing ⇒ Chip_IOCON_PinMuxSet ⇒ Chip_IOCON_PinMux
  [Calls]
  - >> Chip_IOCON_PinMuxSet
  [Called By]
  - >> Board_SetupMuxing

  Chip_PWM_Init (Thumb, 6 bytes, Stack size 0 bytes, pwm_17xx_40xx.o(i.Chip_PWM_Init))
  [Calls]

  - >> Chip_Clock_EnablePeriphClock
  [Called By]
  - >> Board_LED_Init

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

  - >> Board_LED_Color
  - >> Board_LED_Init

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

  - >> Board_LED_Init

  Chip_PWM_SetControlMode (Thumb, 48 bytes, Stack size 12 bytes, pwm_17xx_40xx.o(i.Chip_PWM_SetControlMode))
  [Stack]

  - Max Depth = 12
  - Call Chain = Chip_PWM_SetControlMode
  [Called By]
  - >> Board_LED_Init

  Chip_RIT_Init (Thumb, 28 bytes, Stack size 8 bytes, ritimer_17xx_40xx.o(i.Chip_RIT_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_RIT_Init
  [Calls]
  - >> Chip_Clock_EnablePeriphClock
  [Called By]
  - >> init_batteries

  Chip_RIT_SetTimerInterval (Thumb, 34 bytes, Stack size 16 bytes, ritimer_17xx_40xx.o(i.Chip_RIT_SetTimerInterval))
  [Stack]

  - Max Depth = 36
  - Call Chain = Chip_RIT_SetTimerInterval ⇒ Chip_Clock_GetPeripheralClockRate ⇒ Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_Clock_GetPeripheralClockRate
  [Called By]
  - >> init_batteries

  Chip_SetupXtalClocking (Thumb, 136 bytes, Stack size 8 bytes, sysinit_17xx_40xx.o(i.Chip_SetupXtalClocking))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_SetupXtalClocking
  [Calls]
  - >> Chip_Clock_SetupPLL
  - >> Chip_Clock_SetCPUClockDiv
  - >> Chip_Clock_EnablePLL
  - >> Chip_Clock_DisablePLL
  [Called By]
  - >> Board_SetupClocking

  Chip_UART_IRQRBHandler (Thumb, 108 bytes, Stack size 24 bytes, uart_17xx_40xx.o(i.Chip_UART_IRQRBHandler))
  [Stack]

  - Max Depth = 56
  - Call Chain = Chip_UART_IRQRBHandler ⇒ Chip_UART_TXIntHandlerRB ⇒ RingBuffer_Pop
  [Calls]
  - >> Chip_UART_TXIntHandlerRB
  - >> Chip_UART_RXIntHandlerRB
  [Called By]
  - >> handle_uart_int

  Chip_UART_Init (Thumb, 52 bytes, Stack size 8 bytes, uart_17xx_40xx.o(i.Chip_UART_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_UART_Init
  [Calls]
  - >> Chip_UART_GetClockIndex
  - >> Chip_Clock_EnablePeriphClock
  [Called By]
  - >> uart_hw_init
  - >> Board_Debug_Init

  Chip_UART_RXIntHandlerRB (Thumb, 30 bytes, Stack size 16 bytes, uart_17xx_40xx.o(i.Chip_UART_RXIntHandlerRB))
  [Stack]

  - Max Depth = 32
  - Call Chain = Chip_UART_RXIntHandlerRB ⇒ RingBuffer_Insert
  [Calls]
  - >> RingBuffer_Insert
  [Called By]
  - >> Chip_UART_IRQRBHandler

  Chip_UART_ReadRB (Thumb, 16 bytes, Stack size 8 bytes, uart_17xx_40xx.o(i.Chip_UART_ReadRB))
  [Stack]

  - Max Depth = 40
  - Call Chain = Chip_UART_ReadRB ⇒ RingBuffer_PopMult
  [Calls]
  - >> RingBuffer_PopMult
  [Called By]
  - >> recv_from_uart

  Chip_UART_SendRB (Thumb, 64 bytes, Stack size 24 bytes, uart_17xx_40xx.o(i.Chip_UART_SendRB))
  [Stack]

  - Max Depth = 56
  - Call Chain = Chip_UART_SendRB ⇒ RingBuffer_InsertMult
  [Calls]
  - >> RingBuffer_InsertMult
  - >> Chip_UART_TXIntHandlerRB
  [Called By]
  - >> setup_uart3
  - >> setup_uart0
  - >> send_to_uart

  Chip_UART_SetBaud (Thumb, 58 bytes, Stack size 16 bytes, uart_17xx_40xx.o(i.Chip_UART_SetBaud))
  [Stack]

  - Max Depth = 36
  - Call Chain = Chip_UART_SetBaud ⇒ Chip_Clock_GetPeripheralClockRate ⇒ Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_Clock_GetPeripheralClockRate
  - >> Chip_UART_GetClkIndex
  [Called By]
  - >> set_uart_config
  - >> Board_Debug_Init

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

  - >> uart_hw_init
  - >> Board_Debug_Init

  Chip_UART_TXIntHandlerRB (Thumb, 34 bytes, Stack size 16 bytes, uart_17xx_40xx.o(i.Chip_UART_TXIntHandlerRB))
  [Stack]

  - Max Depth = 32
  - Call Chain = Chip_UART_TXIntHandlerRB ⇒ RingBuffer_Pop
  [Calls]
  - >> RingBuffer_Pop
  [Called By]
  - >> Chip_UART_SendRB
  - >> Chip_UART_IRQRBHandler

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

  - >> init_wdt

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

  - >> init_wdt

  I2C0_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, smbus.o(i.I2C0_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = I2C0_IRQHandler ⇒ i2c_state_handling ⇒ Chip_I2C_SlaveStateHandler ⇒ getSlaveIndex ⇒ lookupSlaveIndex
  [Calls]
  - >> i2c_state_handling
  [Address Reference Count : 1]
  - keil_startup_lpc17xx_40xx.o(RESET)

  RIT_IRQHandler (Thumb, 60 bytes, Stack size 8 bytes, smbus.o(i.RIT_IRQHandler))
  [Stack]

  - Max Depth = 128
  - Call Chain = RIT_IRQHandler ⇒ set_status_led ⇒ get_charge_level ⇒ __aeabi_dmul
  [Calls]
  - >> set_status_led
  [Address Reference Count : 1]
  - keil_startup_lpc17xx_40xx.o(RESET)

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

  - >> uart_hw_init

  RingBuffer_Insert (Thumb, 48 bytes, Stack size 16 bytes, ring_buffer.o(i.RingBuffer_Insert))
  [Stack]

  - Max Depth = 16
  - Call Chain = RingBuffer_Insert
  [Calls]
  - >> RingBuffer_IsFull
  - >> __aeabi_memcpy
  [Called By]
  - >> Chip_UART_RXIntHandlerRB

  RingBuffer_InsertMult (Thumb, 122 bytes, Stack size 32 bytes, ring_buffer.o(i.RingBuffer_InsertMult))
  [Stack]

  - Max Depth = 32
  - Call Chain = RingBuffer_InsertMult
  [Calls]
  - >> RingBuffer_IsFull
  - >> __aeabi_memcpy
  [Called By]
  - >> Chip_UART_SendRB

  RingBuffer_Pop (Thumb, 48 bytes, Stack size 16 bytes, ring_buffer.o(i.RingBuffer_Pop))
  [Stack]

  - Max Depth = 16
  - Call Chain = RingBuffer_Pop
  [Calls]
  - >> RingBuffer_IsEmpty
  - >> __aeabi_memcpy
  [Called By]
  - >> Chip_UART_TXIntHandlerRB

  RingBuffer_PopMult (Thumb, 118 bytes, Stack size 32 bytes, ring_buffer.o(i.RingBuffer_PopMult))
  [Stack]

  - Max Depth = 32
  - Call Chain = RingBuffer_PopMult
  [Calls]
  - >> RingBuffer_IsEmpty
  - >> __aeabi_memcpy
  [Called By]
  - >> handle_uart_int
  - >> Chip_UART_ReadRB

  SysTick_Handler (Thumb, 26 bytes, Stack size 8 bytes, port.o(i.SysTick_Handler))
  [Stack]

  - Max Depth = 40
  - Call Chain = SysTick_Handler ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vPortSetInterruptMask
  - >> vPortClearInterruptMask
  - >> vTaskIncrementTick
  [Address Reference Count : 1]
  - keil_startup_lpc17xx_40xx.o(RESET)

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

  - Max Depth = 20
  - Call Chain = SystemCoreClockUpdate ⇒ Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_Clock_GetSystemClockRate
  [Called By]
  - >> prvSetupHardware

  SystemInit (Thumb, 14 bytes, Stack size 8 bytes, sysinit.o(i.SystemInit))
  [Stack]

  - Max Depth = 64
  - Call Chain = SystemInit ⇒ Board_SystemInit ⇒ Board_SetupMuxing ⇒ Chip_IOCON_SetPinMuxing ⇒ Chip_IOCON_PinMuxSet ⇒ Chip_IOCON_PinMux
  [Calls]
  - >> Board_SystemInit
  [Address Reference Count : 1]
  - keil_startup_lpc17xx_40xx.o(.text)

  UART0_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, uart.o(i.UART0_IRQHandler))
  [Stack]

  - Max Depth = 96
  - Call Chain = UART0_IRQHandler ⇒ handle_uart_int ⇒ Chip_UART_IRQRBHandler ⇒ Chip_UART_TXIntHandlerRB ⇒ RingBuffer_Pop
  [Calls]
  - >> handle_uart_int
  [Address Reference Count : 1]
  - keil_startup_lpc17xx_40xx.o(RESET)

  UART3_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, uart.o(i.UART3_IRQHandler))
  [Stack]

  - Max Depth = 96
  - Call Chain = UART3_IRQHandler ⇒ handle_uart_int ⇒ Chip_UART_IRQRBHandler ⇒ Chip_UART_TXIntHandlerRB ⇒ RingBuffer_Pop
  [Calls]
  - >> handle_uart_int
  [Address Reference Count : 1]
  - keil_startup_lpc17xx_40xx.o(RESET)

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

  - >> _printf_fp_dec_real
  - >> _printf_fp_hex_real

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

  - >> __printf

  _sys_exit (Thumb, 4 bytes, Stack size 0 bytes, board.o(i._sys_exit))
  [Calls]

  - >> _sys_exit
  [Called By]
  - >> _sys_exit
  - >> exit
  - >> __sig_exit

  ahb_alloc (Thumb, 54 bytes, Stack size 16 bytes, emac_support.o(i.ahb_alloc))
  [Stack]

  - Max Depth = 16
  - Call Chain = ahb_alloc
  [Calls]
  - >> __aeabi_memclr
  [Called By]
  - >> prvAllocateTCBAndStack
  - >> pk_init
  - >> prep_devices
  - >> eth_prep

  ahb_free (Thumb, 14 bytes, Stack size 8 bytes, emac_support.o(i.ahb_free))
  [Stack]

  - Max Depth = 152 + Unknown Stack Size
  - Call Chain = ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> __2printf
  [Called By]
  - >> prvDeleteTCB
  - >> pk_Qdelete

  allPacks (Thumb, 24 bytes, Stack size 16 bytes, smbus.o(i.allPacks))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = allPacks ⇒ set_pack_state ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> set_pack_state
  [Called By]
  - >> parse_battery_cmd
  - >> update_battery_status
  - >> chgwd_check

  check_phy (Thumb, 102 bytes, Stack size 16 bytes, emac_support.o(i.check_phy))
  [Stack]

  - Max Depth = 28
  - Call Chain = check_phy ⇒ msleep ⇒ usleep
  [Calls]
  - >> eth_setlink
  - >> emac_phy_read
  - >> msleep
  [Called By]
  - >> emac_phy_init
  - >> commTask

  chgwd_check (Thumb, 68 bytes, Stack size 8 bytes, smbus.o(i.chgwd_check))
  [Stack]

  - Max Depth = 216 + Unknown Stack Size
  - Call Chain = chgwd_check ⇒ allPacks ⇒ set_pack_state ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> Chip_GPIO_SetPinOutLow
  - >> allPacks
  [Called By]
  - >> batteryTask

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

  - >> parse_battery_cmd
  - >> init_batteries

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

  - >> parse_battery_cmd
  - >> init_batteries

  decode_ip (Thumb, 40 bytes, Stack size 32 bytes, srv_ui.o(i.decode_ip))
  [Stack]

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

  dtrap (Thumb, 10 bytes, Stack size 0 bytes, tcpdata.o(i.dtrap))
  [Stack]

  - Max Depth = 144 + Unknown Stack Size
  - Call Chain = dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> __2printf
  [Called By]
  - >> panic
  - >> get_mac_address

  emac_phy_init (Thumb, 118 bytes, Stack size 16 bytes, emac_support.o(i.emac_phy_init))
  [Stack]

  - Max Depth = 44
  - Call Chain = emac_phy_init ⇒ check_phy ⇒ msleep ⇒ usleep
  [Calls]
  - >> emac_phy_write
  - >> emac_phy_read
  - >> usleep
  - >> check_phy
  [Called By]
  - >> eth_init

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

  - >> user_pre_setup

  exit (Thumb, 20 bytes, Stack size 0 bytes, tcpdata.o(i.exit))
  [Stack]

  - Max Depth = 144 + Unknown Stack Size
  - Call Chain = exit ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> _sys_exit
  - >> __2printf
  [Called By]
  - >> commTask
  - >> __rt_entry_main

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

  - >> _printf_char_file

  fputc (Thumb, 12 bytes, Stack size 4 bytes, board.o(i.fputc))
  [Stack]

  - Max Depth = 4
  - Call Chain = fputc
  [Calls]
  - >> Board_UARTPutChar
  [Called By]
  - >> putc
  [Address Reference Count : 1]
  - _printf_char_file.o(.text)

  getSlaveIndex (Thumb, 46 bytes, Stack size 0 bytes, i2c_17xx_40xx.o(i.getSlaveIndex))
  [Stack]

  - Max Depth = 16
  - Call Chain = getSlaveIndex ⇒ lookupSlaveIndex
  [Calls]
  - >> lookupSlaveIndex
  [Called By]
  - >> Chip_I2C_SlaveStateHandler

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

  - >> parse_battery_cmd
  - >> shutdown_packs
  - >> get_charge_level
  - >> get_cell_voltages

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

  - >> parse_battery_cmd

  get_cell_voltages (Thumb, 106 bytes, Stack size 32 bytes, smbus.o(i.get_cell_voltages))
  [Stack]

  - Max Depth = 152
  - Call Chain = get_cell_voltages ⇒ smbus_read_reg ⇒ Chip_I2C_MasterCmdRead ⇒ Chip_I2C_MasterTransfer
  [Calls]
  - >> smbus_read_reg
  - >> select_battery
  - >> get_bat_count
  [Called By]
  - >> parse_battery_cmd

  get_charge_level (Thumb, 180 bytes, Stack size 56 bytes, smbus.o(i.get_charge_level))
  [Stack]

  - Max Depth = 88
  - Call Chain = get_charge_level ⇒ __aeabi_dmul
  [Calls]
  - >> get_bat_count
  - >> __aeabi_cfrcmple
  - >> __aeabi_ui2f
  - >> __aeabi_i2f
  - >> __aeabi_f2iz
  - >> __aeabi_fdiv
  - >> __aeabi_fadd
  - >> __aeabi_f2d
  - >> __aeabi_dmul
  - >> __aeabi_ddiv
  - >> __aeabi_dsub
  - >> __aeabi_d2f
  [Called By]
  - >> set_status_led

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

  - >> parse_battery_cmd

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

  - >> parse_battery_cmd

  get_mac_address (Thumb, 26 bytes, Stack size 16 bytes, tcpdata.o(i.get_mac_address))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = get_mac_address ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dtrap
  [Called By]
  - >> eth_init

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

  - >> parse_battery_cmd

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

  - >> parse_battery_cmd

  handleMasterXferState (Thumb, 176 bytes, Stack size 12 bytes, i2c_17xx_40xx.o(i.handleMasterXferState))
  [Stack]

  - Max Depth = 12
  - Call Chain = handleMasterXferState
  [Called By]
  - >> Chip_I2C_MasterStateHandler

  handleSlaveXferState (Thumb, 152 bytes, Stack size 12 bytes, i2c_17xx_40xx.o(i.handleSlaveXferState))
  [Stack]

  - Max Depth = 12
  - Call Chain = handleSlaveXferState
  [Called By]
  - >> Chip_I2C_SlaveStateHandler

  handle_battery_requests (Thumb, 64 bytes, Stack size 64 bytes, batman.o(i.handle_battery_requests))
  [Stack]

  - Max Depth = 688 + Unknown Stack Size
  - Call Chain = handle_battery_requests ⇒ parse_battery_cmd ⇒ tcp_srv_respond_term ⇒ tcp_srv_respond ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> tcp_srv_respond_term
  - >> parse_battery_cmd
  - >> __2sprintf
  [Address Reference Count : 1]
  - batman.o(i.main_task_setup)

  handle_ctl_requests (Thumb, 98 bytes, Stack size 64 bytes, batman.o(i.handle_ctl_requests))
  [Stack]

  - Max Depth = 632 + Unknown Stack Size
  - Call Chain = handle_ctl_requests ⇒ parse_ctl_cmd ⇒ tcp_srv_respond_term ⇒ tcp_srv_respond ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> tcp_srv_respond_term
  - >> parse_ctl_cmd
  - >> __2sprintf
  [Address Reference Count : 1]
  - batman.o(i.main_task_setup)

  handle_uart_int (Thumb, 82 bytes, Stack size 32 bytes, uart.o(i.handle_uart_int))
  [Stack]

  - Max Depth = 88
  - Call Chain = handle_uart_int ⇒ Chip_UART_IRQRBHandler ⇒ Chip_UART_TXIntHandlerRB ⇒ RingBuffer_Pop
  [Calls]
  - >> RingBuffer_PopMult
  - >> Chip_UART_IRQRBHandler
  [Called By]
  - >> UART3_IRQHandler
  - >> UART0_IRQHandler

  i2c_set_mode (Thumb, 106 bytes, Stack size 16 bytes, smbus.o(i.i2c_set_mode))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = i2c_set_mode ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> NVIC_EnableIRQ
  - >> Chip_I2C_SetMasterEventHandler
  - >> __2printf
  [Called By]
  - >> smbus_setup

  iap_copy_ram_to_flash (Thumb, 48 bytes, Stack size 56 bytes, iap_driver.o(i.iap_copy_ram_to_flash))
  [Stack]

  - Max Depth = 72
  - Call Chain = iap_copy_ram_to_flash ⇒ iap_entry
  [Calls]
  - >> iap_entry
  [Called By]
  - >> store_flash_config

  iap_erase_sector (Thumb, 44 bytes, Stack size 48 bytes, iap_driver.o(i.iap_erase_sector))
  [Stack]

  - Max Depth = 64
  - Call Chain = iap_erase_sector ⇒ iap_entry
  [Calls]
  - >> iap_entry
  [Called By]
  - >> store_flash_config

  iap_prepare_sector (Thumb, 30 bytes, Stack size 48 bytes, iap_driver.o(i.iap_prepare_sector))
  [Stack]

  - Max Depth = 64
  - Call Chain = iap_prepare_sector ⇒ iap_entry
  [Calls]
  - >> iap_entry
  [Called By]
  - >> store_flash_config

  init_batteries (Thumb, 76 bytes, Stack size 8 bytes, smbus.o(i.init_batteries))
  [Stack]

  - Max Depth = 96
  - Call Chain = init_batteries ⇒ setSmbusMux ⇒ Chip_I2C_MasterSend ⇒ Chip_I2C_MasterTransfer
  [Calls]
  - >> setSmbusMux
  - >> NVIC_EnableIRQ
  - >> Chip_RIT_SetTimerInterval
  - >> Chip_RIT_Init
  - >> smbusReset
  - >> chgwd_reset
  - >> chgwd_control
  - >> __aeabi_memclr
  [Called By]
  - >> batteryTask

  init_wdt (Thumb, 126 bytes, Stack size 16 bytes, batman.o(i.init_wdt))
  [Stack]

  - Max Depth = 36
  - Call Chain = init_wdt ⇒ Chip_Clock_GetPeripheralClockRate ⇒ Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_WWDT_Init
  - >> Chip_WWDT_ClearStatusFlag
  - >> Chip_Clock_GetPeripheralClockRate
  - >> Chip_WWDT_SetOption
  - >> Chip_WWDT_Feed
  [Called By]
  - >> main
  - >> parse_ctl_cmd

  load_flash_config (Thumb, 98 bytes, Stack size 16 bytes, batman.o(i.load_flash_config))
  [Stack]

  - Max Depth = 20
  - Call Chain = load_flash_config ⇒ __aeabi_memclr4
  [Calls]
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> main_task_setup

  main (Thumb, 178 bytes, Stack size 56 bytes, batman.o(i.main))
  [Stack]

  - Max Depth = 464 + Unknown Stack Size
  - Call Chain = main ⇒ nichestack_init ⇒ post_task_setup ⇒ user_post_setup ⇒ dnc_init ⇒ t_socket ⇒ socreate ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> xTaskGenericCreate
  - >> xQueueCreate
  - >> vTaskStartScheduler
  - >> tk_new
  - >> nichestack_init
  - >> prvSetupHardware
  - >> main_task_setup
  - >> xQueueGenericSend
  - >> init_wdt
  - >> __2sprintf
  [Called By]
  - >> __rt_entry_main

  msleep (Thumb, 18 bytes, Stack size 4 bytes, emac_support.o(i.msleep))
  [Stack]

  - Max Depth = 12
  - Call Chain = msleep ⇒ usleep
  [Calls]
  - >> usleep
  [Called By]
  - >> setSmbusMux
  - >> check_phy
  - >> smbus_read_reg
  - >> set_pack_state

  npalloc (Thumb, 30 bytes, Stack size 16 bytes, emac_support.o(i.npalloc))
  [Stack]

  - Max Depth = 80
  - Call Chain = npalloc ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> pvPortMalloc
  - >> __aeabi_memclr
  [Called By]
  - >> ping_init
  - >> dnc_init
  - >> t_setsockopt
  - >> socreate
  - >> pingapp_rcv
  - >> dnc_cp2hostent
  - >> dnc_txreq_a
  - >> dnc_proc_answer_rr
  - >> gio_push
  - >> pre_task_setup
  - >> cli_mod_prep
  - >> gio_printf
  - >> cli_get_context
  - >> in_pcballoc
  - >> tcp_newtcpcb
  - >> tcp_template
  - >> sonewconn
  - >> udp_open
  - >> if_nameindex
  - >> gio_dev
  - >> ip_reasm_process_subsequent_fragments
  - >> ip_reasm_process_first_fragment

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

  - Max Depth = 64
  - Call Chain = npfree ⇒ vPortFree ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vPortFree
  [Called By]
  - >> dnc_init
  - >> ping_close
  - >> pingapp_rcv
  - >> dnc_shutdown
  - >> dnc_cleanup_entry
  - >> dnc_txreq_a
  - >> dnc_free_hostent
  - >> dnc_clrtab
  - >> gio_printf
  - >> cli_free_context
  - >> cli_get_context
  - >> in_pcbdetach
  - >> sonewconn
  - >> sofree
  - >> tcp_close
  - >> udp_close
  - >> if_freenameindex
  - >> gio_pop
  - >> ip_reasm_delete_ire

  panic (Thumb, 14 bytes, Stack size 0 bytes, tcpdata.o(i.panic))
  [Stack]

  - Max Depth = 144 + Unknown Stack Size
  - Call Chain = panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dtrap
  - >> __2printf
  [Called By]
  - >> t_accept
  - >> vApplicationStackOverflowHook
  - >> main
  - >> main_task_setup
  - >> commTask
  - >> soreceive
  - >> soaccept
  - >> m_getnbuf
  - >> pktdemux
  - >> pk_init
  - >> pre_task_setup
  - >> prep_devices
  - >> cli_mod_prep
  - >> gio_printf
  - >> fix_mbuf
  - >> tcp_respond
  - >> tcp_output
  - >> tcp_pulloutofband
  - >> sbcompress
  - >> sbflush
  - >> sbdrop
  - >> soisconnected
  - >> sofree
  - >> tcp_usrreq
  - >> tcp_input
  - >> dtom
  - >> m_copy
  - >> ip_output
  - >> m_free
  - >> exit_hook
  - >> et_send

  parse_battery_cmd (Thumb, 4386 bytes, Stack size 200 bytes, srv_ui.o(i.parse_battery_cmd))
  [Stack]

  - Max Depth = 624 + Unknown Stack Size
  - Call Chain = parse_battery_cmd ⇒ tcp_srv_respond_term ⇒ tcp_srv_respond ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> task_sleep
  - >> xQueueGenericSend
  - >> xQueueGenericReceive
  - >> tcp_srv_respond_term
  - >> tcp_srv_respond
  - >> Chip_GPIO_SetPinOutLow
  - >> Chip_GPIO_SetPinOutHigh
  - >> Chip_GPIO_ReadValue
  - >> shutdown_packs
  - >> get_unrec_smbus_errors
  - >> get_smbus_errors
  - >> get_humidity_temp
  - >> get_humidity
  - >> get_cell_voltages
  - >> get_battery_temp
  - >> get_bat_count
  - >> chgwd_reset
  - >> chgwd_control
  - >> allPacks
  - >> __2sprintf
  - >> __aeabi_fmul
  - >> __aeabi_ui2f
  - >> __aeabi_i2f
  - >> __aeabi_fdiv
  - >> __aeabi_fsub
  - >> __aeabi_fadd
  - >> __aeabi_f2d
  - >> __aeabi_dmul
  - >> __aeabi_d2iz
  - >> strncmp
  - >> __0sscanf
  [Called By]
  - >> handle_battery_requests

  parse_ctl_cmd (Thumb, 4604 bytes, Stack size 144 bytes, srv_ui.o(i.parse_ctl_cmd))
  [Stack]

  - Max Depth = 568 + Unknown Stack Size
  - Call Chain = parse_ctl_cmd ⇒ tcp_srv_respond_term ⇒ tcp_srv_respond ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> set_uart_config
  - >> send_break
  - >> task_sleep
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> tcp_srv_respond_term
  - >> tcp_srv_init
  - >> t_socketclose
  - >> t_getpeername
  - >> store_flash_config
  - >> init_wdt
  - >> ifd_set
  - >> ifd_clr
  - >> parse_ip_octet
  - >> decode_ip
  - >> is_cmd
  - >> get_cmd
  - >> get_argument
  - >> __2sprintf
  - >> strcmp
  - >> strncpy
  - >> strncmp
  - >> strlen
  - >> strcpy
  - >> memcmp
  - >> strtol
  - >> atoi
  [Called By]
  - >> handle_ctl_requests

  parse_ip_octet (Thumb, 242 bytes, Stack size 48 bytes, srv_ui.o(i.parse_ip_octet))
  [Stack]

  - Max Depth = 136
  - Call Chain = parse_ip_octet ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> strncmp
  - >> strlen
  - >> atoi
  [Called By]
  - >> parse_ctl_cmd

  pvPortMalloc (Thumb, 24 bytes, Stack size 16 bytes, heap_3.o(i.pvPortMalloc))
  [Stack]

  - Max Depth = 64
  - Call Chain = pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> malloc
  [Called By]
  - >> npalloc
  - >> prvAllocateTCBAndStack
  - >> xQueueCreateMutex
  - >> xQueueCreate
  - >> main_task_setup

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

  - >> xTaskGenericCreate

  recv_from_uart (Thumb, 194 bytes, Stack size 304 bytes, batman.o(i.recv_from_uart))
  [Stack]

  - Max Depth = 712 + Unknown Stack Size
  - Call Chain = recv_from_uart ⇒ tcp_srv_respond ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> xTaskGetTickCount
  - >> Chip_UART_ReadRB
  - >> tcp_srv_respond
  [Called By]
  - >> commTask

  select_battery (Thumb, 58 bytes, Stack size 24 bytes, smbus.o(i.select_battery))
  [Stack]

  - Max Depth = 112
  - Call Chain = select_battery ⇒ setSmbusMux ⇒ Chip_I2C_MasterSend ⇒ Chip_I2C_MasterTransfer
  [Calls]
  - >> setSmbusMux
  - >> get_corrected_batnum
  [Called By]
  - >> update_battery_status
  - >> shutdown_packs
  - >> set_pack_state
  - >> get_cell_voltages

  send_break (Thumb, 116 bytes, Stack size 24 bytes, uart.o(i.send_break))
  [Stack]

  - Max Depth = 104
  - Call Chain = send_break ⇒ task_sleep ⇒ tk_sleep ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> Chip_IOCON_PinMux
  - >> Chip_GPIO_SetPinState
  - >> task_sleep
  [Called By]
  - >> parse_ctl_cmd

  send_to_uart (Thumb, 118 bytes, Stack size 40 bytes, batman.o(i.send_to_uart))
  [Stack]

  - Max Depth = 120
  - Call Chain = send_to_uart ⇒ task_sleep ⇒ tk_sleep ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> Chip_UART_SendRB
  - >> task_sleep
  [Address Reference Count : 1]
  - batman.o(i.main_task_setup)

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

  - >> batteryTask

  set_pack_state (Thumb, 388 bytes, Stack size 56 bytes, smbus.o(i.set_pack_state))
  [Stack]

  - Max Depth = 192 + Unknown Stack Size
  - Call Chain = set_pack_state ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> msleep
  - >> Chip_I2C_MasterSend
  - >> smbus_read_reg
  - >> select_battery
  - >> __2sprintf
  [Called By]
  - >> update_battery_status
  - >> allPacks

  set_status_led (Thumb, 334 bytes, Stack size 32 bytes, smbus.o(i.set_status_led))
  [Stack]

  - Max Depth = 120
  - Call Chain = set_status_led ⇒ get_charge_level ⇒ __aeabi_dmul
  [Calls]
  - >> Board_LED_Color
  - >> get_charge_level
  [Called By]
  - >> RIT_IRQHandler

  set_uart_config (Thumb, 580 bytes, Stack size 72 bytes, uart.o(i.set_uart_config))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = set_uart_config ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> Chip_UART_SetBaud
  - >> __2sprintf
  - >> strlen
  [Called By]
  - >> setup_uart3
  - >> setup_uart0
  - >> parse_ctl_cmd

  setup_uart0 (Thumb, 82 bytes, Stack size 24 bytes, uart.o(i.setup_uart0))
  [Stack]

  - Max Depth = 232 + Unknown Stack Size
  - Call Chain = setup_uart0 ⇒ set_uart_config ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> Chip_UART_SendRB
  - >> set_uart_config
  - >> uart_hw_init
  - >> __aeabi_memclr4
  [Called By]
  - >> main_task_setup

  setup_uart3 (Thumb, 74 bytes, Stack size 24 bytes, uart.o(i.setup_uart3))
  [Stack]

  - Max Depth = 232 + Unknown Stack Size
  - Call Chain = setup_uart3 ⇒ set_uart_config ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> Chip_UART_SendRB
  - >> set_uart_config
  - >> uart_hw_init
  - >> __aeabi_memclr4
  [Called By]
  - >> main_task_setup

  shutdown_packs (Thumb, 124 bytes, Stack size 16 bytes, smbus.o(i.shutdown_packs))
  [Stack]

  - Max Depth = 128
  - Call Chain = shutdown_packs ⇒ select_battery ⇒ setSmbusMux ⇒ Chip_I2C_MasterSend ⇒ Chip_I2C_MasterTransfer
  [Calls]
  - >> task_sleep
  - >> Chip_I2C_MasterSend
  - >> select_battery
  - >> get_bat_count
  [Called By]
  - >> parse_battery_cmd

  smbusReset (Thumb, 60 bytes, Stack size 8 bytes, smbus.o(i.smbusReset))
  [Stack]

  - Max Depth = 88
  - Call Chain = smbusReset ⇒ task_sleep ⇒ tk_sleep ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> Chip_GPIO_SetPinOutLow
  - >> task_sleep
  [Called By]
  - >> init_batteries

  smbus_read_reg (Thumb, 142 bytes, Stack size 40 bytes, smbus.o(i.smbus_read_reg))
  [Stack]

  - Max Depth = 120
  - Call Chain = smbus_read_reg ⇒ Chip_I2C_MasterCmdRead ⇒ Chip_I2C_MasterTransfer
  [Calls]
  - >> msleep
  - >> Chip_I2C_MasterCmdRead
  [Called By]
  - >> update_battery_status
  - >> set_pack_state
  - >> get_cell_voltages

  smbus_setup (Thumb, 148 bytes, Stack size 8 bytes, smbus.o(i.smbus_setup))
  [Stack]

  - Max Depth = 168 + Unknown Stack Size
  - Call Chain = smbus_setup ⇒ i2c_set_mode ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> Chip_GPIO_SetPinOutLow
  - >> Chip_GPIO_SetPinDIROutput
  - >> Chip_I2C_SetClockRate
  - >> Chip_I2C_Init
  - >> Board_I2C_Init
  - >> i2c_set_mode
  [Called By]
  - >> prvSetupHardware

  store_flash_config (Thumb, 88 bytes, Stack size 16 bytes, batman.o(i.store_flash_config))
  [Stack]

  - Max Depth = 88
  - Call Chain = store_flash_config ⇒ iap_copy_ram_to_flash ⇒ iap_entry
  [Calls]
  - >> iap_prepare_sector
  - >> iap_erase_sector
  - >> iap_copy_ram_to_flash
  [Called By]
  - >> main_task_setup
  - >> parse_ctl_cmd

  task_sleep (Thumb, 22 bytes, Stack size 16 bytes, emac_support.o(i.task_sleep))
  [Stack]

  - Max Depth = 80
  - Call Chain = task_sleep ⇒ tk_sleep ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> tk_sleep
  [Called By]
  - >> send_break
  - >> send_to_uart
  - >> commTask
  - >> parse_ctl_cmd
  - >> parse_battery_cmd
  - >> update_battery_status
  - >> smbusReset
  - >> shutdown_packs

  tcp_srv_init (Thumb, 100 bytes, Stack size 32 bytes, batman.o(i.tcp_srv_init))
  [Stack]

  - Max Depth = 368 + Unknown Stack Size
  - Call Chain = tcp_srv_init ⇒ t_socket ⇒ socreate ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> t_socket
  - >> t_setsockopt
  - >> t_listen
  - >> t_bind
  [Called By]
  - >> commTask
  - >> parse_ctl_cmd

  tcp_srv_respond (Thumb, 88 bytes, Stack size 24 bytes, batman.o(i.tcp_srv_respond))
  [Stack]

  - Max Depth = 408 + Unknown Stack Size
  - Call Chain = tcp_srv_respond ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> vPortYieldFromISR
  - >> t_send
  - >> t_errno
  - >> __2printf
  [Called By]
  - >> recv_from_uart
  - >> tcp_srv_respond_term
  - >> parse_battery_cmd

  tcp_srv_respond_term (Thumb, 26 bytes, Stack size 16 bytes, batman.o(i.tcp_srv_respond_term))
  [Stack]

  - Max Depth = 424 + Unknown Stack Size
  - Call Chain = tcp_srv_respond_term ⇒ tcp_srv_respond ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> tcp_srv_respond
  - >> strlen
  [Called By]
  - >> handle_ctl_requests
  - >> handle_battery_requests
  - >> commTask
  - >> parse_ctl_cmd
  - >> parse_battery_cmd

  update_battery_status (Thumb, 968 bytes, Stack size 56 bytes, smbus.o(i.update_battery_status))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = update_battery_status ⇒ allPacks ⇒ set_pack_state ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> setSmbusMux
  - >> Chip_GPIO_SetPinOutLow
  - >> task_sleep
  - >> Chip_I2C_MasterSend
  - >> Chip_I2C_MasterRead
  - >> smbus_read_reg
  - >> set_pack_state
  - >> select_battery
  - >> allPacks
  - >> __2printf
  [Called By]
  - >> batteryTask

  upnp_callback (Thumb, 18 bytes, Stack size 16 bytes, tcpdata.o(i.upnp_callback))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = upnp_callback ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> __2printf
  [Address Reference Count : 1]
  - upnp.o(.data)

  user1_cli (Thumb, 196 bytes, Stack size 40 bytes, tcpdata.o(i.user1_cli))
  [Stack]

  - Max Depth = 184 + Unknown Stack Size
  - Call Chain = user1_cli ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_help
  - >> cli_get_value
  - >> cli_defined
  - >> __2printf
  [Address Reference Count : 1]
  - tcpdata.o(.data)

  user_post_setup (Thumb, 46 bytes, Stack size 8 bytes, tcpdata.o(i.user_post_setup))
  [Stack]

  - Max Depth = 384 + Unknown Stack Size
  - Call Chain = user_post_setup ⇒ dnc_init ⇒ t_socket ⇒ socreate ⇒ sofree ⇒ sorflush ⇒ sbrelease ⇒ sbflush ⇒ sbdrop ⇒ m_free ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ping_init
  - >> dnc_init
  - >> __2printf
  [Called By]
  - >> post_task_setup

  user_pre_setup (Thumb, 30 bytes, Stack size 8 bytes, tcpdata.o(i.user_pre_setup))
  [Stack]

  - Max Depth = 208
  - Call Chain = user_pre_setup ⇒ in_v4addrcfg ⇒ inet_pton ⇒ parse_ipad ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> in_v4addrcfg
  - >> in_cfgstack
  - >> embTCP_config
  [Called By]
  - >> pre_task_setup

  usleep (Thumb, 30 bytes, Stack size 8 bytes, emac_support.o(i.usleep))
  [Stack]

  - Max Depth = 8
  - Call Chain = usleep
  [Called By]
  - >> msleep
  - >> emac_phy_init
  - >> eth_init

  vApplicationStackOverflowHook (Thumb, 14 bytes, Stack size 16 bytes, batman.o(i.vApplicationStackOverflowHook))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = vApplicationStackOverflowHook ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  [Called By]
  - >> vTaskSwitchContext

  vApplicationTickHook (Thumb, 8 bytes, Stack size 8 bytes, batman.o(i.vApplicationTickHook))
  [Stack]

  - Max Depth = 16
  - Call Chain = vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> embTCP_tick_hook
  [Called By]
  - >> vTaskIncrementTick

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

  - >> prvInitialiseTaskLists
  - >> xQueueCreateMutex
  - >> xQueueCreate

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

  - >> prvInitialiseTCBVariables

  vListInsert (Thumb, 52 bytes, Stack size 8 bytes, list.o(i.vListInsert))
  [Stack]

  - Max Depth = 8
  - Call Chain = vListInsert
  [Called By]
  - >> prvAddCurrentTaskToDelayedList
  - >> vTaskPlaceOnEventList

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

  - >> xTaskResumeAll
  - >> xTaskRemoveFromEventList
  - >> vTaskPriorityInherit
  - >> vTaskPriorityDisinherit
  - >> vTaskPlaceOnEventList
  - >> xTaskGenericCreate
  - >> vTaskSuspend
  - >> vTaskResume
  - >> vTaskIncrementTick
  - >> vTaskDelete

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

  - >> prvCheckTasksWaitingTermination
  - >> xTaskResumeAll
  - >> xTaskRemoveFromEventList
  - >> vTaskPriorityInherit
  - >> vTaskPriorityDisinherit
  - >> vTaskPlaceOnEventList
  - >> vTaskDelay
  - >> vTaskSuspend
  - >> vTaskResume
  - >> vTaskIncrementTick
  - >> vTaskDelete

  vPortEnterCritical (Thumb, 18 bytes, Stack size 8 bytes, port.o(i.vPortEnterCritical))
  [Stack]

  - Max Depth = 8
  - Call Chain = vPortEnterCritical
  [Calls]
  - >> vPortSetInterruptMask
  [Called By]
  - >> prvCheckTasksWaitingTermination
  - >> xTaskResumeAll
  - >> xTaskCheckForTimeOut
  - >> prvUnlockQueue
  - >> prvIsQueueFull
  - >> prvIsQueueEmpty
  - >> xTaskGetTickCount
  - >> xTaskGenericCreate
  - >> xQueueGenericSend
  - >> xQueueGenericReceive
  - >> parse_ctl_cmd
  - >> dump_buf_estats
  - >> putq
  - >> getq
  - >> eth_refill
  - >> eth_stats
  - >> eth_pkt_send
  - >> vTaskSuspend
  - >> vTaskResume
  - >> vTaskDelete
  - >> tcp_output
  - >> sbdroprecord
  - >> sbdropend
  - >> sbappendaddr
  - >> sbappendrecord
  - >> sbappend
  - >> sbflush
  - >> sbdrop
  - >> qdel
  - >> pk_validate
  - >> pk_Qname

  vPortExitCritical (Thumb, 24 bytes, Stack size 8 bytes, port.o(i.vPortExitCritical))
  [Stack]

  - Max Depth = 8
  - Call Chain = vPortExitCritical
  [Calls]
  - >> vPortClearInterruptMask
  [Called By]
  - >> prvCheckTasksWaitingTermination
  - >> xTaskResumeAll
  - >> xTaskCheckForTimeOut
  - >> prvUnlockQueue
  - >> prvIsQueueFull
  - >> prvIsQueueEmpty
  - >> xTaskGetTickCount
  - >> xTaskGenericCreate
  - >> xQueueGenericSend
  - >> xQueueGenericReceive
  - >> parse_ctl_cmd
  - >> dump_buf_estats
  - >> putq
  - >> getq
  - >> eth_refill
  - >> eth_stats
  - >> eth_pkt_send
  - >> vTaskSuspend
  - >> vTaskResume
  - >> vTaskDelete
  - >> fix_mbuf
  - >> tcp_output
  - >> sbdroprecord
  - >> sbdropend
  - >> sbappendaddr
  - >> sbappendrecord
  - >> sbappend
  - >> sbflush
  - >> sbdrop
  - >> qdel
  - >> pk_validate
  - >> pk_Qname

  vPortFree (Thumb, 22 bytes, Stack size 8 bytes, heap_3.o(i.vPortFree))
  [Stack]

  - Max Depth = 56
  - Call Chain = vPortFree ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> free
  [Called By]
  - >> npfree
  - >> prvDeleteTCB
  - >> prvAllocateTCBAndStack
  - >> vQueueDelete
  - >> xQueueCreate

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

  - >> xTaskResumeAll
  - >> xTaskGenericCreate
  - >> vTaskDelay
  - >> commTask
  - >> xQueueGenericSend
  - >> xQueueGenericReceive
  - >> tcp_srv_respond
  - >> eth_isr
  - >> vTaskSuspend
  - >> vTaskResume
  - >> vTaskDelete

  vQueueDelete (Thumb, 24 bytes, Stack size 8 bytes, queue.o(i.vQueueDelete))
  [Stack]

  - Max Depth = 64
  - Call Chain = vQueueDelete ⇒ vPortFree ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vPortFree
  - >> vQueueUnregisterQueue
  [Called By]
  - >> tk_mutex_free
  - >> tk_sem_free

  vTaskDelay (Thumb, 48 bytes, Stack size 16 bytes, tasks.o(i.vTaskDelay))
  [Stack]

  - Max Depth = 64
  - Call Chain = vTaskDelay ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> prvAddCurrentTaskToDelayedList
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vListRemove
  - >> vPortYieldFromISR
  [Called By]
  - >> tk_sleep
  - >> batteryTask
  - >> sosend
  - >> soreceive
  - >> tk_console
  - >> gio_out
  - >> cli_showcommands
  - >> gio_in

  vTaskDelete (Thumb, 94 bytes, Stack size 16 bytes, tasks.o(i.vTaskDelete))
  [Stack]

  - Max Depth = 24
  - Call Chain = vTaskDelete ⇒ vPortExitCritical
  [Calls]
  - >> vListRemove
  - >> vListInsertEnd
  - >> vPortYieldFromISR
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> tk_new
  - >> tk_del

  vTaskIncrementTick (Thumb, 242 bytes, Stack size 16 bytes, tasks.o(i.vTaskIncrementTick))
  [Stack]

  - Max Depth = 32
  - Call Chain = vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vListRemove
  - >> vListInsertEnd
  - >> vApplicationTickHook
  [Called By]
  - >> xTaskResumeAll
  - >> SysTick_Handler

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

  - >> prvUnlockQueue

  vTaskPlaceOnEventList (Thumb, 60 bytes, Stack size 16 bytes, tasks.o(i.vTaskPlaceOnEventList))
  [Stack]

  - Max Depth = 32
  - Call Chain = vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> prvAddCurrentTaskToDelayedList
  - >> vListRemove
  - >> vListInsertEnd
  - >> vListInsert
  [Called By]
  - >> xQueueGenericSend
  - >> xQueueGenericReceive

  vTaskPriorityDisinherit (Thumb, 70 bytes, Stack size 16 bytes, tasks.o(i.vTaskPriorityDisinherit))
  [Stack]

  - Max Depth = 16
  - Call Chain = vTaskPriorityDisinherit
  [Calls]
  - >> vListRemove
  - >> vListInsertEnd
  [Called By]
  - >> prvCopyDataToQueue

  vTaskPriorityInherit (Thumb, 108 bytes, Stack size 16 bytes, tasks.o(i.vTaskPriorityInherit))
  [Stack]

  - Max Depth = 16
  - Call Chain = vTaskPriorityInherit
  [Calls]
  - >> vListRemove
  - >> vListInsertEnd
  [Called By]
  - >> xQueueGenericReceive

  vTaskResume (Thumb, 92 bytes, Stack size 16 bytes, tasks.o(i.vTaskResume))
  [Stack]

  - Max Depth = 24
  - Call Chain = vTaskResume ⇒ vPortExitCritical
  [Calls]
  - >> vListRemove
  - >> vListInsertEnd
  - >> vPortYieldFromISR
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> xTaskIsTaskSuspended
  [Called By]
  - >> tk_wake

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

  - >> xTaskCheckForTimeOut
  - >> xQueueGenericSend
  - >> xQueueGenericReceive

  vTaskStartScheduler (Thumb, 52 bytes, Stack size 24 bytes, tasks.o(i.vTaskStartScheduler))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = vTaskStartScheduler ⇒ xTaskGenericCreate ⇒ prvAllocateTCBAndStack ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vPortSetInterruptMask
  - >> xTaskGenericCreate
  - >> xPortStartScheduler
  [Called By]
  - >> main

  vTaskSuspend (Thumb, 100 bytes, Stack size 16 bytes, tasks.o(i.vTaskSuspend))
  [Stack]

  - Max Depth = 184 + Unknown Stack Size
  - Call Chain = vTaskSuspend ⇒ vTaskSwitchContext ⇒ vApplicationStackOverflowHook ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vListRemove
  - >> vListInsertEnd
  - >> vPortYieldFromISR
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vTaskSwitchContext
  [Called By]
  - >> tk_suspend

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

  - >> vPortFree
  - >> pvPortMalloc
  - >> prvCheckTasksWaitingTermination
  - >> vTaskDelay
  - >> xQueueGenericSend
  - >> xQueueGenericReceive

  vTaskSwitchContext (Thumb, 210 bytes, Stack size 8 bytes, tasks.o(i.vTaskSwitchContext))
  [Stack]

  - Max Depth = 168 + Unknown Stack Size
  - Call Chain = vTaskSwitchContext ⇒ vApplicationStackOverflowHook ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vApplicationStackOverflowHook
  [Called By]
  - >> PendSV_Handler
  - >> vTaskSuspend

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

  - >> embTCP_tick_hook
  - >> clock_c

  xPortStartScheduler (Thumb, 42 bytes, Stack size 8 bytes, port.o(i.xPortStartScheduler))
  [Stack]

  - Max Depth = 8
  - Call Chain = xPortStartScheduler
  [Calls]
  - >> vPortStartFirstTask
  - >> prvSetupTimerInterrupt
  [Called By]
  - >> vTaskStartScheduler

  xQueueCreate (Thumb, 112 bytes, Stack size 24 bytes, queue.o(i.xQueueCreate))
  [Stack]

  - Max Depth = 88
  - Call Chain = xQueueCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vPortFree
  - >> pvPortMalloc
  - >> vListInitialise
  [Called By]
  - >> main
  - >> tk_sem_create

  xQueueCreateMutex (Thumb, 70 bytes, Stack size 8 bytes, queue.o(i.xQueueCreateMutex))
  [Stack]

  - Max Depth = 104
  - Call Chain = xQueueCreateMutex ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> pvPortMalloc
  - >> vListInitialise
  - >> xQueueGenericSend
  [Called By]
  - >> tk_mutex_create

  xQueueGenericReceive (Thumb, 282 bytes, Stack size 48 bytes, queue.o(i.xQueueGenericReceive))
  [Stack]

  - Max Depth = 96
  - Call Chain = xQueueGenericReceive ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xTaskResumeAll
  - >> xTaskRemoveFromEventList
  - >> xTaskGetCurrentTaskHandle
  - >> xTaskCheckForTimeOut
  - >> vTaskSuspendAll
  - >> vTaskSetTimeOutState
  - >> vTaskPriorityInherit
  - >> vTaskPlaceOnEventList
  - >> prvUnlockQueue
  - >> prvIsQueueEmpty
  - >> prvCopyDataFromQueue
  - >> vPortYieldFromISR
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueTakeMutexRecursive
  - >> batteryTask
  - >> parse_battery_cmd
  - >> tk_sem_pend
  - >> tk_sem_create

  xQueueGenericSend (Thumb, 206 bytes, Stack size 48 bytes, queue.o(i.xQueueGenericSend))
  [Stack]

  - Max Depth = 96
  - Call Chain = xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xTaskResumeAll
  - >> xTaskRemoveFromEventList
  - >> xTaskCheckForTimeOut
  - >> vTaskSuspendAll
  - >> vTaskSetTimeOutState
  - >> vTaskPlaceOnEventList
  - >> prvUnlockQueue
  - >> prvIsQueueFull
  - >> prvCopyDataToQueue
  - >> vPortYieldFromISR
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGiveMutexRecursive
  - >> xQueueCreateMutex
  - >> main
  - >> batteryTask
  - >> parse_battery_cmd
  - >> tk_sem_post
  - >> tk_sem_create

  xQueueGenericSendFromISR (Thumb, 94 bytes, Stack size 32 bytes, queue.o(i.xQueueGenericSendFromISR))
  [Stack]

  - Max Depth = 64
  - Call Chain = xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ vTaskPriorityDisinherit
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> prvCopyDataToQueue
  - >> vPortSetInterruptMask
  - >> vPortClearInterruptMask
  [Called By]
  - >> tk_sem_post_isr

  xQueueGiveMutexRecursive (Thumb, 46 bytes, Stack size 16 bytes, queue.o(i.xQueueGiveMutexRecursive))
  [Stack]

  - Max Depth = 112
  - Call Chain = xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xTaskGetCurrentTaskHandle
  - >> xQueueGenericSend
  [Called By]
  - >> tk_mutex_post

  xQueueTakeMutexRecursive (Thumb, 54 bytes, Stack size 16 bytes, queue.o(i.xQueueTakeMutexRecursive))
  [Stack]

  - Max Depth = 112
  - Call Chain = xQueueTakeMutexRecursive ⇒ xQueueGenericReceive ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> xTaskGetCurrentTaskHandle
  - >> xQueueGenericReceive
  [Called By]
  - >> tk_mutex_pend

  xTaskCheckForTimeOut (Thumb, 92 bytes, Stack size 16 bytes, tasks.o(i.xTaskCheckForTimeOut))
  [Stack]

  - Max Depth = 24
  - Call Chain = xTaskCheckForTimeOut ⇒ vPortExitCritical
  [Calls]
  - >> vTaskSetTimeOutState
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericSend
  - >> xQueueGenericReceive

  xTaskGenericCreate (Thumb, 246 bytes, Stack size 56 bytes, tasks.o(i.xTaskGenericCreate))
  [Stack]

  - Max Depth = 136 + Unknown Stack Size
  - Call Chain = xTaskGenericCreate ⇒ prvAllocateTCBAndStack ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> prvInitialiseTaskLists
  - >> prvInitialiseTCBVariables
  - >> prvAllocateTCBAndStack
  - >> vListInsertEnd
  - >> vPortYieldFromISR
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> pxPortInitialiseStack
  [Called By]
  - >> vTaskStartScheduler
  - >> tk_new
  - >> main

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

  - >> xQueueTakeMutexRecursive
  - >> xQueueGiveMutexRecursive
  - >> xQueueGenericReceive
  - >> tk_current_task

  xTaskGetTickCount (Thumb, 18 bytes, Stack size 8 bytes, tasks.o(i.xTaskGetTickCount))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskGetTickCount ⇒ vPortExitCritical
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> recv_from_uart

  xTaskIsTaskSuspended (Thumb, 60 bytes, Stack size 8 bytes, tasks.o(i.xTaskIsTaskSuspended))
  [Stack]

  - Max Depth = 8
  - Call Chain = xTaskIsTaskSuspended
  [Called By]
  - >> vTaskResume

  xTaskRemoveFromEventList (Thumb, 96 bytes, Stack size 16 bytes, tasks.o(i.xTaskRemoveFromEventList))
  [Stack]

  - Max Depth = 16
  - Call Chain = xTaskRemoveFromEventList
  [Calls]
  - >> vListRemove
  - >> vListInsertEnd
  [Called By]
  - >> xQueueGenericSendFromISR
  - >> prvUnlockQueue
  - >> xQueueGenericSend
  - >> xQueueGenericReceive

  xTaskResumeAll (Thumb, 188 bytes, Stack size 16 bytes, tasks.o(i.xTaskResumeAll))
  [Stack]

  - Max Depth = 48
  - Call Chain = xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vListRemove
  - >> vListInsertEnd
  - >> vPortYieldFromISR
  - >> vPortExitCritical
  - >> vPortEnterCritical
  - >> vTaskIncrementTick
  [Called By]
  - >> vPortFree
  - >> pvPortMalloc
  - >> prvCheckTasksWaitingTermination
  - >> vTaskDelay
  - >> xQueueGenericSend
  - >> xQueueGenericReceive

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

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

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

  - Max Depth = 8
  - Call Chain = _get_lc_numeric
  [Calls]
  - >> strcmp
  [Called By]
  - >> __rt_lib_init_lc_numeric_2

  __aeabi_d2f (Thumb, 0 bytes, Stack size 32 bytes, d2f.o(x$fpl$d2f))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_d2f
  [Called By]
  - >> get_charge_level

  _d2f (Thumb, 98 bytes, Stack size 32 bytes, d2f.o(x$fpl$d2f), UNUSED)
  [Calls]

  - >> __fpl_fretinf
  - >> __fpl_dnaninf

  __aeabi_dadd (Thumb, 0 bytes, Stack size 16 bytes, daddsub_clz.o(x$fpl$dadd), UNUSED)

  _dadd (Thumb, 332 bytes, Stack size 16 bytes, daddsub_clz.o(x$fpl$dadd), UNUSED)
  [Calls]

  - >> __fpl_dretinf
  - >> __fpl_dnaninf
  - >> _dsub1

  __aeabi_ddiv (Thumb, 0 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_ddiv
  [Called By]
  - >> get_charge_level

  _ddiv (Thumb, 552 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv), UNUSED)
  [Calls]

  - >> __fpl_dretinf
  - >> __fpl_dnaninf

  __aeabi_d2iz (Thumb, 0 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_d2iz
  [Called By]
  - >> parse_battery_cmd

  _dfix (Thumb, 94 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix), UNUSED)
  [Calls]

  - >> __fpl_dnaninf

  __aeabi_dmul (Thumb, 0 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_dmul
  [Called By]
  - >> parse_battery_cmd
  - >> get_charge_level

  _dmul (Thumb, 332 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul), UNUSED)
  [Calls]

  - >> __fpl_dretinf
  - >> __fpl_dnaninf

  __fpl_dnaninf (Thumb, 156 bytes, Stack size 16 bytes, dnaninf.o(x$fpl$dnaninf), UNUSED)
  [Called By]

  - >> _dmul
  - >> _dfix
  - >> _ddiv
  - >> _dsub
  - >> _dadd
  - >> _d2f

  __fpl_dretinf (Thumb, 12 bytes, Stack size 0 bytes, dretinf.o(x$fpl$dretinf), UNUSED)
  [Called By]

  - >> _f2d
  - >> _dmul
  - >> _ddiv
  - >> _dadd

  __aeabi_dsub (Thumb, 0 bytes, Stack size 32 bytes, daddsub_clz.o(x$fpl$dsub))
  [Stack]

  - Max Depth = 32
  - Call Chain = __aeabi_dsub
  [Called By]
  - >> get_charge_level

  _dsub (Thumb, 464 bytes, Stack size 32 bytes, daddsub_clz.o(x$fpl$dsub), UNUSED)
  [Calls]

  - >> __fpl_dnaninf
  - >> _dadd1

  __aeabi_f2d (Thumb, 0 bytes, Stack size 16 bytes, f2d.o(x$fpl$f2d))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_f2d
  [Called By]
  - >> parse_battery_cmd
  - >> get_charge_level

  _f2d (Thumb, 86 bytes, Stack size 16 bytes, f2d.o(x$fpl$f2d), UNUSED)
  [Calls]

  - >> __fpl_fnaninf
  - >> __fpl_dretinf

  __aeabi_fadd (Thumb, 0 bytes, Stack size 16 bytes, faddsub_clz.o(x$fpl$fadd))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_fadd
  [Called By]
  - >> parse_battery_cmd
  - >> get_charge_level

  _fadd (Thumb, 196 bytes, Stack size 16 bytes, faddsub_clz.o(x$fpl$fadd), UNUSED)
  [Calls]

  - >> __fpl_fretinf
  - >> __fpl_fnaninf
  - >> _fsub1

  __fpl_fcmp_Inf (Thumb, 24 bytes, Stack size 0 bytes, fcmpi.o(x$fpl$fcmpinf), UNUSED)
  [Called By]

  - >> _fcmple

  __aeabi_fdiv (Thumb, 0 bytes, Stack size 16 bytes, fdiv.o(x$fpl$fdiv))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_fdiv
  [Called By]
  - >> parse_battery_cmd
  - >> get_charge_level

  _fdiv (Thumb, 384 bytes, Stack size 16 bytes, fdiv.o(x$fpl$fdiv), UNUSED)
  [Calls]

  - >> __fpl_fretinf
  - >> __fpl_fnaninf

  __aeabi_f2iz (Thumb, 0 bytes, Stack size 16 bytes, ffix.o(x$fpl$ffix))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_f2iz
  [Called By]
  - >> get_charge_level

  _ffix (Thumb, 54 bytes, Stack size 16 bytes, ffix.o(x$fpl$ffix), UNUSED)
  [Calls]

  - >> __fpl_fnaninf

  __aeabi_i2f (Thumb, 0 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$fflt))
  [Called By]

  - >> parse_battery_cmd
  - >> get_charge_level

  _fflt (Thumb, 48 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$fflt), UNUSED)

  __aeabi_ui2f (Thumb, 0 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$ffltu))
  [Called By]

  - >> parse_battery_cmd
  - >> get_charge_level

  _ffltu (Thumb, 38 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$ffltu), UNUSED)

  __aeabi_cfcmple (Thumb, 0 bytes, Stack size 16 bytes, fleqf.o(x$fpl$fleqf), UNUSED)

  _fcmple (Thumb, 104 bytes, Stack size 16 bytes, fleqf.o(x$fpl$fleqf), UNUSED)
  [Calls]

  - >> __fpl_fcmp_Inf
  - >> __fpl_fnaninf

  __fpl_fcmple_InfNaN (Thumb, 0 bytes, Stack size unknown bytes, fleqf.o(x$fpl$fleqf), UNUSED)
  [Called By]

  - >> _frcmple

  __aeabi_fmul (Thumb, 0 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_fmul
  [Called By]
  - >> parse_battery_cmd

  _fmul (Thumb, 258 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul), UNUSED)
  [Calls]

  - >> __fpl_fretinf
  - >> __fpl_fnaninf

  __fpl_fnaninf (Thumb, 140 bytes, Stack size 8 bytes, fnaninf.o(x$fpl$fnaninf), UNUSED)
  [Called By]

  - >> _fcmple
  - >> _fmul
  - >> _ffix
  - >> _fdiv
  - >> _fsub
  - >> _fadd
  - >> _f2d

  __fpl_fretinf (Thumb, 10 bytes, Stack size 0 bytes, fretinf.o(x$fpl$fretinf), UNUSED)
  [Called By]

  - >> _fmul
  - >> _fdiv
  - >> _fadd
  - >> _d2f

  __aeabi_cfrcmple (Thumb, 0 bytes, Stack size 0 bytes, frleqf.o(x$fpl$frleqf))
  [Called By]

  - >> get_charge_level

  _frcmple (Thumb, 98 bytes, Stack size 0 bytes, frleqf.o(x$fpl$frleqf), UNUSED)
  [Calls]

  - >> __fpl_fcmple_InfNaN

  __aeabi_fsub (Thumb, 0 bytes, Stack size 16 bytes, faddsub_clz.o(x$fpl$fsub))
  [Stack]

  - Max Depth = 16
  - Call Chain = __aeabi_fsub
  [Called By]
  - >> parse_battery_cmd

  _fsub (Thumb, 234 bytes, Stack size 16 bytes, faddsub_clz.o(x$fpl$fsub), UNUSED)
  [Calls]

  - >> __fpl_fnaninf
  - >> _fadd1

  _printf_fp_dec (Thumb, 4 bytes, Stack size 0 bytes, printf1.o(x$fpl$printf1))
  [Stack]

  - Max Depth = 320
  - Call Chain = _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e
  [Calls]
  - >> _printf_fp_dec_real
  [Called By]
  - >> _printf_g
  - >> _printf_e
  - >> _printf_f

  _printf_fp_hex (Thumb, 4 bytes, Stack size 0 bytes, printf2.o(x$fpl$printf2))
  [Stack]

  - Max Depth = 112
  - Call Chain = _printf_fp_hex ⇒ _printf_fp_hex_real ⇒ _printf_fp_infnan ⇒ _printf_post_padding
  [Calls]
  - >> _printf_fp_hex_real
  [Called By]
  - >> _printf_a

  ### Local Symbols

  iap_entry (Thumb, 16 bytes, Stack size 16 bytes, iap_driver.o(i.iap_entry))
  [Stack]

  - Max Depth = 16
  - Call Chain = iap_entry
  [Called By]
  - >> iap_prepare_sector
  - >> iap_erase_sector
  - >> iap_copy_ram_to_flash

  Chip_GPIO_SetPinState (Thumb, 44 bytes, Stack size 12 bytes, uart.o(i.Chip_GPIO_SetPinState))
  [Stack]

  - Max Depth = 12
  - Call Chain = Chip_GPIO_SetPinState
  [Called By]
  - >> send_break

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

  - >> uart_hw_init

  uart_hw_init (Thumb, 140 bytes, Stack size 16 bytes, uart.o(i.uart_hw_init))
  [Stack]

  - Max Depth = 24
  - Call Chain = uart_hw_init ⇒ Chip_UART_Init
  [Calls]
  - >> RingBuffer_Init
  - >> Chip_UART_TXEnable
  - >> Chip_UART_Init
  - >> Chip_UART_SetupFIFOS
  [Called By]
  - >> setup_uart3
  - >> setup_uart0

  Chip_GPIO_SetPinDIROutput (Thumb, 22 bytes, Stack size 8 bytes, smbus.o(i.Chip_GPIO_SetPinDIROutput))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_GPIO_SetPinDIROutput
  [Called By]
  - >> smbus_setup

  Chip_GPIO_SetPinOutLow (Thumb, 14 bytes, Stack size 8 bytes, smbus.o(i.Chip_GPIO_SetPinOutLow))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_GPIO_SetPinOutLow
  [Called By]
  - >> update_battery_status
  - >> smbus_setup
  - >> smbusReset
  - >> chgwd_check

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

  - >> init_batteries
  - >> i2c_set_mode

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

  - >> select_battery

  i2c_state_handling (Thumb, 28 bytes, Stack size 8 bytes, smbus.o(i.i2c_state_handling))
  [Stack]

  - Max Depth = 40
  - Call Chain = i2c_state_handling ⇒ Chip_I2C_SlaveStateHandler ⇒ getSlaveIndex ⇒ lookupSlaveIndex
  [Calls]
  - >> Chip_I2C_SlaveStateHandler
  - >> Chip_I2C_MasterStateHandler
  - >> Chip_I2C_IsMasterActive
  [Called By]
  - >> I2C0_IRQHandler

  setSmbusMux (Thumb, 108 bytes, Stack size 24 bytes, smbus.o(i.setSmbusMux))
  [Stack]

  - Max Depth = 88
  - Call Chain = setSmbusMux ⇒ Chip_I2C_MasterSend ⇒ Chip_I2C_MasterTransfer
  [Calls]
  - >> msleep
  - >> Chip_I2C_MasterSend
  [Called By]
  - >> update_battery_status
  - >> select_battery
  - >> init_batteries

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

  - >> parse_battery_cmd

  Chip_GPIO_SetPinOutHigh (Thumb, 14 bytes, Stack size 8 bytes, srv_ui.o(i.Chip_GPIO_SetPinOutHigh))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_GPIO_SetPinOutHigh
  [Called By]
  - >> parse_battery_cmd

  Chip_GPIO_SetPinOutLow (Thumb, 14 bytes, Stack size 8 bytes, srv_ui.o(i.Chip_GPIO_SetPinOutLow))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_GPIO_SetPinOutLow
  [Called By]
  - >> parse_battery_cmd

  get_argument (Thumb, 60 bytes, Stack size 12 bytes, srv_ui.o(i.get_argument))
  [Stack]

  - Max Depth = 12
  - Call Chain = get_argument
  [Called By]
  - >> parse_ctl_cmd

  get_cmd (Thumb, 46 bytes, Stack size 8 bytes, srv_ui.o(i.get_cmd))
  [Stack]

  - Max Depth = 8
  - Call Chain = get_cmd
  [Called By]
  - >> parse_ctl_cmd

  is_cmd (Thumb, 76 bytes, Stack size 24 bytes, srv_ui.o(i.is_cmd))
  [Stack]

  - Max Depth = 40
  - Call Chain = is_cmd ⇒ strncmp
  [Calls]
  - >> strncmp
  - >> strlen
  [Called By]
  - >> parse_ctl_cmd

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

  - >> batteryTask
  - >> init_wdt

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

  - >> init_wdt

  batteryTask (Thumb, 102 bytes, Stack size 0 bytes, batman.o(i.batteryTask))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = batteryTask ⇒ update_battery_status ⇒ allPacks ⇒ set_pack_state ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vTaskDelay
  - >> Chip_WWDT_Feed
  - >> xQueueGenericSend
  - >> xQueueGenericReceive
  - >> update_battery_status
  - >> set_led_state
  - >> init_batteries
  - >> chgwd_check
  [Address Reference Count : 1]
  - batman.o(i.main)

  commTask (Thumb, 474 bytes, Stack size 104 bytes, batman.o(i.commTask))
  [Stack]

  - Max Depth = 816 + Unknown Stack Size
  - Call Chain = commTask ⇒ recv_from_uart ⇒ tcp_srv_respond ⇒ t_send ⇒ t_sendto (Cycle)
  [Calls]
  - >> task_sleep
  - >> check_phy
  - >> panic
  - >> exit
  - >> vPortYieldFromISR
  - >> t_select
  - >> t_recv
  - >> t_accept
  - >> ifd_isset
  - >> recv_from_uart
  - >> tcp_srv_respond_term
  - >> tcp_srv_init
  - >> t_socketclose
  - >> ifd_set
  - >> ifd_clr
  - >> __2sprintf
  - >> __aeabi_memcpy4
  - >> perror
  [Address Reference Count : 1]
  - batman.o(i.main)

  main_task_setup (Thumb, 780 bytes, Stack size 32 bytes, batman.o(i.main_task_setup))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = main_task_setup ⇒ setup_uart3 ⇒ set_uart_config ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> setup_uart3
  - >> setup_uart0
  - >> pvPortMalloc
  - >> panic
  - >> load_flash_config
  - >> store_flash_config
  - >> __aeabi_memclr4
  - >> __aeabi_memclr
  - >> strcpy
  [Called By]
  - >> main

  prvSetupHardware (Thumb, 16 bytes, Stack size 8 bytes, batman.o(i.prvSetupHardware))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = prvSetupHardware ⇒ smbus_setup ⇒ i2c_set_mode ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> SystemCoreClockUpdate
  - >> Board_Init
  - >> smbus_setup
  [Called By]
  - >> main

  prvCopyDataFromQueue (Thumb, 42 bytes, Stack size 16 bytes, queue.o(i.prvCopyDataFromQueue))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvCopyDataFromQueue
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> xQueueGenericReceive

  prvCopyDataToQueue (Thumb, 104 bytes, Stack size 16 bytes, queue.o(i.prvCopyDataToQueue))
  [Stack]

  - Max Depth = 32
  - Call Chain = prvCopyDataToQueue ⇒ vTaskPriorityDisinherit
  [Calls]
  - >> vTaskPriorityDisinherit
  - >> __aeabi_memcpy
  [Called By]
  - >> xQueueGenericSendFromISR
  - >> xQueueGenericSend

  prvIsQueueEmpty (Thumb, 28 bytes, Stack size 16 bytes, queue.o(i.prvIsQueueEmpty))
  [Stack]

  - Max Depth = 24
  - Call Chain = prvIsQueueEmpty ⇒ vPortExitCritical
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericReceive

  prvIsQueueFull (Thumb, 32 bytes, Stack size 16 bytes, queue.o(i.prvIsQueueFull))
  [Stack]

  - Max Depth = 24
  - Call Chain = prvIsQueueFull ⇒ vPortExitCritical
  [Calls]
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericSend

  prvUnlockQueue (Thumb, 126 bytes, Stack size 8 bytes, queue.o(i.prvUnlockQueue))
  [Stack]

  - Max Depth = 24
  - Call Chain = prvUnlockQueue ⇒ xTaskRemoveFromEventList
  [Calls]
  - >> xTaskRemoveFromEventList
  - >> vTaskMissedYield
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> xQueueGenericSend
  - >> xQueueGenericReceive

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

  - >> vQueueDelete

  prvAddCurrentTaskToDelayedList (Thumb, 62 bytes, Stack size 8 bytes, tasks.o(i.prvAddCurrentTaskToDelayedList))
  [Stack]

  - Max Depth = 16
  - Call Chain = prvAddCurrentTaskToDelayedList ⇒ vListInsert
  [Calls]
  - >> vListInsert
  [Called By]
  - >> vTaskPlaceOnEventList
  - >> vTaskDelay

  prvAllocateTCBAndStack (Thumb, 58 bytes, Stack size 16 bytes, tasks.o(i.prvAllocateTCBAndStack))
  [Stack]

  - Max Depth = 80 + Unknown Stack Size
  - Call Chain = prvAllocateTCBAndStack ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ vTaskIncrementTick ⇒ vApplicationTickHook ⇒ embTCP_tick_hook
  [Calls]
  - >> vPortFree
  - >> pvPortMalloc
  - >> ahb_alloc
  - >> __aeabi_memset
  [Called By]
  - >> xTaskGenericCreate

  prvCheckTasksWaitingTermination (Thumb, 82 bytes, Stack size 16 bytes, tasks.o(i.prvCheckTasksWaitingTermination))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = prvCheckTasksWaitingTermination ⇒ prvDeleteTCB ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> prvDeleteTCB
  - >> xTaskResumeAll
  - >> vTaskSuspendAll
  - >> vListRemove
  - >> vPortExitCritical
  - >> vPortEnterCritical
  [Called By]
  - >> prvIdleTask

  prvDeleteTCB (Thumb, 18 bytes, Stack size 8 bytes, tasks.o(i.prvDeleteTCB))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = prvDeleteTCB ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> vPortFree
  - >> ahb_free
  [Called By]
  - >> prvCheckTasksWaitingTermination

  prvIdleTask (Thumb, 8 bytes, Stack size 0 bytes, tasks.o(i.prvIdleTask))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = prvIdleTask ⇒ prvCheckTasksWaitingTermination ⇒ prvDeleteTCB ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> prvCheckTasksWaitingTermination
  [Address Reference Count : 1]
  - tasks.o(i.vTaskStartScheduler)

  prvInitialiseTCBVariables (Thumb, 70 bytes, Stack size 24 bytes, tasks.o(i.prvInitialiseTCBVariables))
  [Stack]

  - Max Depth = 32
  - Call Chain = prvInitialiseTCBVariables ⇒ strncpy
  [Calls]
  - >> vListInitialiseItem
  - >> strncpy
  [Called By]
  - >> xTaskGenericCreate

  prvInitialiseTaskLists (Thumb, 70 bytes, Stack size 8 bytes, tasks.o(i.prvInitialiseTaskLists))
  [Stack]

  - Max Depth = 8
  - Call Chain = prvInitialiseTaskLists
  [Calls]
  - >> vListInitialise
  [Called By]
  - >> xTaskGenericCreate

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

  - >> xPortStartScheduler

  cli_usage (Thumb, 174 bytes, Stack size 192 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 376 + Unknown Stack Size
  - Call Chain = cli_usage ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> gio_printf
  - >> strlen
  - >> strcpy
  [Called By]
  - >> cli_command
  - >> cli_showcommands

  cli_nexttoken (Thumb, 140 bytes, Stack size 8 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = cli_nexttoken
  [Called By]
  - >> cli_command
  - >> cli_parse_arg
  - >> cli_parse_args

  cli_parse_args (Thumb, 200 bytes, Stack size 16 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 256
  - Call Chain = cli_parse_args ⇒ cli_parse_arg ⇒ cli_parse_ipaddr ⇒ inet_pton ⇒ parse_ipad ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> cli_defined
  - >> cli_parse_arg
  - >> cli_nexttoken
  - >> tolower
  [Called By]
  - >> cli_command

  cli_cmdlookup (Thumb, 276 bytes, Stack size 56 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 84
  - Call Chain = cli_cmdlookup ⇒ stricmp ⇒ strnicmp
  [Calls]
  - >> strnicmp
  - >> stricmp
  - >> strlen
  [Called By]
  - >> cli_command
  - >> cli_showcommands

  cli_countchr (Thumb, 22 bytes, Stack size 0 bytes, cli.o(.text))
  [Called By]

  - >> cli_parse_ipaddr

  cli_parse_arg (Thumb, 160 bytes, Stack size 24 bytes, cli.o(.text))
  [Stack]

  - Max Depth = 240
  - Call Chain = cli_parse_arg ⇒ cli_parse_ipaddr ⇒ inet_pton ⇒ parse_ipad ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> cli_parse_ipaddr
  - >> cli_nexttoken
  - >> strlen
  - >> strtoul
  - >> strtol
  [Called By]
  - >> cli_parse_args

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

  - >> eth_close
  - >> eth_init

  eth_rxtx_init (Thumb, 260 bytes, Stack size 24 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = eth_rxtx_init ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> putq
  - >> pk_alloc_internal
  [Called By]
  - >> eth_init

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

  - >> eth_recv
  - >> eth_send

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

  - >> eth_isr
  - >> eth_pkt_send

  tk_calc_memory (Thumb, 82 bytes, Stack size 32 bytes, ininit.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = tk_calc_memory
  [Called By]
  - >> pre_task_setup

  tk_current_task (Thumb, 40 bytes, Stack size 16 bytes, osporttk.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = tk_current_task
  [Calls]
  - >> xTaskGetCurrentTaskHandle
  [Called By]
  - >> tk_del
  - >> tk_sem_post
  - >> tk_sem_pend
  - >> tk_suspend

  sock_info (Thumb, 136 bytes, Stack size 32 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 256 + Unknown Stack Size
  - Call Chain = sock_info ⇒ tcpsock_list ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_get_value
  - >> cli_defined
  - >> udpsock_list
  - >> tcpsock_list
  - >> stricmp
  [Called By]
  - >> netmain_netstat

  prot_stat (Thumb, 170 bytes, Stack size 32 bytes, netmain_nt.o(.text))
  [Stack]

  - Max Depth = 280 + Unknown Stack Size
  - Call Chain = prot_stat ⇒ ipr_stats ⇒ gio_printf ⇒ panic ⇒ dtrap ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> cli_get_value
  - >> cli_defined
  - >> udp_stats
  - >> tcp_stats
  - >> ipr_stats
  - >> ip_stats
  - >> icmp_stats
  - >> stricmp
  [Called By]
  - >> netmain_netstat

  t_getname (Thumb, 154 bytes, Stack size 32 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 296 + Unknown Stack Size
  - Call Chain = t_getname ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> m_getnbuf
  - >> m_freem
  - >> soc_check
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> __aeabi_memcpy
  [Called By]
  - >> t_getpeername
  - >> t_getsockname

  sockargs (Thumb, 32 bytes, Stack size 16 bytes, sockcall.o(.text))
  [Stack]

  - Max Depth = 280 + Unknown Stack Size
  - Call Chain = sockargs ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> m_getnbuf
  - >> __aeabi_memcpy
  [Called By]
  - >> t_bind
  - >> t_connect
  - >> t_sendto

  Board_LED_Init (Thumb, 168 bytes, Stack size 16 bytes, board.o(i.Board_LED_Init))
  [Stack]

  - Max Depth = 32
  - Call Chain = Board_LED_Init ⇒ Chip_IOCON_PinMux
  [Calls]
  - >> Chip_IOCON_PinMux
  - >> Chip_PWM_SetMatch
  - >> Chip_PWM_SetControlMode
  - >> Chip_PWM_Reset
  - >> Chip_PWM_LatchEnable
  - >> Chip_PWM_Init
  [Called By]
  - >> Board_Init

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

  - >> Board_I2C_Init

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

  - >> Board_LED_Color
  - >> Board_LED_Init

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

  - >> Chip_Clock_SetupPLL
  - >> Chip_Clock_EnablePLL
  - >> Chip_Clock_DisablePLL

  getClkRate (Thumb, 8 bytes, Stack size 0 bytes, i2c_17xx_40xx.o(i.getClkRate))
  [Stack]

  - Max Depth = 20
  - Call Chain = getClkRate ⇒ Chip_Clock_GetPeripheralClockRate ⇒ Chip_Clock_GetSystemClockRate ⇒ Chip_Clock_GetMainClockRate ⇒ Chip_Clock_GetMainPLLOutClockRate
  [Calls]
  - >> Chip_Clock_GetPeripheralClockRate
  [Called By]
  - >> Chip_I2C_SetClockRate

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

  - >> lookupSlaveIndex

  lookupSlaveIndex (Thumb, 90 bytes, Stack size 16 bytes, i2c_17xx_40xx.o(i.lookupSlaveIndex))
  [Stack]

  - Max Depth = 16
  - Call Chain = lookupSlaveIndex
  [Calls]
  - >> isSlaveAddrMatching
  [Called By]
  - >> getSlaveIndex

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

  - >> Chip_UART_SetBaud

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

  - >> Chip_UART_Init

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

  - >> RingBuffer_PopMult
  - >> RingBuffer_Pop

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

  - >> RingBuffer_InsertMult
  - >> RingBuffer_Insert

  check_interval_timers (Thumb, 94 bytes, Stack size 32 bytes, timeouts.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = check_interval_timers
  [Called By]
  - >> inet_timer

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

  - >> Upnp_tick
  - >> upnp_ifp_setup

  upnp_read_static_intf_cfg_from_db (Thumb, 80 bytes, Stack size 16 bytes, upnp.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = upnp_read_static_intf_cfg_from_db
  [Calls]
  - >> fixup_subnet_mask
  [Called By]
  - >> in_addrconf_release
  - >> Upnp_tick

  devlock_decode (Thumb, 186 bytes, Stack size 20 bytes, devlock.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = devlock_decode
  [Called By]
  - >> devlock_validate

  pk_Qdelete (Thumb, 128 bytes, Stack size 24 bytes, pktalloc.o(.text))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ahb_free
  - >> tk_res_unlock
  - >> tk_res_lock
  - >> __aeabi_memcpy4
  [Called By]
  - >> pk_free
  - >> pk_delQ
  - >> pk_put_mbuf

  AutoIp_set_net_vars (Thumb, 100 bytes, Stack size 8 bytes, autoip.o(.text))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = AutoIp_set_net_vars ⇒ print_ipad ⇒ __2sprintf ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> __2printf
  - >> print_ipad
  [Called By]
  - >> AutoIp_tick

  alt_check (Thumb, 114 bytes, Stack size 0 bytes, asm_cksum_cm3.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = alt_check ⇒ alt_format
  [Calls]
  - >> alt_format
  [Called By]
  - >> asm_cksum

  copypartdata (Thumb, 86 bytes, Stack size 24 bytes, tcp_out.o(.text))
  [Stack]

  - Max Depth = 264 + Unknown Stack Size
  - Call Chain = copypartdata ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> pk_alloc_internal
  - >> __aeabi_memcpy
  [Called By]
  - >> fix_mbuf

  fix_mbuf (Thumb, 284 bytes, Stack size 40 bytes, tcp_out.o(.text))
  [Stack]

  - Max Depth = 304 + Unknown Stack Size
  - Call Chain = fix_mbuf ⇒ m_getnbuf ⇒ pk_alloc_internal ⇒ pk_free ⇒ pk_Qdelete ⇒ ahb_free ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> panic
  - >> vPortExitCritical
  - >> m_getnbuf
  - >> copypartdata
  [Called By]
  - >> tcp_output

  _dadd1 (Thumb, 0 bytes, Stack size unknown bytes, daddsub_clz.o(x$fpl$dadd), UNUSED)
  [Called By]

  - >> _dsub

  _dsub1 (Thumb, 0 bytes, Stack size unknown bytes, daddsub_clz.o(x$fpl$dsub), UNUSED)
  [Called By]

  - >> _dadd

  _fadd1 (Thumb, 0 bytes, Stack size unknown bytes, faddsub_clz.o(x$fpl$fadd), UNUSED)
  [Called By]

  - >> _fsub

  _fsub1 (Thumb, 0 bytes, Stack size unknown bytes, faddsub_clz.o(x$fpl$fsub), UNUSED)
  [Called By]

  - >> _fadd

  _fp_digits (Thumb, 428 bytes, Stack size 96 bytes, _printf_fp_dec.o(.text))
  [Stack]

  - Max Depth = 216
  - Call Chain = _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e
  [Calls]
  - >> _btod_emul
  - >> _btod_ediv
  - >> _btod_d2e
  - >> _btod_etento
  - >> _ll_udiv10
  [Called By]
  - >> _printf_fp_dec_real

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

  - _printf_char_common.o(.text)

  _scanf_char_input (Thumb, 12 bytes, Stack size 0 bytes, scanf_char.o(.text))
  [Address Reference Count : 1]

  - scanf_char.o(.text)

  ### Undefined Global Symbols