# Static Call Graph for image .\_build\ble_app_multilink_central.axf

#<CALLGRAPH># ARM Linker, 5060300: Last Updated: Sat May 20 11:48:12 2017

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

### Call chain for Maximum Stack Depth:

ble_evt_dispatch ⇒ client_handling_ble_evt_handler ⇒ ble_db_discovery_on_ble_evt ⇒ on_characteristic_discovery_rsp ⇒ on_srv_disc_completion ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf

### Functions with no stack information

- __user_initial_stackheap

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- SVC_Handler ⇒ SVC_Handler
- PendSV_Handler ⇒ PendSV_Handler
- SysTick_Handler ⇒ SysTick_Handler
- ADC_IRQHandler ⇒ ADC_IRQHandler

  ### Function Pointers

  - ADC_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - CCM_AAR_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - ECB_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - GPIOTE_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - HardFault_Handler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - LPCOMP_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - NMI_Handler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - POWER_CLOCK_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - PendSV_Handler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - QDEC_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - RADIO_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - RNG_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - RTC0_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - RTC1_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - Reset_Handler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SPI0_TWI0_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SPI1_TWI1_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SVC_Handler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SWI0_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SWI1_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SWI2_IRQHandler from softdevice_handler.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SWI3_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SWI4_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SWI5_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SysTick_Handler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - SystemInit from system_nrf51.o(.text) referenced from arm_startup_nrf51.o(.text)
  - TEMP_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - TIMER0_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - TIMER1_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - TIMER2_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - UART0_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - WDT_IRQHandler from arm_startup_nrf51.o(.text) referenced from arm_startup_nrf51.o(RESET)
  - __main from __main.o(!!!main) referenced from arm_startup_nrf51.o(.text)
  - _printf_input_char from _printf_char_common.o(.text) referenced from _printf_char_common.o(.text)
  - ble_evt_dispatch from main.o(.text) referenced from main.o(.text)
  - db_discovery_evt_handler from client_handling.o(.text) referenced from client_handling.o(.text)
  - device_manager_event_handler from main.o(.text) referenced from main.o(.text)
  - dm_pstorage_cb_handler from device_manager_central.o(.text) referenced from device_manager_central.o(.text)
  - fputc from app_trace.o(.text) referenced from _printf_char_file.o(.text)
  - gattc_context_apply from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - gattc_context_load from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - gattc_context_store from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - gatts_context_apply from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - gatts_context_load from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - gatts_context_store from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - gattsc_context_apply from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - gattsc_context_load from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - gattsc_context_store from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - no_service_context_apply from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - no_service_context_load from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - no_service_context_store from device_manager_central.o(.text) referenced from device_manager_central.o(.constdata)
  - pstorage_store from pstorage.o(.text) referenced from device_manager_central.o(.text)
  - pstorage_update from pstorage.o(.text) referenced from device_manager_central.o(.text)
  - softdevice_assertion_handler from softdevice_handler.o(.text) referenced from softdevice_handler.o(.text)
  - storage_operation_dummy_handler from device_manager_central.o(.text) referenced from device_manager_central.o(.text)
  - sys_evt_dispatch from main.o(.text) referenced from main.o(.text)

  ### Global Symbols

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

  - >> __scatterload
  - >> __rt_entry

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

  - >> __main

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

  - >> __rt_entry

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

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

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

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

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

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

  - >> __printf

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

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

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

  - Max Depth = 72 + Unknown Stack Size
  - Call Chain = _printf_x ⇒ _printf_int_hex ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_percent_end
  - >> _printf_int_hex
  [Called By]
  - >> _printf_d

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

  - >> _printf_x

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

  - >> __rt_entry_li

  __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_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))

  __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_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A))

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

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

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

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

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

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

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

  __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_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))

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

  - >> __rt_exit_ls

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

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

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

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

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

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

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

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

  - >> __scatterload_rt2
  - >> __main

  __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 = 240 + Unknown Stack Size
  - Call Chain = __rt_entry_main ⇒ main ⇒ device_manager_init ⇒ dm_init ⇒ pstorage_clear ⇒ cmd_queue_enqueue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> main
  - >> exit

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

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

  - >> exit

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

  - >> __rt_lib_shutdown

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

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

  - >> _sys_exit

  __asm___13_simple_uart_c_5dda6715__nrf_delay_us (Thumb, 30 bytes, Stack size 0 bytes, simple_uart.o(.emb_text), UNUSED)
  [Calls]

  - >> __asm___13_simple_uart_c_5dda6715__nrf_delay_us
  [Called By]
  - >> simple_uart_get_with_timeout
  - >> __asm___13_simple_uart_c_5dda6715__nrf_delay_us

  __aeabi_memcpy4 (Thumb, 56 bytes, Stack size 0 bytes, rt_memcpy.o(.emb_text))
  [Called By]

  - >> gatts_context_store
  - >> __aeabi_memcpy

  __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, rt_memcpy.o(.emb_text), UNUSED)

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

  - >> SWI2_IRQHandler
  - >> intern_softdevice_events_execute
  - >> dm_pstorage_cb_handler
  - >> client_handling_init
  - >> db_discovery_init
  - >> on_evt_timeout
  - >> notif_enable
  - >> service_discover
  - >> dm_ble_evt_handler
  - >> client_handling_ble_evt_handler
  - >> main
  - >> assert_nrf_callback
  - >> power_manage
  - >> device_manager_init
  - >> ble_stack_init
  - >> device_manager_event_handler
  - >> scan_start

  assert_nrf_callback (Thumb, 14 bytes, Stack size 0 bytes, main.o(.text))
  [Calls]

  - >> app_error_handler
  [Called By]
  - >> softdevice_assertion_handler

  delay (Thumb, 12 bytes, Stack size 0 bytes, main.o(.text))
  [Called By]

  - >> main
  - >> wifi_reset

  wifi_reset (Thumb, 34 bytes, Stack size 4 bytes, main.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = wifi_reset
  [Calls]
  - >> delay
  [Called By]
  - >> main
  - >> create_Socket

  create_Socket (Thumb, 66 bytes, Stack size 16 bytes, main.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = create_Socket ⇒ wifi_reset
  [Calls]
  - >> simple_uart_get
  - >> wifi_reset
  [Called By]
  - >> main

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

  - Max Depth = 240
  - Call Chain = main ⇒ device_manager_init ⇒ dm_init ⇒ pstorage_clear ⇒ cmd_queue_enqueue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> softdevice_handler_sd_disable
  - >> simple_uart_putstring
  - >> simple_uart_put
  - >> simple_uart_config
  - >> create_Socket
  - >> wifi_reset
  - >> delay
  - >> app_error_handler
  - >> power_manage
  - >> device_manager_init
  - >> ble_stack_init
  - >> scan_start
  [Called By]
  - >> __rt_entry_main

  client_handling_dm_event_handler (Thumb, 44 bytes, Stack size 24 bytes, client_handling.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = client_handling_dm_event_handler ⇒ notif_enable
  [Calls]
  - >> notif_enable
  [Called By]
  - >> device_manager_event_handler

  client_handling_ble_evt_handler (Thumb, 150 bytes, Stack size 24 bytes, client_handling.o(.text))
  [Stack]

  - Max Depth = 248 + Unknown Stack Size
  - Call Chain = client_handling_ble_evt_handler ⇒ ble_db_discovery_on_ble_evt ⇒ on_characteristic_discovery_rsp ⇒ on_srv_disc_completion ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ble_db_discovery_on_ble_evt
  - >> on_evt_timeout
  - >> on_evt_hvx
  - >> on_evt_write_rsp
  - >> client_find
  - >> dm_security_setup_req
  - >> app_error_handler
  [Called By]
  - >> ble_evt_dispatch

  client_handling_init (Thumb, 174 bytes, Stack size 40 bytes, client_handling.o(.text), UNUSED)
  [Calls]

  - >> ble_db_discovery_evt_register
  - >> db_discovery_init
  - >> app_error_handler

  client_handling_count (Thumb, 6 bytes, Stack size 0 bytes, client_handling.o(.text), UNUSED)

  client_handling_create (Thumb, 86 bytes, Stack size 16 bytes, client_handling.o(.text))
  [Stack]

  - Max Depth = 192 + Unknown Stack Size
  - Call Chain = client_handling_create ⇒ service_discover ⇒ ble_db_discovery_start ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> service_discover
  - >> __aeabi_memcpy
  [Called By]
  - >> device_manager_event_handler

  client_handling_destroy (Thumb, 112 bytes, Stack size 16 bytes, client_handling.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = client_handling_destroy
  [Calls]
  - >> nrf_gpio_pin_clear
  [Called By]
  - >> device_manager_event_handler

  app_trace_init (Thumb, 20 bytes, Stack size 8 bytes, app_trace.o(.text), UNUSED)
  [Calls]

  - >> simple_uart_config

  fputc (Thumb, 16 bytes, Stack size 16 bytes, app_trace.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = fputc
  [Calls]
  - >> simple_uart_put
  [Address Reference Count : 1]
  - _printf_char_file.o(.text)

  app_trace_dump (Thumb, 38 bytes, Stack size 16 bytes, app_trace.o(.text), UNUSED)
  [Calls]

  - >> __2printf

  simple_uart_get (Thumb, 44 bytes, Stack size 0 bytes, simple_uart.o(.text))
  [Called By]

  - >> create_Socket

  simple_uart_get_with_timeout (Thumb, 62 bytes, Stack size 16 bytes, simple_uart.o(.text), UNUSED)
  [Calls]

  - >> __asm___13_simple_uart_c_5dda6715__nrf_delay_us

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

  - >> fputc
  - >> simple_uart_putstring
  - >> main

  simple_uart_putstring (Thumb, 32 bytes, Stack size 12 bytes, simple_uart.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = simple_uart_putstring
  [Calls]
  - >> simple_uart_put
  [Called By]
  - >> main

  simple_uart_config (Thumb, 90 bytes, Stack size 24 bytes, simple_uart.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = simple_uart_config ⇒ nrf_gpio_cfg_input
  [Calls]
  - >> nrf_gpio_cfg_input
  - >> nrf_gpio_cfg_output
  [Called By]
  - >> app_trace_init
  - >> main

  initiate_security_request (Thumb, 124 bytes, Stack size 16 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = initiate_security_request
  [Called By]
  - >> dm_security_setup_req
  - >> dm_ble_evt_handler

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

  - >> dm_pstorage_cb_handler
  - >> dm_ble_evt_handler

  dm_init (Thumb, 224 bytes, Stack size 32 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 192
  - Call Chain = dm_init ⇒ pstorage_clear ⇒ cmd_queue_enqueue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> pstorage_register
  - >> pstorage_load
  - >> pstorage_clear
  - >> pstorage_block_identifier_get
  - >> peer_instance_init
  - >> connection_instance_init
  - >> __aeabi_memclr4
  [Called By]
  - >> device_manager_init

  dm_register (Thumb, 98 bytes, Stack size 16 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = dm_register ⇒ __aeabi_memcpy
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> device_manager_init

  dm_security_setup_req (Thumb, 384 bytes, Stack size 24 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = dm_security_setup_req ⇒ device_instance_allocate ⇒ __aeabi_memcpy
  [Calls]
  - >> initiate_security_request
  - >> device_instance_allocate
  [Called By]
  - >> client_handling_ble_evt_handler
  - >> device_manager_event_handler

  dm_security_status_req (Thumb, 178 bytes, Stack size 0 bytes, device_manager_central.o(.text), UNUSED)

  dm_whitelist_create (Thumb, 256 bytes, Stack size 24 bytes, device_manager_central.o(.text), UNUSED)

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

  dm_device_delete (Thumb, 102 bytes, Stack size 16 bytes, device_manager_central.o(.text), UNUSED)
  [Calls]

  - >> device_instance_free

  dm_device_delete_all (Thumb, 96 bytes, Stack size 16 bytes, device_manager_central.o(.text), UNUSED)
  [Calls]

  - >> device_instance_free

  dm_service_context_set (Thumb, 210 bytes, Stack size 32 bytes, device_manager_central.o(.text), UNUSED)
  [Calls]

  - >> pstorage_block_identifier_get
  - >> __aeabi_memcpy

  dm_service_context_get (Thumb, 234 bytes, Stack size 24 bytes, device_manager_central.o(.text), UNUSED)
  [Calls]

  - >> pstorage_block_identifier_get

  dm_service_context_delete (Thumb, 98 bytes, Stack size 0 bytes, device_manager_central.o(.text), UNUSED)

  dm_application_context_set (Thumb, 6 bytes, Stack size 0 bytes, device_manager_central.o(.text), UNUSED)

  dm_application_context_get (Thumb, 6 bytes, Stack size 0 bytes, device_manager_central.o(.text), UNUSED)

  dm_application_context_delete (Thumb, 6 bytes, Stack size 0 bytes, device_manager_central.o(.text), UNUSED)

  dm_application_instance_set (Thumb, 78 bytes, Stack size 0 bytes, device_manager_central.o(.text), UNUSED)

  dm_peer_addr_set (Thumb, 178 bytes, Stack size 16 bytes, device_manager_central.o(.text), UNUSED)
  [Calls]

  - >> device_context_store
  - >> __aeabi_memcpy

  dm_peer_addr_get (Thumb, 180 bytes, Stack size 16 bytes, device_manager_central.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memcpy

  dm_distributed_keys_get (Thumb, 208 bytes, Stack size 56 bytes, device_manager_central.o(.text), UNUSED)
  [Calls]

  - >> pstorage_load
  - >> pstorage_block_identifier_get

  dm_ble_evt_handler (Thumb, 1420 bytes, Stack size 88 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 152
  - Call Chain = dm_ble_evt_handler ⇒ pstorage_load ⇒ __aeabi_memcpy
  [Calls]
  - >> pstorage_load
  - >> pstorage_block_identifier_get
  - >> dm_handle_initialize
  - >> initiate_security_request
  - >> app_evt_notify
  - >> device_context_store
  - >> device_instance_find
  - >> connection_instance_find
  - >> peer_instance_init
  - >> connection_instance_init
  - >> app_error_handler
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> ble_evt_dispatch

  pstorage_sys_event_handler (Thumb, 326 bytes, Stack size 32 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = pstorage_sys_event_handler ⇒ cmd_queue_dequeue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> app_notify
  - >> cmd_queue_dequeue
  - >> cmd_queue_element_init
  [Called By]
  - >> sys_evt_dispatch

  pstorage_init (Thumb, 196 bytes, Stack size 16 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = pstorage_init ⇒ cmd_queue_init
  [Calls]
  - >> cmd_queue_init
  - >> __aeabi_uidivmod
  [Called By]
  - >> device_manager_init

  pstorage_register (Thumb, 394 bytes, Stack size 24 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = pstorage_register ⇒ __aeabi_idivmod
  [Calls]
  - >> __aeabi_idivmod
  - >> __aeabi_uidivmod
  [Called By]
  - >> dm_init

  pstorage_block_identifier_get (Thumb, 136 bytes, Stack size 20 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = pstorage_block_identifier_get
  [Called By]
  - >> dm_distributed_keys_get
  - >> dm_service_context_get
  - >> dm_service_context_set
  - >> dm_pstorage_cb_handler
  - >> device_context_store
  - >> device_instance_free
  - >> dm_init
  - >> dm_ble_evt_handler

  pstorage_store (Thumb, 202 bytes, Stack size 24 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = pstorage_store ⇒ cmd_queue_enqueue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> is_word_aligned
  - >> cmd_queue_enqueue
  [Address Reference Count : 1]
  - device_manager_central.o(.text)

  pstorage_update (Thumb, 202 bytes, Stack size 24 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = pstorage_update ⇒ cmd_queue_enqueue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> is_word_aligned
  - >> cmd_queue_enqueue
  [Address Reference Count : 1]
  - device_manager_central.o(.text)

  pstorage_load (Thumb, 226 bytes, Stack size 40 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = pstorage_load ⇒ __aeabi_memcpy
  [Calls]
  - >> is_word_aligned
  - >> __aeabi_memcpy
  [Called By]
  - >> dm_distributed_keys_get
  - >> gatts_context_load
  - >> dm_init
  - >> dm_ble_evt_handler

  pstorage_clear (Thumb, 184 bytes, Stack size 24 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = pstorage_clear ⇒ cmd_queue_enqueue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> is_word_aligned
  - >> cmd_queue_enqueue
  - >> __aeabi_uidivmod
  [Called By]
  - >> device_instance_free
  - >> dm_init

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

  - >> scan_start

  softdevice_assertion_handler (Thumb, 18 bytes, Stack size 16 bytes, softdevice_handler.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = softdevice_assertion_handler
  [Calls]
  - >> assert_nrf_callback
  [Address Reference Count : 1]
  - softdevice_handler.o(.text)

  intern_softdevice_events_execute (Thumb, 168 bytes, Stack size 24 bytes, softdevice_handler.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = intern_softdevice_events_execute
  [Calls]
  - >> app_error_handler
  [Called By]
  - >> SWI2_IRQHandler

  softdevice_handler_init (Thumb, 84 bytes, Stack size 40 bytes, softdevice_handler.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = softdevice_handler_init
  [Called By]
  - >> ble_stack_init

  softdevice_handler_sd_disable (Thumb, 24 bytes, Stack size 8 bytes, softdevice_handler.o(.text))
  [Stack]

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

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

  - >> ble_stack_init

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

  - >> ble_stack_init

  SWI2_IRQHandler (Thumb, 52 bytes, Stack size 16 bytes, softdevice_handler.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = SWI2_IRQHandler ⇒ intern_softdevice_events_execute
  [Calls]
  - >> intern_softdevice_events_execute
  - >> app_error_handler
  [Address Reference Count : 1]
  - arm_startup_nrf51.o(RESET)

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

  - >> db_discovery_init

  ble_db_discovery_close (Thumb, 20 bytes, Stack size 0 bytes, ble_db_discovery.o(.text), UNUSED)

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

  - >> registered_handler_set
  [Called By]
  - >> client_handling_init

  ble_db_discovery_start (Thumb, 140 bytes, Stack size 24 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = ble_db_discovery_start ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> __2printf
  [Called By]
  - >> service_discover

  ble_db_discovery_on_ble_evt (Thumb, 118 bytes, Stack size 16 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 224 + Unknown Stack Size
  - Call Chain = ble_db_discovery_on_ble_evt ⇒ on_characteristic_discovery_rsp ⇒ on_srv_disc_completion ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> on_descriptor_discovery_rsp
  - >> on_characteristic_discovery_rsp
  - >> on_primary_srv_discovery_rsp
  - >> __aeabi_memclr
  [Called By]
  - >> client_handling_ble_evt_handler

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

  - arm_startup_nrf51.o(RESET)

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

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

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

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

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

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

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

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

  SysTick_Handler (Thumb, 2 bytes, Stack size 0 bytes, arm_startup_nrf51.o(.text))
  [Calls]

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

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

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

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - arm_startup_nrf51.o(RESET)

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

  - >> __user_setup_stackheap

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

  SystemInit (Thumb, 38 bytes, Stack size 8 bytes, system_nrf51.o(.text))
  [Stack]

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

  __2printf (Thumb, 22 bytes, Stack size 24 bytes, noretval__2printf.o(.text))
  [Stack]

  - Max Depth = 136 + Unknown Stack Size
  - Call Chain = __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> _printf_char_file
  [Called By]
  - >> on_descriptor_discovery_rsp
  - >> on_characteristic_discovery_rsp
  - >> on_srv_disc_completion
  - >> app_trace_dump
  - >> ble_db_discovery_start
  - >> on_ble_evt
  - >> device_manager_event_handler

  _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_int_common

  _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_int_common

  _printf_int_dec (Thumb, 90 bytes, Stack size 32 bytes, _printf_dec.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> __rt_udiv10
  - >> _printf_int_common
  - >> _printf_truncate_unsigned (Weak Reference)
  - >> _printf_truncate_signed (Weak Reference)
  [Called By]
  - >> _printf_d

  _printf_int_hex (Thumb, 84 bytes, Stack size 16 bytes, _printf_hex_int.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = _printf_int_hex ⇒ _printf_int_common ⇒ _printf_post_padding
  [Calls]
  - >> _printf_int_common
  - >> _printf_truncate_unsigned (Weak Reference)
  [Called By]
  - >> _printf_x

  _printf_longlong_hex (Thumb, 0 bytes, Stack size 16 bytes, _printf_hex_int.o(.text), UNUSED)

  __printf (Thumb, 306 bytes, Stack size 32 bytes, __printf_flags_wp.o(.text))
  [Stack]

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

  memcmp (Thumb, 90 bytes, Stack size 8 bytes, memcmp.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = memcmp
  [Called By]
  - >> dm_pstorage_cb_handler
  - >> gatts_context_store
  - >> device_instance_find

  __aeabi_memcpy (Thumb, 130 bytes, Stack size 24 bytes, rt_memcpy.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = __aeabi_memcpy
  [Calls]
  - >> __aeabi_memcpy4
  [Called By]
  - >> on_characteristic_discovery_rsp
  - >> discovery_complete_evt_trigger
  - >> pstorage_load
  - >> dm_peer_addr_get
  - >> dm_peer_addr_set
  - >> dm_service_context_set
  - >> device_instance_allocate
  - >> dm_register
  - >> dm_ble_evt_handler
  - >> client_handling_create
  - >> device_manager_event_handler

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

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

  - >> __rt_memclr_w
  - >> _memset

  _memset (Thumb, 30 bytes, Stack size 0 bytes, rt_memclr.o(.text))
  [Calls]

  - >> _memset_w
  [Called By]
  - >> __aeabi_memclr

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

  - >> _memset
  [Called By]
  - >> peer_instance_init
  - >> connection_instance_init
  - >> ble_db_discovery_on_ble_evt
  - >> device_manager_init

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

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

  - >> dm_init
  - >> dm_ble_evt_handler

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

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

  - >> _memset_w

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

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

  - >> cmd_process
  - >> swap_state_process
  - >> pstorage_register
  - >> pstorage_clear
  - >> dm_pstorage_cb_handler
  - >> pstorage_init

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

  __aeabi_idivmod (Thumb, 326 bytes, Stack size 8 bytes, aeabi_sdiv.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_idivmod
  [Called By]
  - >> pstorage_register

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

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

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

  _printf_int_common (Thumb, 176 bytes, Stack size 40 bytes, _printf_intcommon.o(.text))
  [Stack]

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

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

  - Max Depth = 112 + Unknown Stack Size
  - Call Chain = _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ferror
  - >> _printf_char_common
  [Called By]
  - >> __2printf

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

  - >> _printf_int_dec

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

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

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

  - >> _printf_char_file

  __user_setup_stackheap (Thumb, 62 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

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

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

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

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

  - >> __rt_exit_exit

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

  __ARM_common_switch8 (Thumb, 28 bytes, Stack size 8 bytes, pstorage.o(i.__ARM_common_switch8))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_common_switch8
  [Called By]
  - >> swap_state_process

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

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

  - >> __printf

  ### Local Symbols

  scan_start (Thumb, 82 bytes, Stack size 16 bytes, main.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = scan_start
  [Calls]
  - >> pstorage_access_status_get
  - >> app_error_handler
  [Called By]
  - >> main
  - >> on_sys_evt
  - >> device_manager_event_handler

  device_manager_event_handler (Thumb, 514 bytes, Stack size 48 bytes, main.o(.text))
  [Stack]

  - Max Depth = 240 + Unknown Stack Size
  - Call Chain = device_manager_event_handler ⇒ client_handling_create ⇒ service_discover ⇒ ble_db_discovery_start ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dm_security_setup_req
  - >> client_handling_dm_event_handler
  - >> client_handling_destroy
  - >> client_handling_create
  - >> app_error_handler
  - >> scan_start
  - >> __aeabi_memcpy
  - >> __2printf
  [Address Reference Count : 1]
  - main.o(.text)

  adv_report_parse (Thumb, 52 bytes, Stack size 20 bytes, main.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = adv_report_parse
  [Called By]
  - >> on_ble_evt

  on_ble_evt (Thumb, 998 bytes, Stack size 32 bytes, main.o(.text))
  [Stack]

  - Max Depth = 168 + Unknown Stack Size
  - Call Chain = on_ble_evt ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> adv_report_parse
  - >> __2printf
  [Called By]
  - >> ble_evt_dispatch

  on_sys_evt (Thumb, 42 bytes, Stack size 8 bytes, main.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = on_sys_evt ⇒ scan_start
  [Calls]
  - >> scan_start
  [Called By]
  - >> sys_evt_dispatch

  ble_evt_dispatch (Thumb, 24 bytes, Stack size 8 bytes, main.o(.text))
  [Stack]

  - Max Depth = 256 + Unknown Stack Size
  - Call Chain = ble_evt_dispatch ⇒ client_handling_ble_evt_handler ⇒ ble_db_discovery_on_ble_evt ⇒ on_characteristic_discovery_rsp ⇒ on_srv_disc_completion ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> dm_ble_evt_handler
  - >> client_handling_ble_evt_handler
  - >> on_ble_evt
  [Address Reference Count : 1]
  - main.o(.text)

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

  - Max Depth = 144
  - Call Chain = sys_evt_dispatch ⇒ pstorage_sys_event_handler ⇒ cmd_queue_dequeue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> pstorage_sys_event_handler
  - >> on_sys_evt
  [Address Reference Count : 1]
  - main.o(.text)

  ble_stack_init (Thumb, 110 bytes, Stack size 16 bytes, main.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = ble_stack_init ⇒ softdevice_handler_init
  [Calls]
  - >> softdevice_sys_evt_handler_set
  - >> softdevice_handler_init
  - >> softdevice_ble_evt_handler_set
  - >> app_error_handler
  [Called By]
  - >> main

  device_manager_init (Thumb, 222 bytes, Stack size 24 bytes, main.o(.text))
  [Stack]

  - Max Depth = 216
  - Call Chain = device_manager_init ⇒ dm_init ⇒ pstorage_clear ⇒ cmd_queue_enqueue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> pstorage_init
  - >> dm_register
  - >> dm_init
  - >> app_error_handler
  - >> __aeabi_memclr
  [Called By]
  - >> main

  power_manage (Thumb, 32 bytes, Stack size 8 bytes, main.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = power_manage
  [Calls]
  - >> app_error_handler
  [Called By]
  - >> main

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

  - >> db_discovery_evt_handler
  - >> client_handling_ble_evt_handler

  service_discover (Thumb, 48 bytes, Stack size 16 bytes, client_handling.o(.text))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = service_discover ⇒ ble_db_discovery_start ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> ble_db_discovery_start
  - >> app_error_handler
  [Called By]
  - >> client_handling_create

  notif_enable (Thumb, 88 bytes, Stack size 32 bytes, client_handling.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = notif_enable
  [Calls]
  - >> app_error_handler
  [Called By]
  - >> db_discovery_evt_handler
  - >> client_handling_dm_event_handler

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

  - Max Depth = 56
  - Call Chain = db_discovery_evt_handler ⇒ notif_enable
  [Calls]
  - >> notif_enable
  - >> client_find
  [Address Reference Count : 1]
  - client_handling.o(.text)

  on_evt_write_rsp (Thumb, 50 bytes, Stack size 8 bytes, client_handling.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = on_evt_write_rsp
  [Called By]
  - >> client_handling_ble_evt_handler

  on_evt_hvx (Thumb, 80 bytes, Stack size 16 bytes, client_handling.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = on_evt_hvx
  [Calls]
  - >> nrf_gpio_pin_clear
  [Called By]
  - >> client_handling_ble_evt_handler

  on_evt_timeout (Thumb, 52 bytes, Stack size 16 bytes, client_handling.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = on_evt_timeout
  [Calls]
  - >> app_error_handler
  [Called By]
  - >> client_handling_ble_evt_handler

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

  - >> ble_db_discovery_init
  - >> app_error_handler
  [Called By]
  - >> client_handling_init

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

  - >> on_evt_hvx
  - >> client_handling_destroy

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

  - >> simple_uart_config

  nrf_gpio_cfg_input (Thumb, 20 bytes, Stack size 8 bytes, simple_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = nrf_gpio_cfg_input
  [Called By]
  - >> simple_uart_config

  connection_instance_init (Thumb, 50 bytes, Stack size 8 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = connection_instance_init
  [Calls]
  - >> __aeabi_memclr
  [Called By]
  - >> dm_init
  - >> dm_ble_evt_handler

  peer_instance_init (Thumb, 68 bytes, Stack size 8 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = peer_instance_init
  [Calls]
  - >> update_status_bit_reset
  - >> __aeabi_memclr
  [Called By]
  - >> device_instance_free
  - >> dm_init
  - >> dm_ble_evt_handler

  connection_instance_find (Thumb, 64 bytes, Stack size 16 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = connection_instance_find
  [Called By]
  - >> dm_ble_evt_handler

  device_instance_free (Thumb, 44 bytes, Stack size 24 bytes, device_manager_central.o(.text), UNUSED)
  [Calls]

  - >> pstorage_clear
  - >> pstorage_block_identifier_get
  - >> peer_instance_init
  [Called By]
  - >> dm_device_delete_all
  - >> dm_device_delete

  device_instance_find (Thumb, 54 bytes, Stack size 24 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = device_instance_find ⇒ memcmp
  [Calls]
  - >> memcmp
  [Called By]
  - >> dm_ble_evt_handler

  storage_operation_dummy_handler (Thumb, 8 bytes, Stack size 8 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = storage_operation_dummy_handler
  [Address Reference Count : 1]
  - device_manager_central.o(.text)

  device_context_store (Thumb, 172 bytes, Stack size 32 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 52
  - Call Chain = device_context_store ⇒ pstorage_block_identifier_get
  [Calls]
  - >> pstorage_block_identifier_get
  [Called By]
  - >> dm_peer_addr_set
  - >> dm_ble_evt_handler

  gatts_context_store (Thumb, 178 bytes, Stack size 32 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = gatts_context_store ⇒ memcmp
  [Calls]
  - >> __aeabi_memcpy4
  - >> memcmp
  [Called By]
  - >> gattsc_context_store
  [Address Reference Count : 1]
  - device_manager_central.o(.constdata)

  gattc_context_store (Thumb, 6 bytes, Stack size 0 bytes, device_manager_central.o(.text))
  [Address Reference Count : 1]

  - device_manager_central.o(.constdata)

  gatts_context_load (Thumb, 64 bytes, Stack size 16 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = gatts_context_load ⇒ pstorage_load ⇒ __aeabi_memcpy
  [Calls]
  - >> pstorage_load
  [Called By]
  - >> gattsc_context_load
  [Address Reference Count : 1]
  - device_manager_central.o(.constdata)

  gattc_context_load (Thumb, 6 bytes, Stack size 0 bytes, device_manager_central.o(.text))
  [Address Reference Count : 1]

  - device_manager_central.o(.constdata)

  gatts_context_apply (Thumb, 116 bytes, Stack size 24 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = gatts_context_apply
  [Called By]
  - >> gattsc_context_apply
  [Address Reference Count : 1]
  - device_manager_central.o(.constdata)

  gattc_context_apply (Thumb, 6 bytes, Stack size 0 bytes, device_manager_central.o(.text))
  [Address Reference Count : 1]

  - device_manager_central.o(.constdata)

  dm_pstorage_cb_handler (Thumb, 526 bytes, Stack size 96 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = dm_pstorage_cb_handler ⇒ app_evt_notify
  [Calls]
  - >> pstorage_block_identifier_get
  - >> dm_handle_initialize
  - >> app_evt_notify
  - >> update_status_bit_reset
  - >> app_error_handler
  - >> __aeabi_uidivmod
  - >> memcmp
  [Address Reference Count : 1]
  - device_manager_central.o(.text)

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

  - >> dm_pstorage_cb_handler
  - >> peer_instance_init

  device_instance_allocate (Thumb, 116 bytes, Stack size 24 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = device_instance_allocate ⇒ __aeabi_memcpy
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> dm_security_setup_req

  app_evt_notify (Thumb, 22 bytes, Stack size 24 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = app_evt_notify
  [Called By]
  - >> dm_pstorage_cb_handler
  - >> dm_ble_evt_handler

  no_service_context_store (Thumb, 6 bytes, Stack size 0 bytes, device_manager_central.o(.text))
  [Address Reference Count : 1]

  - device_manager_central.o(.constdata)

  gattsc_context_store (Thumb, 30 bytes, Stack size 16 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = gattsc_context_store ⇒ gatts_context_store ⇒ memcmp
  [Calls]
  - >> gatts_context_store
  [Address Reference Count : 1]
  - device_manager_central.o(.constdata)

  no_service_context_load (Thumb, 6 bytes, Stack size 0 bytes, device_manager_central.o(.text))
  [Address Reference Count : 1]

  - device_manager_central.o(.constdata)

  gattsc_context_load (Thumb, 30 bytes, Stack size 16 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = gattsc_context_load ⇒ gatts_context_load ⇒ pstorage_load ⇒ __aeabi_memcpy
  [Calls]
  - >> gatts_context_load
  [Address Reference Count : 1]
  - device_manager_central.o(.constdata)

  no_service_context_apply (Thumb, 6 bytes, Stack size 0 bytes, device_manager_central.o(.text))
  [Address Reference Count : 1]

  - device_manager_central.o(.constdata)

  gattsc_context_apply (Thumb, 26 bytes, Stack size 16 bytes, device_manager_central.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = gattsc_context_apply ⇒ gatts_context_apply
  [Calls]
  - >> gatts_context_apply
  [Address Reference Count : 1]
  - device_manager_central.o(.constdata)

  cmd_queue_element_init (Thumb, 56 bytes, Stack size 0 bytes, pstorage.o(.text))
  [Called By]

  - >> cmd_queue_init
  - >> pstorage_sys_event_handler

  cmd_queue_init (Thumb, 40 bytes, Stack size 8 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = cmd_queue_init
  [Calls]
  - >> cmd_queue_element_init
  [Called By]
  - >> pstorage_init

  swap_state_process (Thumb, 578 bytes, Stack size 48 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> __ARM_common_switch8
  - >> __aeabi_uidivmod
  [Called By]
  - >> cmd_process

  cmd_process (Thumb, 382 bytes, Stack size 40 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> swap_state_process
  - >> __aeabi_uidivmod
  [Called By]
  - >> cmd_queue_dequeue
  - >> cmd_queue_enqueue

  cmd_queue_enqueue (Thumb, 136 bytes, Stack size 40 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = cmd_queue_enqueue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> cmd_process
  [Called By]
  - >> pstorage_update
  - >> pstorage_store
  - >> pstorage_clear

  cmd_queue_dequeue (Thumb, 32 bytes, Stack size 8 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = cmd_queue_dequeue ⇒ cmd_process ⇒ swap_state_process ⇒ __ARM_common_switch8
  [Calls]
  - >> cmd_process
  [Called By]
  - >> pstorage_sys_event_handler

  app_notify (Thumb, 100 bytes, Stack size 24 bytes, pstorage.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = app_notify
  [Called By]
  - >> pstorage_sys_event_handler

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

  - >> pstorage_update
  - >> pstorage_store
  - >> pstorage_load
  - >> pstorage_clear

  registered_handler_get (Thumb, 56 bytes, Stack size 0 bytes, ble_db_discovery.o(.text))
  [Called By]

  - >> discovery_complete_evt_trigger
  - >> discovery_error_evt_trigger

  registered_handler_set (Thumb, 58 bytes, Stack size 0 bytes, ble_db_discovery.o(.text), UNUSED)
  [Called By]

  - >> ble_db_discovery_evt_register

  pending_user_evts_send (Thumb, 42 bytes, Stack size 8 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = pending_user_evts_send
  [Called By]
  - >> discovery_complete_evt_trigger
  - >> discovery_error_evt_trigger

  discovery_error_evt_trigger (Thumb, 124 bytes, Stack size 24 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = discovery_error_evt_trigger ⇒ pending_user_evts_send
  [Calls]
  - >> pending_user_evts_send
  - >> registered_handler_get
  [Called By]
  - >> on_descriptor_discovery_rsp
  - >> on_characteristic_discovery_rsp
  - >> on_primary_srv_discovery_rsp
  - >> on_srv_disc_completion

  discovery_complete_evt_trigger (Thumb, 152 bytes, Stack size 24 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = discovery_complete_evt_trigger ⇒ __aeabi_memcpy
  [Calls]
  - >> pending_user_evts_send
  - >> registered_handler_get
  - >> __aeabi_memcpy
  [Called By]
  - >> on_descriptor_discovery_rsp
  - >> on_characteristic_discovery_rsp
  - >> on_primary_srv_discovery_rsp

  on_srv_disc_completion (Thumb, 130 bytes, Stack size 16 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 152 + Unknown Stack Size
  - Call Chain = on_srv_disc_completion ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> discovery_error_evt_trigger
  - >> __2printf
  [Called By]
  - >> on_descriptor_discovery_rsp
  - >> on_characteristic_discovery_rsp
  - >> on_primary_srv_discovery_rsp

  is_char_discovery_reqd (Thumb, 30 bytes, Stack size 8 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = is_char_discovery_reqd
  [Called By]
  - >> on_characteristic_discovery_rsp

  is_desc_discovery_reqd (Thumb, 84 bytes, Stack size 16 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = is_desc_discovery_reqd
  [Called By]
  - >> descriptors_discover

  characteristics_discover (Thumb, 80 bytes, Stack size 16 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = characteristics_discover
  [Called By]
  - >> on_characteristic_discovery_rsp
  - >> on_primary_srv_discovery_rsp

  descriptors_discover (Thumb, 178 bytes, Stack size 40 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = descriptors_discover ⇒ is_desc_discovery_reqd
  [Calls]
  - >> is_desc_discovery_reqd
  [Called By]
  - >> on_descriptor_discovery_rsp
  - >> on_characteristic_discovery_rsp

  on_primary_srv_discovery_rsp (Thumb, 114 bytes, Stack size 24 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = on_primary_srv_discovery_rsp ⇒ on_srv_disc_completion ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> characteristics_discover
  - >> on_srv_disc_completion
  - >> discovery_complete_evt_trigger
  - >> discovery_error_evt_trigger
  [Called By]
  - >> ble_db_discovery_on_ble_evt

  on_characteristic_discovery_rsp (Thumb, 290 bytes, Stack size 56 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 208 + Unknown Stack Size
  - Call Chain = on_characteristic_discovery_rsp ⇒ on_srv_disc_completion ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> descriptors_discover
  - >> characteristics_discover
  - >> is_char_discovery_reqd
  - >> on_srv_disc_completion
  - >> discovery_complete_evt_trigger
  - >> discovery_error_evt_trigger
  - >> __aeabi_memcpy
  - >> __2printf
  [Called By]
  - >> ble_db_discovery_on_ble_evt

  on_descriptor_discovery_rsp (Thumb, 192 bytes, Stack size 32 bytes, ble_db_discovery.o(.text))
  [Stack]

  - Max Depth = 184 + Unknown Stack Size
  - Call Chain = on_descriptor_discovery_rsp ⇒ on_srv_disc_completion ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf
  [Calls]
  - >> descriptors_discover
  - >> on_srv_disc_completion
  - >> discovery_complete_evt_trigger
  - >> discovery_error_evt_trigger
  - >> __2printf
  [Called By]
  - >> ble_db_discovery_on_ble_evt

  is_disabled_in_debug_needed (Thumb, 52 bytes, Stack size 0 bytes, system_nrf51.o(.text))
  [Called By]

  - >> SystemInit

  is_manual_peripheral_setup_needed (Thumb, 104 bytes, Stack size 0 bytes, system_nrf51.o(.text))
  [Called By]

  - >> SystemInit

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

  - _printf_char_common.o(.text)

  ### Undefined Global Symbols

  _call_atexit_fns (ARM, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> exit

  _printf_truncate_signed (ARM, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> _printf_int_dec

  _printf_truncate_unsigned (ARM, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> _printf_int_hex
  - >> _printf_int_dec