# Static Call Graph for image mesh\bootloader\mesh_bootloader_serial_armcc_nrf52833_xxAA.elf

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Tue Nov 03 12:48:52 2020

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

### Call chain for Maximum Stack Depth:

SWI2_EGU2_IRQHandler ⇒ mesh_aci_command_check ⇒ serial_command_handler ⇒ bootloader_cmd_send ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- MemoryManagement_Handler ⇒ MemoryManagement_Handler
- BusFault_Handler ⇒ BusFault_Handler
- UsageFault_Handler ⇒ UsageFault_Handler
- SVC_Handler ⇒ SVC_Handler

  ### Function Pointers

  - BusFault_Handler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - CCM_AAR_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - COMP_LPCOMP_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - DebugMon_Handler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - ECB_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - FPU_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - GPIOTE_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - HardFault_Handler from main.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - I2S_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - MWU_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - MemoryManagement_Handler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - NFCT_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - NMI_Handler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - PDM_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - POWER_CLOCK_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - PWM0_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - PWM1_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - PWM2_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - PWM3_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - PendSV_Handler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - QDEC_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - RADIO_IRQHandler from transport.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - RNG_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - RTC0_IRQHandler from bootloader_rtc.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - RTC1_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - RTC2_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - Reset_Handler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SAADC_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SPIM2_SPIS2_SPI2_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SPIM3_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SVC_Handler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SWI0_EGU0_IRQHandler from transport.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SWI1_EGU1_IRQHandler from serial_handler_uart.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SWI2_EGU2_IRQHandler from bootloader.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SWI3_EGU3_IRQHandler from bootloader.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SWI4_EGU4_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SWI5_EGU5_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SysTick_Handler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - SystemInit from system_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(.text)
  - TEMP_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - TIMER0_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - TIMER1_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - TIMER2_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - TIMER3_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - TIMER4_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - UARTE0_UART0_IRQHandler from serial_handler_uart.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - UARTE1_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - USBD_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - UsageFault_Handler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - WDT_IRQHandler from arm_startup_nrf52833.o(.text) referenced from arm_startup_nrf52833.o(RESET)
  - __main from __main.o(!!!main) referenced from arm_startup_nrf52833.o(.text)
  - bl_cmd_handler from bootloader_app_bridge.o(.text) referenced from bootloader_app_bridge.o(.text)
  - bl_evt_handler from bootloader.o(.text) referenced from bootloader.o(.text)
  - radio_idle_cb from transport.o(.text) referenced from transport.o(.text)
  - radio_rx_cb from transport.o(.text) referenced from transport.o(.text)
  - radio_tx_cb from transport.o(.text) referenced from transport.o(.text)
  - rx_cb from bootloader.o(.text) referenced from bootloader.o(.text)

  ### Global Symbols

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

  - >> __rt_entry
  - >> __scatterload

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

  - >> __main

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

  - >> __rt_entry

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

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

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

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

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

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

  - >> __rt_entry_li

  __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000001))
  [Calls]

  - >> _fp_init

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  - >> __rt_exit_ls

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

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

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

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

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

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

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

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

  - >> __main
  - >> __scatterload_rt2

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

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

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

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

  - >> __rt_lib_init

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

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

  - Max Depth = 1068 + Unknown Stack Size
  - Call Chain = __rt_entry_main ⇒ main ⇒ bootloader_enable ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> exit
  - >> main

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

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

  - >> exit

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

  - >> __rt_lib_shutdown

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

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

  - >> _sys_exit

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

  - >> bootloader_util_app_start

  SWI2_EGU2_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 1108 + Unknown Stack Size
  - Call Chain = SWI2_EGU2_IRQHandler ⇒ mesh_aci_command_check ⇒ serial_command_handler ⇒ bootloader_cmd_send ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> mesh_aci_command_check
  [Address Reference Count : 1]
  - arm_startup_nrf52833.o(RESET)

  SWI3_EGU3_IRQHandler (Thumb, 238 bytes, Stack size 56 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 1060 + Unknown Stack Size
  - Call Chain = SWI3_EGU3_IRQHandler ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> serial_handler_uart_disable
  - >> nrf_flash_store
  - >> nrf_flash_erase
  - >> fifo_pop
  - >> fifo_is_empty
  - >> bootloader_util_app_start
  - >> bootloader_info_entry_get
  - >> bl_cmd_handler
  - >> app_error_handler_bare
  - >> __aeabi_memset
  [Address Reference Count : 1]
  - arm_startup_nrf52833.o(RESET)

  bootloader_abort (Thumb, 126 bytes, Stack size 32 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = bootloader_abort ⇒ dfu_mesh_app_is_valid ⇒ fw_is_verified ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> serial_handler_uart_disable
  - >> radio_disable
  - >> interrupts_disable
  - >> fifo_is_empty
  - >> dfu_mesh_app_is_valid
  - >> bootloader_util_app_start
  - >> bootloader_info_entry_get
  - >> app_error_handler_bare
  [Called By]
  - >> bootloader_timeout
  - >> bl_evt_handler
  - >> main

  bootloader_cmd_send (Thumb, 4 bytes, Stack size 0 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 1004 + Unknown Stack Size
  - Call Chain = bootloader_cmd_send ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> bl_cmd_handler
  [Called By]
  - >> serial_command_handler

  bootloader_init (Thumb, 138 bytes, Stack size 48 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 1052 + Unknown Stack Size
  - Call Chain = bootloader_init ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> transport_init
  - >> rtc_init
  - >> mesh_aci_init
  - >> fifo_init
  - >> dfu_bank_scan
  - >> bootloader_app_bridge_init
  - >> bl_cmd_handler
  - >> app_error_handler_bare
  - >> __aeabi_memclr4
  [Called By]
  - >> main

  bootloader_enable (Thumb, 264 bytes, Stack size 64 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 1068 + Unknown Stack Size
  - Call Chain = bootloader_enable ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> transport_start
  - >> mesh_aci_start
  - >> dfu_mesh_req
  - >> dfu_mesh_missing_type_get
  - >> dfu_mesh_app_is_valid
  - >> dfu_bank_flash
  - >> bootloader_info_entry_overwrite
  - >> bootloader_info_entry_get
  - >> bl_cmd_handler
  - >> app_error_handler_bare
  - >> set_timeout
  [Called By]
  - >> main

  bootloader_timeout (Thumb, 68 bytes, Stack size 40 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 1044 + Unknown Stack Size
  - Call Chain = bootloader_timeout ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> bl_cmd_handler
  - >> app_error_handler_bare
  - >> bootloader_abort
  [Called By]
  - >> RTC0_IRQHandler

  bl_cmd_handler (Thumb, 324 bytes, Stack size 48 bytes, bootloader_app_bridge.o(.text))
  [Stack]

  - Max Depth = 1004 + Unknown Stack Size
  - Call Chain = bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> dfu_transfer_flash_write_complete
  - >> dfu_mesh_timeout
  - >> dfu_mesh_rx
  - >> dfu_mesh_restart
  - >> dfu_mesh_relay
  - >> dfu_mesh_on_flash_idle
  - >> dfu_mesh_init
  - >> dfu_bank_on_flash_idle
  - >> bootloader_info_on_flash_op_end
  - >> bootloader_info_on_flash_idle
  - >> bootloader_info_init
  - >> bootloader_info_entry_put
  - >> bootloader_info_entry_invalidate
  - >> dfu_mesh_start
  - >> dfu_mesh_req
  - >> dfu_bank_flash
  - >> bootloader_info_entry_get
  - >> app_error_handler_bare
  [Called By]
  - >> bootloader_timeout
  - >> bootloader_enable
  - >> bootloader_init
  - >> bootloader_cmd_send
  - >> SWI3_EGU3_IRQHandler
  - >> bl_evt_handler
  - >> rx_cb
  [Address Reference Count : 1]
  - bootloader_app_bridge.o(.text)

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

  - >> bootloader_init

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

  - >> handle_fwid_packet
  - >> request_missing_data
  - >> send_bank_notifications
  - >> send_progress_event
  - >> handle_data_req_packet
  - >> handle_data_packet
  - >> target_rx_data
  - >> notify_state_packet
  - >> start_target
  - >> beacon_set
  - >> packet_tx_dynamic
  - >> flash_bank_entry_fw
  - >> dfu_mesh_on_flash_idle
  - >> tx_abort
  - >> flash_erase
  - >> flash_write
  - >> send_end_evt

  send_end_evt (Thumb, 24 bytes, Stack size 40 bytes, bootloader_app_bridge.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = send_end_evt
  [Calls]
  - >> bootloader_evt_send
  [Called By]
  - >> transfer_abort
  - >> target_rx_start
  - >> get_info_pointers
  - >> dfu_mesh_timeout

  flash_write (Thumb, 36 bytes, Stack size 56 bytes, bootloader_app_bridge.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> bootloader_evt_send
  - >> __aeabi_memcpy4
  [Called By]
  - >> dfu_transfer_data
  - >> entry_write
  - >> entry_header_invalidate
  - >> copy_page_write_next_data
  - >> copy_page_write_meta
  - >> bootloader_info_init

  flash_erase (Thumb, 32 bytes, Stack size 48 bytes, bootloader_app_bridge.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = flash_erase ⇒ __aeabi_memcpy4
  [Calls]
  - >> bootloader_evt_send
  - >> __aeabi_memcpy4
  [Called By]
  - >> dfu_transfer_start
  - >> copy_page
  - >> bootloader_info_on_flash_idle
  - >> bootloader_info_init

  tx_abort (Thumb, 22 bytes, Stack size 40 bytes, bootloader_app_bridge.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = tx_abort
  [Calls]
  - >> bootloader_evt_send
  [Called By]
  - >> handle_data_packet

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

  - >> flash_bank_entry_fw

  entry_invalidate (Thumb, 56 bytes, Stack size 16 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = entry_invalidate ⇒ entry_header_invalidate ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> bootloader_info_header_get
  - >> entry_header_invalidate
  - >> info_entry_get
  - >> app_error_handler_bare
  [Called By]
  - >> bootloader_info_entry_invalidate

  entry_write (Thumb, 104 bytes, Stack size 32 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 96 + Unknown Stack Size
  - Call Chain = entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> get_write_buffer
  - >> flash_write
  - >> app_error_handler_bare
  - >> __aeabi_memset
  - >> __aeabi_memcpy4
  [Called By]
  - >> bootloader_info_entry_put
  - >> bootloader_info_entry_overwrite

  bootloader_info_init (Thumb, 126 bytes, Stack size 16 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = bootloader_info_init ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> bootloader_info_first_unused_get
  - >> flash_erase
  - >> flash_write
  - >> app_error_handler_bare
  - >> __aeabi_memclr4
  [Called By]
  - >> bl_cmd_handler

  bootloader_info_entry_get (Thumb, 8 bytes, Stack size 0 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> info_entry_get
  [Called By]
  - >> fw_is_verified
  - >> bootloader_is_newer
  - >> app_is_newer
  - >> send_bank_notifications
  - >> start_target
  - >> get_info_pointers
  - >> flash_bank_entry
  - >> flash_bank_entry_fw
  - >> bootloader_info_entry_put
  - >> is_upgrade
  - >> dfu_mesh_missing_type_get
  - >> dfu_mesh_app_is_valid
  - >> dfu_bank_scan
  - >> dfu_bank_flash
  - >> bootloader_info_entry_overwrite
  - >> bl_cmd_handler
  - >> bootloader_enable
  - >> bootloader_abort
  - >> SWI3_EGU3_IRQHandler
  - >> bl_evt_handler

  bootloader_info_reset (Thumb, 46 bytes, Stack size 8 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = bootloader_info_reset ⇒ copy_page ⇒ flash_erase ⇒ __aeabi_memcpy4
  [Calls]
  - >> copy_page
  - >> app_error_handler_bare
  [Called By]
  - >> dfu_mesh_finalize
  - >> bootloader_info_entry_put

  bootloader_info_entry_put (Thumb, 212 bytes, Stack size 32 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 128 + Unknown Stack Size
  - Call Chain = bootloader_info_entry_put ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> bootloader_info_reset
  - >> entry_write
  - >> bootloader_info_header_get
  - >> entry_header_invalidate
  - >> bootloader_info_entry_get
  - >> app_error_handler_bare
  [Called By]
  - >> dfu_mesh_finalize
  - >> start_target
  - >> flash_bank_entry
  - >> bl_cmd_handler

  bootloader_info_entry_overwrite (Thumb, 44 bytes, Stack size 16 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 112 + Unknown Stack Size
  - Call Chain = bootloader_info_entry_overwrite ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> entry_write
  - >> bootloader_info_header_get
  - >> bootloader_info_entry_get
  [Called By]
  - >> start_target
  - >> flash_bank_entry
  - >> flash_bank_entry_fw
  - >> bootloader_enable

  bootloader_info_entry_invalidate (Thumb, 8 bytes, Stack size 0 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = bootloader_info_entry_invalidate ⇒ entry_invalidate ⇒ entry_header_invalidate ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> entry_invalidate
  [Called By]
  - >> start_target
  - >> flash_bank_entry
  - >> bl_cmd_handler

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

  - >> dfu_mesh_on_flash_idle

  bootloader_info_on_flash_op_end (Thumb, 88 bytes, Stack size 16 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = bootloader_info_on_flash_op_end ⇒ copy_page_on_flash_op_end ⇒ copy_page_write_next_data ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> copy_page_on_flash_op_end
  - >> bootloader_info_first_unused_get
  - >> copy_page
  - >> free_write_buffer
  [Called By]
  - >> bl_cmd_handler

  bootloader_info_on_flash_idle (Thumb, 50 bytes, Stack size 0 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = bootloader_info_on_flash_idle ⇒ copy_page_write_meta ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> copy_page_write_meta
  - >> flash_erase
  [Called By]
  - >> bl_cmd_handler

  RTC0_IRQHandler (Thumb, 66 bytes, Stack size 16 bytes, bootloader_rtc.o(.text))
  [Stack]

  - Max Depth = 1060 + Unknown Stack Size
  - Call Chain = RTC0_IRQHandler ⇒ bootloader_timeout ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> transport_rtc_irq_handler
  - >> bootloader_timeout
  [Address Reference Count : 1]
  - arm_startup_nrf52833.o(RESET)

  rtc_init (Thumb, 42 bytes, Stack size 0 bytes, bootloader_rtc.o(.text))
  [Called By]

  - >> bootloader_init

  bootloader_util_app_start (Thumb, 4 bytes, Stack size 0 bytes, bootloader_util.o(.text))
  [Calls]

  - >> __asm___17_bootloader_util_c_c13d365c__bootloader_util_reset
  [Called By]
  - >> bootloader_abort
  - >> SWI3_EGU3_IRQHandler

  dfu_bank_scan (Thumb, 60 bytes, Stack size 16 bytes, dfu_bank.o(.text))
  [Stack]

  - Max Depth = 472 + Unknown Stack Size
  - Call Chain = dfu_bank_scan ⇒ flash_bank_entry ⇒ flash_bank_entry_fw ⇒ bootloader_info_entry_overwrite ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> flash_bank_entry
  - >> bootloader_info_entry_get
  [Called By]
  - >> bootloader_init

  dfu_bank_flash (Thumb, 64 bytes, Stack size 16 bytes, dfu_bank.o(.text))
  [Stack]

  - Max Depth = 472 + Unknown Stack Size
  - Call Chain = dfu_bank_flash ⇒ flash_bank_entry ⇒ flash_bank_entry_fw ⇒ bootloader_info_entry_overwrite ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> flash_bank_entry
  - >> bootloader_info_entry_get
  [Called By]
  - >> bl_cmd_handler
  - >> bootloader_enable
  - >> bl_evt_handler

  dfu_bank_on_flash_idle (Thumb, 22 bytes, Stack size 0 bytes, dfu_bank.o(.text))
  [Stack]

  - Max Depth = 456 + Unknown Stack Size
  - Call Chain = dfu_bank_on_flash_idle ⇒ flash_bank_entry ⇒ flash_bank_entry_fw ⇒ bootloader_info_entry_overwrite ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> flash_bank_entry
  [Called By]
  - >> bl_cmd_handler

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

  - >> dfu_mesh_start
  - >> main

  dfu_mesh_init (Thumb, 42 bytes, Stack size 16 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = dfu_mesh_init ⇒ get_info_pointers ⇒ send_end_evt
  [Calls]
  - >> get_info_pointers
  - >> __aeabi_memclr4
  - >> __aeabi_memclr
  [Called By]
  - >> bl_cmd_handler

  dfu_mesh_start (Thumb, 60 bytes, Stack size 8 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = dfu_mesh_start ⇒ send_bank_notifications ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> packet_cache_flush
  - >> start_find_fwid
  - >> send_bank_notifications
  - >> get_info_pointers
  - >> dfu_bank_transfer_in_progress
  - >> __aeabi_memclr4
  - >> __aeabi_memclr
  [Called By]
  - >> dfu_mesh_on_flash_idle
  - >> bl_cmd_handler
  - >> bl_evt_handler

  dfu_mesh_req (Thumb, 44 bytes, Stack size 8 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 108
  - Call Chain = dfu_mesh_req ⇒ start_req ⇒ beacon_set ⇒ __aeabi_memclr4
  [Calls]
  - >> start_req
  [Called By]
  - >> bl_cmd_handler
  - >> bootloader_enable

  dfu_mesh_relay (Thumb, 54 bytes, Stack size 16 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 100
  - Call Chain = dfu_mesh_relay ⇒ beacon_set ⇒ __aeabi_memclr4
  [Calls]
  - >> fwid_union_cpy
  - >> state_beacon_type
  - >> beacon_set
  [Called By]
  - >> bl_cmd_handler

  dfu_mesh_rx (Thumb, 110 bytes, Stack size 16 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 440 + Unknown Stack Size
  - Call Chain = dfu_mesh_rx ⇒ handle_data_packet ⇒ target_rx_start ⇒ start_target ⇒ bootloader_info_entry_put ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> packet_in_cache
  - >> handle_fwid_packet
  - >> send_progress_event
  - >> handle_data_req_packet
  - >> handle_state_packet
  - >> handle_data_packet
  - >> relay_packet
  [Called By]
  - >> bl_cmd_handler

  dfu_mesh_finalize (Thumb, 304 bytes, Stack size 192 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = dfu_mesh_finalize ⇒ bootloader_info_entry_put ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> fwid_union_cpy
  - >> bootloader_info_reset
  - >> bootloader_info_entry_put
  - >> app_error_handler_bare
  - >> __aeabi_memset
  - >> __aeabi_memcpy4
  - >> __aeabi_memcpy
  [Called By]
  - >> dfu_mesh_timeout

  dfu_mesh_timeout (Thumb, 76 bytes, Stack size 8 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 956 + Unknown Stack Size
  - Call Chain = dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> dfu_mesh_finalize
  - >> start_req
  - >> signature_check
  - >> send_end_evt
  [Called By]
  - >> bl_cmd_handler

  dfu_mesh_missing_type_get (Thumb, 96 bytes, Stack size 16 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = dfu_mesh_missing_type_get ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> bootloader_info_entry_get
  [Called By]
  - >> bootloader_enable

  dfu_mesh_app_is_valid (Thumb, 52 bytes, Stack size 8 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = dfu_mesh_app_is_valid ⇒ fw_is_verified ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> fw_is_verified
  - >> bootloader_info_entry_get
  [Called By]
  - >> bootloader_enable
  - >> bootloader_abort
  - >> bl_evt_handler

  dfu_mesh_restart (Thumb, 4 bytes, Stack size 0 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 92
  - Call Chain = dfu_mesh_restart ⇒ start_find_fwid ⇒ beacon_set ⇒ __aeabi_memclr4
  [Calls]
  - >> start_find_fwid
  [Called By]
  - >> bl_cmd_handler

  dfu_mesh_on_flash_idle (Thumb, 74 bytes, Stack size 40 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = dfu_mesh_on_flash_idle ⇒ dfu_mesh_start ⇒ send_bank_notifications ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> fwid_union_cpy
  - >> dfu_transfer_end
  - >> get_info_pointers
  - >> bootloader_info_stable
  - >> bootloader_evt_send
  - >> dfu_mesh_start
  [Called By]
  - >> bl_cmd_handler

  dfu_transfer_init (Thumb, 20 bytes, Stack size 8 bytes, dfu_transfer_mesh.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = dfu_transfer_init ⇒ __aeabi_memclr4
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> dfu_transfer_start
  - >> dfu_transfer_end

  dfu_transfer_start (Thumb, 106 bytes, Stack size 32 bytes, dfu_transfer_mesh.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = dfu_transfer_start ⇒ flash_erase ⇒ __aeabi_memcpy4
  [Calls]
  - >> dfu_transfer_init
  - >> flash_erase
  [Called By]
  - >> start_target

  dfu_transfer_data (Thumb, 290 bytes, Stack size 48 bytes, dfu_transfer_mesh.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = dfu_transfer_data ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> transfer_abort
  - >> segment_is_missing
  - >> flash_write
  - >> __aeabi_memcpy
  - >> __aeabi_llsl
  [Called By]
  - >> target_rx_data

  dfu_transfer_has_entry (Thumb, 100 bytes, Stack size 24 bytes, dfu_transfer_mesh.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = dfu_transfer_has_entry ⇒ segment_is_missing
  [Calls]
  - >> segment_is_missing
  - >> __aeabi_memcpy
  [Called By]
  - >> handle_data_req_packet

  dfu_transfer_get_oldest_missing_entry (Thumb, 102 bytes, Stack size 48 bytes, dfu_transfer_mesh.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = dfu_transfer_get_oldest_missing_entry
  [Calls]
  - >> __aeabi_llsl
  [Called By]
  - >> request_missing_data

  dfu_transfer_sha256 (Thumb, 24 bytes, Stack size 0 bytes, dfu_transfer_mesh.o(.text))
  [Stack]

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

  dfu_transfer_end (Thumb, 2 bytes, Stack size 0 bytes, dfu_transfer_mesh.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = dfu_transfer_end ⇒ dfu_transfer_init ⇒ __aeabi_memclr4
  [Calls]
  - >> dfu_transfer_init
  [Called By]
  - >> dfu_mesh_on_flash_idle

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

  - >> bl_cmd_handler

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

  - >> dfu_mesh_finalize
  - >> send_bank_notifications
  - >> notify_state_packet
  - >> start_req
  - >> dfu_mesh_relay
  - >> dfu_mesh_on_flash_idle

  fwid_union_cmp (Thumb, 40 bytes, Stack size 8 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = fwid_union_cmp ⇒ memcmp
  [Calls]
  - >> memcmp
  [Called By]
  - >> handle_state_packet

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

  - >> ready_packet_matches_our_req
  - >> handle_state_packet

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

  - >> ready_packet_matches_our_req

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

  - >> ready_packet_matches_our_req

  ready_packet_matches_our_req (Thumb, 66 bytes, Stack size 16 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = ready_packet_matches_our_req
  [Calls]
  - >> tid_cache_has_entry
  - >> fwid_union_version_cmp
  - >> fwid_union_id_cmp
  [Called By]
  - >> handle_state_packet

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

  - >> target_rx_data

  is_upgrade (Thumb, 126 bytes, Stack size 16 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = is_upgrade ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> bootloader_info_entry_get
  [Called By]
  - >> bl_evt_handler

  app_is_newer (Thumb, 48 bytes, Stack size 8 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = app_is_newer ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> bootloader_info_entry_get
  [Called By]
  - >> handle_fwid_packet

  bootloader_is_newer (Thumb, 38 bytes, Stack size 8 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = bootloader_is_newer ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> bootloader_info_entry_get
  [Called By]
  - >> handle_fwid_packet

  fw_is_verified (Thumb, 32 bytes, Stack size 8 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = fw_is_verified ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> bootloader_info_entry_get
  [Called By]
  - >> dfu_mesh_app_is_valid

  tid_cache_entry_put (Thumb, 22 bytes, Stack size 8 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = tid_cache_entry_put
  [Called By]
  - >> handle_data_packet
  - >> target_rx_start

  packet_in_cache (Thumb, 44 bytes, Stack size 12 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = packet_in_cache
  [Called By]
  - >> handle_data_req_packet
  - >> handle_data_packet
  - >> dfu_mesh_rx

  packet_cache_put (Thumb, 34 bytes, Stack size 12 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = packet_cache_put
  [Called By]
  - >> handle_data_packet
  - >> relay_packet

  packet_cache_flush (Thumb, 20 bytes, Stack size 8 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = packet_cache_flush
  [Calls]
  - >> __aeabi_memclr
  [Called By]
  - >> target_rx_start
  - >> dfu_mesh_start

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

  - >> target_rx_start
  - >> start_target

  interrupts_disable (Thumb, 64 bytes, Stack size 12 bytes, dfu_util.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = interrupts_disable
  [Called By]
  - >> flash_bank_entry_fw
  - >> bootloader_abort

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

  - >> transport_init
  - >> bootloader_init
  - >> serial_handler_init
  - >> radio_init

  fifo_push (Thumb, 80 bytes, Stack size 16 bytes, fifo.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = fifo_push
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> serial_handler_event_send
  - >> bl_evt_handler
  - >> char_rx
  - >> radio_rx_cb
  - >> radio_order

  fifo_pop (Thumb, 76 bytes, Stack size 16 bytes, fifo.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = fifo_pop
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> SWI3_EGU3_IRQHandler
  - >> serial_handler_command_get
  - >> SWI1_EGU1_IRQHandler
  - >> SWI0_EGU0_IRQHandler
  - >> radio_event_handler

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

  - >> serial_handler_credit_available
  - >> radio_event_handler

  fifo_peek_at (Thumb, 72 bytes, Stack size 16 bytes, fifo.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = fifo_peek_at
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> fifo_peek

  fifo_peek (Thumb, 4 bytes, Stack size 0 bytes, fifo.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = fifo_peek ⇒ fifo_peek_at
  [Calls]
  - >> fifo_peek_at
  [Called By]
  - >> radio_event_handler

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

  - >> serial_handler_event_send
  - >> char_rx

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

  - >> bootloader_abort
  - >> SWI3_EGU3_IRQHandler
  - >> UARTE0_UART0_IRQHandler
  - >> radio_init

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

  - >> dfu_mesh_finalize
  - >> start_ready
  - >> target_rx_start
  - >> start_target
  - >> flash_bank_entry
  - >> flash_bank_entry_fw
  - >> bootloader_info_reset
  - >> entry_write
  - >> entry_invalidate
  - >> entry_header_invalidate
  - >> copy_page_write_next_data
  - >> free_write_buffer
  - >> bootloader_info_init
  - >> bootloader_info_entry_put
  - >> transport_init
  - >> mesh_packet_ref_count_dec
  - >> bl_cmd_handler
  - >> bootloader_timeout
  - >> bootloader_enable
  - >> bootloader_init
  - >> bootloader_abort
  - >> SWI3_EGU3_IRQHandler
  - >> bl_evt_handler
  - >> SWI0_EGU0_IRQHandler
  - >> radio_event_handler
  - >> mesh_packet_ref_count_inc

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

  - arm_startup_nrf52833.o(RESET)

  main (Thumb, 120 bytes, Stack size 0 bytes, main.o(.text))
  [Stack]

  - Max Depth = 1068 + Unknown Stack Size
  - Call Chain = main ⇒ bootloader_enable ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> dfu_bank_transfer_in_progress
  - >> bootloader_enable
  - >> bootloader_init
  - >> bootloader_abort
  [Called By]
  - >> __rt_entry_main

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

  - >> transport_init

  mesh_packet_acquire (Thumb, 60 bytes, Stack size 8 bytes, mesh_packet.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = mesh_packet_acquire
  [Called By]
  - >> bl_evt_handler
  - >> order_scan

  mesh_packet_ref_count_inc (Thumb, 60 bytes, Stack size 16 bytes, mesh_packet.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = mesh_packet_ref_count_inc
  [Calls]
  - >> app_error_handler_bare
  [Called By]
  - >> transport_rtc_irq_handler
  - >> transport_tx

  mesh_packet_ref_count_dec (Thumb, 66 bytes, Stack size 8 bytes, mesh_packet.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = mesh_packet_ref_count_dec
  [Calls]
  - >> app_error_handler_bare
  [Called By]
  - >> transport_rtc_irq_handler
  - >> transport_tx_abort
  - >> transport_tx
  - >> bl_evt_handler
  - >> SWI0_EGU0_IRQHandler
  - >> radio_rx_cb
  - >> radio_tx_cb
  - >> order_scan

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

  - >> SWI0_EGU0_IRQHandler

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

  - >> bl_evt_handler

  mesh_packet_adv_data_get (Thumb, 78 bytes, Stack size 12 bytes, mesh_packet.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = mesh_packet_adv_data_get
  [Called By]
  - >> rx_cb
  - >> radio_tx_cb

  nrf_flash_erase (Thumb, 88 bytes, Stack size 20 bytes, nrf_flash.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = nrf_flash_erase
  [Called By]
  - >> SWI3_EGU3_IRQHandler

  nrf_flash_store (Thumb, 108 bytes, Stack size 28 bytes, nrf_flash.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = nrf_flash_store
  [Called By]
  - >> SWI3_EGU3_IRQHandler

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

  - >> bootloader_abort
  - >> radio_event_handler

  radio_init (Thumb, 244 bytes, Stack size 32 bytes, radio_control.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = radio_init
  [Calls]
  - >> fifo_is_empty
  - >> fifo_init
  - >> timeslot_is_in_ts
  - >> __NVIC_SetPendingIRQ
  [Called By]
  - >> transport_init

  radio_order (Thumb, 68 bytes, Stack size 8 bytes, radio_control.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = radio_order ⇒ fifo_push
  [Calls]
  - >> fifo_push
  - >> timeslot_is_in_ts
  - >> __NVIC_SetPendingIRQ
  [Called By]
  - >> transport_rtc_irq_handler
  - >> order_scan

  radio_event_handler (Thumb, 230 bytes, Stack size 40 bytes, radio_control.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = radio_event_handler ⇒ setup_event
  [Calls]
  - >> fifo_peek
  - >> fifo_get_len
  - >> radio_disable
  - >> fifo_pop
  - >> app_error_handler_bare
  - >> setup_event
  [Called By]
  - >> RADIO_IRQHandler

  rand_prng_get (Thumb, 36 bytes, Stack size 8 bytes, rand.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = rand_prng_get
  [Called By]
  - >> set_next_tx
  - >> rand_prng_seed

  rand_hw_rng_get (Thumb, 44 bytes, Stack size 16 bytes, rand.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = rand_hw_rng_get
  [Called By]
  - >> rand_prng_seed

  rand_prng_seed (Thumb, 50 bytes, Stack size 16 bytes, rand.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = rand_prng_seed ⇒ rand_hw_rng_get
  [Calls]
  - >> rand_hw_rng_get
  - >> rand_prng_get
  [Called By]
  - >> transport_init

  transport_start (Thumb, 16 bytes, Stack size 0 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = transport_start ⇒ order_scan ⇒ radio_order ⇒ fifo_push
  [Calls]
  - >> order_scan
  [Called By]
  - >> bootloader_enable
  - >> SWI0_EGU0_IRQHandler

  SWI0_EGU0_IRQHandler (Thumb, 64 bytes, Stack size 16 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = SWI0_EGU0_IRQHandler ⇒ transport_start ⇒ order_scan ⇒ radio_order ⇒ fifo_push
  [Calls]
  - >> transport_start
  - >> mesh_packet_ref_count_dec
  - >> fifo_pop
  - >> app_error_handler_bare
  - >> mesh_packet_ref_count_get
  [Address Reference Count : 1]
  - arm_startup_nrf52833.o(RESET)

  RADIO_IRQHandler (Thumb, 4 bytes, Stack size 0 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = RADIO_IRQHandler ⇒ radio_event_handler ⇒ setup_event
  [Calls]
  - >> radio_event_handler
  [Address Reference Count : 1]
  - arm_startup_nrf52833.o(RESET)

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

  - >> radio_order
  - >> radio_init

  transport_init (Thumb, 96 bytes, Stack size 8 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = transport_init ⇒ rand_prng_seed ⇒ rand_hw_rng_get
  [Calls]
  - >> fifo_init
  - >> app_error_handler_bare
  - >> __aeabi_memclr4
  - >> __NVIC_SetPriority
  - >> __NVIC_EnableIRQ
  - >> rand_prng_seed
  - >> radio_init
  - >> mesh_packet_init
  [Called By]
  - >> bootloader_init

  transport_tx (Thumb, 96 bytes, Stack size 24 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = transport_tx ⇒ set_next_tx ⇒ rand_prng_get
  [Calls]
  - >> mesh_packet_ref_count_dec
  - >> order_next_rtc
  - >> set_next_tx
  - >> mesh_packet_ref_count_inc
  [Called By]
  - >> bl_evt_handler

  transport_tx_abort (Thumb, 50 bytes, Stack size 8 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = transport_tx_abort ⇒ order_next_rtc
  [Calls]
  - >> mesh_packet_ref_count_dec
  - >> __NVIC_DisableIRQ
  - >> __NVIC_EnableIRQ
  - >> order_next_rtc
  [Called By]
  - >> bl_evt_handler

  transport_rtc_irq_handler (Thumb, 178 bytes, Stack size 32 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = transport_rtc_irq_handler ⇒ set_next_tx ⇒ rand_prng_get
  [Calls]
  - >> mesh_packet_ref_count_dec
  - >> order_next_rtc
  - >> set_next_tx
  - >> radio_order
  - >> mesh_packet_ref_count_inc
  [Called By]
  - >> RTC0_IRQHandler

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

  - >> serial_command_handler
  - >> radio_tx_cb

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

  - >> serial_command_handler

  uECC_verify (Thumb, 540 bytes, Stack size 488 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 788
  - Call Chain = uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> vli_bytesToNative
  - >> vli_modMult_fast
  - >> vli_modSub
  - >> vli_cmp
  - >> vli_set
  - >> vli_testBit
  - >> vli_isZero
  - >> vli_clear
  - >> vli_modMult_n
  - >> XYcZ_add
  - >> apply_z
  - >> EccPoint_double_jacobian
  - >> vli_modInv
  - >> vli_sub
  - >> vli_numBits
  [Called By]
  - >> signature_check

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

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

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

  - >> signature_check

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

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

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

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

  SWI1_EGU1_IRQHandler (Thumb, 48 bytes, Stack size 8 bytes, serial_handler_uart.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = SWI1_EGU1_IRQHandler ⇒ fifo_pop
  [Calls]
  - >> fifo_pop
  [Address Reference Count : 1]
  - arm_startup_nrf52833.o(RESET)

  serial_handler_event_send (Thumb, 62 bytes, Stack size 48 bytes, serial_handler_uart.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = serial_handler_event_send ⇒ fifo_push
  [Calls]
  - >> fifo_is_full
  - >> fifo_push
  - >> __aeabi_memcpy
  - >> schedule_transmit
  [Called By]
  - >> mesh_aci_start
  - >> bl_evt_handler
  - >> mesh_aci_rbc_event_handler
  - >> serial_command_handler
  - >> char_rx
  - >> radio_tx_cb

  UARTE0_UART0_IRQHandler (Thumb, 104 bytes, Stack size 16 bytes, serial_handler_uart.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = UARTE0_UART0_IRQHandler ⇒ char_rx ⇒ serial_handler_event_send ⇒ fifo_push
  [Calls]
  - >> fifo_is_empty
  - >> char_rx
  - >> schedule_transmit
  [Called By]
  - >> serial_wait_for_completion
  [Address Reference Count : 1]
  - arm_startup_nrf52833.o(RESET)

  serial_handler_init (Thumb, 174 bytes, Stack size 16 bytes, serial_handler_uart.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = serial_handler_init
  [Calls]
  - >> fifo_init
  [Called By]
  - >> mesh_aci_init

  serial_handler_credit_available (Thumb, 8 bytes, Stack size 0 bytes, serial_handler_uart.o(.text))
  [Calls]

  - >> fifo_get_len
  [Called By]
  - >> mesh_aci_start

  serial_wait_for_completion (Thumb, 40 bytes, Stack size 16 bytes, serial_handler_uart.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = serial_wait_for_completion ⇒ UARTE0_UART0_IRQHandler ⇒ char_rx ⇒ serial_handler_event_send ⇒ fifo_push
  [Calls]
  - >> UARTE0_UART0_IRQHandler
  [Called By]
  - >> serial_command_handler

  serial_handler_command_get (Thumb, 62 bytes, Stack size 48 bytes, serial_handler_uart.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = serial_handler_command_get ⇒ fifo_pop
  [Calls]
  - >> fifo_pop
  - >> __aeabi_memcpy
  [Called By]
  - >> mesh_aci_command_check

  serial_handler_uart_disable (Thumb, 42 bytes, Stack size 0 bytes, serial_handler_uart.o(.text))
  [Called By]

  - >> bootloader_abort
  - >> SWI3_EGU3_IRQHandler

  mesh_aci_init (Thumb, 24 bytes, Stack size 0 bytes, mesh_aci.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = mesh_aci_init ⇒ serial_handler_init
  [Calls]
  - >> serial_handler_init
  [Called By]
  - >> bootloader_init

  mesh_aci_start (Thumb, 60 bytes, Stack size 40 bytes, mesh_aci.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = mesh_aci_start ⇒ serial_handler_event_send ⇒ fifo_push
  [Calls]
  - >> serial_handler_event_send
  - >> serial_handler_credit_available
  [Called By]
  - >> bootloader_enable

  mesh_aci_command_check (Thumb, 24 bytes, Stack size 40 bytes, mesh_aci.o(.text))
  [Stack]

  - Max Depth = 1108 + Unknown Stack Size
  - Call Chain = mesh_aci_command_check ⇒ serial_command_handler ⇒ bootloader_cmd_send ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> serial_command_handler
  - >> serial_handler_command_get
  [Called By]
  - >> SWI2_EGU2_IRQHandler

  mesh_aci_rbc_event_handler (Thumb, 72 bytes, Stack size 40 bytes, mesh_aci.o(.text), UNUSED)
  [Calls]

  - >> serial_handler_event_send
  - >> __aeabi_memcpy

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

  SystemInit (Thumb, 342 bytes, Stack size 12 bytes, system_nrf52833.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = SystemInit
  [Address Reference Count : 1]
  - arm_startup_nrf52833.o(.text)

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

  - arm_startup_nrf52833.o(RESET)

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

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

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

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

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

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

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

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

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

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

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

  - arm_startup_nrf52833.o(RESET)

  PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, arm_startup_nrf52833.o(.text))
  [Address Reference Count : 1]

  - arm_startup_nrf52833.o(RESET)

  SysTick_Handler (Thumb, 2 bytes, Stack size 0 bytes, arm_startup_nrf52833.o(.text))
  [Address Reference Count : 1]

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - arm_startup_nrf52833.o(RESET)

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

  - >> __user_setup_stackheap

  __aeabi_uldivmod (Thumb, 0 bytes, Stack size 48 bytes, lludivv7m.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = __aeabi_uldivmod
  [Called By]
  - >> bl_evt_handler

  _ll_udiv (Thumb, 238 bytes, Stack size 48 bytes, lludivv7m.o(.text), UNUSED)

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

  - >> segment_is_missing
  - >> dfu_transfer_get_oldest_missing_entry
  - >> dfu_transfer_data

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

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

  - Max Depth = 8
  - Call Chain = memcmp
  [Called By]
  - >> fwid_union_cmp
  - >> flash_bank_entry_fw

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

  - >> fifo_peek_at
  - >> dfu_transfer_has_entry
  - >> dfu_transfer_data
  - >> dfu_mesh_finalize
  - >> target_rx_data
  - >> beacon_set
  - >> serial_handler_event_send
  - >> fifo_push
  - >> fifo_pop
  - >> bl_evt_handler
  - >> mesh_aci_rbc_event_handler
  - >> serial_command_handler
  - >> serial_handler_command_get

  __rt_memcpy (Thumb, 138 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memcpy4

  _memcpy_lastbytes (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_v6.o(.text), UNUSED)

  __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_memcpy4
  [Called By]
  - >> dfu_mesh_finalize
  - >> flash_bank_entry
  - >> entry_write
  - >> flash_erase
  - >> flash_write
  - >> __rt_memcpy

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

  __rt_memcpy_w (Thumb, 100 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED)

  _memcpy_lastbytes_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_w.o(.text), UNUSED)

  __aeabi_memset (Thumb, 16 bytes, Stack size 0 bytes, aeabi_memset.o(.text))
  [Calls]

  - >> _memset
  [Called By]
  - >> dfu_mesh_finalize
  - >> start_target
  - >> flash_bank_entry
  - >> entry_write
  - >> SWI3_EGU3_IRQHandler

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

  - >> packet_cache_flush
  - >> target_rx_start
  - >> dfu_mesh_init
  - >> dfu_mesh_start

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

  - >> _memset_w

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

  - >> __aeabi_memset

  __aeabi_memclr4 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = __aeabi_memclr4
  [Called By]
  - >> dfu_transfer_init
  - >> sha256_final
  - >> start_find_fwid
  - >> beacon_set
  - >> dfu_mesh_init
  - >> bootloader_info_init
  - >> transport_init
  - >> dfu_mesh_start
  - >> bootloader_init

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

  __rt_memclr_w (Thumb, 78 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED)

  _memset_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED)
  [Called By]

  - >> __rt_memclr

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

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

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

  __user_setup_stackheap (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __user_setup_stackheap
  [Calls]
  - >> __user_perproc_libspace
  - >> __user_initial_stackheap
  [Called By]
  - >> __rt_entry_sh

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

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

  __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

  __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
  [Called By]

  - >> __user_setup_stackheap

  __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

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

  - >> __rt_exit_exit

  __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

  __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

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

  _fp_init (Thumb, 10 bytes, Stack size 0 bytes, fpinit.o(x$fpl$fpinit))
  [Called By]

  - >> __rt_lib_init_fp_1

  __fplib_config_fpu_vfp (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED)

  __fplib_config_pureend_doubles (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED)

  ### Local Symbols

  rx_cb (Thumb, 48 bytes, Stack size 32 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 1036 + Unknown Stack Size
  - Call Chain = rx_cb ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> mesh_packet_adv_data_get
  - >> bl_cmd_handler
  [Address Reference Count : 1]
  - bootloader.o(.text)

  bl_evt_handler (Thumb, 572 bytes, Stack size 48 bytes, bootloader.o(.text))
  [Stack]

  - Max Depth = 1052 + Unknown Stack Size
  - Call Chain = bl_evt_handler ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> transport_tx_abort
  - >> transport_tx
  - >> serial_handler_event_send
  - >> mesh_packet_set_local_addr
  - >> mesh_packet_ref_count_dec
  - >> mesh_packet_acquire
  - >> is_upgrade
  - >> fifo_push
  - >> dfu_mesh_start
  - >> dfu_mesh_app_is_valid
  - >> dfu_bank_flash
  - >> bootloader_info_entry_get
  - >> bl_cmd_handler
  - >> app_error_handler_bare
  - >> bootloader_abort
  - >> stop_timeout
  - >> set_timeout
  - >> __NVIC_SetPendingIRQ
  - >> __aeabi_memcpy
  - >> __aeabi_uldivmod
  [Address Reference Count : 1]
  - bootloader.o(.text)

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

  - >> bl_evt_handler

  set_timeout (Thumb, 38 bytes, Stack size 0 bytes, bootloader.o(.text))
  [Called By]

  - >> bootloader_enable
  - >> bl_evt_handler

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

  - >> bl_evt_handler

  info_entry_get (Thumb, 68 bytes, Stack size 16 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = info_entry_get
  [Called By]
  - >> entry_invalidate
  - >> bootloader_info_first_unused_get
  - >> bootloader_info_entry_get

  free_write_buffer (Thumb, 114 bytes, Stack size 24 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = free_write_buffer
  [Calls]
  - >> app_error_handler_bare
  [Called By]
  - >> bootloader_info_on_flash_op_end

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

  - >> get_write_buffer

  get_write_buffer (Thumb, 132 bytes, Stack size 24 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = get_write_buffer
  [Calls]
  - >> place_head_after_entry
  [Called By]
  - >> entry_write

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

  - Max Depth = 72
  - Call Chain = copy_page_write_meta ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> flash_write
  [Called By]
  - >> copy_page_on_flash_op_end
  - >> bootloader_info_on_flash_idle

  copy_page_write_next_data (Thumb, 108 bytes, Stack size 16 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = copy_page_write_next_data ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> flash_write
  - >> app_error_handler_bare
  [Called By]
  - >> copy_page_on_flash_op_end

  copy_page (Thumb, 42 bytes, Stack size 16 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = copy_page ⇒ flash_erase ⇒ __aeabi_memcpy4
  [Calls]
  - >> flash_erase
  [Called By]
  - >> bootloader_info_reset
  - >> bootloader_info_on_flash_op_end

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

  - Max Depth = 72
  - Call Chain = entry_header_invalidate ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> flash_write
  - >> app_error_handler_bare
  [Called By]
  - >> entry_invalidate
  - >> bootloader_info_entry_put

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

  - >> entry_invalidate
  - >> bootloader_info_first_unused_get
  - >> bootloader_info_entry_put
  - >> bootloader_info_entry_overwrite

  bootloader_info_first_unused_get (Thumb, 22 bytes, Stack size 8 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = bootloader_info_first_unused_get ⇒ info_entry_get
  [Calls]
  - >> bootloader_info_header_get
  - >> info_entry_get
  [Called By]
  - >> bootloader_info_on_flash_op_end
  - >> bootloader_info_init

  copy_page_on_flash_op_end (Thumb, 84 bytes, Stack size 8 bytes, bootloader_info.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = copy_page_on_flash_op_end ⇒ copy_page_write_next_data ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> copy_page_write_next_data
  - >> copy_page_write_meta
  [Called By]
  - >> bootloader_info_on_flash_op_end

  flash_bank_entry_fw (Thumb, 332 bytes, Stack size 64 bytes, dfu_bank.o(.text))
  [Stack]

  - Max Depth = 176 + Unknown Stack Size
  - Call Chain = flash_bank_entry_fw ⇒ bootloader_info_entry_overwrite ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> bootloader_is_in_application
  - >> bootloader_evt_send
  - >> interrupts_disable
  - >> bootloader_info_entry_overwrite
  - >> bootloader_info_entry_get
  - >> app_error_handler_bare
  - >> memcmp
  [Called By]
  - >> flash_bank_entry

  flash_bank_entry (Thumb, 330 bytes, Stack size 280 bytes, dfu_bank.o(.text))
  [Stack]

  - Max Depth = 456 + Unknown Stack Size
  - Call Chain = flash_bank_entry ⇒ flash_bank_entry_fw ⇒ bootloader_info_entry_overwrite ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> flash_bank_entry_fw
  - >> bootloader_info_entry_put
  - >> bootloader_info_entry_invalidate
  - >> bootloader_info_entry_overwrite
  - >> bootloader_info_entry_get
  - >> app_error_handler_bare
  - >> __aeabi_memset
  - >> __aeabi_memcpy4
  [Called By]
  - >> dfu_bank_on_flash_idle
  - >> dfu_bank_scan
  - >> dfu_bank_flash

  get_info_pointers (Thumb, 98 bytes, Stack size 8 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = get_info_pointers ⇒ send_end_evt
  [Calls]
  - >> send_end_evt
  - >> bootloader_info_entry_get
  [Called By]
  - >> dfu_mesh_on_flash_idle
  - >> dfu_mesh_init
  - >> dfu_mesh_start

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

  - >> handle_data_packet
  - >> target_rx_start

  packet_tx_dynamic (Thumb, 64 bytes, Stack size 56 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = packet_tx_dynamic
  [Calls]
  - >> bootloader_evt_send
  [Called By]
  - >> handle_data_req_packet
  - >> relay_packet

  signature_check (Thumb, 148 bytes, Stack size 160 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 948
  - Call Chain = signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> uECC_verify
  - >> sha256_update
  - >> sha256_init
  - >> sha256_final
  - >> dfu_transfer_sha256
  [Called By]
  - >> dfu_mesh_timeout

  beacon_set (Thumb, 240 bytes, Stack size 80 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 84
  - Call Chain = beacon_set ⇒ __aeabi_memclr4
  [Calls]
  - >> bootloader_evt_send
  - >> __aeabi_memclr4
  - >> __aeabi_memcpy
  [Called By]
  - >> start_ready
  - >> start_find_fwid
  - >> handle_state_packet
  - >> start_req
  - >> dfu_mesh_relay

  relay_packet (Thumb, 44 bytes, Stack size 16 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = relay_packet ⇒ packet_tx_dynamic
  [Calls]
  - >> packet_cache_put
  - >> packet_tx_dynamic
  [Called By]
  - >> handle_data_req_packet
  - >> handle_data_packet
  - >> dfu_mesh_rx

  start_req (Thumb, 66 bytes, Stack size 16 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 100
  - Call Chain = start_req ⇒ beacon_set ⇒ __aeabi_memclr4
  [Calls]
  - >> fwid_union_cpy
  - >> state_beacon_type
  - >> beacon_set
  [Called By]
  - >> handle_data_packet
  - >> target_rx_start
  - >> start_target
  - >> dfu_mesh_timeout
  - >> dfu_mesh_req

  start_target (Thumb, 432 bytes, Stack size 192 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 320 + Unknown Stack Size
  - Call Chain = start_target ⇒ bootloader_info_entry_put ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> section_overlap
  - >> dfu_transfer_start
  - >> start_req
  - >> bootloader_info_entry_put
  - >> bootloader_info_entry_invalidate
  - >> bootloader_evt_send
  - >> bootloader_info_entry_overwrite
  - >> bootloader_info_entry_get
  - >> app_error_handler_bare
  - >> __aeabi_memset
  [Called By]
  - >> target_rx_start

  notify_state_packet (Thumb, 56 bytes, Stack size 40 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = notify_state_packet
  [Calls]
  - >> fwid_union_cpy
  - >> bootloader_evt_send
  [Called By]
  - >> handle_state_packet

  target_rx_start (Thumb, 274 bytes, Stack size 32 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 352 + Unknown Stack Size
  - Call Chain = target_rx_start ⇒ start_target ⇒ bootloader_info_entry_put ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> tid_cache_entry_put
  - >> section_overlap
  - >> packet_cache_flush
  - >> start_find_fwid
  - >> start_target
  - >> start_req
  - >> segment_count_from_start_packet
  - >> send_end_evt
  - >> app_error_handler_bare
  - >> __aeabi_memclr
  [Called By]
  - >> handle_data_packet

  target_rx_data (Thumb, 204 bytes, Stack size 72 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 208
  - Call Chain = target_rx_data ⇒ request_missing_data ⇒ dfu_transfer_get_oldest_missing_entry
  [Calls]
  - >> dfu_transfer_data
  - >> addr_from_seg
  - >> request_missing_data
  - >> send_progress_event
  - >> bootloader_evt_send
  - >> __aeabi_memcpy
  [Called By]
  - >> handle_data_packet

  handle_data_packet (Thumb, 342 bytes, Stack size 72 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 424 + Unknown Stack Size
  - Call Chain = handle_data_packet ⇒ target_rx_start ⇒ start_target ⇒ bootloader_info_entry_put ⇒ entry_write ⇒ flash_write ⇒ __aeabi_memcpy4
  [Calls]
  - >> tid_cache_entry_put
  - >> packet_in_cache
  - >> packet_cache_put
  - >> send_progress_event
  - >> target_rx_data
  - >> target_rx_start
  - >> start_req
  - >> relay_packet
  - >> segment_count_from_start_packet
  - >> tx_abort
  - >> bootloader_evt_send
  [Called By]
  - >> dfu_mesh_rx

  handle_state_packet (Thumb, 230 bytes, Stack size 24 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 124
  - Call Chain = handle_state_packet ⇒ start_ready ⇒ beacon_set ⇒ __aeabi_memclr4
  [Calls]
  - >> ready_packet_matches_our_req
  - >> fwid_union_id_cmp
  - >> fwid_union_cmp
  - >> start_ready
  - >> state_beacon_type
  - >> notify_state_packet
  - >> beacon_set
  [Called By]
  - >> dfu_mesh_rx

  handle_data_req_packet (Thumb, 224 bytes, Stack size 64 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = handle_data_req_packet ⇒ relay_packet ⇒ packet_tx_dynamic
  [Calls]
  - >> packet_in_cache
  - >> dfu_transfer_has_entry
  - >> relay_packet
  - >> packet_tx_dynamic
  - >> bootloader_evt_send
  [Called By]
  - >> dfu_mesh_rx

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

  - >> start_ready
  - >> handle_state_packet
  - >> start_req
  - >> dfu_mesh_relay

  send_progress_event (Thumb, 26 bytes, Stack size 40 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = send_progress_event
  [Calls]
  - >> bootloader_evt_send
  [Called By]
  - >> handle_data_packet
  - >> target_rx_data
  - >> dfu_mesh_rx

  send_bank_notifications (Thumb, 122 bytes, Stack size 80 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = send_bank_notifications ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> fwid_union_cpy
  - >> bootloader_evt_send
  - >> bootloader_info_entry_get
  [Called By]
  - >> dfu_mesh_start

  start_find_fwid (Thumb, 26 bytes, Stack size 8 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 92
  - Call Chain = start_find_fwid ⇒ beacon_set ⇒ __aeabi_memclr4
  [Calls]
  - >> beacon_set
  - >> __aeabi_memclr4
  [Called By]
  - >> target_rx_start
  - >> dfu_mesh_restart
  - >> dfu_mesh_start

  start_ready (Thumb, 82 bytes, Stack size 16 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 100
  - Call Chain = start_ready ⇒ beacon_set ⇒ __aeabi_memclr4
  [Calls]
  - >> state_beacon_type
  - >> beacon_set
  - >> app_error_handler_bare
  [Called By]
  - >> handle_state_packet

  request_missing_data (Thumb, 138 bytes, Stack size 88 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 136
  - Call Chain = request_missing_data ⇒ dfu_transfer_get_oldest_missing_entry
  [Calls]
  - >> dfu_transfer_get_oldest_missing_entry
  - >> bootloader_evt_send
  [Called By]
  - >> target_rx_data

  handle_fwid_packet (Thumb, 162 bytes, Stack size 56 bytes, dfu_mesh.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = handle_fwid_packet ⇒ bootloader_is_newer ⇒ bootloader_info_entry_get ⇒ info_entry_get
  [Calls]
  - >> bootloader_is_newer
  - >> app_is_newer
  - >> bootloader_evt_send
  [Called By]
  - >> dfu_mesh_rx

  segment_is_missing (Thumb, 44 bytes, Stack size 8 bytes, dfu_transfer_mesh.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = segment_is_missing
  [Calls]
  - >> __aeabi_llsl
  [Called By]
  - >> dfu_transfer_has_entry
  - >> dfu_transfer_data

  transfer_abort (Thumb, 12 bytes, Stack size 0 bytes, dfu_transfer_mesh.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = transfer_abort ⇒ send_end_evt
  [Calls]
  - >> send_end_evt
  [Called By]
  - >> dfu_transfer_data

  setup_event (Thumb, 162 bytes, Stack size 32 bytes, radio_control.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = setup_event
  [Called By]
  - >> radio_event_handler

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

  - >> radio_order
  - >> radio_init

  set_next_tx (Thumb, 124 bytes, Stack size 16 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = set_next_tx ⇒ rand_prng_get
  [Calls]
  - >> rand_prng_get
  [Called By]
  - >> transport_rtc_irq_handler
  - >> transport_tx

  order_scan (Thumb, 52 bytes, Stack size 16 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = order_scan ⇒ radio_order ⇒ fifo_push
  [Calls]
  - >> mesh_packet_ref_count_dec
  - >> mesh_packet_acquire
  - >> radio_order
  [Called By]
  - >> transport_start
  - >> radio_idle_cb

  radio_tx_cb (Thumb, 66 bytes, Stack size 40 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = radio_tx_cb ⇒ serial_handler_event_send ⇒ fifo_push
  [Calls]
  - >> serial_handler_event_send
  - >> mesh_packet_ref_count_dec
  - >> mesh_packet_adv_data_get
  - >> transport_tx_evt_get
  [Address Reference Count : 1]
  - transport.o(.text)

  radio_rx_cb (Thumb, 38 bytes, Stack size 24 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = radio_rx_cb ⇒ fifo_push
  [Calls]
  - >> mesh_packet_ref_count_dec
  - >> fifo_push
  [Address Reference Count : 1]
  - transport.o(.text)

  radio_idle_cb (Thumb, 12 bytes, Stack size 0 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = radio_idle_cb ⇒ order_scan ⇒ radio_order ⇒ fifo_push
  [Calls]
  - >> order_scan
  [Address Reference Count : 1]
  - transport.o(.text)

  order_next_rtc (Thumb, 92 bytes, Stack size 20 bytes, transport.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = order_next_rtc
  [Called By]
  - >> transport_rtc_irq_handler
  - >> transport_tx_abort
  - >> transport_tx

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

  - >> transport_tx_abort
  - >> transport_init

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

  - >> transport_tx_abort

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

  - >> transport_init

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

  - >> uECC_verify

  vli_add (Thumb, 50 bytes, Stack size 16 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = vli_add
  [Called By]
  - >> vli_modSub
  - >> vli_modAdd
  - >> EccPoint_double_jacobian
  - >> vli_modInv
  - >> vli_mmod_fast

  vli_sub (Thumb, 50 bytes, Stack size 16 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = vli_sub
  [Called By]
  - >> uECC_verify
  - >> vli_modSub
  - >> vli_modAdd
  - >> vli_modInv
  - >> vli_mmod_fast

  muladd (Thumb, 42 bytes, Stack size 20 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = muladd
  [Called By]
  - >> vli_mult

  vli_mult (Thumb, 152 bytes, Stack size 48 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 68
  - Call Chain = vli_mult ⇒ muladd
  [Calls]
  - >> muladd
  [Called By]
  - >> vli_modMult_fast
  - >> vli_modMult_n

  vli_mmod_fast (Thumb, 398 bytes, Stack size 56 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = vli_mmod_fast ⇒ vli_sub
  [Calls]
  - >> vli_cmp
  - >> vli_set
  - >> vli_sub
  - >> vli_add
  [Called By]
  - >> vli_modMult_fast

  vli_modInv (Thumb, 286 bytes, Stack size 144 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = vli_modInv ⇒ vli_sub
  [Calls]
  - >> vli_rshift1
  - >> vli_cmp
  - >> vli_set
  - >> vli_isZero
  - >> vli_clear
  - >> vli_sub
  - >> vli_add
  [Called By]
  - >> uECC_verify

  EccPoint_double_jacobian (Thumb, 284 bytes, Stack size 88 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 232
  - Call Chain = EccPoint_double_jacobian ⇒ vli_modMult_fast ⇒ vli_mmod_fast ⇒ vli_sub
  [Calls]
  - >> vli_modMult_fast
  - >> vli_modSub
  - >> vli_modAdd
  - >> vli_rshift1
  - >> vli_set
  - >> vli_testBit
  - >> vli_isZero
  - >> vli_add
  [Called By]
  - >> uECC_verify

  apply_z (Thumb, 52 bytes, Stack size 48 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 192
  - Call Chain = apply_z ⇒ vli_modMult_fast ⇒ vli_mmod_fast ⇒ vli_sub
  [Calls]
  - >> vli_modMult_fast
  [Called By]
  - >> uECC_verify

  XYcZ_add (Thumb, 166 bytes, Stack size 56 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 200
  - Call Chain = XYcZ_add ⇒ vli_modMult_fast ⇒ vli_mmod_fast ⇒ vli_sub
  [Calls]
  - >> vli_modMult_fast
  - >> vli_modSub
  - >> vli_set
  [Called By]
  - >> uECC_verify

  vli_modMult_n (Thumb, 166 bytes, Stack size 232 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 300
  - Call Chain = vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> vli_rshift1
  - >> vli_set
  - >> vli_clear
  - >> vli_mult
  [Called By]
  - >> uECC_verify

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

  - >> uECC_verify
  - >> vli_modMult_n
  - >> vli_modInv

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

  - >> uECC_verify
  - >> EccPoint_double_jacobian
  - >> vli_modInv

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

  - >> uECC_verify
  - >> EccPoint_double_jacobian

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

  - >> uECC_verify
  - >> vli_modMult_n
  - >> XYcZ_add
  - >> EccPoint_double_jacobian
  - >> vli_modInv
  - >> vli_mmod_fast

  vli_cmp (Thumb, 38 bytes, Stack size 8 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = vli_cmp
  [Called By]
  - >> uECC_verify
  - >> vli_modAdd
  - >> vli_modInv
  - >> vli_mmod_fast

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

  - >> vli_modMult_n
  - >> EccPoint_double_jacobian
  - >> vli_modInv

  vli_modAdd (Thumb, 40 bytes, Stack size 16 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = vli_modAdd ⇒ vli_sub
  [Calls]
  - >> vli_cmp
  - >> vli_sub
  - >> vli_add
  [Called By]
  - >> EccPoint_double_jacobian

  vli_modSub (Thumb, 30 bytes, Stack size 16 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = vli_modSub ⇒ vli_sub
  [Calls]
  - >> vli_sub
  - >> vli_add
  [Called By]
  - >> uECC_verify
  - >> XYcZ_add
  - >> EccPoint_double_jacobian

  vli_modMult_fast (Thumb, 24 bytes, Stack size 72 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = vli_modMult_fast ⇒ vli_mmod_fast ⇒ vli_sub
  [Calls]
  - >> vli_mmod_fast
  - >> vli_mult
  [Called By]
  - >> uECC_verify
  - >> XYcZ_add
  - >> apply_z
  - >> EccPoint_double_jacobian

  vli_bytesToNative (Thumb, 36 bytes, Stack size 8 bytes, uECC.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = vli_bytesToNative
  [Called By]
  - >> uECC_verify

  schedule_transmit (Thumb, 26 bytes, Stack size 0 bytes, serial_handler_uart.o(.text))
  [Calls]

  - >> __NVIC_SetPendingIRQ
  [Called By]
  - >> serial_handler_event_send
  - >> UARTE0_UART0_IRQHandler

  char_rx (Thumb, 124 bytes, Stack size 48 bytes, serial_handler_uart.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = char_rx ⇒ serial_handler_event_send ⇒ fifo_push
  [Calls]
  - >> fifo_is_full
  - >> serial_handler_event_send
  - >> fifo_push
  - >> __NVIC_SetPendingIRQ
  [Called By]
  - >> UARTE0_UART0_IRQHandler

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

  - >> char_rx
  - >> schedule_transmit

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

  - >> serial_command_handler

  serial_command_handler (Thumb, 326 bytes, Stack size 64 bytes, mesh_aci.o(.text))
  [Stack]

  - Max Depth = 1068 + Unknown Stack Size
  - Call Chain = serial_command_handler ⇒ bootloader_cmd_send ⇒ bl_cmd_handler ⇒ dfu_mesh_timeout ⇒ signature_check ⇒ uECC_verify ⇒ vli_modMult_n ⇒ vli_mult ⇒ muladd
  [Calls]
  - >> serial_handler_event_send
  - >> bootloader_cmd_send
  - >> __aeabi_memcpy
  - >> error_code_translate
  - >> serial_wait_for_completion
  - >> transport_tx_evt_set
  - >> transport_tx_evt_get
  [Called By]
  - >> mesh_aci_command_check

  ### Undefined Global Symbols

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