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

#<CALLGRAPH># ARM Linker, 5050169: Last Updated: Mon Oct 30 14:55:23 2017

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

### Call chain for Maximum Stack Depth:

ble_evt_dispatch ⇒ on_ble_evt ⇒ on_ctrl_pt_write ⇒ nrf_dfu_req_handler_on_req ⇒ nrf_dfu_command_req ⇒ dfu_handle_signed_command ⇒ dfu_handle_prevalidate ⇒ nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set

### 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
- pb_read ⇒ pb_read
- pb_field_set_to_default ⇒ pb_message_set_to_defaults
- bcopy ⇒ bcopy

  ### 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 nrf_drv_rng.o(i.RNG_IRQHandler) 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 app_timer.o(i.RTC1_IRQHandler) 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 app_timer.o(i.SWI0_IRQHandler) 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(i.SWI2_IRQHandler) 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(i.SystemInit) 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 entry.o(.ARM.Collect$$$$00000000) referenced from arm_startup_nrf51.o(.text)
  - _snputc from printf8.o(i._snputc) referenced from printf8.o(i.__0snprintf$8)
  - app_timer_evt_get from app_timer_appsh.o(i.app_timer_evt_get) referenced from app_timer_appsh.o(i.app_timer_evt_schedule)
  - app_timer_evt_schedule from app_timer_appsh.o(i.app_timer_evt_schedule) referenced from nrf_dfu.o(i.nrf_dfu_init)
  - ble_dfu_transport_close from nrf_ble_dfu.o(i.ble_dfu_transport_close) referenced from nrf_ble_dfu.o(dfu_trans)
  - ble_dfu_transport_init from nrf_ble_dfu.o(i.ble_dfu_transport_init) referenced from nrf_ble_dfu.o(dfu_trans)
  - ble_evt_dispatch from nrf_ble_dfu.o(i.ble_evt_dispatch) referenced from nrf_ble_dfu.o(i.ble_dfu_transport_init)
  - buf_read from pb_decode.o(i.buf_read) referenced from pb_decode.o(i.pb_istream_from_buffer)
  - buf_read from pb_decode.o(i.buf_read) referenced from pb_decode.o(i.pb_read)
  - conn_params_error_handler from nrf_ble_dfu.o(i.conn_params_error_handler) referenced from nrf_ble_dfu.o(i.ble_dfu_transport_init)
  - dfu_data_write_handler from dfu_req_handling.o(i.dfu_data_write_handler) referenced from dfu_req_handling.o(i.nrf_dfu_data_req)
  - dfu_settings_write_callback from nrf_dfu_settings.o(i.dfu_settings_write_callback) referenced from nrf_dfu_settings.o(i.nrf_dfu_settings_write)
  - double_jacobian_default from micro_ecc_lib_uECC.c.o(.text.double_jacobian_default) referenced from micro_ecc_lib_uECC.c.o(.rodata.curve_secp256r1)
  - fs_evt_handler from nrf_dfu_flash.o(i.fs_evt_handler) referenced from nrf_dfu_flash.o(fs_data)
  - fs_sys_event_handler from fstorage.o(i.fs_sys_event_handler) referenced from nrf_dfu_flash.o(i.nrf_dfu_flash_init)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - nrf_log_backend_serial_hexdump_handler from nrf_log_backend_serial.o(i.nrf_log_backend_serial_hexdump_handler) referenced from nrf_log_backend_serial.o(i.nrf_log_backend_hexdump_handler_get)
  - nrf_log_backend_serial_std_handler from nrf_log_backend_serial.o(i.nrf_log_backend_serial_std_handler) referenced from nrf_log_backend_serial.o(i.nrf_log_backend_std_handler_get)
  - on_dfu_complete from dfu_req_handling.o(i.on_dfu_complete) referenced from dfu_req_handling.o(i.nrf_dfu_postvalidate)
  - pb_dec_bytes from pb_decode.o(i.pb_dec_bytes) referenced from pb_decode.o(.constdata)
  - pb_dec_fixed32 from pb_decode.o(i.pb_dec_fixed32) referenced from pb_decode.o(.constdata)
  - pb_dec_fixed64 from pb_decode.o(i.pb_dec_fixed64) referenced from pb_decode.o(.constdata)
  - pb_dec_string from pb_decode.o(i.pb_dec_string) referenced from pb_decode.o(.constdata)
  - pb_dec_submessage from pb_decode.o(i.pb_dec_submessage) referenced from pb_decode.o(.constdata)
  - pb_dec_svarint from pb_decode.o(i.pb_dec_svarint) referenced from pb_decode.o(.constdata)
  - pb_dec_uvarint from pb_decode.o(i.pb_dec_uvarint) referenced from pb_decode.o(.constdata)
  - pb_dec_varint from pb_decode.o(i.pb_dec_varint) referenced from pb_decode.o(.constdata)
  - pb_decoding_callback from dfu_req_handling.o(i.pb_decoding_callback) referenced from dfu_req_handling.o(i.dfu_decode_commmand)
  - softdevice_evt_get from softdevice_handler_appsh.o(i.softdevice_evt_get) referenced from softdevice_handler_appsh.o(i.softdevice_evt_schedule)
  - softdevice_evt_schedule from softdevice_handler_appsh.o(i.softdevice_evt_schedule) referenced from nrf_ble_dfu.o(i.ble_stack_init)
  - softdevice_fault_handler from softdevice_handler.o(i.softdevice_fault_handler) referenced from softdevice_handler.o(i.softdevice_handler_init)
  - update_timeout_handler from ble_conn_params.o(i.update_timeout_handler) referenced from ble_conn_params.o(i.ble_conn_params_init)
  - vli_mmod_fast_secp256r1 from micro_ecc_lib_uECC.c.o(.text.vli_mmod_fast_secp256r1) referenced from micro_ecc_lib_uECC.c.o(.rodata.curve_secp256r1)
  - x_side_default from micro_ecc_lib_uECC.c.o(.text.x_side_default) referenced from micro_ecc_lib_uECC.c.o(.rodata.curve_secp256r1)

  ### Global Symbols

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

  - arm_startup_nrf51.o(.text)

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

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

  - >> __scatterload

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

  - >> __scatterload

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

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

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

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

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

  __asm___26_nrf_bootloader_app_start_c_5c9f33f9__nrf_bootloader_app_start_impl (Thumb, 52 bytes, Stack size 0 bytes, nrf_bootloader_app_start.o(.emb_text))
  [Called By]

  - >> nrf_bootloader_app_start

  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)

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

  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)

  __aeabi_llsl (Thumb, 32 bytes, Stack size 8 bytes, llshl.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_llsl
  [Called By]
  - >> pb_decode_varint
  - >> __aeabi_uldivmod

  _ll_shift_l (Thumb, 0 bytes, Stack size 8 bytes, llshl.o(.text), UNUSED)

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

  - >> nrf_log_backend_serial_hexdump_handler

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

  - >> ble_conn_params_on_ble_evt
  - >> ble_conn_params_init
  - >> nrf_dfu_data_req
  - >> nrf_dfu_command_req
  - >> dfu_handle_prevalidate
  - >> nrf_queue_push
  - >> nrf_dfu_settings_init
  - >> nrf_log_backend_serial_std_handler
  - >> nrf_log_backend_serial_hexdump_handler
  - >> app_sched_event_put
  - >> pb_field_set_to_default
  - >> _WriteNoCheck
  - >> _WriteBlocking

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

  - >> ble_conn_params_init
  - >> nrf_dfu_settings_write

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

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

  - >> nrf_dfu_postvalidate
  - >> memset
  - >> __aeabi_memclr

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

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

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

  - >> __aeabi_memset
  [Called By]
  - >> pb_field_set_to_default
  - >> decode_static_field

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

  - >> nrf_dfu_postvalidate
  - >> nrf_dfu_command_req
  - >> nrf_dfu_settings_init
  - >> softdevice_enable_get_default_config
  - >> ble_dfu_transport_init
  - >> dfu_pkt_char_add
  - >> dfu_ctrl_pt_add
  - >> advertising_start
  - >> sha256_final
  - >> queue_get_next_free

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

  memset (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = memset
  [Calls]
  - >> __aeabi_memset
  [Called By]
  - >> x_side_default

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

  - >> nrf_log_backend_serial_std_handler
  - >> nrf_log_backend_serial_hexdump_handler

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

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

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

  - >> _DoInit

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

  - >> on_ctrl_pt_write
  - >> sha256_transform

  __rt_uread4 (Thumb, 0 bytes, Stack size 0 bytes, uread4.o(.text), UNUSED)

  _uread4 (Thumb, 0 bytes, Stack size 0 bytes, uread4.o(.text), UNUSED)

  __aeabi_uldivmod (Thumb, 96 bytes, Stack size 48 bytes, uldiv.o(.text), UNUSED)
  [Calls]

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

  __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
  [Calls]

  - >> __main_after_scatterload
  [Called By]
  - >> _main_scatterload

  __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)

  __aeabi_llsr (Thumb, 34 bytes, Stack size 8 bytes, llushr.o(.text), UNUSED)
  [Called By]

  - >> __aeabi_uldivmod

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

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

  - >> ecc_p256_verify

  uECC_verify (Thumb, 680 bytes, Stack size 1856 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_verify))
  [Stack]

  - Max Depth = 2960
  - Call Chain = uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> XYcZ_add
  - >> bits2int
  - >> uECC_vli_cmp_unsafe
  - >> bcopy
  - >> uECC_vli_modInv
  - >> uECC_vli_modMult_fast
  - >> uECC_vli_modMult
  - >> uECC_vli_modSub
  - >> uECC_vli_equal
  - >> uECC_vli_set
  - >> uECC_vli_numBits
  - >> uECC_vli_testBit
  - >> uECC_vli_isZero
  - >> uECC_vli_clear
  - >> uECC_vli_sub
  - >> apply_z
  [Called By]
  - >> ecc_p256_verify

  uECC_vli_add (Thumb, 88 bytes, Stack size 64 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_add))
  [Stack]

  - Max Depth = 64
  - Call Chain = uECC_vli_add
  [Called By]
  - >> double_jacobian_default
  - >> vli_modInv_update
  - >> vli_mmod_fast_secp256r1
  - >> uECC_vli_modInv
  - >> uECC_vli_modSub
  - >> uECC_vli_modAdd

  uECC_vli_clear (Thumb, 22 bytes, Stack size 32 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_clear))
  [Stack]

  - Max Depth = 32
  - Call Chain = uECC_vli_clear
  [Called By]
  - >> uECC_verify
  - >> bits2int
  - >> uECC_vli_modInv
  - >> uECC_vli_mmod

  uECC_vli_equal (Thumb, 34 bytes, Stack size 48 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_equal))
  [Stack]

  - Max Depth = 48
  - Call Chain = uECC_vli_equal
  [Called By]
  - >> uECC_verify

  uECC_vli_isZero (Thumb, 28 bytes, Stack size 32 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_isZero))
  [Stack]

  - Max Depth = 32
  - Call Chain = uECC_vli_isZero
  [Called By]
  - >> uECC_verify
  - >> double_jacobian_default
  - >> uECC_vli_modInv

  uECC_vli_mmod (Thumb, 280 bytes, Stack size 736 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_mmod))
  [Stack]

  - Max Depth = 784
  - Call Chain = uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> uECC_vli_rshift1
  - >> uECC_vli_set
  - >> uECC_vli_numBits
  - >> uECC_vli_clear
  [Called By]
  - >> uECC_vli_modMult

  uECC_vli_modAdd (Thumb, 50 bytes, Stack size 64 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_modAdd))
  [Stack]

  - Max Depth = 128
  - Call Chain = uECC_vli_modAdd ⇒ uECC_vli_sub
  [Calls]
  - >> uECC_vli_cmp_unsafe
  - >> uECC_vli_sub
  - >> uECC_vli_add
  [Called By]
  - >> double_jacobian_default
  - >> x_side_default

  uECC_vli_modInv (Thumb, 276 bytes, Stack size 640 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_modInv))
  [Stack]

  - Max Depth = 768
  - Call Chain = uECC_vli_modInv ⇒ vli_modInv_update ⇒ uECC_vli_add
  [Calls]
  - >> vli_modInv_update
  - >> uECC_vli_cmp_unsafe
  - >> uECC_vli_rshift1
  - >> uECC_vli_set
  - >> uECC_vli_isZero
  - >> uECC_vli_clear
  - >> uECC_vli_sub
  - >> uECC_vli_add
  [Called By]
  - >> uECC_verify

  uECC_vli_modMult (Thumb, 38 bytes, Stack size 320 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_modMult))
  [Stack]

  - Max Depth = 1104
  - Call Chain = uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> uECC_vli_mmod
  - >> uECC_vli_mult
  [Called By]
  - >> uECC_verify

  uECC_vli_modMult_fast (Thumb, 32 bytes, Stack size 320 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_modMult_fast))
  [Stack]

  - Max Depth = 464
  - Call Chain = uECC_vli_modMult_fast ⇒ uECC_vli_mult
  [Calls]
  - >> uECC_vli_mult
  [Called By]
  - >> uECC_verify
  - >> XYcZ_add
  - >> double_jacobian_default
  - >> x_side_default
  - >> apply_z

  uECC_vli_modSquare_fast (Thumb, 32 bytes, Stack size 320 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_modSquare_fast))
  [Stack]

  - Max Depth = 464
  - Call Chain = uECC_vli_modSquare_fast ⇒ uECC_vli_square
  [Calls]
  - >> uECC_vli_square
  [Called By]
  - >> XYcZ_add
  - >> double_jacobian_default
  - >> x_side_default
  - >> apply_z

  uECC_vli_modSub (Thumb, 36 bytes, Stack size 64 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_modSub))
  [Stack]

  - Max Depth = 128
  - Call Chain = uECC_vli_modSub ⇒ uECC_vli_sub
  [Calls]
  - >> uECC_vli_sub
  - >> uECC_vli_add
  [Called By]
  - >> uECC_verify
  - >> XYcZ_add
  - >> double_jacobian_default
  - >> x_side_default

  uECC_vli_mult (Thumb, 152 bytes, Stack size 144 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_mult))
  [Stack]

  - Max Depth = 144
  - Call Chain = uECC_vli_mult
  [Called By]
  - >> uECC_vli_modMult_fast
  - >> uECC_vli_modMult

  uECC_vli_numBits (Thumb, 64 bytes, Stack size 0 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_numBits))
  [Called By]

  - >> uECC_verify
  - >> uECC_vli_mmod

  uECC_vli_rshift1 (Thumb, 30 bytes, Stack size 32 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_rshift1))
  [Stack]

  - Max Depth = 32
  - Call Chain = uECC_vli_rshift1
  [Called By]
  - >> double_jacobian_default
  - >> vli_modInv_update
  - >> uECC_vli_modInv
  - >> uECC_vli_mmod

  uECC_vli_set (Thumb, 22 bytes, Stack size 48 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_set))
  [Stack]

  - Max Depth = 48
  - Call Chain = uECC_vli_set
  [Called By]
  - >> uECC_verify
  - >> XYcZ_add
  - >> double_jacobian_default
  - >> vli_mmod_fast_secp256r1
  - >> uECC_vli_modInv
  - >> uECC_vli_mmod

  uECC_vli_square (Thumb, 166 bytes, Stack size 144 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_square))
  [Stack]

  - Max Depth = 144
  - Call Chain = uECC_vli_square
  [Called By]
  - >> uECC_vli_modSquare_fast

  uECC_vli_sub (Thumb, 92 bytes, Stack size 64 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_sub))
  [Stack]

  - Max Depth = 64
  - Call Chain = uECC_vli_sub
  [Called By]
  - >> uECC_verify
  - >> vli_mmod_fast_secp256r1
  - >> bits2int
  - >> uECC_vli_modInv
  - >> uECC_vli_modSub
  - >> uECC_vli_modAdd

  uECC_vli_testBit (Thumb, 18 bytes, Stack size 0 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_testBit))
  [Called By]

  - >> uECC_verify

  RNG_IRQHandler (Thumb, 80 bytes, Stack size 16 bytes, nrf_drv_rng.o(i.RNG_IRQHandler))
  [Stack]

  - Max Depth = 60
  - Call Chain = RNG_IRQHandler ⇒ nrf_queue_push ⇒ app_util_critical_region_enter
  [Calls]
  - >> softdevice_handler_is_enabled
  - >> nrf_queue_push
  - >> nrf_queue_is_full
  - >> app_util_critical_region_exit
  - >> app_util_critical_region_enter
  - >> nrf_drv_rng_stop
  [Address Reference Count : 1]
  - arm_startup_nrf51.o(RESET)

  RTC1_IRQHandler (Thumb, 28 bytes, Stack size 8 bytes, app_timer.o(i.RTC1_IRQHandler))
  [Stack]

  - Max Depth = 56
  - Call Chain = RTC1_IRQHandler ⇒ timer_timeouts_check ⇒ app_error_handler_bare ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> timer_timeouts_check
  [Address Reference Count : 1]
  - arm_startup_nrf51.o(RESET)

  SEGGER_RTT_Init (Thumb, 16 bytes, Stack size 8 bytes, segger_rtt.o(i.SEGGER_RTT_Init))
  [Stack]

  - Max Depth = 16
  - Call Chain = SEGGER_RTT_Init ⇒ _DoInit
  [Calls]
  - >> _DoInit
  [Called By]
  - >> nrf_log_backend_init

  SEGGER_RTT_WriteNoLock (Thumb, 86 bytes, Stack size 16 bytes, segger_rtt.o(i.SEGGER_RTT_WriteNoLock))
  [Stack]

  - Max Depth = 56
  - Call Chain = SEGGER_RTT_WriteNoLock ⇒ _WriteBlocking
  [Calls]
  - >> _WriteNoCheck
  - >> _WriteBlocking
  - >> _GetAvailWriteSpace
  [Called By]
  - >> serial_tx

  SWI0_IRQHandler (Thumb, 8 bytes, Stack size 8 bytes, app_timer.o(i.SWI0_IRQHandler))
  [Stack]

  - Max Depth = 80
  - Call Chain = SWI0_IRQHandler ⇒ timer_list_handler ⇒ compare_reg_update ⇒ rtc1_stop
  [Calls]
  - >> timer_list_handler
  [Address Reference Count : 1]
  - arm_startup_nrf51.o(RESET)

  SWI2_IRQHandler (Thumb, 28 bytes, Stack size 8 bytes, softdevice_handler.o(i.SWI2_IRQHandler))
  [Stack]

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

  SystemInit (Thumb, 130 bytes, Stack size 8 bytes, system_nrf51.o(i.SystemInit))
  [Stack]

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

  __0snprintf$8 (Thumb, 38 bytes, Stack size 32 bytes, printf8.o(i.__0snprintf$8), UNUSED)
  [Calls]

  - >> _printf_core

  __1snprintf$8 (Thumb, 0 bytes, Stack size 32 bytes, printf8.o(i.__0snprintf$8), UNUSED)

  __2snprintf (Thumb, 0 bytes, Stack size 32 bytes, printf8.o(i.__0snprintf$8))
  [Stack]

  - Max Depth = 32
  - Call Chain = __2snprintf
  [Called By]
  - >> timestamp_process
  - >> nrf_log_backend_serial_std_handler

  __ARM_common_switch8 (Thumb, 26 bytes, Stack size 8 bytes, dfu_req_handling.o(i.__ARM_common_switch8))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_common_switch8
  [Called By]
  - >> nrf_dfu_data_req
  - >> nrf_dfu_command_req
  - >> on_ctrl_pt_write
  - >> nrf_log_backend_serial_std_handler

  __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)

  __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)

  __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)

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

  - Max Depth = 32
  - Call Chain = app_error_fault_handler ⇒ nrf_log_frontend_std_2 ⇒ nrf_log_direct_feed
  [Calls]
  - >> NVIC_SystemReset
  - >> nrf_log_frontend_std_2
  [Called By]
  - >> softdevice_fault_handler

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

  - Max Depth = 24
  - Call Chain = app_error_handler_bare ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> NVIC_SystemReset
  - >> nrf_log_frontend_std_1
  [Called By]
  - >> main
  - >> nrf_dfu_enter_check
  - >> nrf_dfu_settings_init
  - >> nrf_dfu_init
  - >> on_ble_evt
  - >> conn_params_error_handler
  - >> ble_stack_init
  - >> app_timer_evt_get
  - >> timer_timeouts_check
  - >> softdevice_evt_get
  - >> intern_softdevice_events_execute
  - >> SWI2_IRQHandler

  app_sched_event_put (Thumb, 146 bytes, Stack size 40 bytes, app_scheduler.o(i.app_sched_event_put))
  [Stack]

  - Max Depth = 52
  - Call Chain = app_sched_event_put ⇒ app_util_critical_region_enter
  [Calls]
  - >> app_util_critical_region_exit
  - >> app_util_critical_region_enter
  - >> __aeabi_memcpy
  [Called By]
  - >> app_timer_evt_schedule
  - >> softdevice_evt_schedule

  app_sched_execute (Thumb, 56 bytes, Stack size 8 bytes, app_scheduler.o(i.app_sched_execute))
  [Stack]

  - Max Depth = 8
  - Call Chain = app_sched_execute
  [Called By]
  - >> nrf_dfu_wait
  - >> delay_operation
  - >> nrf_dfu_init

  app_sched_init (Thumb, 40 bytes, Stack size 12 bytes, app_scheduler.o(i.app_sched_init))
  [Stack]

  - Max Depth = 12
  - Call Chain = app_sched_init
  [Called By]
  - >> nrf_dfu_init

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

  - >> ble_conn_params_init

  app_timer_evt_schedule (Thumb, 18 bytes, Stack size 16 bytes, app_timer_appsh.o(i.app_timer_evt_schedule))
  [Stack]

  - Max Depth = 68
  - Call Chain = app_timer_evt_schedule ⇒ app_sched_event_put ⇒ app_util_critical_region_enter
  [Calls]
  - >> app_sched_event_put
  [Address Reference Count : 1]
  - nrf_dfu.o(i.nrf_dfu_init)

  app_timer_init (Thumb, 98 bytes, Stack size 40 bytes, app_timer.o(i.app_timer_init))
  [Stack]

  - Max Depth = 56
  - Call Chain = app_timer_init ⇒ rtc1_stop
  [Calls]
  - >> rtc1_stop
  - >> NVIC_SetPriority
  [Called By]
  - >> nrf_dfu_init

  app_timer_start (Thumb, 128 bytes, Stack size 32 bytes, app_timer.o(i.app_timer_start))
  [Stack]

  - Max Depth = 44
  - Call Chain = app_timer_start ⇒ app_util_critical_region_enter
  [Calls]
  - >> app_util_critical_region_exit
  - >> app_util_critical_region_enter
  - >> user_op_alloc
  - >> timer_list_handler_sched
  [Called By]
  - >> conn_params_negotiation

  app_timer_stop (Thumb, 36 bytes, Stack size 8 bytes, app_timer.o(i.app_timer_stop))
  [Stack]

  - Max Depth = 44
  - Call Chain = app_timer_stop ⇒ timer_stop_op_schedule ⇒ app_util_critical_region_enter
  [Calls]
  - >> timer_stop_op_schedule
  [Called By]
  - >> ble_conn_params_stop
  - >> ble_conn_params_on_ble_evt

  app_util_critical_region_enter (Thumb, 48 bytes, Stack size 12 bytes, app_util_platform.o(i.app_util_critical_region_enter))
  [Stack]

  - Max Depth = 12
  - Call Chain = app_util_critical_region_enter
  [Called By]
  - >> app_timer_start
  - >> nrf_queue_push
  - >> RNG_IRQHandler
  - >> timer_stop_op_schedule
  - >> app_sched_event_put

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

  - >> app_timer_start
  - >> nrf_queue_push
  - >> RNG_IRQHandler
  - >> timer_stop_op_schedule
  - >> app_sched_event_put

  ble_conn_params_init (Thumb, 68 bytes, Stack size 16 bytes, ble_conn_params.o(i.ble_conn_params_init))
  [Stack]

  - Max Depth = 16
  - Call Chain = ble_conn_params_init
  [Calls]
  - >> app_timer_create
  - >> __aeabi_memcpy4
  - >> __aeabi_memcpy
  [Called By]
  - >> ble_dfu_transport_init

  ble_conn_params_on_ble_evt (Thumb, 130 bytes, Stack size 24 bytes, ble_conn_params.o(i.ble_conn_params_on_ble_evt))
  [Stack]

  - Max Depth = 92
  - Call Chain = ble_conn_params_on_ble_evt ⇒ conn_params_negotiation ⇒ app_timer_start ⇒ app_util_critical_region_enter
  [Calls]
  - >> ble_srv_is_notification_enabled
  - >> app_timer_stop
  - >> conn_params_negotiation
  - >> __aeabi_memcpy
  [Called By]
  - >> ble_evt_dispatch

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

  - Max Depth = 52
  - Call Chain = ble_conn_params_stop ⇒ app_timer_stop ⇒ timer_stop_op_schedule ⇒ app_util_critical_region_enter
  [Calls]
  - >> app_timer_stop
  [Called By]
  - >> ble_dfu_transport_close

  ble_dfu_init (Thumb, 88 bytes, Stack size 40 bytes, nrf_ble_dfu.o(i.ble_dfu_init))
  [Stack]

  - Max Depth = 112
  - Call Chain = ble_dfu_init ⇒ dfu_ctrl_pt_add
  [Calls]
  - >> dfu_pkt_char_add
  - >> dfu_ctrl_pt_add
  [Called By]
  - >> ble_dfu_transport_init

  ble_dfu_transport_close (Thumb, 126 bytes, Stack size 16 bytes, nrf_ble_dfu.o(i.ble_dfu_transport_close))
  [Stack]

  - Max Depth = 68
  - Call Chain = ble_dfu_transport_close ⇒ ble_conn_params_stop ⇒ app_timer_stop ⇒ timer_stop_op_schedule ⇒ app_util_critical_region_enter
  [Calls]
  - >> ble_conn_params_stop
  - >> nrf_log_frontend_std_0
  - >> nrf_gpio_pin_set
  [Address Reference Count : 1]
  - nrf_ble_dfu.o(dfu_trans)

  ble_dfu_transport_init (Thumb, 118 bytes, Stack size 32 bytes, nrf_ble_dfu.o(i.ble_dfu_transport_init))
  [Stack]

  - Max Depth = 144
  - Call Chain = ble_dfu_transport_init ⇒ ble_dfu_init ⇒ dfu_ctrl_pt_add
  [Calls]
  - >> ble_conn_params_init
  - >> softdevice_ble_evt_handler_set
  - >> ble_dfu_init
  - >> nrf_gpio_pin_set
  - >> nrf_gpio_cfg_output
  - >> gap_params_init
  - >> ble_stack_init
  - >> advertising_start
  - >> __aeabi_memclr4
  [Address Reference Count : 1]
  - nrf_ble_dfu.o(dfu_trans)

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

  - >> ble_conn_params_on_ble_evt
  - >> on_rw_authorize_req

  bsp_board_led_off (Thumb, 14 bytes, Stack size 8 bytes, boards.o(i.bsp_board_led_off))
  [Stack]

  - Max Depth = 8
  - Call Chain = bsp_board_led_off
  [Calls]
  - >> nrf_gpio_pin_write
  [Called By]
  - >> bsp_board_leds_off

  bsp_board_led_on (Thumb, 14 bytes, Stack size 8 bytes, boards.o(i.bsp_board_led_on))
  [Stack]

  - Max Depth = 8
  - Call Chain = bsp_board_led_on
  [Calls]
  - >> nrf_gpio_pin_write
  [Called By]
  - >> main

  bsp_board_leds_init (Thumb, 36 bytes, Stack size 24 bytes, boards.o(i.bsp_board_leds_init))
  [Stack]

  - Max Depth = 40
  - Call Chain = bsp_board_leds_init ⇒ bsp_board_leds_off ⇒ bsp_board_led_off
  [Calls]
  - >> bsp_board_leds_off
  - >> nrf_gpio_cfg
  [Called By]
  - >> main

  bsp_board_leds_off (Thumb, 18 bytes, Stack size 8 bytes, boards.o(i.bsp_board_leds_off))
  [Stack]

  - Max Depth = 16
  - Call Chain = bsp_board_leds_off ⇒ bsp_board_led_off
  [Calls]
  - >> bsp_board_led_off
  [Called By]
  - >> bsp_board_leds_init

  crc32_compute (Thumb, 56 bytes, Stack size 20 bytes, crc32.o(i.crc32_compute))
  [Stack]

  - Max Depth = 20
  - Call Chain = crc32_compute
  [Called By]
  - >> nrf_dfu_data_req
  - >> nrf_dfu_command_req
  - >> nrf_dfu_app_continue
  - >> nrf_dfu_settings_calculate_crc
  - >> nrf_dfu_app_is_valid

  ecc_p256_verify (Thumb, 86 bytes, Stack size 24 bytes, ecc.o(i.ecc_p256_verify))
  [Stack]

  - Max Depth = 2984
  - Call Chain = ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> uECC_verify
  - >> uECC_secp256r1
  - >> is_word_aligned
  [Called By]
  - >> nrf_crypto_verify

  fs_erase (Thumb, 118 bytes, Stack size 24 bytes, fstorage.o(i.fs_erase))
  [Stack]

  - Max Depth = 64
  - Call Chain = fs_erase ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> queue_start
  - >> queue_get_next_free
  - >> check_config
  [Called By]
  - >> nrf_dfu_flash_erase

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

  - >> nrf_dfu_flash_init

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

  - >> wait_for_queue

  fs_store (Thumb, 128 bytes, Stack size 24 bytes, fstorage.o(i.fs_store))
  [Stack]

  - Max Depth = 64
  - Call Chain = fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> queue_start
  - >> queue_get_next_free
  - >> check_config
  [Called By]
  - >> nrf_dfu_flash_store

  fs_sys_event_handler (Thumb, 94 bytes, Stack size 16 bytes, fstorage.o(i.fs_sys_event_handler))
  [Stack]

  - Max Depth = 48
  - Call Chain = fs_sys_event_handler ⇒ queue_process ⇒ send_event
  [Calls]
  - >> send_event
  - >> queue_process
  - >> queue_advance
  - >> on_operation_success
  [Address Reference Count : 1]
  - nrf_dfu_flash.o(i.nrf_dfu_flash_init)

  intern_softdevice_events_execute (Thumb, 128 bytes, Stack size 24 bytes, softdevice_handler.o(i.intern_softdevice_events_execute))
  [Stack]

  - Max Depth = 48
  - Call Chain = intern_softdevice_events_execute ⇒ app_error_handler_bare ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> app_error_handler_bare
  [Called By]
  - >> softdevice_evt_get
  - >> SWI2_IRQHandler

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

  - Max Depth = 360
  - Call Chain = main ⇒ nrf_bootloader_init ⇒ nrf_dfu_init ⇒ nrf_dfu_req_handler_init ⇒ dfu_decode_commmand ⇒ pb_decode ⇒ pb_decode_noinit ⇒ decode_field ⇒ decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> nrf_log_init
  - >> nrf_bootloader_init
  - >> nrf_bootloader_app_start
  - >> bsp_board_leds_init
  - >> bsp_board_led_on
  - >> app_error_handler_bare
  - >> nrf_log_frontend_std_0
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

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

  - Max Depth = 32
  - Call Chain = nrf_bootloader_app_start ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> __asm___26_nrf_bootloader_app_start_c_5c9f33f9__nrf_bootloader_app_start_impl
  - >> nrf_dfu_mbr_init_sd
  [Called By]
  - >> main
  - >> nrf_dfu_init

  nrf_bootloader_init (Thumb, 30 bytes, Stack size 8 bytes, nrf_bootloader.o(i.nrf_bootloader_init))
  [Stack]

  - Max Depth = 352
  - Call Chain = nrf_bootloader_init ⇒ nrf_dfu_init ⇒ nrf_dfu_req_handler_init ⇒ dfu_decode_commmand ⇒ pb_decode ⇒ pb_decode_noinit ⇒ decode_field ⇒ decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_init
  [Called By]
  - >> main

  nrf_crypto_hash_compute (Thumb, 76 bytes, Stack size 128 bytes, nrf_crypto.o(i.nrf_crypto_hash_compute))
  [Stack]

  - Max Depth = 488
  - Call Chain = nrf_crypto_hash_compute ⇒ sha256_update ⇒ sha256_transform
  [Calls]
  - >> sha256_update
  - >> sha256_init
  - >> sha256_final
  [Called By]
  - >> nrf_dfu_postvalidate
  - >> dfu_handle_prevalidate

  nrf_crypto_verify (Thumb, 42 bytes, Stack size 16 bytes, nrf_crypto.o(i.nrf_crypto_verify))
  [Stack]

  - Max Depth = 3000
  - Call Chain = nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> ecc_p256_verify
  [Called By]
  - >> dfu_handle_prevalidate

  nrf_dfu_app_is_valid (Thumb, 72 bytes, Stack size 8 bytes, nrf_dfu_utils.o(i.nrf_dfu_app_is_valid))
  [Stack]

  - Max Depth = 32
  - Call Chain = nrf_dfu_app_is_valid ⇒ nrf_log_frontend_std_0 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> crc32_compute
  [Called By]
  - >> nrf_dfu_init

  nrf_dfu_continue (Thumb, 58 bytes, Stack size 16 bytes, nrf_dfu_utils.o(i.nrf_dfu_continue))
  [Stack]

  - Max Depth = 232
  - Call Chain = nrf_dfu_continue ⇒ nrf_dfu_continue_bank ⇒ nrf_dfu_sd_bl_continue ⇒ nrf_dfu_sd_continue_impl ⇒ nrf_dfu_settings_write ⇒ nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_continue_bank
  [Called By]
  - >> nrf_dfu_init

  nrf_dfu_enter_check (Thumb, 48 bytes, Stack size 8 bytes, nrf_dfu.o(i.nrf_dfu_enter_check))
  [Stack]

  - Max Depth = 128
  - Call Chain = nrf_dfu_enter_check ⇒ nrf_dfu_settings_write ⇒ nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> app_error_handler_bare
  - >> nrf_dfu_settings_write
  [Called By]
  - >> nrf_dfu_init

  nrf_dfu_find_cache (Thumb, 240 bytes, Stack size 40 bytes, nrf_dfu_utils.o(i.nrf_dfu_find_cache))
  [Stack]

  - Max Depth = 72
  - Call Chain = nrf_dfu_find_cache ⇒ nrf_log_frontend_std_2 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_2
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  [Called By]
  - >> nrf_dfu_req_handler_init
  - >> dfu_handle_prevalidate

  nrf_dfu_flash_erase (Thumb, 166 bytes, Stack size 40 bytes, nrf_dfu_flash.o(i.nrf_dfu_flash_erase))
  [Stack]

  - Max Depth = 104
  - Call Chain = nrf_dfu_flash_erase ⇒ fs_erase ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> nrf_log_frontend_std_2
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> nrf_nvmc_page_erase
  - >> fs_erase
  [Called By]
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_data_req
  - >> nrf_dfu_app_continue

  nrf_dfu_flash_init (Thumb, 60 bytes, Stack size 8 bytes, nrf_dfu_flash.o(i.nrf_dfu_flash_init))
  [Stack]

  - Max Depth = 32
  - Call Chain = nrf_dfu_flash_init ⇒ nrf_log_frontend_std_0 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> softdevice_sys_evt_handler_set
  - >> fs_fake_init
  [Called By]
  - >> nrf_dfu_req_handler_init

  nrf_dfu_flash_store (Thumb, 122 bytes, Stack size 40 bytes, nrf_dfu_flash.o(i.nrf_dfu_flash_store))
  [Stack]

  - Max Depth = 104
  - Call Chain = nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> nrf_nvmc_write_words
  - >> fs_store
  [Called By]
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_data_req
  - >> nrf_dfu_app_continue

  nrf_dfu_init (Thumb, 192 bytes, Stack size 16 bytes, nrf_dfu.o(i.nrf_dfu_init))
  [Stack]

  - Max Depth = 344
  - Call Chain = nrf_dfu_init ⇒ nrf_dfu_req_handler_init ⇒ dfu_decode_commmand ⇒ pb_decode ⇒ pb_decode_noinit ⇒ decode_field ⇒ decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> nrf_bootloader_app_start
  - >> app_error_handler_bare
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_req_handler_init
  - >> nrf_dfu_enter_check
  - >> nrf_dfu_transports_init
  - >> nrf_dfu_settings_init
  - >> nrf_dfu_continue
  - >> nrf_dfu_app_is_valid
  - >> app_timer_init
  - >> app_sched_init
  - >> app_sched_execute
  [Called By]
  - >> nrf_bootloader_init

  nrf_dfu_mbr_compare (Thumb, 22 bytes, Stack size 24 bytes, nrf_dfu_mbr.o(i.nrf_dfu_mbr_compare))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_dfu_mbr_compare
  [Called By]
  - >> nrf_dfu_sd_continue_impl
  - >> nrf_dfu_bl_continue
  - >> nrf_dfu_app_continue

  nrf_dfu_mbr_copy_bl (Thumb, 20 bytes, Stack size 24 bytes, nrf_dfu_mbr.o(i.nrf_dfu_mbr_copy_bl))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_dfu_mbr_copy_bl
  [Called By]
  - >> nrf_dfu_bl_continue

  nrf_dfu_mbr_copy_sd (Thumb, 34 bytes, Stack size 24 bytes, nrf_dfu_mbr.o(i.nrf_dfu_mbr_copy_sd))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_dfu_mbr_copy_sd
  [Called By]
  - >> nrf_dfu_sd_continue_impl

  nrf_dfu_mbr_init_sd (Thumb, 18 bytes, Stack size 24 bytes, nrf_dfu_mbr.o(i.nrf_dfu_mbr_init_sd))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_dfu_mbr_init_sd
  [Called By]
  - >> nrf_bootloader_app_start
  - >> ble_stack_init

  nrf_dfu_req_handler_init (Thumb, 82 bytes, Stack size 16 bytes, dfu_req_handling.o(i.nrf_dfu_req_handler_init))
  [Stack]

  - Max Depth = 328
  - Call Chain = nrf_dfu_req_handler_init ⇒ dfu_decode_commmand ⇒ pb_decode ⇒ pb_decode_noinit ⇒ decode_field ⇒ decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> nrf_dfu_flash_init
  - >> nrf_dfu_find_cache
  - >> dfu_decode_commmand
  [Called By]
  - >> nrf_dfu_init

  nrf_dfu_req_handler_on_req (Thumb, 64 bytes, Stack size 8 bytes, dfu_req_handling.o(i.nrf_dfu_req_handler_on_req))
  [Stack]

  - Max Depth = 3080
  - Call Chain = nrf_dfu_req_handler_on_req ⇒ nrf_dfu_command_req ⇒ dfu_handle_signed_command ⇒ dfu_handle_prevalidate ⇒ nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_data_req
  - >> nrf_dfu_command_req
  [Called By]
  - >> on_write
  - >> on_ctrl_pt_write

  nrf_dfu_settings_calculate_crc (Thumb, 14 bytes, Stack size 8 bytes, nrf_dfu_settings.o(i.nrf_dfu_settings_calculate_crc))
  [Stack]

  - Max Depth = 28
  - Call Chain = nrf_dfu_settings_calculate_crc ⇒ crc32_compute
  [Calls]
  - >> crc32_compute
  [Called By]
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_settings_init

  nrf_dfu_settings_init (Thumb, 84 bytes, Stack size 16 bytes, nrf_dfu_settings.o(i.nrf_dfu_settings_init))
  [Stack]

  - Max Depth = 136
  - Call Chain = nrf_dfu_settings_init ⇒ nrf_dfu_settings_write ⇒ nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> app_error_handler_bare
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_settings_calculate_crc
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> nrf_dfu_init

  nrf_dfu_settings_write (Thumb, 150 bytes, Stack size 16 bytes, nrf_dfu_settings.o(i.nrf_dfu_settings_write))
  [Stack]

  - Max Depth = 120
  - Call Chain = nrf_dfu_settings_write ⇒ nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_flash_store
  - >> nrf_dfu_flash_erase
  - >> nrf_dfu_settings_calculate_crc
  - >> wait_for_queue
  - >> delay_operation
  - >> __aeabi_memcpy4
  [Called By]
  - >> nrf_dfu_postvalidate
  - >> nrf_dfu_data_req
  - >> dfu_handle_signed_command
  - >> nrf_dfu_sd_continue_impl
  - >> nrf_dfu_continue_bank
  - >> nrf_dfu_bl_continue
  - >> nrf_dfu_app_continue
  - >> nrf_dfu_enter_check
  - >> nrf_dfu_settings_init

  nrf_dfu_transports_close (Thumb, 64 bytes, Stack size 24 bytes, nrf_dfu_transport.o(i.nrf_dfu_transports_close))
  [Stack]

  - Max Depth = 48
  - Call Chain = nrf_dfu_transports_close ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  [Called By]
  - >> on_dfu_complete

  nrf_dfu_transports_init (Thumb, 64 bytes, Stack size 24 bytes, nrf_dfu_transport.o(i.nrf_dfu_transports_init))
  [Stack]

  - Max Depth = 48
  - Call Chain = nrf_dfu_transports_init ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  [Called By]
  - >> nrf_dfu_init

  nrf_dfu_wait (Thumb, 8 bytes, Stack size 8 bytes, nrf_dfu.o(i.nrf_dfu_wait))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_dfu_wait ⇒ app_sched_execute
  [Calls]
  - >> app_sched_execute
  [Called By]
  - >> nrf_dfu_data_req

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

  - >> nrf_log_init

  nrf_log_backend_init (Thumb, 32 bytes, Stack size 16 bytes, nrf_log_backend_serial.o(i.nrf_log_backend_init))
  [Stack]

  - Max Depth = 32
  - Call Chain = nrf_log_backend_init ⇒ SEGGER_RTT_Init ⇒ _DoInit
  [Calls]
  - >> SEGGER_RTT_Init
  [Called By]
  - >> nrf_log_init

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

  - >> nrf_log_init

  nrf_log_frontend_hexdump (Thumb, 42 bytes, Stack size 56 bytes, nrf_log_frontend.o(i.nrf_log_frontend_hexdump))
  [Stack]

  - Max Depth = 56
  - Call Chain = nrf_log_frontend_hexdump
  [Called By]
  - >> nrf_dfu_command_req
  - >> dfu_handle_prevalidate

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

  - Max Depth = 24
  - Call Chain = nrf_log_frontend_std_0 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_direct_feed
  [Called By]
  - >> nrf_bootloader_init
  - >> nrf_bootloader_app_start
  - >> main
  - >> nrf_dfu_transports_close
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_flash_store
  - >> nrf_dfu_flash_init
  - >> nrf_dfu_flash_erase
  - >> nrf_dfu_find_cache
  - >> nrf_dfu_req_handler_on_req
  - >> on_dfu_complete
  - >> nrf_dfu_postvalidate
  - >> nrf_dfu_data_req
  - >> nrf_dfu_command_req
  - >> dfu_handle_signed_command
  - >> dfu_handle_prevalidate
  - >> dfu_decode_commmand
  - >> nrf_dfu_sd_continue_impl
  - >> nrf_dfu_sd_bl_continue
  - >> nrf_dfu_continue_bank
  - >> nrf_dfu_bl_continue
  - >> nrf_dfu_app_continue
  - >> wait_for_queue
  - >> fs_evt_handler
  - >> nrf_dfu_transports_init
  - >> nrf_dfu_settings_init
  - >> nrf_dfu_continue
  - >> nrf_dfu_app_is_valid
  - >> nrf_dfu_init
  - >> ble_dfu_transport_close
  - >> on_write
  - >> on_ctrl_pt_write

  nrf_log_frontend_std_1 (Thumb, 14 bytes, Stack size 8 bytes, nrf_log_frontend.o(i.nrf_log_frontend_std_1))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_direct_feed
  [Called By]
  - >> nrf_bootloader_app_start
  - >> app_error_handler_bare
  - >> nrf_dfu_transports_close
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_flash_store
  - >> nrf_dfu_flash_erase
  - >> nrf_dfu_find_cache
  - >> pb_decoding_callback
  - >> nrf_dfu_data_req
  - >> dfu_handle_prevalidate
  - >> nrf_dfu_sd_continue_impl
  - >> nrf_dfu_app_continue
  - >> nrf_dfu_transports_init
  - >> nrf_dfu_init
  - >> softdevice_enable
  - >> on_ble_evt
  - >> ble_stack_init

  nrf_log_frontend_std_2 (Thumb, 16 bytes, Stack size 16 bytes, nrf_log_frontend.o(i.nrf_log_frontend_std_2))
  [Stack]

  - Max Depth = 32
  - Call Chain = nrf_log_frontend_std_2 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_direct_feed
  [Called By]
  - >> app_error_fault_handler
  - >> nrf_dfu_flash_erase
  - >> nrf_dfu_find_cache
  - >> nrf_dfu_data_req
  - >> dfu_handle_prevalidate
  - >> nrf_dfu_bl_continue
  - >> nrf_dfu_app_continue
  - >> response_send
  - >> response_crc_cmd_send

  nrf_log_frontend_std_3 (Thumb, 18 bytes, Stack size 24 bytes, nrf_log_frontend.o(i.nrf_log_frontend_std_3))
  [Stack]

  - Max Depth = 40
  - Call Chain = nrf_log_frontend_std_3 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_direct_feed
  [Called By]
  - >> nrf_dfu_data_req
  - >> nrf_dfu_sd_continue_impl
  - >> nrf_dfu_bl_continue
  - >> response_select_object_cmd_send

  nrf_log_frontend_std_5 (Thumb, 26 bytes, Stack size 40 bytes, nrf_log_frontend.o(i.nrf_log_frontend_std_5))
  [Stack]

  - Max Depth = 56
  - Call Chain = nrf_log_frontend_std_5 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_direct_feed
  [Called By]
  - >> nrf_dfu_sd_continue_impl

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

  - >> nrf_log_init

  nrf_log_init (Thumb, 34 bytes, Stack size 16 bytes, nrf_log_frontend.o(i.nrf_log_init))
  [Stack]

  - Max Depth = 48
  - Call Chain = nrf_log_init ⇒ nrf_log_backend_init ⇒ SEGGER_RTT_Init ⇒ _DoInit
  [Calls]
  - >> nrf_log_handlers_set
  - >> nrf_log_backend_std_handler_get
  - >> nrf_log_backend_init
  - >> nrf_log_backend_hexdump_handler_get
  [Called By]
  - >> main

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

  - >> nrf_dfu_flash_erase

  nrf_nvmc_write_words (Thumb, 50 bytes, Stack size 20 bytes, nrf_nvmc.o(i.nrf_nvmc_write_words))
  [Stack]

  - Max Depth = 20
  - Call Chain = nrf_nvmc_write_words
  [Called By]
  - >> nrf_dfu_flash_store

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

  - >> nrf_queue_push
  - >> RNG_IRQHandler

  nrf_queue_push (Thumb, 176 bytes, Stack size 32 bytes, nrf_queue.o(i.nrf_queue_push))
  [Stack]

  - Max Depth = 44
  - Call Chain = nrf_queue_push ⇒ app_util_critical_region_enter
  [Calls]
  - >> nrf_queue_is_full
  - >> app_util_critical_region_exit
  - >> app_util_critical_region_enter
  - >> queue_utilization_get
  - >> nrf_queue_next_idx
  - >> __aeabi_memcpy
  [Called By]
  - >> RNG_IRQHandler

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

  - Max Depth = 288
  - Call Chain = pb_decode ⇒ pb_decode_noinit ⇒ decode_field ⇒ decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> pb_decode_noinit
  - >> pb_message_set_to_defaults
  [Called By]
  - >> dfu_decode_commmand
  - >> pb_dec_submessage

  pb_decode_fixed32 (Thumb, 36 bytes, Stack size 16 bytes, pb_decode.o(i.pb_decode_fixed32))
  [Stack]

  - Max Depth = 48
  - Call Chain = pb_decode_fixed32 ⇒ pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_read
  [Called By]
  - >> pb_dec_fixed32

  pb_decode_fixed64 (Thumb, 90 bytes, Stack size 16 bytes, pb_decode.o(i.pb_decode_fixed64))
  [Stack]

  - Max Depth = 48
  - Call Chain = pb_decode_fixed64 ⇒ pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_read
  [Called By]
  - >> pb_dec_fixed64

  pb_decode_noinit (Thumb, 398 bytes, Stack size 136 bytes, pb_decode.o(i.pb_decode_noinit))
  [Stack]

  - Max Depth = 272
  - Call Chain = pb_decode_noinit ⇒ decode_field ⇒ decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> pb_skip_field
  - >> pb_decode_tag
  - >> iter_from_extension
  - >> decode_field
  - >> pb_field_iter_next
  - >> pb_field_iter_find
  - >> pb_field_iter_begin
  [Called By]
  - >> pb_decode
  - >> pb_dec_submessage

  pb_decode_svarint (Thumb, 54 bytes, Stack size 16 bytes, pb_decode.o(i.pb_decode_svarint))
  [Stack]

  - Max Depth = 56
  - Call Chain = pb_decode_svarint ⇒ pb_decode_varint ⇒ pb_readbyte
  [Calls]
  - >> pb_decode_varint
  [Called By]
  - >> pb_dec_svarint

  pb_decode_tag (Thumb, 66 bytes, Stack size 24 bytes, pb_decode.o(i.pb_decode_tag))
  [Stack]

  - Max Depth = 56
  - Call Chain = pb_decode_tag ⇒ pb_decode_varint32 ⇒ pb_readbyte
  [Calls]
  - >> pb_decode_varint32
  [Called By]
  - >> pb_decode_noinit

  pb_decode_varint (Thumb, 70 bytes, Stack size 32 bytes, pb_decode.o(i.pb_decode_varint))
  [Stack]

  - Max Depth = 40
  - Call Chain = pb_decode_varint ⇒ pb_readbyte
  [Calls]
  - >> pb_readbyte
  - >> __aeabi_llsl
  [Called By]
  - >> pb_decode_svarint
  - >> pb_dec_varint
  - >> pb_dec_uvarint

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

  - >> pb_decode_noinit
  - >> pb_message_set_to_defaults
  - >> iter_from_extension
  - >> pb_field_iter_next

  pb_field_iter_find (Thumb, 46 bytes, Stack size 16 bytes, pb_common.o(i.pb_field_iter_find))
  [Stack]

  - Max Depth = 28
  - Call Chain = pb_field_iter_find ⇒ pb_field_iter_next
  [Calls]
  - >> pb_field_iter_next
  [Called By]
  - >> pb_decode_noinit

  pb_field_iter_next (Thumb, 130 bytes, Stack size 12 bytes, pb_common.o(i.pb_field_iter_next))
  [Stack]

  - Max Depth = 12
  - Call Chain = pb_field_iter_next
  [Calls]
  - >> pb_field_iter_begin
  [Called By]
  - >> pb_decode_noinit
  - >> pb_message_set_to_defaults
  - >> pb_field_iter_find

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

  - Max Depth = 8
  - Call Chain = pb_istream_from_buffer
  [Called By]
  - >> dfu_decode_commmand
  - >> decode_callback_field

  pb_make_string_substream (Thumb, 54 bytes, Stack size 16 bytes, pb_decode.o(i.pb_make_string_substream))
  [Stack]

  - Max Depth = 48
  - Call Chain = pb_make_string_substream ⇒ pb_decode_varint32 ⇒ pb_readbyte
  [Calls]
  - >> pb_decode_varint32
  [Called By]
  - >> pb_dec_submessage
  - >> decode_static_field
  - >> decode_callback_field

  pb_read (Thumb, 86 bytes, Stack size 32 bytes, pb_decode.o(i.pb_read))
  [Stack]

  - Max Depth = 32 + In Cycle
  - Call Chain = pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_read
  [Called By]
  - >> pb_skip_field
  - >> pb_read
  - >> pb_decode_fixed64
  - >> pb_decode_fixed32
  - >> read_raw_value
  - >> pb_dec_string
  - >> pb_dec_bytes

  pb_skip_field (Thumb, 90 bytes, Stack size 16 bytes, pb_decode.o(i.pb_skip_field))
  [Stack]

  - Max Depth = 48
  - Call Chain = pb_skip_field ⇒ pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_read
  - >> pb_decode_varint32
  [Called By]
  - >> pb_decode_noinit
  - >> decode_callback_field

  sha256_final (Thumb, 272 bytes, Stack size 24 bytes, sha256.o(i.sha256_final))
  [Stack]

  - Max Depth = 360
  - Call Chain = sha256_final ⇒ sha256_transform
  [Calls]
  - >> sha256_transform
  - >> __aeabi_memclr4
  [Called By]
  - >> nrf_crypto_hash_compute

  sha256_init (Thumb, 52 bytes, Stack size 0 bytes, sha256.o(i.sha256_init))
  [Called By]

  - >> nrf_crypto_hash_compute

  sha256_transform (Thumb, 350 bytes, Stack size 336 bytes, sha256.o(i.sha256_transform))
  [Stack]

  - Max Depth = 336
  - Call Chain = sha256_transform
  [Calls]
  - >> __aeabi_uread4
  [Called By]
  - >> sha256_update
  - >> sha256_final

  sha256_update (Thumb, 80 bytes, Stack size 24 bytes, sha256.o(i.sha256_update))
  [Stack]

  - Max Depth = 360
  - Call Chain = sha256_update ⇒ sha256_transform
  [Calls]
  - >> sha256_transform
  [Called By]
  - >> nrf_crypto_hash_compute

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

  - >> ble_dfu_transport_init

  softdevice_enable (Thumb, 62 bytes, Stack size 16 bytes, softdevice_handler.o(i.softdevice_enable))
  [Stack]

  - Max Depth = 40
  - Call Chain = softdevice_enable ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_1
  - >> ram_end_address_get
  [Called By]
  - >> ble_stack_init

  softdevice_enable_get_default_config (Thumb, 40 bytes, Stack size 16 bytes, softdevice_handler.o(i.softdevice_enable_get_default_config))
  [Stack]

  - Max Depth = 16
  - Call Chain = softdevice_enable_get_default_config
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> ble_stack_init

  softdevice_evt_get (Thumb, 18 bytes, Stack size 8 bytes, softdevice_handler_appsh.o(i.softdevice_evt_get))
  [Stack]

  - Max Depth = 56
  - Call Chain = softdevice_evt_get ⇒ intern_softdevice_events_execute ⇒ app_error_handler_bare ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> app_error_handler_bare
  - >> intern_softdevice_events_execute
  [Address Reference Count : 1]
  - softdevice_handler_appsh.o(i.softdevice_evt_schedule)

  softdevice_evt_schedule (Thumb, 14 bytes, Stack size 8 bytes, softdevice_handler_appsh.o(i.softdevice_evt_schedule))
  [Stack]

  - Max Depth = 60
  - Call Chain = softdevice_evt_schedule ⇒ app_sched_event_put ⇒ app_util_critical_region_enter
  [Calls]
  - >> app_sched_event_put
  [Address Reference Count : 1]
  - nrf_ble_dfu.o(i.ble_stack_init)

  softdevice_fault_handler (Thumb, 8 bytes, Stack size 8 bytes, softdevice_handler.o(i.softdevice_fault_handler))
  [Stack]

  - Max Depth = 40
  - Call Chain = softdevice_fault_handler ⇒ app_error_fault_handler ⇒ nrf_log_frontend_std_2 ⇒ nrf_log_direct_feed
  [Calls]
  - >> app_error_fault_handler
  [Address Reference Count : 1]
  - softdevice_handler.o(i.softdevice_handler_init)

  softdevice_handler_init (Thumb, 74 bytes, Stack size 24 bytes, softdevice_handler.o(i.softdevice_handler_init))
  [Stack]

  - Max Depth = 32
  - Call Chain = softdevice_handler_init ⇒ sd_nvic_EnableIRQ
  [Calls]
  - >> sd_nvic_EnableIRQ
  [Called By]
  - >> ble_stack_init

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

  - >> RNG_IRQHandler

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

  - >> nrf_dfu_flash_init

  ### Local Symbols

  dfu_data_write_handler (Thumb, 10 bytes, Stack size 0 bytes, dfu_req_handling.o(i.dfu_data_write_handler))
  [Address Reference Count : 1]

  - dfu_req_handling.o(i.nrf_dfu_data_req)

  dfu_decode_commmand (Thumb, 70 bytes, Stack size 24 bytes, dfu_req_handling.o(i.dfu_decode_commmand))
  [Stack]

  - Max Depth = 312
  - Call Chain = dfu_decode_commmand ⇒ pb_decode ⇒ pb_decode_noinit ⇒ decode_field ⇒ decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> pb_istream_from_buffer
  - >> pb_decode
  - >> nrf_log_frontend_std_0
  [Called By]
  - >> nrf_dfu_req_handler_init
  - >> nrf_dfu_command_req

  dfu_handle_prevalidate (Thumb, 550 bytes, Stack size 40 bytes, dfu_req_handling.o(i.dfu_handle_prevalidate))
  [Stack]

  - Max Depth = 3040
  - Call Chain = dfu_handle_prevalidate ⇒ nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> nrf_log_frontend_std_2
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> nrf_log_frontend_hexdump
  - >> nrf_dfu_find_cache
  - >> nrf_crypto_verify
  - >> nrf_crypto_hash_compute
  - >> __aeabi_memcpy
  [Called By]
  - >> dfu_handle_signed_command

  dfu_handle_signed_command (Thumb, 68 bytes, Stack size 8 bytes, dfu_req_handling.o(i.dfu_handle_signed_command))
  [Stack]

  - Max Depth = 3048
  - Call Chain = dfu_handle_signed_command ⇒ dfu_handle_prevalidate ⇒ nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_settings_write
  - >> dfu_handle_prevalidate
  [Called By]
  - >> nrf_dfu_command_req

  nrf_dfu_command_req (Thumb, 384 bytes, Stack size 24 bytes, dfu_req_handling.o(i.nrf_dfu_command_req))
  [Stack]

  - Max Depth = 3072
  - Call Chain = nrf_dfu_command_req ⇒ dfu_handle_signed_command ⇒ dfu_handle_prevalidate ⇒ nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_log_frontend_hexdump
  - >> crc32_compute
  - >> __ARM_common_switch8
  - >> dfu_handle_signed_command
  - >> dfu_decode_commmand
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> nrf_dfu_req_handler_on_req

  nrf_dfu_data_req (Thumb, 824 bytes, Stack size 32 bytes, dfu_req_handling.o(i.nrf_dfu_data_req))
  [Stack]

  - Max Depth = 544
  - Call Chain = nrf_dfu_data_req ⇒ nrf_dfu_postvalidate ⇒ nrf_crypto_hash_compute ⇒ sha256_update ⇒ sha256_transform
  [Calls]
  - >> nrf_log_frontend_std_3
  - >> nrf_log_frontend_std_2
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_wait
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_flash_store
  - >> nrf_dfu_flash_erase
  - >> crc32_compute
  - >> __ARM_common_switch8
  - >> nrf_dfu_postvalidate
  - >> __aeabi_memcpy
  [Called By]
  - >> nrf_dfu_req_handler_on_req

  nrf_dfu_postvalidate (Thumb, 294 bytes, Stack size 24 bytes, dfu_req_handling.o(i.nrf_dfu_postvalidate))
  [Stack]

  - Max Depth = 512
  - Call Chain = nrf_dfu_postvalidate ⇒ nrf_crypto_hash_compute ⇒ sha256_update ⇒ sha256_transform
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_settings_write
  - >> nrf_crypto_hash_compute
  - >> memcmp
  - >> __aeabi_memclr4
  - >> __aeabi_memset
  [Called By]
  - >> nrf_dfu_data_req

  on_dfu_complete (Thumb, 30 bytes, Stack size 0 bytes, dfu_req_handling.o(i.on_dfu_complete))
  [Stack]

  - Max Depth = 48
  - Call Chain = on_dfu_complete ⇒ nrf_dfu_transports_close ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_transports_close
  [Address Reference Count : 1]
  - dfu_req_handling.o(i.nrf_dfu_postvalidate)

  pb_decoding_callback (Thumb, 34 bytes, Stack size 8 bytes, dfu_req_handling.o(i.pb_decoding_callback))
  [Stack]

  - Max Depth = 32
  - Call Chain = pb_decoding_callback ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_1
  [Address Reference Count : 1]
  - dfu_req_handling.o(i.dfu_decode_commmand)

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

  - >> app_error_handler_bare
  - >> app_error_fault_handler

  nrf_gpio_cfg (Thumb, 40 bytes, Stack size 16 bytes, boards.o(i.nrf_gpio_cfg))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_gpio_cfg
  [Called By]
  - >> bsp_board_leds_init

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

  - >> bsp_board_led_off
  - >> bsp_board_led_on

  conn_params_negotiation (Thumb, 92 bytes, Stack size 24 bytes, ble_conn_params.o(i.conn_params_negotiation))
  [Stack]

  - Max Depth = 68
  - Call Chain = conn_params_negotiation ⇒ app_timer_start ⇒ app_util_critical_region_enter
  [Calls]
  - >> app_timer_start
  - >> is_conn_params_ok
  [Called By]
  - >> ble_conn_params_on_ble_evt

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

  - >> conn_params_negotiation

  update_timeout_handler (Thumb, 86 bytes, Stack size 16 bytes, ble_conn_params.o(i.update_timeout_handler))
  [Stack]

  - Max Depth = 16
  - Call Chain = update_timeout_handler
  [Address Reference Count : 1]
  - ble_conn_params.o(i.ble_conn_params_init)

  advertising_init (Thumb, 94 bytes, Stack size 24 bytes, nrf_ble_dfu.o(i.advertising_init))
  [Stack]

  - Max Depth = 24
  - Call Chain = advertising_init
  [Called By]
  - >> advertising_start

  advertising_start (Thumb, 82 bytes, Stack size 32 bytes, nrf_ble_dfu.o(i.advertising_start))
  [Stack]

  - Max Depth = 56
  - Call Chain = advertising_start ⇒ advertising_init
  [Calls]
  - >> nrf_gpio_pin_set
  - >> advertising_init
  - >> __aeabi_memclr4
  [Called By]
  - >> ble_dfu_transport_init
  - >> on_ble_evt

  ble_evt_dispatch (Thumb, 16 bytes, Stack size 8 bytes, nrf_ble_dfu.o(i.ble_evt_dispatch))
  [Stack]

  - Max Depth = 3152
  - Call Chain = ble_evt_dispatch ⇒ on_ble_evt ⇒ on_ctrl_pt_write ⇒ nrf_dfu_req_handler_on_req ⇒ nrf_dfu_command_req ⇒ dfu_handle_signed_command ⇒ dfu_handle_prevalidate ⇒ nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> ble_conn_params_on_ble_evt
  - >> on_ble_evt
  [Address Reference Count : 1]
  - nrf_ble_dfu.o(i.ble_dfu_transport_init)

  ble_stack_init (Thumb, 84 bytes, Stack size 32 bytes, nrf_ble_dfu.o(i.ble_stack_init))
  [Stack]

  - Max Depth = 72
  - Call Chain = ble_stack_init ⇒ softdevice_enable ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> app_error_handler_bare
  - >> nrf_log_frontend_std_1
  - >> softdevice_handler_init
  - >> softdevice_enable_get_default_config
  - >> softdevice_enable
  - >> nrf_dfu_mbr_init_sd
  [Called By]
  - >> ble_dfu_transport_init

  conn_params_error_handler (Thumb, 8 bytes, Stack size 8 bytes, nrf_ble_dfu.o(i.conn_params_error_handler))
  [Stack]

  - Max Depth = 32
  - Call Chain = conn_params_error_handler ⇒ app_error_handler_bare ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> app_error_handler_bare
  [Address Reference Count : 1]
  - nrf_ble_dfu.o(i.ble_dfu_transport_init)

  dfu_ctrl_pt_add (Thumb, 110 bytes, Stack size 72 bytes, nrf_ble_dfu.o(i.dfu_ctrl_pt_add))
  [Stack]

  - Max Depth = 72
  - Call Chain = dfu_ctrl_pt_add
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> ble_dfu_init

  dfu_pkt_char_add (Thumb, 104 bytes, Stack size 64 bytes, nrf_ble_dfu.o(i.dfu_pkt_char_add))
  [Stack]

  - Max Depth = 64
  - Call Chain = dfu_pkt_char_add
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> ble_dfu_init

  gap_params_init (Thumb, 86 bytes, Stack size 32 bytes, nrf_ble_dfu.o(i.gap_params_init))
  [Stack]

  - Max Depth = 32
  - Call Chain = gap_params_init
  [Called By]
  - >> ble_dfu_transport_init

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

  - >> ble_dfu_transport_init

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

  - >> ble_dfu_transport_init
  - >> ble_dfu_transport_close
  - >> on_ble_evt
  - >> advertising_start

  on_ble_evt (Thumb, 214 bytes, Stack size 16 bytes, nrf_ble_dfu.o(i.on_ble_evt))
  [Stack]

  - Max Depth = 3144
  - Call Chain = on_ble_evt ⇒ on_ctrl_pt_write ⇒ nrf_dfu_req_handler_on_req ⇒ nrf_dfu_command_req ⇒ dfu_handle_signed_command ⇒ dfu_handle_prevalidate ⇒ nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> app_error_handler_bare
  - >> nrf_log_frontend_std_1
  - >> on_write
  - >> on_rw_authorize_req
  - >> on_ctrl_pt_write
  - >> nrf_gpio_pin_set
  - >> advertising_start
  [Called By]
  - >> ble_evt_dispatch

  on_ctrl_pt_write (Thumb, 296 bytes, Stack size 48 bytes, nrf_ble_dfu.o(i.on_ctrl_pt_write))
  [Stack]

  - Max Depth = 3128
  - Call Chain = on_ctrl_pt_write ⇒ nrf_dfu_req_handler_on_req ⇒ nrf_dfu_command_req ⇒ dfu_handle_signed_command ⇒ dfu_handle_prevalidate ⇒ nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_req_handler_on_req
  - >> __ARM_common_switch8
  - >> response_send
  - >> response_select_object_cmd_send
  - >> response_crc_cmd_send
  - >> __aeabi_uread4
  [Called By]
  - >> on_ble_evt

  on_rw_authorize_req (Thumb, 138 bytes, Stack size 40 bytes, nrf_ble_dfu.o(i.on_rw_authorize_req))
  [Stack]

  - Max Depth = 40
  - Call Chain = on_rw_authorize_req
  [Calls]
  - >> ble_srv_is_notification_enabled
  [Called By]
  - >> on_ble_evt

  on_write (Thumb, 102 bytes, Stack size 40 bytes, nrf_ble_dfu.o(i.on_write))
  [Stack]

  - Max Depth = 3120
  - Call Chain = on_write ⇒ nrf_dfu_req_handler_on_req ⇒ nrf_dfu_command_req ⇒ dfu_handle_signed_command ⇒ dfu_handle_prevalidate ⇒ nrf_crypto_verify ⇒ ecc_p256_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mmod ⇒ uECC_vli_set
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_req_handler_on_req
  - >> response_crc_cmd_send
  [Called By]
  - >> on_ble_evt

  response_crc_cmd_send (Thumb, 82 bytes, Stack size 32 bytes, nrf_ble_dfu.o(i.response_crc_cmd_send))
  [Stack]

  - Max Depth = 64
  - Call Chain = response_crc_cmd_send ⇒ nrf_log_frontend_std_2 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_2
  - >> uint32_encode
  - >> send_hvx
  [Called By]
  - >> on_write
  - >> on_ctrl_pt_write

  response_select_object_cmd_send (Thumb, 100 bytes, Stack size 40 bytes, nrf_ble_dfu.o(i.response_select_object_cmd_send))
  [Stack]

  - Max Depth = 80
  - Call Chain = response_select_object_cmd_send ⇒ nrf_log_frontend_std_3 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_3
  - >> uint32_encode
  - >> send_hvx
  [Called By]
  - >> on_ctrl_pt_write

  response_send (Thumb, 62 bytes, Stack size 16 bytes, nrf_ble_dfu.o(i.response_send))
  [Stack]

  - Max Depth = 48
  - Call Chain = response_send ⇒ nrf_log_frontend_std_2 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_2
  - >> send_hvx
  [Called By]
  - >> on_ctrl_pt_write

  send_hvx (Thumb, 34 bytes, Stack size 32 bytes, nrf_ble_dfu.o(i.send_hvx))
  [Stack]

  - Max Depth = 32
  - Call Chain = send_hvx
  [Called By]
  - >> response_send
  - >> response_select_object_cmd_send
  - >> response_crc_cmd_send

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

  - >> response_select_object_cmd_send
  - >> response_crc_cmd_send

  fs_evt_handler (Thumb, 54 bytes, Stack size 24 bytes, nrf_dfu_flash.o(i.fs_evt_handler))
  [Stack]

  - Max Depth = 48
  - Call Chain = fs_evt_handler ⇒ nrf_log_frontend_std_0 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_0
  [Address Reference Count : 1]
  - nrf_dfu_flash.o(fs_data)

  delay_operation (Thumb, 42 bytes, Stack size 8 bytes, nrf_dfu_settings.o(i.delay_operation))
  [Stack]

  - Max Depth = 16
  - Call Chain = delay_operation ⇒ app_sched_execute
  [Calls]
  - >> app_sched_execute
  [Called By]
  - >> nrf_dfu_settings_write
  - >> wait_for_queue

  dfu_settings_write_callback (Thumb, 20 bytes, Stack size 0 bytes, nrf_dfu_settings.o(i.dfu_settings_write_callback))
  [Address Reference Count : 1]

  - nrf_dfu_settings.o(i.nrf_dfu_settings_write)

  wait_for_queue (Thumb, 26 bytes, Stack size 8 bytes, nrf_dfu_settings.o(i.wait_for_queue))
  [Stack]

  - Max Depth = 32
  - Call Chain = wait_for_queue ⇒ nrf_log_frontend_std_0 ⇒ nrf_log_direct_feed
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> fs_queue_is_full
  - >> delay_operation
  [Called By]
  - >> nrf_dfu_settings_write

  nrf_dfu_app_continue (Thumb, 224 bytes, Stack size 32 bytes, nrf_dfu_utils.o(i.nrf_dfu_app_continue))
  [Stack]

  - Max Depth = 152
  - Call Chain = nrf_dfu_app_continue ⇒ nrf_dfu_settings_write ⇒ nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> nrf_log_frontend_std_2
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_flash_store
  - >> nrf_dfu_flash_erase
  - >> crc32_compute
  - >> nrf_dfu_invalidate_bank
  - >> nrf_dfu_mbr_compare
  [Called By]
  - >> nrf_dfu_continue_bank

  nrf_dfu_bl_continue (Thumb, 106 bytes, Stack size 24 bytes, nrf_dfu_utils.o(i.nrf_dfu_bl_continue))
  [Stack]

  - Max Depth = 144
  - Call Chain = nrf_dfu_bl_continue ⇒ nrf_dfu_settings_write ⇒ nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> nrf_log_frontend_std_3
  - >> nrf_log_frontend_std_2
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_invalidate_bank
  - >> nrf_dfu_mbr_copy_bl
  - >> nrf_dfu_mbr_compare
  [Called By]
  - >> nrf_dfu_sd_bl_continue
  - >> nrf_dfu_continue_bank

  nrf_dfu_continue_bank (Thumb, 150 bytes, Stack size 32 bytes, nrf_dfu_utils.o(i.nrf_dfu_continue_bank))
  [Stack]

  - Max Depth = 216
  - Call Chain = nrf_dfu_continue_bank ⇒ nrf_dfu_sd_bl_continue ⇒ nrf_dfu_sd_continue_impl ⇒ nrf_dfu_settings_write ⇒ nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_settings_write
  - >> nrf_dfu_sd_continue_impl
  - >> nrf_dfu_sd_bl_continue
  - >> nrf_dfu_invalidate_bank
  - >> nrf_dfu_bl_continue
  - >> nrf_dfu_app_continue
  [Called By]
  - >> nrf_dfu_continue

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

  - >> nrf_dfu_continue_bank
  - >> nrf_dfu_bl_continue
  - >> nrf_dfu_app_continue

  nrf_dfu_sd_bl_continue (Thumb, 54 bytes, Stack size 16 bytes, nrf_dfu_utils.o(i.nrf_dfu_sd_bl_continue))
  [Stack]

  - Max Depth = 184
  - Call Chain = nrf_dfu_sd_bl_continue ⇒ nrf_dfu_sd_continue_impl ⇒ nrf_dfu_settings_write ⇒ nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_sd_continue_impl
  - >> nrf_dfu_bl_continue
  [Called By]
  - >> nrf_dfu_continue_bank

  nrf_dfu_sd_continue_impl (Thumb, 256 bytes, Stack size 48 bytes, nrf_dfu_utils.o(i.nrf_dfu_sd_continue_impl))
  [Stack]

  - Max Depth = 168
  - Call Chain = nrf_dfu_sd_continue_impl ⇒ nrf_dfu_settings_write ⇒ nrf_dfu_flash_store ⇒ fs_store ⇒ queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> nrf_log_frontend_std_3
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> nrf_dfu_settings_write
  - >> nrf_log_frontend_std_5
  - >> nrf_dfu_mbr_copy_sd
  - >> nrf_dfu_mbr_compare
  [Called By]
  - >> nrf_dfu_sd_bl_continue
  - >> nrf_dfu_continue_bank

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

  - >> RNG_IRQHandler

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

  - >> app_timer_init

  compare_reg_update (Thumb, 142 bytes, Stack size 24 bytes, app_timer.o(i.compare_reg_update))
  [Stack]

  - Max Depth = 40
  - Call Chain = compare_reg_update ⇒ rtc1_stop
  [Calls]
  - >> rtc1_stop
  - >> nrf_delay_us
  [Called By]
  - >> timer_list_handler

  elapsed_ticks_acquire (Thumb, 58 bytes, Stack size 8 bytes, app_timer.o(i.elapsed_ticks_acquire))
  [Stack]

  - Max Depth = 8
  - Call Chain = elapsed_ticks_acquire
  [Called By]
  - >> timer_list_handler

  list_deletions_handler (Thumb, 162 bytes, Stack size 20 bytes, app_timer.o(i.list_deletions_handler))
  [Stack]

  - Max Depth = 20
  - Call Chain = list_deletions_handler
  [Called By]
  - >> timer_list_handler

  list_insertions_handler (Thumb, 178 bytes, Stack size 24 bytes, app_timer.o(i.list_insertions_handler))
  [Stack]

  - Max Depth = 32
  - Call Chain = list_insertions_handler ⇒ timer_list_insert
  [Calls]
  - >> timer_list_insert
  [Called By]
  - >> timer_list_handler

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

  - >> rtc1_stop
  - >> compare_reg_update

  rtc1_stop (Thumb, 50 bytes, Stack size 16 bytes, app_timer.o(i.rtc1_stop))
  [Stack]

  - Max Depth = 16
  - Call Chain = rtc1_stop
  [Calls]
  - >> nrf_delay_us
  [Called By]
  - >> app_timer_init
  - >> compare_reg_update

  timer_list_handler (Thumb, 128 bytes, Stack size 32 bytes, app_timer.o(i.timer_list_handler))
  [Stack]

  - Max Depth = 72
  - Call Chain = timer_list_handler ⇒ compare_reg_update ⇒ rtc1_stop
  [Calls]
  - >> list_insertions_handler
  - >> list_deletions_handler
  - >> elapsed_ticks_acquire
  - >> compare_reg_update
  [Called By]
  - >> SWI0_IRQHandler

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

  - >> app_timer_start
  - >> timer_timeouts_check
  - >> timer_stop_op_schedule

  timer_list_insert (Thumb, 60 bytes, Stack size 8 bytes, app_timer.o(i.timer_list_insert))
  [Stack]

  - Max Depth = 8
  - Call Chain = timer_list_insert
  [Called By]
  - >> list_insertions_handler

  timer_stop_op_schedule (Thumb, 68 bytes, Stack size 24 bytes, app_timer.o(i.timer_stop_op_schedule))
  [Stack]

  - Max Depth = 36
  - Call Chain = timer_stop_op_schedule ⇒ app_util_critical_region_enter
  [Calls]
  - >> app_util_critical_region_exit
  - >> app_util_critical_region_enter
  - >> user_op_alloc
  - >> timer_list_handler_sched
  [Called By]
  - >> app_timer_stop

  timer_timeouts_check (Thumb, 118 bytes, Stack size 24 bytes, app_timer.o(i.timer_timeouts_check))
  [Stack]

  - Max Depth = 48
  - Call Chain = timer_timeouts_check ⇒ app_error_handler_bare ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> app_error_handler_bare
  - >> timer_list_handler_sched
  [Called By]
  - >> RTC1_IRQHandler

  user_op_alloc (Thumb, 40 bytes, Stack size 8 bytes, app_timer.o(i.user_op_alloc))
  [Stack]

  - Max Depth = 8
  - Call Chain = user_op_alloc
  [Called By]
  - >> app_timer_start
  - >> timer_stop_op_schedule

  app_timer_evt_get (Thumb, 22 bytes, Stack size 8 bytes, app_timer_appsh.o(i.app_timer_evt_get))
  [Stack]

  - Max Depth = 32
  - Call Chain = app_timer_evt_get ⇒ app_error_handler_bare ⇒ nrf_log_frontend_std_1 ⇒ nrf_log_direct_feed
  [Calls]
  - >> app_error_handler_bare
  [Address Reference Count : 1]
  - app_timer_appsh.o(i.app_timer_evt_schedule)

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

  - >> ecc_p256_verify

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

  - >> fs_store
  - >> fs_erase

  on_operation_success (Thumb, 80 bytes, Stack size 8 bytes, fstorage.o(i.on_operation_success))
  [Stack]

  - Max Depth = 32
  - Call Chain = on_operation_success ⇒ send_event
  [Calls]
  - >> send_event
  - >> queue_advance
  [Called By]
  - >> fs_sys_event_handler

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

  - >> fs_sys_event_handler
  - >> on_operation_success

  queue_get_next_free (Thumb, 50 bytes, Stack size 16 bytes, fstorage.o(i.queue_get_next_free))
  [Stack]

  - Max Depth = 16
  - Call Chain = queue_get_next_free
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> fs_store
  - >> fs_erase

  queue_process (Thumb, 100 bytes, Stack size 8 bytes, fstorage.o(i.queue_process))
  [Stack]

  - Max Depth = 32
  - Call Chain = queue_process ⇒ send_event
  [Calls]
  - >> send_event
  [Called By]
  - >> fs_sys_event_handler
  - >> queue_start

  queue_start (Thumb, 24 bytes, Stack size 8 bytes, fstorage.o(i.queue_start))
  [Stack]

  - Max Depth = 40
  - Call Chain = queue_start ⇒ queue_process ⇒ send_event
  [Calls]
  - >> queue_process
  [Called By]
  - >> fs_store
  - >> fs_erase

  send_event (Thumb, 72 bytes, Stack size 24 bytes, fstorage.o(i.send_event))
  [Stack]

  - Max Depth = 24
  - Call Chain = send_event
  [Called By]
  - >> fs_sys_event_handler
  - >> queue_process
  - >> on_operation_success

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

  - >> nrf_queue_push

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

  - >> nrf_queue_push

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

  - >> timestamp_process
  - >> nrf_log_backend_serial_std_handler

  nrf_log_backend_serial_hexdump_handler (Thumb, 284 bytes, Stack size 296 bytes, nrf_log_backend_serial.o(i.nrf_log_backend_serial_hexdump_handler))
  [Stack]

  - Max Depth = 376
  - Call Chain = nrf_log_backend_serial_hexdump_handler ⇒ serial_tx ⇒ SEGGER_RTT_WriteNoLock ⇒ _WriteBlocking
  [Calls]
  - >> timestamp_process
  - >> serial_tx
  - >> strlen
  - >> __aeabi_memcpy
  - >> __rt_ctype_table
  [Address Reference Count : 1]
  - nrf_log_backend_serial.o(i.nrf_log_backend_hexdump_handler_get)

  nrf_log_backend_serial_std_handler (Thumb, 248 bytes, Stack size 320 bytes, nrf_log_backend_serial.o(i.nrf_log_backend_serial_std_handler))
  [Stack]

  - Max Depth = 400
  - Call Chain = nrf_log_backend_serial_std_handler ⇒ serial_tx ⇒ SEGGER_RTT_WriteNoLock ⇒ _WriteBlocking
  [Calls]
  - >> __ARM_common_switch8
  - >> timestamp_process
  - >> serial_tx
  - >> buf_len_update
  - >> __2snprintf
  - >> strlen
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - nrf_log_backend_serial.o(i.nrf_log_backend_std_handler_get)

  serial_tx (Thumb, 44 bytes, Stack size 24 bytes, nrf_log_backend_serial.o(i.serial_tx))
  [Stack]

  - Max Depth = 80
  - Call Chain = serial_tx ⇒ SEGGER_RTT_WriteNoLock ⇒ _WriteBlocking
  [Calls]
  - >> SEGGER_RTT_WriteNoLock
  [Called By]
  - >> nrf_log_backend_serial_std_handler
  - >> nrf_log_backend_serial_hexdump_handler

  timestamp_process (Thumb, 42 bytes, Stack size 8 bytes, nrf_log_backend_serial.o(i.timestamp_process))
  [Stack]

  - Max Depth = 40
  - Call Chain = timestamp_process ⇒ __2snprintf
  [Calls]
  - >> buf_len_update
  - >> __2snprintf
  [Called By]
  - >> nrf_log_backend_serial_std_handler
  - >> nrf_log_backend_serial_hexdump_handler

  nrf_log_direct_feed (Thumb, 20 bytes, Stack size 16 bytes, nrf_log_frontend.o(i.nrf_log_direct_feed))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_log_direct_feed
  [Called By]
  - >> nrf_log_frontend_std_3
  - >> nrf_log_frontend_std_2
  - >> nrf_log_frontend_std_1
  - >> nrf_log_frontend_std_0
  - >> nrf_log_frontend_std_5

  _DoInit (Thumb, 74 bytes, Stack size 8 bytes, segger_rtt.o(i._DoInit))
  [Stack]

  - Max Depth = 8
  - Call Chain = _DoInit
  [Calls]
  - >> strcpy
  [Called By]
  - >> SEGGER_RTT_Init

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

  - >> SEGGER_RTT_WriteNoLock

  _WriteBlocking (Thumb, 96 bytes, Stack size 40 bytes, segger_rtt.o(i._WriteBlocking))
  [Stack]

  - Max Depth = 40
  - Call Chain = _WriteBlocking
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> SEGGER_RTT_WriteNoLock

  _WriteNoCheck (Thumb, 60 bytes, Stack size 32 bytes, segger_rtt.o(i._WriteNoCheck))
  [Stack]

  - Max Depth = 32
  - Call Chain = _WriteNoCheck
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> SEGGER_RTT_WriteNoLock

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

  - >> sd_nvic_EnableIRQ

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

  - >> softdevice_enable

  sd_nvic_EnableIRQ (Thumb, 112 bytes, Stack size 8 bytes, softdevice_handler.o(i.sd_nvic_EnableIRQ))
  [Stack]

  - Max Depth = 8
  - Call Chain = sd_nvic_EnableIRQ
  [Calls]
  - >> __sd_nvic_app_accessible_irq
  [Called By]
  - >> softdevice_handler_init

  buf_read (Thumb, 30 bytes, Stack size 8 bytes, pb_decode.o(i.buf_read))
  [Stack]

  - Max Depth = 8
  - Call Chain = buf_read
  [Address Reference Count : 2]
  - pb_decode.o(i.pb_istream_from_buffer)
  - pb_decode.o(i.pb_read)

  decode_callback_field (Thumb, 118 bytes, Stack size 72 bytes, pb_decode.o(i.decode_callback_field))
  [Stack]

  - Max Depth = 128
  - Call Chain = decode_callback_field ⇒ read_raw_value ⇒ pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_istream_from_buffer
  - >> pb_skip_field
  - >> pb_make_string_substream
  - >> read_raw_value
  [Called By]
  - >> decode_field

  decode_field (Thumb, 32 bytes, Stack size 8 bytes, pb_decode.o(i.decode_field))
  [Stack]

  - Max Depth = 136
  - Call Chain = decode_field ⇒ decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> decode_static_field
  - >> decode_callback_field
  [Called By]
  - >> pb_decode_noinit

  decode_static_field (Thumb, 218 bytes, Stack size 40 bytes, pb_decode.o(i.decode_static_field))
  [Stack]

  - Max Depth = 128
  - Call Chain = decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> pb_make_string_substream
  - >> pb_message_set_to_defaults
  - >> __aeabi_memclr
  [Called By]
  - >> decode_field

  iter_from_extension (Thumb, 44 bytes, Stack size 16 bytes, pb_decode.o(i.iter_from_extension))
  [Stack]

  - Max Depth = 16
  - Call Chain = iter_from_extension
  [Calls]
  - >> pb_field_iter_begin
  [Called By]
  - >> pb_decode_noinit
  - >> pb_field_set_to_default

  pb_dec_bytes (Thumb, 60 bytes, Stack size 24 bytes, pb_decode.o(i.pb_dec_bytes))
  [Stack]

  - Max Depth = 56
  - Call Chain = pb_dec_bytes ⇒ pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_read
  - >> pb_decode_varint32
  [Address Reference Count : 1]
  - pb_decode.o(.constdata)

  pb_dec_fixed32 (Thumb, 10 bytes, Stack size 8 bytes, pb_decode.o(i.pb_dec_fixed32))
  [Stack]

  - Max Depth = 56
  - Call Chain = pb_dec_fixed32 ⇒ pb_decode_fixed32 ⇒ pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_decode_fixed32
  [Address Reference Count : 1]
  - pb_decode.o(.constdata)

  pb_dec_fixed64 (Thumb, 10 bytes, Stack size 8 bytes, pb_decode.o(i.pb_dec_fixed64))
  [Stack]

  - Max Depth = 56
  - Call Chain = pb_dec_fixed64 ⇒ pb_decode_fixed64 ⇒ pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_decode_fixed64
  [Address Reference Count : 1]
  - pb_decode.o(.constdata)

  pb_dec_string (Thumb, 60 bytes, Stack size 24 bytes, pb_decode.o(i.pb_dec_string))
  [Stack]

  - Max Depth = 56
  - Call Chain = pb_dec_string ⇒ pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_read
  - >> pb_decode_varint32
  [Address Reference Count : 1]
  - pb_decode.o(.constdata)

  pb_dec_submessage (Thumb, 62 bytes, Stack size 40 bytes, pb_decode.o(i.pb_dec_submessage))
  [Stack]

  - Max Depth = 328
  - Call Chain = pb_dec_submessage ⇒ pb_decode ⇒ pb_decode_noinit ⇒ decode_field ⇒ decode_static_field ⇒ pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> pb_decode
  - >> pb_make_string_substream
  - >> pb_decode_noinit
  [Address Reference Count : 1]
  - pb_decode.o(.constdata)

  pb_dec_svarint (Thumb, 86 bytes, Stack size 24 bytes, pb_decode.o(i.pb_dec_svarint))
  [Stack]

  - Max Depth = 80
  - Call Chain = pb_dec_svarint ⇒ pb_decode_svarint ⇒ pb_decode_varint ⇒ pb_readbyte
  [Calls]
  - >> pb_decode_svarint
  [Address Reference Count : 1]
  - pb_decode.o(.constdata)

  pb_dec_uvarint (Thumb, 86 bytes, Stack size 24 bytes, pb_decode.o(i.pb_dec_uvarint))
  [Stack]

  - Max Depth = 64
  - Call Chain = pb_dec_uvarint ⇒ pb_decode_varint ⇒ pb_readbyte
  [Calls]
  - >> pb_decode_varint
  [Address Reference Count : 1]
  - pb_decode.o(.constdata)

  pb_dec_varint (Thumb, 86 bytes, Stack size 24 bytes, pb_decode.o(i.pb_dec_varint))
  [Stack]

  - Max Depth = 64
  - Call Chain = pb_dec_varint ⇒ pb_decode_varint ⇒ pb_readbyte
  [Calls]
  - >> pb_decode_varint
  [Address Reference Count : 1]
  - pb_decode.o(.constdata)

  pb_decode_varint32 (Thumb, 76 bytes, Stack size 24 bytes, pb_decode.o(i.pb_decode_varint32))
  [Stack]

  - Max Depth = 32
  - Call Chain = pb_decode_varint32 ⇒ pb_readbyte
  [Calls]
  - >> pb_readbyte
  [Called By]
  - >> pb_skip_field
  - >> pb_make_string_substream
  - >> pb_decode_tag
  - >> pb_dec_string
  - >> pb_dec_bytes

  pb_field_set_to_default (Thumb, 152 bytes, Stack size 40 bytes, pb_decode.o(i.pb_field_set_to_default))
  [Stack]

  - Max Depth = 56 + In Cycle
  - Call Chain = pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> pb_message_set_to_defaults
  - >> pb_field_set_to_default
  - >> iter_from_extension
  - >> __aeabi_memclr
  - >> __aeabi_memcpy
  [Called By]
  - >> pb_message_set_to_defaults
  - >> pb_field_set_to_default

  pb_message_set_to_defaults (Thumb, 38 bytes, Stack size 32 bytes, pb_decode.o(i.pb_message_set_to_defaults))
  [Stack]

  - Max Depth = 88
  - Call Chain = pb_message_set_to_defaults ⇒ pb_field_set_to_default ⇒ pb_message_set_to_defaults (Cycle)
  [Calls]
  - >> pb_field_set_to_default
  - >> pb_field_iter_next
  - >> pb_field_iter_begin
  [Called By]
  - >> pb_decode
  - >> pb_field_set_to_default
  - >> decode_static_field

  pb_readbyte (Thumb, 32 bytes, Stack size 8 bytes, pb_decode.o(i.pb_readbyte))
  [Stack]

  - Max Depth = 8
  - Call Chain = pb_readbyte
  [Called By]
  - >> pb_decode_varint
  - >> pb_decode_varint32

  read_raw_value (Thumb, 94 bytes, Stack size 24 bytes, pb_decode.o(i.read_raw_value))
  [Stack]

  - Max Depth = 56
  - Call Chain = read_raw_value ⇒ pb_read ⇒ pb_read (Cycle)
  [Calls]
  - >> pb_read
  [Called By]
  - >> decode_callback_field

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

  - >> SystemInit

  bcopy (Thumb, 14 bytes, Stack size 0 bytes, micro_ecc_lib_uECC.c.o(.text.bcopy))
  [Calls]

  - >> bcopy
  [Called By]
  - >> uECC_verify
  - >> bits2int
  - >> bcopy

  uECC_vli_cmp_unsafe (Thumb, 36 bytes, Stack size 32 bytes, micro_ecc_lib_uECC.c.o(.text.uECC_vli_cmp_unsafe))
  [Stack]

  - Max Depth = 32
  - Call Chain = uECC_vli_cmp_unsafe
  [Called By]
  - >> uECC_verify
  - >> vli_mmod_fast_secp256r1
  - >> bits2int
  - >> uECC_vli_modInv
  - >> uECC_vli_modAdd

  bits2int (Thumb, 142 bytes, Stack size 128 bytes, micro_ecc_lib_uECC.c.o(.text.bits2int))
  [Stack]

  - Max Depth = 192
  - Call Chain = bits2int ⇒ uECC_vli_sub
  [Calls]
  - >> uECC_vli_cmp_unsafe
  - >> bcopy
  - >> uECC_vli_clear
  - >> uECC_vli_sub
  [Called By]
  - >> uECC_verify

  vli_mmod_fast_secp256r1 (Thumb, 436 bytes, Stack size 256 bytes, micro_ecc_lib_uECC.c.o(.text.vli_mmod_fast_secp256r1))
  [Stack]

  - Max Depth = 320
  - Call Chain = vli_mmod_fast_secp256r1 ⇒ uECC_vli_sub
  [Calls]
  - >> uECC_vli_cmp_unsafe
  - >> uECC_vli_set
  - >> uECC_vli_sub
  - >> uECC_vli_add
  [Address Reference Count : 1]
  - micro_ecc_lib_uECC.c.o(.rodata.curve_secp256r1)

  vli_modInv_update (Thumb, 64 bytes, Stack size 64 bytes, micro_ecc_lib_uECC.c.o(.text.vli_modInv_update))
  [Stack]

  - Max Depth = 128
  - Call Chain = vli_modInv_update ⇒ uECC_vli_add
  [Calls]
  - >> uECC_vli_rshift1
  - >> uECC_vli_add
  [Called By]
  - >> uECC_vli_modInv

  x_side_default (Thumb, 92 bytes, Stack size 288 bytes, micro_ecc_lib_uECC.c.o(.text.x_side_default))
  [Stack]

  - Max Depth = 752
  - Call Chain = x_side_default ⇒ uECC_vli_modSquare_fast ⇒ uECC_vli_square
  [Calls]
  - >> memset
  - >> uECC_vli_modSquare_fast
  - >> uECC_vli_modMult_fast
  - >> uECC_vli_modSub
  - >> uECC_vli_modAdd
  [Address Reference Count : 1]
  - micro_ecc_lib_uECC.c.o(.rodata.curve_secp256r1)

  double_jacobian_default (Thumb, 344 bytes, Stack size 448 bytes, micro_ecc_lib_uECC.c.o(.text.double_jacobian_default))
  [Stack]

  - Max Depth = 912
  - Call Chain = double_jacobian_default ⇒ uECC_vli_modSquare_fast ⇒ uECC_vli_square
  [Calls]
  - >> uECC_vli_modSquare_fast
  - >> uECC_vli_modMult_fast
  - >> uECC_vli_modSub
  - >> uECC_vli_modAdd
  - >> uECC_vli_rshift1
  - >> uECC_vli_set
  - >> uECC_vli_isZero
  - >> uECC_vli_add
  [Address Reference Count : 1]
  - micro_ecc_lib_uECC.c.o(.rodata.curve_secp256r1)

  XYcZ_add (Thumb, 200 bytes, Stack size 288 bytes, micro_ecc_lib_uECC.c.o(.text.XYcZ_add))
  [Stack]

  - Max Depth = 752
  - Call Chain = XYcZ_add ⇒ uECC_vli_modSquare_fast ⇒ uECC_vli_square
  [Calls]
  - >> uECC_vli_modSquare_fast
  - >> uECC_vli_modMult_fast
  - >> uECC_vli_modSub
  - >> uECC_vli_set
  [Called By]
  - >> uECC_verify

  apply_z (Thumb, 62 bytes, Stack size 224 bytes, micro_ecc_lib_uECC.c.o(.text.apply_z))
  [Stack]

  - Max Depth = 688
  - Call Chain = apply_z ⇒ uECC_vli_modSquare_fast ⇒ uECC_vli_square
  [Calls]
  - >> uECC_vli_modSquare_fast
  - >> uECC_vli_modMult_fast
  [Called By]
  - >> uECC_verify

  _printf_core (Thumb, 1020 bytes, Stack size 104 bytes, printf8.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  - >> _printf_pre_padding
  - >> _printf_post_padding
  [Called By]
  - >> __0snprintf$8

  _printf_post_padding (Thumb, 32 bytes, Stack size 24 bytes, printf8.o(i._printf_post_padding), UNUSED)
  [Called By]

  - >> _printf_core

  _printf_pre_padding (Thumb, 44 bytes, Stack size 40 bytes, printf8.o(i._printf_pre_padding), UNUSED)
  [Called By]

  - >> _printf_core

  _snputc (Thumb, 22 bytes, Stack size 0 bytes, printf8.o(i._snputc))
  [Address Reference Count : 1]

  - printf8.o(i.__0snprintf$8)

  ### Undefined Global Symbols