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

#<CALLGRAPH># ARM Linker, 5060183: Last Updated: Thu Mar 31 15:41:15 2022

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

### Call chain for Maximum Stack Depth:

on_data_obj_execute_request_sched ⇒ nrf_dfu_validation_activation_prepare ⇒ postvalidate ⇒ postvalidate_sd_bl ⇒ boot_validation_extract ⇒ nrf_dfu_validation_boot_validate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- MemoryManagement_Handler ⇒ MemoryManagement_Handler
- BusFault_Handler ⇒ BusFault_Handler
- UsageFault_Handler ⇒ UsageFault_Handler
- SVC_Handler ⇒ SVC_Handler
- DebugMon_Handler ⇒ DebugMon_Handler
- PendSV_Handler ⇒ PendSV_Handler
- SysTick_Handler ⇒ SysTick_Handler
- CCM_AAR_IRQHandler ⇒ CCM_AAR_IRQHandler
- pb_read ⇒ pb_read
- pb_field_set_to_default ⇒ pb_message_set_to_defaults

  ### Function Pointers

  - BusFault_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - CCM_AAR_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - COMP_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - DebugMon_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - ECB_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - GPIOTE_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - HardFault_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - MemoryManagement_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - NMI_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - POWER_CLOCK_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - PendSV_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - QDEC_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - RADIO_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - RNG_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - RTC0_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - RTC1_IRQHandler from nrf_bootloader_dfu_timers.o(i.RTC1_IRQHandler) referenced from arm_startup_nrf52820.o(RESET)
  - Reset_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SVC_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SWI0_EGU0_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SWI1_EGU1_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SWI2_EGU2_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SWI3_EGU3_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SWI4_EGU4_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SWI5_EGU5_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SysTick_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - SystemInit from system_nrf52.o(i.SystemInit) referenced from arm_startup_nrf52820.o(.text)
  - TEMP_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - TIMER0_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - TIMER1_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - TIMER2_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - TIMER3_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - UARTE0_UART0_IRQHandler from nrfx_uarte.o(i.UARTE0_UART0_IRQHandler) referenced from nrfx_uarte.o(.constdata)
  - UARTE0_UART0_IRQHandler from nrfx_uarte.o(i.UARTE0_UART0_IRQHandler) referenced from arm_startup_nrf52820.o(RESET)
  - USBD_IRQHandler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - UsageFault_Handler from arm_startup_nrf52820.o(.text) referenced from arm_startup_nrf52820.o(RESET)
  - WDT_IRQHandler from nrf_bootloader_wdt.o(i.WDT_IRQHandler) referenced from arm_startup_nrf52820.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from arm_startup_nrf52820.o(.text)
  - 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)
  - dfu_fstorage_evt_handler from nrf_dfu_flash.o(i.dfu_fstorage_evt_handler) referenced from nrf_dfu_flash.o(fs_data)
  - dfu_observer from main.o(i.dfu_observer) referenced from main.o(i.main)
  - dfu_observer from nrf_bootloader.o(i.dfu_observer) referenced from nrf_bootloader.o(i.nrf_bootloader_init)
  - dfu_observer from nrf_dfu.o(i.dfu_observer) referenced from nrf_dfu.o(i.nrf_dfu_init)
  - dfu_req_handler_rsp_clbk from nrf_dfu_serial.o(i.dfu_req_handler_rsp_clbk) referenced from nrf_dfu_serial.o(.constdata)
  - do_reset from nrf_bootloader.o(i.do_reset) referenced from nrf_bootloader.o(i.bootloader_reset)
  - double_jacobian_default from uECC.c.o(.text.double_jacobian_default) referenced from uECC.c.o(.rodata.curve_secp256r1)
  - erase from nrf_fstorage_nvmc.o(i.erase) referenced from nrf_fstorage_nvmc.o(.constdata)
  - flash_write_callback from nrf_bootloader_fw_activation.o(i.flash_write_callback) referenced from nrf_bootloader_fw_activation.o(i.nrf_bootloader_fw_activate)
  - flash_write_callback from nrf_bootloader.o(i.flash_write_callback) referenced from nrf_bootloader.o(i.nrf_bootloader_init)
  - inactivity_timeout from nrf_bootloader.o(i.inactivity_timeout) referenced from nrf_bootloader.o(i.dfu_observer)
  - inactivity_timeout from nrf_bootloader.o(i.inactivity_timeout) referenced from nrf_bootloader.o(i.nrf_bootloader_init)
  - init from nrf_fstorage_nvmc.o(i.init) referenced from nrf_fstorage_nvmc.o(.constdata)
  - is_busy from nrf_fstorage_nvmc.o(i.is_busy) referenced from nrf_fstorage_nvmc.o(.constdata)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - nrf_dfu_req_handler_req from nrf_dfu_req_handler.o(i.nrf_dfu_req_handler_req) referenced from nrf_dfu_req_handler.o(i.nrf_dfu_req_handler_on_req)
  - nrf_sw_backend_hash_sha256_finalize from nrf_sw_backend_hash.o(i.nrf_sw_backend_hash_sha256_finalize) referenced from nrf_sw_backend_hash.o(.constdata)
  - nrf_sw_backend_hash_sha256_init from nrf_sw_backend_hash.o(i.nrf_sw_backend_hash_sha256_init) referenced from nrf_sw_backend_hash.o(.constdata)
  - nrf_sw_backend_hash_sha256_update from nrf_sw_backend_hash.o(i.nrf_sw_backend_hash_sha256_update) referenced from nrf_sw_backend_hash.o(.constdata)
  - on_data_obj_execute_request_sched from nrf_dfu_req_handler.o(i.on_data_obj_execute_request_sched) referenced from nrf_dfu_req_handler.o(i.on_data_obj_execute_request_sched)
  - on_dfu_complete from nrf_dfu_req_handler.o(i.on_dfu_complete) referenced from nrf_dfu_req_handler.o(i.on_data_obj_execute_request_sched)
  - payload_free from nrf_dfu_serial_uart.o(i.payload_free) referenced from nrf_dfu_serial_uart.o(i.uart_dfu_transport_init)
  - 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 nrf_dfu_validation.o(i.pb_decoding_callback) referenced from nrf_dfu_validation.o(i.stored_init_cmd_decode)
  - read from nrf_fstorage_nvmc.o(i.read) referenced from nrf_fstorage_nvmc.o(.constdata)
  - rmap from nrf_fstorage_nvmc.o(i.rmap) referenced from nrf_fstorage_nvmc.o(.constdata)
  - rsp_send from nrf_dfu_serial_uart.o(i.rsp_send) referenced from nrf_dfu_serial_uart.o(i.uart_dfu_transport_init)
  - uECC_secp256r1 from uECC.c.o(.text.uECC_secp256r1) referenced from micro_ecc_backend_ecc.o(.constdata)
  - uart_dfu_transport_close from nrf_dfu_serial_uart.o(i.uart_dfu_transport_close) referenced from nrf_dfu_serial_uart.o(dfu_trans)
  - uart_dfu_transport_init from nrf_dfu_serial_uart.o(i.uart_dfu_transport_init) referenced from nrf_dfu_serial_uart.o(dfu_trans)
  - uart_event_handler from nrf_dfu_serial_uart.o(i.uart_event_handler) referenced from nrf_dfu_serial_uart.o(i.uart_dfu_transport_init)
  - uarte_evt_handler from nrf_drv_uart.o(i.uarte_evt_handler) referenced from nrf_drv_uart.o(i.nrf_drv_uart_init)
  - uninit from nrf_fstorage_nvmc.o(i.uninit) referenced from nrf_fstorage_nvmc.o(.constdata)
  - vli_mmod_fast_secp256r1 from uECC.c.o(.text.vli_mmod_fast_secp256r1) referenced from uECC.c.o(.rodata.curve_secp256r1)
  - wdt_feed_timer_handler from nrf_bootloader_wdt.o(i.wdt_feed_timer_handler) referenced from nrf_bootloader_wdt.o(i.nrf_bootloader_wdt_init)
  - wmap from nrf_fstorage_nvmc.o(i.wmap) referenced from nrf_fstorage_nvmc.o(.constdata)
  - write from nrf_fstorage_nvmc.o(i.write) referenced from nrf_fstorage_nvmc.o(.constdata)
  - x_side_default from uECC.c.o(.text.x_side_default) referenced from 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_nrf52820.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___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_mov (Thumb, 24 bytes, Stack size 0 bytes, nrf_atomic.o(.emb_text), UNUSED)

  __asm___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_orr (Thumb, 26 bytes, Stack size 0 bytes, nrf_atomic.o(.emb_text))
  [Called By]

  - >> nrf_atomic_u32_fetch_or

  __asm___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_and (Thumb, 26 bytes, Stack size 0 bytes, nrf_atomic.o(.emb_text))
  [Called By]

  - >> nrf_atomic_u32_and

  __asm___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_eor (Thumb, 26 bytes, Stack size 0 bytes, nrf_atomic.o(.emb_text), UNUSED)

  __asm___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_add (Thumb, 26 bytes, Stack size 0 bytes, nrf_atomic.o(.emb_text), UNUSED)

  __asm___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_sub (Thumb, 26 bytes, Stack size 0 bytes, nrf_atomic.o(.emb_text), UNUSED)

  __asm___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_cmp_exch (Thumb, 42 bytes, Stack size 0 bytes, nrf_atomic.o(.emb_text), UNUSED)

  __asm___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_sub_hs (Thumb, 30 bytes, Stack size 0 bytes, nrf_atomic.o(.emb_text), UNUSED)

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

  - arm_startup_nrf52820.o(RESET)

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

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

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

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

  MemoryManagement_Handler (Thumb, 2 bytes, Stack size 0 bytes, arm_startup_nrf52820.o(.text))
  [Calls]

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

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

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

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

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

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

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

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

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

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

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

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

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

  CCM_AAR_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, arm_startup_nrf52820.o(.text))
  [Calls]

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

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - arm_startup_nrf52820.o(RESET)

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

  - >> pb_decode_varint

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

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

  - >> nrf_dfu_settings_reinit
  - >> settings_write
  - >> nrf_dfu_validation_init_cmd_append
  - >> app_sched_event_put
  - >> postvalidate
  - >> postvalidate_sd_bl
  - >> nrf_dfu_validation_signature_check
  - >> boot_validation_extract
  - >> read
  - >> pb_field_set_to_default

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

  - >> nrf_drv_uart_init
  - >> nrf_dfu_serial_on_packet_received
  - >> uart_dfu_transport_init
  - >> on_data_obj_execute_request_sched
  - >> nrf_dfu_req_handler_req_process
  - >> postvalidate_sd_bl

  __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_settings_progress_reset
  - >> 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]
  - >> boot_validation_extract
  - >> pb_field_set_to_default
  - >> decode_static_field

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

  - >> nrf_dfu_settings_reinit
  - >> sha256_final
  - >> nrf_dfu_settings_progress_reset
  - >> stored_init_cmd_decode
  - >> postvalidate_sd_bl
  - >> nrf_dfu_validation_signature_check
  - >> nrf_dfu_validation_hash_ok
  - >> boot_validation_extract
  - >> event_send

  __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

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

  - Max Depth = 12
  - Call Chain = memcmp
  [Called By]
  - >> bl_activate
  - >> settings_write
  - >> nrf_dfu_validation_hash_ok

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

  uECC_secp256r1 (Thumb, 8 bytes, Stack size 0 bytes, uECC.c.o(.text.uECC_secp256r1))
  [Address Reference Count : 1]

  - micro_ecc_backend_ecc.o(.constdata)

  uECC_verify (Thumb, 764 bytes, Stack size 1920 bytes, uECC.c.o(.text.uECC_verify))
  [Stack]

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

  RTC1_IRQHandler (Thumb, 106 bytes, Stack size 24 bytes, nrf_bootloader_dfu_timers.o(i.RTC1_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = RTC1_IRQHandler ⇒ timer_activate ⇒ nrf_rtc_event_clear
  [Calls]
  - >> timer_stop
  - >> timer_activate
  - >> nrf_rtc_event_clear
  [Address Reference Count : 1]
  - arm_startup_nrf52820.o(RESET)

  SystemInit (Thumb, 338 bytes, Stack size 4 bytes, system_nrf52.o(i.SystemInit))
  [Stack]

  - Max Depth = 4
  - Call Chain = SystemInit
  [Calls]
  - >> nvmc_config
  [Address Reference Count : 1]
  - arm_startup_nrf52820.o(.text)

  UARTE0_UART0_IRQHandler (Thumb, 8 bytes, Stack size 0 bytes, nrfx_uarte.o(i.UARTE0_UART0_IRQHandler))
  [Stack]

  - Max Depth = 64
  - Call Chain = UARTE0_UART0_IRQHandler ⇒ uarte_irq_handler ⇒ tx_done_event
  [Calls]
  - >> uarte_irq_handler
  [Address Reference Count : 2]
  - nrfx_uarte.o(.constdata)
  - arm_startup_nrf52820.o(RESET)

  WDT_IRQHandler (Thumb, 14 bytes, Stack size 8 bytes, nrf_bootloader_wdt.o(i.WDT_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = WDT_IRQHandler
  [Address Reference Count : 1]
  - arm_startup_nrf52820.o(RESET)

  __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_handler_bare (Thumb, 4 bytes, Stack size 0 bytes, main.o(i.app_error_handler_bare))
  [Calls]

  - >> on_error
  [Called By]
  - >> nrf_bootloader_app_start_final
  - >> nrf_bootloader_init
  - >> uart_event_handler

  app_sched_event_put (Thumb, 150 bytes, Stack size 32 bytes, app_scheduler.o(i.app_sched_event_put))
  [Stack]

  - Max Depth = 32
  - Call Chain = app_sched_event_put
  [Calls]
  - >> app_util_critical_region_exit
  - >> app_util_critical_region_enter
  - >> __aeabi_memcpy
  [Called By]
  - >> nrf_dfu_req_handler_on_req
  - >> on_data_obj_execute_request_sched

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

  - Max Depth = 8
  - Call Chain = app_sched_execute
  [Called By]
  - >> nrf_bootloader_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_bootloader_init

  app_util_critical_region_enter (Thumb, 4 bytes, Stack size 0 bytes, app_util_platform.o(i.app_util_critical_region_enter))
  [Calls]

  - >> app_util_disable_irq
  [Called By]
  - >> nrf_balloc_free
  - >> nrf_balloc_alloc
  - >> app_sched_event_put

  app_util_critical_region_exit (Thumb, 4 bytes, Stack size 0 bytes, app_util_platform.o(i.app_util_critical_region_exit))
  [Calls]

  - >> app_util_enable_irq
  [Called By]
  - >> nrf_balloc_free
  - >> nrf_balloc_alloc
  - >> app_sched_event_put

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

  - >> app_util_critical_region_enter

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

  - >> app_util_critical_region_exit

  bsp_board_init (Thumb, 80 bytes, Stack size 32 bytes, boards.o(i.bsp_board_init))
  [Stack]

  - Max Depth = 48
  - Call Chain = bsp_board_init ⇒ nrf_gpio_cfg
  [Calls]
  - >> bsp_board_leds_off
  - >> nrf_gpio_cfg
  [Called By]
  - >> dfu_observer

  bsp_board_led_off (Thumb, 10 bytes, Stack size 0 bytes, boards.o(i.bsp_board_led_off))
  [Calls]

  - >> nrf_gpio_pin_write
  [Called By]
  - >> bsp_board_leds_off
  - >> dfu_observer

  bsp_board_led_on (Thumb, 10 bytes, Stack size 0 bytes, boards.o(i.bsp_board_led_on))
  [Calls]

  - >> nrf_gpio_pin_write
  [Called By]
  - >> dfu_observer

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

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

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

  - Max Depth = 20
  - Call Chain = crc32_compute
  [Called By]
  - >> app_activate
  - >> nrf_dfu_validation_boot_validate
  - >> settings_crc_get
  - >> boot_validation_crc
  - >> nrf_dfu_validation_init_cmd_append
  - >> on_data_obj_write_request
  - >> postvalidate
  - >> boot_validation_extract

  dfu_fstorage_evt_handler (Thumb, 12 bytes, Stack size 0 bytes, nrf_dfu_flash.o(i.dfu_fstorage_evt_handler))
  [Address Reference Count : 1]

  - nrf_dfu_flash.o(fs_data)

  dfu_req_handler_rsp_clbk (Thumb, 42 bytes, Stack size 0 bytes, nrf_dfu_serial.o(i.dfu_req_handler_rsp_clbk))
  [Stack]

  - Max Depth = 24
  - Call Chain = dfu_req_handler_rsp_clbk ⇒ response_send
  [Calls]
  - >> response_send
  [Address Reference Count : 1]
  - nrf_dfu_serial.o(.constdata)

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

  - >> response_send

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

  - >> ext_err_code_handle
  - >> nrf_dfu_req_handler_init
  - >> response_send

  fw_hash_ok (Thumb, 8 bytes, Stack size 0 bytes, nrf_dfu_validation.o(i.fw_hash_ok))
  [Stack]

  - Max Depth = 304
  - Call Chain = fw_hash_ok ⇒ nrf_dfu_validation_hash_ok ⇒ crypto_init ⇒ nrf_crypto_ecc_public_key_from_raw ⇒ nrf_crypto_backend_micro_ecc_public_key_from_raw ⇒ nrf_crypto_internal_double_swap_endian
  [Calls]
  - >> nrf_dfu_validation_hash_ok
  [Called By]
  - >> postvalidate

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

  - >> nrf_bootloader_init

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

  - Max Depth = 3448
  - Call Chain = main ⇒ nrf_bootloader_init ⇒ nrf_dfu_init ⇒ nrf_dfu_req_handler_init ⇒ nrf_dfu_validation_init_cmd_execute ⇒ nrf_dfu_validation_prevalidate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_bootloader_mbr_addrs_populate
  - >> nrf_bootloader_init
  - >> nrf_bootloader_flash_protect
  - >> on_error
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  nrf_atomic_flag_clear (Thumb, 6 bytes, Stack size 0 bytes, nrf_atomic.o(i.nrf_atomic_flag_clear))
  [Stack]

  - Max Depth = 8
  - Call Chain = nrf_atomic_flag_clear ⇒ nrf_atomic_u32_and
  [Calls]
  - >> nrf_atomic_u32_and
  [Called By]
  - >> write
  - >> uninit
  - >> erase

  nrf_atomic_flag_set_fetch (Thumb, 6 bytes, Stack size 0 bytes, nrf_atomic.o(i.nrf_atomic_flag_set_fetch))
  [Stack]

  - Max Depth = 8
  - Call Chain = nrf_atomic_flag_set_fetch ⇒ nrf_atomic_u32_fetch_or
  [Calls]
  - >> nrf_atomic_u32_fetch_or
  [Called By]
  - >> write
  - >> erase

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

  - Max Depth = 8
  - Call Chain = nrf_atomic_u32_and
  [Calls]
  - >> __asm___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_and
  [Called By]
  - >> nrf_atomic_flag_clear

  nrf_atomic_u32_fetch_or (Thumb, 10 bytes, Stack size 8 bytes, nrf_atomic.o(i.nrf_atomic_u32_fetch_or))
  [Stack]

  - Max Depth = 8
  - Call Chain = nrf_atomic_u32_fetch_or
  [Calls]
  - >> __asm___12_nrf_atomic_c_85ca2469__nrf_atomic_internal_orr
  [Called By]
  - >> nrf_atomic_flag_set_fetch

  nrf_balloc_alloc (Thumb, 62 bytes, Stack size 16 bytes, nrf_balloc.o(i.nrf_balloc_alloc))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_balloc_alloc
  [Calls]
  - >> app_util_critical_region_exit
  - >> app_util_critical_region_enter
  [Called By]
  - >> uart_event_handler
  - >> uart_dfu_transport_init

  nrf_balloc_free (Thumb, 42 bytes, Stack size 16 bytes, nrf_balloc.o(i.nrf_balloc_free))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_balloc_free
  [Calls]
  - >> app_util_critical_region_exit
  - >> app_util_critical_region_enter
  [Called By]
  - >> payload_free

  nrf_balloc_init (Thumb, 48 bytes, Stack size 8 bytes, nrf_balloc.o(i.nrf_balloc_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = nrf_balloc_init
  [Called By]
  - >> uart_dfu_transport_init

  nrf_bootloader_app_start (Thumb, 36 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_dfu_mbr_irq_forward_address_set
  [Calls]
  - >> nrf_dfu_mbr_irq_forward_address_set
  - >> nrf_bootloader_app_start_final
  [Called By]
  - >> nrf_bootloader_init

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

  - Max Depth = 20
  - Call Chain = nrf_bootloader_app_start_final ⇒ nrf_bootloader_flash_protect
  [Calls]
  - >> nrf_dfu_bank0_start_addr
  - >> nrf_bootloader_flash_protect
  - >> app_error_handler_bare
  [Called By]
  - >> nrf_bootloader_app_start

  nrf_bootloader_dfu_inactivity_timer_restart (Thumb, 34 bytes, Stack size 16 bytes, nrf_bootloader_dfu_timers.o(i.nrf_bootloader_dfu_inactivity_timer_restart))
  [Stack]

  - Max Depth = 56
  - Call Chain = nrf_bootloader_dfu_inactivity_timer_restart ⇒ timer_start ⇒ timer_init ⇒ nrf_rtc_event_clear
  [Calls]
  - >> timer_stop
  - >> timer_start
  [Called By]
  - >> dfu_observer
  - >> nrf_bootloader_init

  nrf_bootloader_flash_protect (Thumb, 56 bytes, Stack size 12 bytes, nrf_bootloader_app_start_final.o(i.nrf_bootloader_flash_protect))
  [Stack]

  - Max Depth = 12
  - Call Chain = nrf_bootloader_flash_protect
  [Called By]
  - >> nrf_bootloader_app_start_final
  - >> main

  nrf_bootloader_fw_activate (Thumb, 102 bytes, Stack size 16 bytes, nrf_bootloader_fw_activation.o(i.nrf_bootloader_fw_activate))
  [Stack]

  - Max Depth = 160
  - Call Chain = nrf_bootloader_fw_activate ⇒ sd_activate ⇒ image_copy ⇒ nrf_dfu_settings_write_and_backup ⇒ nrf_dfu_settings_write ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_dfu_settings_write_and_backup
  - >> nrf_dfu_bank_invalidate
  - >> sd_activate
  - >> bl_activate
  - >> app_activate
  [Called By]
  - >> nrf_bootloader_init

  nrf_bootloader_init (Thumb, 188 bytes, Stack size 16 bytes, nrf_bootloader.o(i.nrf_bootloader_init))
  [Stack]

  - Max Depth = 3448
  - Call Chain = nrf_bootloader_init ⇒ nrf_dfu_init ⇒ nrf_dfu_req_handler_init ⇒ nrf_dfu_validation_init_cmd_execute ⇒ nrf_dfu_validation_prevalidate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_init_user
  - >> nrf_dfu_settings_init
  - >> nrf_dfu_settings_backup
  - >> nrf_dfu_settings_additional_erase
  - >> nrf_bootloader_wdt_init
  - >> nrf_bootloader_wdt_feed
  - >> nrf_bootloader_fw_activate
  - >> nrf_bootloader_dfu_inactivity_timer_restart
  - >> nrf_bootloader_app_start
  - >> app_sched_init
  - >> app_sched_execute
  - >> dfu_enter_check
  - >> bootloader_reset
  - >> led_test
  - >> app_error_handler_bare
  - >> nrf_dfu_init
  [Called By]
  - >> main

  nrf_bootloader_mbr_addrs_populate (Thumb, 42 bytes, Stack size 8 bytes, nrf_bootloader_info.o(i.nrf_bootloader_mbr_addrs_populate))
  [Stack]

  - Max Depth = 8
  - Call Chain = nrf_bootloader_mbr_addrs_populate
  [Calls]
  - >> nrf_nvmc_write_word
  [Called By]
  - >> main

  nrf_bootloader_wdt_feed (Thumb, 20 bytes, Stack size 8 bytes, nrf_bootloader_wdt.o(i.nrf_bootloader_wdt_feed))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_bootloader_wdt_feed ⇒ wdt_feed
  [Calls]
  - >> wdt_feed
  - >> nrf_wdt_started
  [Called By]
  - >> bl_activate
  - >> nrf_bootloader_init

  nrf_bootloader_wdt_feed_timer_start (Thumb, 16 bytes, Stack size 0 bytes, nrf_bootloader_dfu_timers.o(i.nrf_bootloader_wdt_feed_timer_start))
  [Stack]

  - Max Depth = 40
  - Call Chain = nrf_bootloader_wdt_feed_timer_start ⇒ timer_start ⇒ timer_init ⇒ nrf_rtc_event_clear
  [Calls]
  - >> timer_start
  [Called By]
  - >> nrf_bootloader_wdt_init

  nrf_bootloader_wdt_init (Thumb, 60 bytes, Stack size 16 bytes, nrf_bootloader_wdt.o(i.nrf_bootloader_wdt_init))
  [Stack]

  - Max Depth = 56
  - Call Chain = nrf_bootloader_wdt_init ⇒ nrf_bootloader_wdt_feed_timer_start ⇒ timer_start ⇒ timer_init ⇒ nrf_rtc_event_clear
  [Calls]
  - >> nrf_bootloader_wdt_feed_timer_start
  - >> wdt_feed
  - >> nrf_wdt_started
  [Called By]
  - >> image_copy
  - >> nrf_bootloader_init

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

  - >> nrf_crypto_backend_micro_ecc_verify

  nrf_crypto_backend_micro_ecc_public_key_from_raw (Thumb, 16 bytes, Stack size 8 bytes, micro_ecc_backend_ecc.o(i.nrf_crypto_backend_micro_ecc_public_key_from_raw))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_crypto_backend_micro_ecc_public_key_from_raw ⇒ nrf_crypto_internal_double_swap_endian
  [Calls]
  - >> nrf_crypto_internal_double_swap_endian
  [Called By]
  - >> nrf_crypto_ecc_public_key_from_raw

  nrf_crypto_backend_micro_ecc_verify (Thumb, 86 bytes, Stack size 128 bytes, micro_ecc_backend_ecdsa.o(i.nrf_crypto_backend_micro_ecc_verify))
  [Stack]

  - Max Depth = 3184
  - Call Chain = nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_crypto_backend_micro_ecc_curve_get
  - >> nrf_crypto_internal_swap_endian
  - >> nrf_crypto_internal_double_swap_endian
  - >> uECC_verify
  [Called By]
  - >> nrf_crypto_ecdsa_verify

  nrf_crypto_ecc_public_key_from_raw (Thumb, 48 bytes, Stack size 16 bytes, nrf_crypto_ecc.o(i.nrf_crypto_ecc_public_key_from_raw))
  [Stack]

  - Max Depth = 40
  - Call Chain = nrf_crypto_ecc_public_key_from_raw ⇒ nrf_crypto_backend_micro_ecc_public_key_from_raw ⇒ nrf_crypto_internal_double_swap_endian
  [Calls]
  - >> nrf_crypto_backend_micro_ecc_public_key_from_raw
  - >> nrf_crypto_internal_ecc_raw_input_check
  - >> nrf_crypto_internal_ecc_key_output_prepare
  [Called By]
  - >> crypto_init

  nrf_crypto_ecdsa_verify (Thumb, 72 bytes, Stack size 32 bytes, nrf_crypto_ecdsa.o(i.nrf_crypto_ecdsa_verify))
  [Stack]

  - Max Depth = 3216
  - Call Chain = nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_crypto_backend_micro_ecc_verify
  - >> nrf_crypto_internal_ecc_raw_input_check
  - >> nrf_crypto_internal_ecc_key_input_check
  [Called By]
  - >> nrf_dfu_validation_signature_check

  nrf_crypto_hash_calculate (Thumb, 54 bytes, Stack size 24 bytes, nrf_crypto_hash.o(i.nrf_crypto_hash_calculate))
  [Stack]

  - Max Depth = 40
  - Call Chain = nrf_crypto_hash_calculate ⇒ nrf_crypto_hash_update
  [Calls]
  - >> nrf_crypto_hash_update
  - >> nrf_crypto_hash_init
  - >> nrf_crypto_hash_finalize
  [Called By]
  - >> nrf_dfu_validation_signature_check
  - >> nrf_dfu_validation_hash_ok
  - >> boot_validation_extract

  nrf_crypto_hash_finalize (Thumb, 54 bytes, Stack size 16 bytes, nrf_crypto_hash.o(i.nrf_crypto_hash_finalize))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_crypto_hash_finalize
  [Calls]
  - >> verify_context
  [Called By]
  - >> nrf_crypto_hash_calculate

  nrf_crypto_hash_init (Thumb, 38 bytes, Stack size 8 bytes, nrf_crypto_hash.o(i.nrf_crypto_hash_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = nrf_crypto_hash_init
  [Called By]
  - >> nrf_crypto_hash_calculate

  nrf_crypto_hash_update (Thumb, 46 bytes, Stack size 16 bytes, nrf_crypto_hash.o(i.nrf_crypto_hash_update))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_crypto_hash_update
  [Calls]
  - >> verify_context
  [Called By]
  - >> nrf_crypto_hash_calculate

  nrf_crypto_init (Thumb, 50 bytes, Stack size 24 bytes, nrf_crypto_init.o(i.nrf_crypto_init))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_crypto_init
  [Called By]
  - >> crypto_init

  nrf_crypto_internal_double_swap_endian (Thumb, 26 bytes, Stack size 16 bytes, nrf_crypto_shared.o(i.nrf_crypto_internal_double_swap_endian))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_crypto_internal_double_swap_endian
  [Calls]
  - >> nrf_crypto_internal_swap_endian
  [Called By]
  - >> nrf_crypto_backend_micro_ecc_verify
  - >> nrf_crypto_backend_micro_ecc_public_key_from_raw
  - >> crypto_init

  nrf_crypto_internal_double_swap_endian_in_place (Thumb, 22 bytes, Stack size 12 bytes, nrf_crypto_shared.o(i.nrf_crypto_internal_double_swap_endian_in_place))
  [Stack]

  - Max Depth = 12
  - Call Chain = nrf_crypto_internal_double_swap_endian_in_place
  [Calls]
  - >> nrf_crypto_internal_swap_endian_in_place
  [Called By]
  - >> nrf_dfu_validation_signature_check

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

  - >> nrf_crypto_ecdsa_verify

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

  - >> nrf_crypto_ecc_public_key_from_raw

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

  - >> nrf_crypto_ecdsa_verify
  - >> nrf_crypto_ecc_public_key_from_raw

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

  - >> nrf_crypto_internal_double_swap_endian
  - >> nrf_crypto_backend_micro_ecc_verify
  - >> nrf_dfu_validation_hash_ok

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

  - >> nrf_crypto_internal_double_swap_endian_in_place

  nrf_dfu_app_start_address (Thumb, 4 bytes, Stack size 0 bytes, nrf_dfu_utils.o(i.nrf_dfu_app_start_address), UNUSED)
  [Calls]

  - >> nrf_dfu_bank0_start_addr
  [Called By]
  - >> on_fw_version_request

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

  - >> nrf_dfu_bank1_start_addr
  - >> app_activate
  - >> nrf_bootloader_app_start_final
  - >> dfu_enter_check
  - >> nrf_dfu_app_start_address
  - >> nrf_dfu_cache_prepare

  nrf_dfu_bank1_start_addr (Thumb, 28 bytes, Stack size 4 bytes, nrf_dfu_utils.o(i.nrf_dfu_bank1_start_addr))
  [Stack]

  - Max Depth = 4
  - Call Chain = nrf_dfu_bank1_start_addr
  [Calls]
  - >> nrf_dfu_bank0_start_addr
  [Called By]
  - >> bl_activate
  - >> nrf_dfu_validation_init_cmd_execute
  - >> nrf_dfu_cache_prepare

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

  - >> nrf_bootloader_fw_activate
  - >> postvalidate
  - >> postvalidate_sd_bl
  - >> nrf_dfu_cache_prepare

  nrf_dfu_cache_prepare (Thumb, 150 bytes, Stack size 24 bytes, nrf_dfu_utils.o(i.nrf_dfu_cache_prepare))
  [Stack]

  - Max Depth = 72
  - Call Chain = nrf_dfu_cache_prepare ⇒ nrf_dfu_softdevice_invalidate ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_dfu_bank_invalidate
  - >> nrf_dfu_bank1_start_addr
  - >> nrf_dfu_bank0_start_addr
  - >> nrf_dfu_softdevice_invalidate
  [Called By]
  - >> nrf_dfu_validation_init_cmd_execute

  nrf_dfu_flash_erase (Thumb, 12 bytes, Stack size 0 bytes, nrf_dfu_flash.o(i.nrf_dfu_flash_erase))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_dfu_flash_erase ⇒ nrf_fstorage_erase
  [Calls]
  - >> nrf_fstorage_erase
  [Called By]
  - >> image_copy
  - >> settings_write
  - >> on_data_obj_create_request

  nrf_dfu_flash_init (Thumb, 10 bytes, Stack size 0 bytes, nrf_dfu_flash.o(i.nrf_dfu_flash_init))
  [Calls]

  - >> nrf_fstorage_init
  [Called By]
  - >> nrf_dfu_settings_init
  - >> nrf_dfu_req_handler_init

  nrf_dfu_flash_store (Thumb, 18 bytes, Stack size 8 bytes, nrf_dfu_flash.o(i.nrf_dfu_flash_store))
  [Stack]

  - Max Depth = 40
  - Call Chain = nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_fstorage_write
  [Called By]
  - >> image_copy
  - >> settings_write
  - >> on_data_obj_write_request
  - >> nrf_dfu_softdevice_invalidate

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

  - Max Depth = 3432
  - Call Chain = nrf_dfu_init ⇒ nrf_dfu_req_handler_init ⇒ nrf_dfu_validation_init_cmd_execute ⇒ nrf_dfu_validation_prevalidate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_transports_init
  - >> nrf_dfu_req_handler_init
  - >> dfu_observer
  [Called By]
  - >> nrf_bootloader_init

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

  - >> nrf_bootloader_init

  nrf_dfu_mbr_copy_bl (Thumb, 22 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]
  - >> bl_activate

  nrf_dfu_mbr_irq_forward_address_set (Thumb, 40 bytes, Stack size 24 bytes, nrf_dfu_mbr.o(i.nrf_dfu_mbr_irq_forward_address_set))
  [Stack]

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

  nrf_dfu_req_handler_init (Thumb, 62 bytes, Stack size 8 bytes, nrf_dfu_req_handler.o(i.nrf_dfu_req_handler_init))
  [Stack]

  - Max Depth = 3424
  - Call Chain = nrf_dfu_req_handler_init ⇒ nrf_dfu_validation_init_cmd_execute ⇒ nrf_dfu_validation_prevalidate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_validation_init_cmd_present
  - >> nrf_dfu_validation_init_cmd_execute
  - >> nrf_dfu_validation_init
  - >> ext_error_set
  - >> nrf_dfu_flash_init
  [Called By]
  - >> nrf_dfu_init

  nrf_dfu_req_handler_on_req (Thumb, 16 bytes, Stack size 0 bytes, nrf_dfu_req_handler.o(i.nrf_dfu_req_handler_on_req))
  [Stack]

  - Max Depth = 32
  - Call Chain = nrf_dfu_req_handler_on_req ⇒ app_sched_event_put
  [Calls]
  - >> app_sched_event_put
  [Called By]
  - >> nrf_dfu_serial_on_packet_received

  nrf_dfu_serial_on_packet_received (Thumb, 142 bytes, Stack size 48 bytes, nrf_dfu_serial.o(i.nrf_dfu_serial_on_packet_received))
  [Stack]

  - Max Depth = 80
  - Call Chain = nrf_dfu_serial_on_packet_received ⇒ nrf_dfu_req_handler_on_req ⇒ app_sched_event_put
  [Calls]
  - >> nrf_dfu_req_handler_on_req
  - >> nrf_dfu_transports_close
  - >> __aeabi_memcpy4
  [Called By]
  - >> uart_event_handler

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

  - >> nrf_bootloader_init

  nrf_dfu_settings_backup (Thumb, 6 bytes, Stack size 0 bytes, nrf_dfu_settings.o(i.nrf_dfu_settings_backup))
  [Stack]

  - Max Depth = 64
  - Call Chain = nrf_dfu_settings_backup ⇒ settings_backup ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> settings_backup
  [Called By]
  - >> bootloader_reset
  - >> nrf_bootloader_init

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

  - Max Depth = 104
  - Call Chain = nrf_dfu_settings_init ⇒ nrf_dfu_settings_write_and_backup ⇒ nrf_dfu_settings_write ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_dfu_settings_write_and_backup
  - >> nrf_dfu_settings_reinit
  - >> nrf_dfu_flash_init
  [Called By]
  - >> nrf_bootloader_init

  nrf_dfu_settings_progress_reset (Thumb, 34 bytes, Stack size 8 bytes, nrf_dfu_settings.o(i.nrf_dfu_settings_progress_reset))
  [Stack]

  - Max Depth = 8
  - Call Chain = nrf_dfu_settings_progress_reset
  [Calls]
  - >> __aeabi_memclr4
  - >> __aeabi_memset
  [Called By]
  - >> nrf_dfu_validation_init_cmd_execute
  - >> nrf_dfu_validation_init_cmd_create
  - >> postvalidate

  nrf_dfu_settings_reinit (Thumb, 190 bytes, Stack size 32 bytes, nrf_dfu_settings.o(i.nrf_dfu_settings_reinit))
  [Stack]

  - Max Depth = 60
  - Call Chain = nrf_dfu_settings_reinit ⇒ crc_ok ⇒ settings_crc_get ⇒ crc32_compute
  [Calls]
  - >> crc_ok
  - >> boot_validation_crc
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> nrf_dfu_settings_init
  - >> dfu_observer

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

  - Max Depth = 80
  - Call Chain = nrf_dfu_settings_write ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> settings_write
  - >> settings_crc_get
  - >> boot_validation_crc
  [Called By]
  - >> nrf_dfu_settings_write_and_backup

  nrf_dfu_settings_write_and_backup (Thumb, 26 bytes, Stack size 16 bytes, nrf_dfu_settings.o(i.nrf_dfu_settings_write_and_backup))
  [Stack]

  - Max Depth = 96
  - Call Chain = nrf_dfu_settings_write_and_backup ⇒ nrf_dfu_settings_write ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> settings_backup
  - >> nrf_dfu_settings_write
  [Called By]
  - >> sd_activate
  - >> image_copy
  - >> nrf_dfu_settings_init
  - >> nrf_bootloader_fw_activate
  - >> on_data_obj_execute_request_sched
  - >> nrf_dfu_command_req

  nrf_dfu_softdevice_invalidate (Thumb, 56 bytes, Stack size 8 bytes, nrf_dfu_utils.o(i.nrf_dfu_softdevice_invalidate))
  [Stack]

  - Max Depth = 48
  - Call Chain = nrf_dfu_softdevice_invalidate ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_dfu_flash_store
  [Called By]
  - >> postvalidate
  - >> nrf_dfu_cache_prepare

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

  - >> sd_activate
  - >> postvalidate

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

  - Max Depth = 24
  - Call Chain = nrf_dfu_transports_close
  [Called By]
  - >> nrf_dfu_serial_on_packet_received
  - >> dfu_observer

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

  - Max Depth = 24
  - Call Chain = nrf_dfu_transports_init
  [Called By]
  - >> nrf_dfu_init

  nrf_dfu_validation_activation_prepare (Thumb, 6 bytes, Stack size 0 bytes, nrf_dfu_validation.o(i.nrf_dfu_validation_activation_prepare))
  [Stack]

  - Max Depth = 3840
  - Call Chain = nrf_dfu_validation_activation_prepare ⇒ postvalidate ⇒ postvalidate_sd_bl ⇒ boot_validation_extract ⇒ nrf_dfu_validation_boot_validate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> postvalidate
  [Called By]
  - >> on_data_obj_execute_request_sched

  nrf_dfu_validation_boot_validate (Thumb, 82 bytes, Stack size 16 bytes, nrf_dfu_validation.o(i.nrf_dfu_validation_boot_validate))
  [Stack]

  - Max Depth = 3392
  - Call Chain = nrf_dfu_validation_boot_validate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> crc32_compute
  - >> nrf_dfu_validation_signature_check
  - >> nrf_dfu_validation_hash_ok
  [Called By]
  - >> boot_validate
  - >> boot_validation_extract

  nrf_dfu_validation_init (Thumb, 26 bytes, Stack size 8 bytes, nrf_dfu_validation.o(i.nrf_dfu_validation_init))
  [Stack]

  - Max Depth = 336
  - Call Chain = nrf_dfu_validation_init ⇒ stored_init_cmd_decode ⇒ 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]
  - >> stored_init_cmd_decode
  [Called By]
  - >> nrf_dfu_req_handler_init

  nrf_dfu_validation_init_cmd_append (Thumb, 66 bytes, Stack size 24 bytes, nrf_dfu_validation.o(i.nrf_dfu_validation_init_cmd_append), UNUSED)
  [Calls]

  - >> crc32_compute
  - >> __aeabi_memcpy
  [Called By]
  - >> nrf_dfu_command_req

  nrf_dfu_validation_init_cmd_create (Thumb, 42 bytes, Stack size 16 bytes, nrf_dfu_validation.o(i.nrf_dfu_validation_init_cmd_create), UNUSED)
  [Calls]

  - >> nrf_dfu_settings_progress_reset
  [Called By]
  - >> nrf_dfu_command_req

  nrf_dfu_validation_init_cmd_execute (Thumb, 132 bytes, Stack size 24 bytes, nrf_dfu_validation.o(i.nrf_dfu_validation_init_cmd_execute))
  [Stack]

  - Max Depth = 3416
  - Call Chain = nrf_dfu_validation_init_cmd_execute ⇒ nrf_dfu_validation_prevalidate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_bank1_start_addr
  - >> nrf_dfu_settings_progress_reset
  - >> nrf_dfu_validation_prevalidate
  - >> update_requires_softdevice
  - >> update_data_size_get
  - >> stored_init_cmd_decode
  - >> nrf_dfu_cache_prepare
  [Called By]
  - >> nrf_dfu_command_req
  - >> nrf_dfu_req_handler_init

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

  - >> on_data_obj_write_request
  - >> on_data_obj_create_request
  - >> nrf_dfu_req_handler_init

  nrf_dfu_validation_prevalidate (Thumb, 64 bytes, Stack size 16 bytes, nrf_dfu_validation.o(i.nrf_dfu_validation_prevalidate))
  [Stack]

  - Max Depth = 3392
  - Call Chain = nrf_dfu_validation_prevalidate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_ver_validation_check
  - >> nrf_dfu_validation_signature_check
  [Called By]
  - >> nrf_dfu_validation_init_cmd_execute

  nrf_dfu_ver_validation_check (Thumb, 122 bytes, Stack size 16 bytes, nrf_dfu_ver_validation.o(i.nrf_dfu_ver_validation_check))
  [Stack]

  - Max Depth = 36
  - Call Chain = nrf_dfu_ver_validation_check ⇒ sd_req_ok ⇒ sd_req_check
  [Calls]
  - >> sd_req_ok
  [Called By]
  - >> nrf_dfu_validation_prevalidate

  nrf_drv_uart_init (Thumb, 56 bytes, Stack size 48 bytes, nrf_drv_uart.o(i.nrf_drv_uart_init))
  [Stack]

  - Max Depth = 128
  - Call Chain = nrf_drv_uart_init ⇒ nrfx_uarte_init ⇒ apply_config ⇒ nrf_gpio_cfg_output ⇒ nrf_gpio_cfg
  [Calls]
  - >> nrfx_uarte_init
  - >> __aeabi_memcpy4
  [Called By]
  - >> uart_dfu_transport_init

  nrf_fstorage_erase (Thumb, 44 bytes, Stack size 24 bytes, nrf_fstorage.o(i.nrf_fstorage_erase))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_fstorage_erase
  [Calls]
  - >> addr_is_within_bounds
  [Called By]
  - >> nrf_dfu_flash_erase

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

  - >> nrf_dfu_flash_init

  nrf_fstorage_is_busy (Thumb, 70 bytes, Stack size 24 bytes, nrf_fstorage.o(i.nrf_fstorage_is_busy))
  [Stack]

  - Max Depth = 24
  - Call Chain = nrf_fstorage_is_busy
  [Called By]
  - >> on_data_obj_execute_request_sched

  nrf_fstorage_write (Thumb, 62 bytes, Stack size 32 bytes, nrf_fstorage.o(i.nrf_fstorage_write))
  [Stack]

  - Max Depth = 32
  - Call Chain = nrf_fstorage_write
  [Calls]
  - >> addr_is_within_bounds
  - >> addr_is_aligned32
  [Called By]
  - >> nrf_dfu_flash_store

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

  - >> erase

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

  - >> nrf_bootloader_mbr_addrs_populate

  nrf_nvmc_write_words (Thumb, 58 bytes, Stack size 16 bytes, nrf_nvmc.o(i.nrf_nvmc_write_words))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_nvmc_write_words
  [Called By]
  - >> write

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

  - >> nrfx_uarte_init

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

  - >> nrfx_uarte_uninit

  nrfx_uarte_init (Thumb, 100 bytes, Stack size 24 bytes, nrfx_uarte.o(i.nrfx_uarte_init))
  [Stack]

  - Max Depth = 80
  - Call Chain = nrfx_uarte_init ⇒ apply_config ⇒ nrf_gpio_cfg_output ⇒ nrf_gpio_cfg
  [Calls]
  - >> interrupts_enable
  - >> apply_config
  - >> nrfx_prs_acquire
  [Called By]
  - >> nrf_drv_uart_init

  nrfx_uarte_rx (Thumb, 256 bytes, Stack size 40 bytes, nrfx_uarte.o(i.nrfx_uarte_rx))
  [Stack]

  - Max Depth = 48
  - Call Chain = nrfx_uarte_rx ⇒ nrf_uarte_event_clear
  [Calls]
  - >> nrfx_is_in_ram
  - >> nrf_uarte_event_clear
  - >> nrf_uarte_event_check
  [Called By]
  - >> nrf_drv_uart_rx

  nrfx_uarte_tx (Thumb, 166 bytes, Stack size 32 bytes, nrfx_uarte.o(i.nrfx_uarte_tx))
  [Stack]

  - Max Depth = 40
  - Call Chain = nrfx_uarte_tx ⇒ nrf_uarte_event_clear
  [Calls]
  - >> nrfx_is_in_ram
  - >> nrf_uarte_event_clear
  - >> nrf_uarte_event_check
  - >> nrfx_uarte_tx_in_progress
  [Called By]
  - >> rsp_send

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

  - >> nrfx_uarte_tx

  nrfx_uarte_uninit (Thumb, 254 bytes, Stack size 32 bytes, nrfx_uarte.o(i.nrfx_uarte_uninit))
  [Stack]

  - Max Depth = 64
  - Call Chain = nrfx_uarte_uninit ⇒ nrf_gpio_cfg_default ⇒ nrf_gpio_cfg
  [Calls]
  - >> nrf_uarte_event_clear
  - >> nrf_uarte_event_check
  - >> nrf_gpio_cfg_default
  - >> nrfx_prs_release
  [Called By]
  - >> uart_dfu_transport_close

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

  - >> SystemInit

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

  - Max Depth = 296
  - 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]
  - >> stored_init_cmd_decode
  - >> pb_dec_submessage

  pb_decode_fixed32 (Thumb, 32 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, 92 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, 390 bytes, Stack size 152 bytes, pb_decode.o(i.pb_decode_noinit))
  [Stack]

  - Max Depth = 280
  - 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, 58 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, 60 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, 74 bytes, Stack size 32 bytes, pb_decode.o(i.pb_decode_varint))
  [Stack]

  - Max Depth = 40
  - Call Chain = pb_decode_varint ⇒ pb_readbyte
  [Calls]
  - >> __aeabi_llsl
  - >> pb_readbyte
  [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, 126 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, 14 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]
  - >> stored_init_cmd_decode
  - >> 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, 84 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

  postvalidate (Thumb, 226 bytes, Stack size 112 bytes, nrf_dfu_validation.o(i.postvalidate))
  [Stack]

  - Max Depth = 3840
  - Call Chain = postvalidate ⇒ postvalidate_sd_bl ⇒ boot_validation_extract ⇒ nrf_dfu_validation_boot_validate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_softdevice_start_address
  - >> nrf_dfu_bank_invalidate
  - >> crc32_compute
  - >> nrf_dfu_settings_progress_reset
  - >> fw_hash_ok
  - >> update_requires_softdevice
  - >> postvalidate_sd_bl
  - >> boot_validation_extract
  - >> nrf_dfu_softdevice_invalidate
  - >> __aeabi_memcpy
  [Called By]
  - >> nrf_dfu_validation_activation_prepare

  settings_backup (Thumb, 12 bytes, Stack size 0 bytes, nrf_dfu_settings.o(i.settings_backup))
  [Stack]

  - Max Depth = 64
  - Call Chain = settings_backup ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> settings_write
  [Called By]
  - >> nrf_dfu_settings_write_and_backup
  - >> nrf_dfu_settings_backup

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

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

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

  - >> nrf_sw_backend_hash_sha256_init

  sha256_transform (Thumb, 294 bytes, Stack size 324 bytes, sha256.o(i.sha256_transform))
  [Stack]

  - Max Depth = 324
  - Call Chain = sha256_transform
  [Called By]
  - >> sha256_update
  - >> sha256_final

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

  - Max Depth = 348
  - Call Chain = sha256_update ⇒ sha256_transform
  [Calls]
  - >> sha256_transform
  [Called By]
  - >> nrf_sw_backend_hash_sha256_update

  slip_decode_add_byte (Thumb, 110 bytes, Stack size 12 bytes, slip.o(i.slip_decode_add_byte))
  [Stack]

  - Max Depth = 12
  - Call Chain = slip_decode_add_byte
  [Called By]
  - >> uart_event_handler

  slip_encode (Thumb, 86 bytes, Stack size 20 bytes, slip.o(i.slip_encode))
  [Stack]

  - Max Depth = 20
  - Call Chain = slip_encode
  [Called By]
  - >> rsp_send

  ### Local Symbols

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

  - Max Depth = 56
  - Call Chain = dfu_observer ⇒ bsp_board_init ⇒ nrf_gpio_cfg
  [Calls]
  - >> bsp_board_led_on
  - >> bsp_board_led_off
  - >> bsp_board_init
  [Address Reference Count : 1]
  - main.o(i.main)

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

  - >> main
  - >> app_error_handler_bare

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

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

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

  - >> bsp_board_led_on
  - >> bsp_board_led_off

  boot_validate (Thumb, 16 bytes, Stack size 0 bytes, nrf_bootloader.o(i.boot_validate))
  [Stack]

  - Max Depth = 3392
  - Call Chain = boot_validate ⇒ nrf_dfu_validation_boot_validate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_validation_boot_validate
  [Called By]
  - >> dfu_enter_check

  bootloader_reset (Thumb, 28 bytes, Stack size 8 bytes, nrf_bootloader.o(i.bootloader_reset))
  [Stack]

  - Max Depth = 72
  - Call Chain = bootloader_reset ⇒ nrf_dfu_settings_backup ⇒ settings_backup ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_dfu_settings_backup
  - >> do_reset
  [Called By]
  - >> inactivity_timeout
  - >> dfu_observer
  - >> nrf_bootloader_init

  dfu_enter_check (Thumb, 140 bytes, Stack size 16 bytes, nrf_bootloader.o(i.dfu_enter_check))
  [Stack]

  - Max Depth = 3408
  - Call Chain = dfu_enter_check ⇒ boot_validate ⇒ nrf_dfu_validation_boot_validate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_bank0_start_addr
  - >> boot_validate
  [Called By]
  - >> nrf_bootloader_init

  dfu_observer (Thumb, 62 bytes, Stack size 8 bytes, nrf_bootloader.o(i.dfu_observer))
  [Stack]

  - Max Depth = 80
  - Call Chain = dfu_observer ⇒ bootloader_reset ⇒ nrf_dfu_settings_backup ⇒ settings_backup ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_dfu_settings_reinit
  - >> nrf_bootloader_dfu_inactivity_timer_restart
  - >> bootloader_reset
  [Address Reference Count : 1]
  - nrf_bootloader.o(i.nrf_bootloader_init)

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

  - >> bootloader_reset
  [Address Reference Count : 1]
  - nrf_bootloader.o(i.bootloader_reset)

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

  - nrf_bootloader.o(i.nrf_bootloader_init)

  inactivity_timeout (Thumb, 6 bytes, Stack size 0 bytes, nrf_bootloader.o(i.inactivity_timeout))
  [Stack]

  - Max Depth = 72
  - Call Chain = inactivity_timeout ⇒ bootloader_reset ⇒ nrf_dfu_settings_backup ⇒ settings_backup ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> bootloader_reset
  [Address Reference Count : 2]
  - nrf_bootloader.o(i.dfu_observer)
  - nrf_bootloader.o(i.nrf_bootloader_init)

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

  - Max Depth = 8
  - Call Chain = nrf_rtc_event_clear
  [Called By]
  - >> RTC1_IRQHandler
  - >> timer_init
  - >> timer_activate

  timer_activate (Thumb, 86 bytes, Stack size 16 bytes, nrf_bootloader_dfu_timers.o(i.timer_activate))
  [Stack]

  - Max Depth = 24
  - Call Chain = timer_activate ⇒ nrf_rtc_event_clear
  [Calls]
  - >> nrf_rtc_event_clear
  [Called By]
  - >> RTC1_IRQHandler
  - >> timer_start

  timer_init (Thumb, 98 bytes, Stack size 16 bytes, nrf_bootloader_dfu_timers.o(i.timer_init))
  [Stack]

  - Max Depth = 24
  - Call Chain = timer_init ⇒ nrf_rtc_event_clear
  [Calls]
  - >> nrf_rtc_event_clear
  [Called By]
  - >> timer_start

  timer_start (Thumb, 26 bytes, Stack size 16 bytes, nrf_bootloader_dfu_timers.o(i.timer_start))
  [Stack]

  - Max Depth = 40
  - Call Chain = timer_start ⇒ timer_init ⇒ nrf_rtc_event_clear
  [Calls]
  - >> timer_init
  - >> timer_activate
  [Called By]
  - >> nrf_bootloader_wdt_feed_timer_start
  - >> nrf_bootloader_dfu_inactivity_timer_restart

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

  - >> RTC1_IRQHandler
  - >> nrf_bootloader_dfu_inactivity_timer_restart

  app_activate (Thumb, 66 bytes, Stack size 16 bytes, nrf_bootloader_fw_activation.o(i.app_activate))
  [Stack]

  - Max Depth = 144
  - Call Chain = app_activate ⇒ image_copy ⇒ nrf_dfu_settings_write_and_backup ⇒ nrf_dfu_settings_write ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> crc32_compute
  - >> image_copy
  - >> nrf_dfu_bank0_start_addr
  [Called By]
  - >> nrf_bootloader_fw_activate

  bl_activate (Thumb, 66 bytes, Stack size 16 bytes, nrf_bootloader_fw_activation.o(i.bl_activate))
  [Stack]

  - Max Depth = 40
  - Call Chain = bl_activate ⇒ nrf_dfu_mbr_copy_bl
  [Calls]
  - >> nrf_dfu_mbr_copy_bl
  - >> nrf_dfu_bank1_start_addr
  - >> nrf_bootloader_wdt_feed
  - >> memcmp
  [Called By]
  - >> nrf_bootloader_fw_activate

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

  - nrf_bootloader_fw_activation.o(i.nrf_bootloader_fw_activate)

  image_copy (Thumb, 140 bytes, Stack size 32 bytes, nrf_bootloader_fw_activation.o(i.image_copy))
  [Stack]

  - Max Depth = 128
  - Call Chain = image_copy ⇒ nrf_dfu_settings_write_and_backup ⇒ nrf_dfu_settings_write ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_dfu_settings_write_and_backup
  - >> nrf_dfu_flash_store
  - >> nrf_dfu_flash_erase
  - >> nrf_bootloader_wdt_init
  [Called By]
  - >> sd_activate
  - >> app_activate

  sd_activate (Thumb, 74 bytes, Stack size 16 bytes, nrf_bootloader_fw_activation.o(i.sd_activate))
  [Stack]

  - Max Depth = 144
  - Call Chain = sd_activate ⇒ image_copy ⇒ nrf_dfu_settings_write_and_backup ⇒ nrf_dfu_settings_write ⇒ settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_dfu_softdevice_start_address
  - >> nrf_dfu_settings_write_and_backup
  - >> image_copy
  [Called By]
  - >> nrf_bootloader_fw_activate

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

  - >> nrf_bootloader_wdt_init
  - >> nrf_bootloader_wdt_feed
  - >> wdt_feed

  wdt_feed (Thumb, 48 bytes, Stack size 16 bytes, nrf_bootloader_wdt.o(i.wdt_feed))
  [Stack]

  - Max Depth = 16
  - Call Chain = wdt_feed
  [Calls]
  - >> nrf_wdt_started
  [Called By]
  - >> nrf_bootloader_wdt_init
  - >> nrf_bootloader_wdt_feed
  - >> wdt_feed_timer_handler

  wdt_feed_timer_handler (Thumb, 4 bytes, Stack size 0 bytes, nrf_bootloader_wdt.o(i.wdt_feed_timer_handler))
  [Stack]

  - Max Depth = 16
  - Call Chain = wdt_feed_timer_handler ⇒ wdt_feed
  [Calls]
  - >> wdt_feed
  [Address Reference Count : 1]
  - nrf_bootloader_wdt.o(i.nrf_bootloader_wdt_init)

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

  - >> nrf_crypto_hash_update
  - >> nrf_crypto_hash_finalize

  nrf_sw_backend_hash_sha256_finalize (Thumb, 36 bytes, Stack size 8 bytes, nrf_sw_backend_hash.o(i.nrf_sw_backend_hash_sha256_finalize))
  [Stack]

  - Max Depth = 348
  - Call Chain = nrf_sw_backend_hash_sha256_finalize ⇒ sha256_final ⇒ sha256_transform
  [Calls]
  - >> sha256_final
  [Address Reference Count : 1]
  - nrf_sw_backend_hash.o(.constdata)

  nrf_sw_backend_hash_sha256_init (Thumb, 6 bytes, Stack size 0 bytes, nrf_sw_backend_hash.o(i.nrf_sw_backend_hash_sha256_init))
  [Calls]

  - >> sha256_init
  [Address Reference Count : 1]
  - nrf_sw_backend_hash.o(.constdata)

  nrf_sw_backend_hash_sha256_update (Thumb, 6 bytes, Stack size 0 bytes, nrf_sw_backend_hash.o(i.nrf_sw_backend_hash_sha256_update))
  [Stack]

  - Max Depth = 348
  - Call Chain = nrf_sw_backend_hash_sha256_update ⇒ sha256_update ⇒ sha256_transform
  [Calls]
  - >> sha256_update
  [Address Reference Count : 1]
  - nrf_sw_backend_hash.o(.constdata)

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

  - Max Depth = 32
  - Call Chain = dfu_observer ⇒ nrf_dfu_transports_close
  [Calls]
  - >> nrf_dfu_transports_close
  [Called By]
  - >> nrf_dfu_init
  [Address Reference Count : 1]
  - nrf_dfu.o(i.nrf_dfu_init)

  cmd_response_offset_and_crc_set (Thumb, 12 bytes, Stack size 0 bytes, nrf_dfu_req_handler.o(i.cmd_response_offset_and_crc_set), UNUSED)
  [Called By]

  - >> nrf_dfu_command_req

  ext_err_code_handle (Thumb, 14 bytes, Stack size 0 bytes, nrf_dfu_req_handler.o(i.ext_err_code_handle))
  [Calls]

  - >> ext_error_set
  [Called By]
  - >> on_data_obj_execute_request_sched
  - >> nrf_dfu_command_req

  nrf_dfu_command_req (Thumb, 142 bytes, Stack size 16 bytes, nrf_dfu_req_handler.o(i.nrf_dfu_command_req), UNUSED)
  [Calls]

  - >> nrf_dfu_settings_write_and_backup
  - >> nrf_dfu_validation_init_cmd_execute
  - >> nrf_dfu_validation_init_cmd_create
  - >> nrf_dfu_validation_init_cmd_append
  - >> ext_err_code_handle
  - >> cmd_response_offset_and_crc_set
  [Called By]
  - >> nrf_dfu_req_handler_req_process

  nrf_dfu_data_req (Thumb, 108 bytes, Stack size 16 bytes, nrf_dfu_req_handler.o(i.nrf_dfu_data_req), UNUSED)
  [Calls]

  - >> on_data_obj_write_request
  - >> on_data_obj_execute_request_sched
  - >> on_data_obj_create_request
  [Called By]
  - >> nrf_dfu_req_handler_req_process

  nrf_dfu_req_handler_req (Thumb, 4 bytes, Stack size 0 bytes, nrf_dfu_req_handler.o(i.nrf_dfu_req_handler_req))
  [Address Reference Count : 1]

  - nrf_dfu_req_handler.o(i.nrf_dfu_req_handler_on_req)

  nrf_dfu_req_handler_req_process (Thumb, 206 bytes, Stack size 40 bytes, nrf_dfu_req_handler.o(i.nrf_dfu_req_handler_req_process), UNUSED)
  [Calls]

  - >> on_fw_version_request
  - >> nrf_dfu_data_req
  - >> nrf_dfu_command_req
  - >> __aeabi_memcpy4

  on_data_obj_create_request (Thumb, 108 bytes, Stack size 24 bytes, nrf_dfu_req_handler.o(i.on_data_obj_create_request), UNUSED)
  [Calls]

  - >> nrf_dfu_flash_erase
  - >> nrf_dfu_validation_init_cmd_present
  [Called By]
  - >> nrf_dfu_data_req

  on_data_obj_execute_request_sched (Thumb, 100 bytes, Stack size 32 bytes, nrf_dfu_req_handler.o(i.on_data_obj_execute_request_sched))
  [Stack]

  - Max Depth = 3872
  - Call Chain = on_data_obj_execute_request_sched ⇒ nrf_dfu_validation_activation_prepare ⇒ postvalidate ⇒ postvalidate_sd_bl ⇒ boot_validation_extract ⇒ nrf_dfu_validation_boot_validate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_settings_write_and_backup
  - >> nrf_fstorage_is_busy
  - >> nrf_dfu_validation_activation_prepare
  - >> app_sched_event_put
  - >> ext_err_code_handle
  - >> __aeabi_memcpy4
  [Called By]
  - >> nrf_dfu_data_req
  [Address Reference Count : 1]
  - nrf_dfu_req_handler.o(i.on_data_obj_execute_request_sched)

  on_data_obj_write_request (Thumb, 118 bytes, Stack size 24 bytes, nrf_dfu_req_handler.o(i.on_data_obj_write_request), UNUSED)
  [Calls]

  - >> nrf_dfu_flash_store
  - >> crc32_compute
  - >> nrf_dfu_validation_init_cmd_present
  [Called By]
  - >> nrf_dfu_data_req

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

  - nrf_dfu_req_handler.o(i.on_data_obj_execute_request_sched)

  on_fw_version_request (Thumb, 138 bytes, Stack size 24 bytes, nrf_dfu_req_handler.o(i.on_fw_version_request), UNUSED)
  [Calls]

  - >> nrf_dfu_app_start_address
  [Called By]
  - >> nrf_dfu_req_handler_req_process

  nrf_drv_uart_rx (Thumb, 6 bytes, Stack size 0 bytes, nrf_dfu_serial_uart.o(i.nrf_drv_uart_rx))
  [Stack]

  - Max Depth = 48
  - Call Chain = nrf_drv_uart_rx ⇒ nrfx_uarte_rx ⇒ nrf_uarte_event_clear
  [Calls]
  - >> nrfx_uarte_rx
  [Called By]
  - >> uart_event_handler
  - >> uart_dfu_transport_init

  payload_free (Thumb, 8 bytes, Stack size 0 bytes, nrf_dfu_serial_uart.o(i.payload_free))
  [Stack]

  - Max Depth = 16
  - Call Chain = payload_free ⇒ nrf_balloc_free
  [Calls]
  - >> nrf_balloc_free
  [Address Reference Count : 1]
  - nrf_dfu_serial_uart.o(i.uart_dfu_transport_init)

  rsp_send (Thumb, 28 bytes, Stack size 8 bytes, nrf_dfu_serial_uart.o(i.rsp_send))
  [Stack]

  - Max Depth = 48
  - Call Chain = rsp_send ⇒ nrfx_uarte_tx ⇒ nrf_uarte_event_clear
  [Calls]
  - >> slip_encode
  - >> nrfx_uarte_tx
  [Address Reference Count : 1]
  - nrf_dfu_serial_uart.o(i.uart_dfu_transport_init)

  uart_dfu_transport_close (Thumb, 30 bytes, Stack size 8 bytes, nrf_dfu_serial_uart.o(i.uart_dfu_transport_close))
  [Stack]

  - Max Depth = 72
  - Call Chain = uart_dfu_transport_close ⇒ nrfx_uarte_uninit ⇒ nrf_gpio_cfg_default ⇒ nrf_gpio_cfg
  [Calls]
  - >> nrfx_uarte_uninit
  [Address Reference Count : 1]
  - nrf_dfu_serial_uart.o(dfu_trans)

  uart_dfu_transport_init (Thumb, 152 bytes, Stack size 48 bytes, nrf_dfu_serial_uart.o(i.uart_dfu_transport_init))
  [Stack]

  - Max Depth = 176
  - Call Chain = uart_dfu_transport_init ⇒ nrf_drv_uart_init ⇒ nrfx_uarte_init ⇒ apply_config ⇒ nrf_gpio_cfg_output ⇒ nrf_gpio_cfg
  [Calls]
  - >> nrf_drv_uart_init
  - >> nrf_balloc_init
  - >> nrf_balloc_alloc
  - >> nrf_drv_uart_rx
  - >> __aeabi_memcpy4
  [Address Reference Count : 1]
  - nrf_dfu_serial_uart.o(dfu_trans)

  uart_event_handler (Thumb, 92 bytes, Stack size 16 bytes, nrf_dfu_serial_uart.o(i.uart_event_handler))
  [Stack]

  - Max Depth = 96
  - Call Chain = uart_event_handler ⇒ nrf_dfu_serial_on_packet_received ⇒ nrf_dfu_req_handler_on_req ⇒ app_sched_event_put
  [Calls]
  - >> app_error_handler_bare
  - >> slip_decode_add_byte
  - >> nrf_dfu_serial_on_packet_received
  - >> nrf_balloc_alloc
  - >> nrf_drv_uart_rx
  [Address Reference Count : 1]
  - nrf_dfu_serial_uart.o(i.uart_dfu_transport_init)

  boot_validation_crc (Thumb, 12 bytes, Stack size 0 bytes, nrf_dfu_settings.o(i.boot_validation_crc))
  [Stack]

  - Max Depth = 20
  - Call Chain = boot_validation_crc ⇒ crc32_compute
  [Calls]
  - >> crc32_compute
  [Called By]
  - >> nrf_dfu_settings_reinit
  - >> nrf_dfu_settings_write

  crc_ok (Thumb, 30 bytes, Stack size 8 bytes, nrf_dfu_settings.o(i.crc_ok))
  [Stack]

  - Max Depth = 28
  - Call Chain = crc_ok ⇒ settings_crc_get ⇒ crc32_compute
  [Calls]
  - >> settings_crc_get
  [Called By]
  - >> nrf_dfu_settings_reinit

  settings_crc_get (Thumb, 10 bytes, Stack size 0 bytes, nrf_dfu_settings.o(i.settings_crc_get))
  [Stack]

  - Max Depth = 20
  - Call Chain = settings_crc_get ⇒ crc32_compute
  [Calls]
  - >> crc32_compute
  [Called By]
  - >> nrf_dfu_settings_write
  - >> crc_ok

  settings_write (Thumb, 80 bytes, Stack size 24 bytes, nrf_dfu_settings.o(i.settings_write))
  [Stack]

  - Max Depth = 64
  - Call Chain = settings_write ⇒ nrf_dfu_flash_store ⇒ nrf_fstorage_write
  [Calls]
  - >> nrf_dfu_flash_store
  - >> nrf_dfu_flash_erase
  - >> memcmp
  - >> __aeabi_memcpy
  [Called By]
  - >> settings_backup
  - >> nrf_dfu_settings_write

  boot_validation_extract (Thumb, 146 bytes, Stack size 160 bytes, nrf_dfu_validation.o(i.boot_validation_extract))
  [Stack]

  - Max Depth = 3552
  - Call Chain = boot_validation_extract ⇒ nrf_dfu_validation_boot_validate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> crc32_compute
  - >> nrf_dfu_validation_boot_validate
  - >> nrf_crypto_hash_calculate
  - >> __aeabi_memclr4
  - >> __aeabi_memclr
  - >> __aeabi_memcpy
  [Called By]
  - >> postvalidate
  - >> postvalidate_sd_bl

  crypto_init (Thumb, 46 bytes, Stack size 72 bytes, nrf_dfu_validation.o(i.crypto_init))
  [Stack]

  - Max Depth = 112
  - Call Chain = crypto_init ⇒ nrf_crypto_ecc_public_key_from_raw ⇒ nrf_crypto_backend_micro_ecc_public_key_from_raw ⇒ nrf_crypto_internal_double_swap_endian
  [Calls]
  - >> nrf_crypto_internal_double_swap_endian
  - >> nrf_crypto_init
  - >> nrf_crypto_ecc_public_key_from_raw
  [Called By]
  - >> nrf_dfu_validation_signature_check
  - >> nrf_dfu_validation_hash_ok

  is_major_softdevice_update (Thumb, 88 bytes, Stack size 8 bytes, nrf_dfu_validation.o(i.is_major_softdevice_update))
  [Stack]

  - Max Depth = 8
  - Call Chain = is_major_softdevice_update
  [Called By]
  - >> postvalidate_sd_bl

  nrf_dfu_validation_hash_ok (Thumb, 90 bytes, Stack size 192 bytes, nrf_dfu_validation.o(i.nrf_dfu_validation_hash_ok))
  [Stack]

  - Max Depth = 304
  - Call Chain = nrf_dfu_validation_hash_ok ⇒ crypto_init ⇒ nrf_crypto_ecc_public_key_from_raw ⇒ nrf_crypto_backend_micro_ecc_public_key_from_raw ⇒ nrf_crypto_internal_double_swap_endian
  [Calls]
  - >> nrf_crypto_internal_swap_endian
  - >> nrf_crypto_hash_calculate
  - >> crypto_init
  - >> memcmp
  - >> __aeabi_memclr4
  [Called By]
  - >> nrf_dfu_validation_boot_validate
  - >> fw_hash_ok

  nrf_dfu_validation_signature_check (Thumb, 140 bytes, Stack size 160 bytes, nrf_dfu_validation.o(i.nrf_dfu_validation_signature_check))
  [Stack]

  - Max Depth = 3376
  - Call Chain = nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_crypto_internal_double_swap_endian_in_place
  - >> nrf_crypto_hash_calculate
  - >> nrf_crypto_ecdsa_verify
  - >> crypto_init
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> nrf_dfu_validation_boot_validate
  - >> nrf_dfu_validation_prevalidate

  pb_decoding_callback (Thumb, 52 bytes, Stack size 8 bytes, nrf_dfu_validation.o(i.pb_decoding_callback))
  [Stack]

  - Max Depth = 8
  - Call Chain = pb_decoding_callback
  [Address Reference Count : 1]
  - nrf_dfu_validation.o(i.stored_init_cmd_decode)

  postvalidate_sd_bl (Thumb, 266 bytes, Stack size 176 bytes, nrf_dfu_validation.o(i.postvalidate_sd_bl))
  [Stack]

  - Max Depth = 3728
  - Call Chain = postvalidate_sd_bl ⇒ boot_validation_extract ⇒ nrf_dfu_validation_boot_validate ⇒ nrf_dfu_validation_signature_check ⇒ nrf_crypto_ecdsa_verify ⇒ nrf_crypto_backend_micro_ecc_verify ⇒ uECC_verify ⇒ uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> nrf_dfu_bank_invalidate
  - >> is_major_softdevice_update
  - >> boot_validation_extract
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy4
  - >> __aeabi_memcpy
  [Called By]
  - >> postvalidate

  stored_init_cmd_decode (Thumb, 172 bytes, Stack size 32 bytes, nrf_dfu_validation.o(i.stored_init_cmd_decode))
  [Stack]

  - Max Depth = 328
  - Call Chain = stored_init_cmd_decode ⇒ 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
  - >> __aeabi_memclr4
  [Called By]
  - >> nrf_dfu_validation_init_cmd_execute
  - >> nrf_dfu_validation_init

  update_data_size_get (Thumb, 84 bytes, Stack size 12 bytes, nrf_dfu_validation.o(i.update_data_size_get))
  [Stack]

  - Max Depth = 12
  - Call Chain = update_data_size_get
  [Called By]
  - >> nrf_dfu_validation_init_cmd_execute

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

  - >> nrf_dfu_validation_init_cmd_execute
  - >> postvalidate

  sd_req_check (Thumb, 64 bytes, Stack size 20 bytes, nrf_dfu_ver_validation.o(i.sd_req_check))
  [Stack]

  - Max Depth = 20
  - Call Chain = sd_req_check
  [Called By]
  - >> sd_req_ok

  sd_req_ok (Thumb, 88 bytes, Stack size 0 bytes, nrf_dfu_ver_validation.o(i.sd_req_ok))
  [Stack]

  - Max Depth = 20
  - Call Chain = sd_req_ok ⇒ sd_req_check
  [Calls]
  - >> sd_req_check
  [Called By]
  - >> nrf_dfu_ver_validation_check

  uarte_evt_handler (Thumb, 42 bytes, Stack size 24 bytes, nrf_drv_uart.o(i.uarte_evt_handler))
  [Stack]

  - Max Depth = 24
  - Call Chain = uarte_evt_handler
  [Address Reference Count : 1]
  - nrf_drv_uart.o(i.nrf_drv_uart_init)

  apply_config (Thumb, 136 bytes, Stack size 24 bytes, nrfx_uarte.o(i.apply_config))
  [Stack]

  - Max Depth = 56
  - Call Chain = apply_config ⇒ nrf_gpio_cfg_output ⇒ nrf_gpio_cfg
  [Calls]
  - >> nrf_gpio_cfg_output
  - >> nrf_gpio_cfg_input
  [Called By]
  - >> nrfx_uarte_init

  interrupts_enable (Thumb, 132 bytes, Stack size 16 bytes, nrfx_uarte.o(i.interrupts_enable))
  [Stack]

  - Max Depth = 24
  - Call Chain = interrupts_enable ⇒ nrf_uarte_event_clear
  [Calls]
  - >> nrf_uarte_event_clear
  [Called By]
  - >> nrfx_uarte_init

  nrf_gpio_cfg (Thumb, 36 bytes, Stack size 16 bytes, nrfx_uarte.o(i.nrf_gpio_cfg))
  [Stack]

  - Max Depth = 16
  - Call Chain = nrf_gpio_cfg
  [Called By]
  - >> nrf_gpio_cfg_output
  - >> nrf_gpio_cfg_input
  - >> nrf_gpio_cfg_default

  nrf_gpio_cfg_default (Thumb, 18 bytes, Stack size 16 bytes, nrfx_uarte.o(i.nrf_gpio_cfg_default))
  [Stack]

  - Max Depth = 32
  - Call Chain = nrf_gpio_cfg_default ⇒ nrf_gpio_cfg
  [Calls]
  - >> nrf_gpio_cfg
  [Called By]
  - >> nrfx_uarte_uninit

  nrf_gpio_cfg_input (Thumb, 18 bytes, Stack size 16 bytes, nrfx_uarte.o(i.nrf_gpio_cfg_input))
  [Stack]

  - Max Depth = 32
  - Call Chain = nrf_gpio_cfg_input ⇒ nrf_gpio_cfg
  [Calls]
  - >> nrf_gpio_cfg
  [Called By]
  - >> apply_config

  nrf_gpio_cfg_output (Thumb, 20 bytes, Stack size 16 bytes, nrfx_uarte.o(i.nrf_gpio_cfg_output))
  [Stack]

  - Max Depth = 32
  - Call Chain = nrf_gpio_cfg_output ⇒ nrf_gpio_cfg
  [Calls]
  - >> nrf_gpio_cfg
  [Called By]
  - >> apply_config

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

  - >> nrfx_uarte_uninit
  - >> nrfx_uarte_tx
  - >> nrfx_uarte_rx
  - >> uarte_irq_handler

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

  - Max Depth = 8
  - Call Chain = nrf_uarte_event_clear
  [Called By]
  - >> nrfx_uarte_uninit
  - >> nrfx_uarte_tx
  - >> nrfx_uarte_rx
  - >> uarte_irq_handler
  - >> interrupts_enable

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

  - >> nrfx_uarte_tx
  - >> nrfx_uarte_rx

  rx_done_event (Thumb, 22 bytes, Stack size 24 bytes, nrfx_uarte.o(i.rx_done_event))
  [Stack]

  - Max Depth = 24
  - Call Chain = rx_done_event
  [Called By]
  - >> uarte_irq_handler

  tx_done_event (Thumb, 26 bytes, Stack size 24 bytes, nrfx_uarte.o(i.tx_done_event))
  [Stack]

  - Max Depth = 24
  - Call Chain = tx_done_event
  [Called By]
  - >> uarte_irq_handler

  uarte_irq_handler (Thumb, 274 bytes, Stack size 40 bytes, nrfx_uarte.o(i.uarte_irq_handler))
  [Stack]

  - Max Depth = 64
  - Call Chain = uarte_irq_handler ⇒ tx_done_event
  [Calls]
  - >> tx_done_event
  - >> rx_done_event
  - >> nrf_uarte_event_clear
  - >> nrf_uarte_event_check
  [Called By]
  - >> UARTE0_UART0_IRQHandler

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

  - >> nrf_fstorage_write

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

  - >> nrf_fstorage_write
  - >> nrf_fstorage_erase

  erase (Thumb, 68 bytes, Stack size 32 bytes, nrf_fstorage_nvmc.o(i.erase))
  [Stack]

  - Max Depth = 88
  - Call Chain = erase ⇒ event_send
  [Calls]
  - >> nrf_nvmc_page_erase
  - >> event_send
  - >> nrf_atomic_flag_set_fetch
  - >> nrf_atomic_flag_clear
  [Address Reference Count : 1]
  - nrf_fstorage_nvmc.o(.constdata)

  event_send (Thumb, 54 bytes, Stack size 56 bytes, nrf_fstorage_nvmc.o(i.event_send))
  [Stack]

  - Max Depth = 56
  - Call Chain = event_send
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> write
  - >> erase

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

  - nrf_fstorage_nvmc.o(.constdata)

  is_busy (Thumb, 12 bytes, Stack size 0 bytes, nrf_fstorage_nvmc.o(i.is_busy))
  [Address Reference Count : 1]

  - nrf_fstorage_nvmc.o(.constdata)

  read (Thumb, 14 bytes, Stack size 8 bytes, nrf_fstorage_nvmc.o(i.read))
  [Stack]

  - Max Depth = 8
  - Call Chain = read
  [Calls]
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - nrf_fstorage_nvmc.o(.constdata)

  rmap (Thumb, 4 bytes, Stack size 0 bytes, nrf_fstorage_nvmc.o(i.rmap))
  [Address Reference Count : 1]

  - nrf_fstorage_nvmc.o(.constdata)

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

  - Max Depth = 16
  - Call Chain = uninit ⇒ nrf_atomic_flag_clear ⇒ nrf_atomic_u32_and
  [Calls]
  - >> nrf_atomic_flag_clear
  [Address Reference Count : 1]
  - nrf_fstorage_nvmc.o(.constdata)

  wmap (Thumb, 4 bytes, Stack size 0 bytes, nrf_fstorage_nvmc.o(i.wmap))
  [Address Reference Count : 1]

  - nrf_fstorage_nvmc.o(.constdata)

  write (Thumb, 64 bytes, Stack size 32 bytes, nrf_fstorage_nvmc.o(i.write))
  [Stack]

  - Max Depth = 88
  - Call Chain = write ⇒ event_send
  [Calls]
  - >> nrf_nvmc_write_words
  - >> event_send
  - >> nrf_atomic_flag_set_fetch
  - >> nrf_atomic_flag_clear
  [Address Reference Count : 1]
  - nrf_fstorage_nvmc.o(.constdata)

  response_send (Thumb, 238 bytes, Stack size 24 bytes, nrf_dfu_serial.o(i.response_send))
  [Stack]

  - Max Depth = 24
  - Call Chain = response_send
  [Calls]
  - >> ext_error_set
  - >> ext_error_get
  - >> uint32_encode
  [Called By]
  - >> dfu_req_handler_rsp_clbk

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

  - >> response_send

  buf_read (Thumb, 28 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, 126 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, 26 bytes, Stack size 0 bytes, pb_decode.o(i.decode_field))
  [Stack]

  - Max Depth = 128
  - 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, 220 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]
  - >> __aeabi_memclr
  - >> pb_make_string_substream
  - >> pb_message_set_to_defaults
  [Called By]
  - >> decode_field

  iter_from_extension (Thumb, 46 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, 64 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, 6 bytes, Stack size 0 bytes, pb_decode.o(i.pb_dec_fixed32))
  [Stack]

  - Max Depth = 48
  - 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, 6 bytes, Stack size 0 bytes, pb_decode.o(i.pb_dec_fixed64))
  [Stack]

  - Max Depth = 48
  - 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, 62 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, 64 bytes, Stack size 40 bytes, pb_decode.o(i.pb_dec_submessage))
  [Stack]

  - Max Depth = 336
  - 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, 88 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, 88 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, 90 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, 164 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]
  - >> __aeabi_memclr
  - >> __aeabi_memcpy
  - >> pb_message_set_to_defaults
  - >> pb_field_set_to_default
  - >> iter_from_extension
  [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, 98 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

  bcopy (Thumb, 20 bytes, Stack size 0 bytes, uECC.c.o(.text.bcopy))
  [Called By]

  - >> uECC_verify
  - >> bits2int

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

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

  uECC_vli_sub (Thumb, 94 bytes, Stack size 64 bytes, uECC.c.o(.text.uECC_vli_sub))
  [Stack]

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

  uECC_vli_mult (Thumb, 786 bytes, Stack size 144 bytes, 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_clear (Thumb, 22 bytes, Stack size 32 bytes, uECC.c.o(.text.uECC_vli_clear))
  [Stack]

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

  uECC_vli_isZero (Thumb, 30 bytes, Stack size 32 bytes, uECC.c.o(.text.uECC_vli_isZero))
  [Stack]

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

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

  - >> uECC_verify

  uECC_vli_numBits (Thumb, 64 bytes, Stack size 32 bytes, uECC.c.o(.text.uECC_vli_numBits))
  [Stack]

  - Max Depth = 32
  - Call Chain = uECC_vli_numBits
  [Called By]
  - >> uECC_verify
  - >> uECC_vli_modMult

  uECC_vli_set (Thumb, 24 bytes, Stack size 32 bytes, uECC.c.o(.text.uECC_vli_set))
  [Stack]

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

  uECC_vli_cmp_unsafe (Thumb, 42 bytes, Stack size 32 bytes, uECC.c.o(.text.uECC_vli_cmp_unsafe))
  [Stack]

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

  uECC_vli_rshift1 (Thumb, 26 bytes, Stack size 0 bytes, uECC.c.o(.text.uECC_vli_rshift1))
  [Called By]

  - >> uECC_vli_modInv
  - >> vli_modInv_update
  - >> double_jacobian_default
  - >> uECC_vli_modMult

  uECC_vli_modAdd (Thumb, 56 bytes, Stack size 96 bytes, uECC.c.o(.text.uECC_vli_modAdd))
  [Stack]

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

  uECC_vli_modSub (Thumb, 40 bytes, Stack size 96 bytes, uECC.c.o(.text.uECC_vli_modSub))
  [Stack]

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

  uECC_vli_modMult (Thumb, 316 bytes, Stack size 992 bytes, uECC.c.o(.text.uECC_vli_modMult))
  [Stack]

  - Max Depth = 1136
  - Call Chain = uECC_vli_modMult ⇒ uECC_vli_mult
  [Calls]
  - >> uECC_vli_rshift1
  - >> uECC_vli_set
  - >> uECC_vli_numBits
  - >> uECC_vli_clear
  - >> uECC_vli_mult
  [Called By]
  - >> uECC_verify

  uECC_vli_modMult_fast (Thumb, 32 bytes, Stack size 320 bytes, 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
  - >> apply_z
  - >> x_side_default
  - >> double_jacobian_default
  - >> uECC_vli_modSquare_fast

  uECC_vli_modSquare_fast (Thumb, 8 bytes, Stack size 0 bytes, uECC.c.o(.text.uECC_vli_modSquare_fast))
  [Stack]

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

  double_jacobian_default (Thumb, 338 bytes, Stack size 416 bytes, uECC.c.o(.text.double_jacobian_default))
  [Stack]

  - Max Depth = 880
  - Call Chain = double_jacobian_default ⇒ uECC_vli_modSquare_fast ⇒ uECC_vli_modMult_fast ⇒ uECC_vli_mult
  [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]
  - uECC.c.o(.rodata.curve_secp256r1)

  x_side_default (Thumb, 94 bytes, Stack size 256 bytes, uECC.c.o(.text.x_side_default))
  [Stack]

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

  vli_mmod_fast_secp256r1 (Thumb, 432 bytes, Stack size 224 bytes, uECC.c.o(.text.vli_mmod_fast_secp256r1))
  [Stack]

  - Max Depth = 288
  - 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]
  - uECC.c.o(.rodata.curve_secp256r1)

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

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

  XYcZ_add (Thumb, 206 bytes, Stack size 288 bytes, uECC.c.o(.text.XYcZ_add))
  [Stack]

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

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

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

  vli_modInv_update (Thumb, 56 bytes, Stack size 64 bytes, 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

  uECC_vli_modInv (Thumb, 262 bytes, Stack size 608 bytes, uECC.c.o(.text.uECC_vli_modInv))
  [Stack]

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

  ### Undefined Global Symbols