Static Call Graph - [.\Objects\slboot.axf]

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

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Tue Nov 08 14:54:41 2022

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

### Call chain for Maximum Stack Depth:

main ⇒ slboot_main ⇒ slb_boot_load_exch_zone ⇒ slb_apply_exch_zone_to_fw ⇒ ota_flash_erase ⇒ hal_flash_erase_sector ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x

### Mutually Recursive functions

- SVC_Handler ⇒ SVC_Handler
- SysTick_Handler ⇒ SysTick_Handler
- AACI_IRQHandler ⇒ AACI_IRQHandler

  ### Function Pointers

  - AACI_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - CAN_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - CHLCD_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - CLCD_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - CPU_CLCD_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - ENET_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - FLEXRAY_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - HardFault_Handler from bb_rom_sym_m0.txt(ABSOLUTE) referenced from startup_armcm0.o(RESET)
  - I2C_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - LIN_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - MCIA_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - MCIB_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - NMI_Handler from bb_rom_sym_m0.txt(ABSOLUTE) referenced from startup_armcm0.o(RESET)
  - PendSV_Handler from bb_rom_sym_m0.txt(ABSOLUTE) referenced from startup_armcm0.o(RESET)
  - RTC_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - Reset_Handler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - SPI_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - SVC_Handler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - SysTick_Handler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - SystemInit from system_armcm0.o(i.SystemInit) referenced from startup_armcm0.o(.text)
  - TIM0_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - TIM2_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - UART0_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - UART1_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - UART2_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - UART3_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - UART4_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - USBDC_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - USBHC_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - WDT_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_armcm0.o(.text)
  - _hard_fault from jump_table.o(i._hard_fault) referenced from jump_table.o(.emb_text)
  - hal_UART0_IRQHandler from uart.o(i.hal_UART0_IRQHandler) referenced from jump_table.o(jump_table_mem_area)
  - hal_pwrmgr_sleep_process from pwrmgr.o(i.hal_pwrmgr_sleep_process) referenced from jump_table.o(jump_table_mem_area)
  - hal_pwrmgr_wakeup_process from pwrmgr.o(i.hal_pwrmgr_wakeup_process) referenced from jump_table.o(jump_table_mem_area)
  - hard_fault from jump_table.o(.emb_text) referenced from jump_table.o(jump_table_mem_area)
  - hw_spif_cache_config from flash.o(i.hw_spif_cache_config) referenced from flash.o(i.hal_spif_cache_init)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - osalInitTasks from slboot.o(i.osalInitTasks) referenced from jump_table.o(jump_table_mem_area)
  - rf_phy_ini from rf_phy_driver.o(i.rf_phy_ini) referenced from jump_table.o(jump_table_mem_area)

  ### Global Symbols

  __aeabi_memcpy (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> slb_spif_read (via Veneer)

  __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> hal_low_power_io_init (via Veneer)

  __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> hal_pwrmgr_init (via Veneer)
  - >> hal_gpio_init (via Veneer)

  strcmp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> slb_boot_load_exch_zone (via Veneer)

  HardFault_Handler (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE), UNUSED)
  [Address Reference Count : 1]

  - startup_armcm0.o(RESET)

  LL_ENC_AES128_Encrypt0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> finidv (via Veneer)

  NMI_Handler (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE), UNUSED)
  [Address Reference Count : 1]

  - startup_armcm0.o(RESET)

  PendSV_Handler (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE), UNUSED)
  [Address Reference Count : 1]

  - startup_armcm0.o(RESET)

  WaitRTCCount (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> _spif_wait_nobusy_x (via Veneer)

  disableSleep (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> hal_pwrmgr_init (via Veneer)
  - >> hal_pwrmgr_unlock (via Veneer)

  drv_disable_irq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> run_application (via Veneer)
  - >> hal_flash_write_by_dma (via Veneer)
  - >> hal_flash_erase_sector (via Veneer)
  - >> hal_cache_tag_flush (via Veneer)
  - >> spif_unlock (via Veneer)
  - >> spif_lock (via Veneer)
  - >> hal_pwrmgr_unlock (via Veneer)

  drv_enable_irq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> run_application (via Veneer)
  - >> hal_flash_write_by_dma (via Veneer)
  - >> hal_flash_erase_sector (via Veneer)
  - >> hal_cache_tag_flush (via Veneer)
  - >> spif_unlock (via Veneer)
  - >> spif_lock (via Veneer)
  - >> hal_pwrmgr_unlock (via Veneer)

  drv_irq_init (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> main (via Veneer)

  efuse_read (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> _efuse_chip_version_check (via Veneer)
  - >> finidv (via Veneer)
  - >> _rom_efuse_version_init (via Veneer)

  enableSleep (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> hal_pwrmgr_init (via Veneer)
  - >> hal_pwrmgr_unlock (via Veneer)

  rom_uart_init (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> _hard_fault (via Veneer)

  ll_hw_set_crc_fmt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> rf_phy_bb_cfg (via Veneer)

  ll_hw_tx2rx_timing_config (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> rf_phy_ini (via Veneer)

  log_printf (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> _hard_fault (via Veneer)

  osal_memcmp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> finidv (via Veneer)

  phy_sec_decrypt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> flash_load_parition (via Veneer)

  phy_sec_encrypt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> flash_check_parition (via Veneer)

  rtc_get_counter (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> _hard_fault (via Veneer)

  spif_cmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> _spif_read_status_reg_x (via Veneer)

  spif_config (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> hw_spif_cache_config (via Veneer)

  spif_erase_sector (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> hal_flash_erase_sector (via Veneer)

  spif_rddata (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> _spif_read_status_reg_x (via Veneer)

  spif_read_id (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> hw_spif_cache_config (via Veneer)

  spif_write_dma (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
  [Called By]

  - >> hal_flash_write_by_dma (via Veneer)

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

  - startup_armcm0.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_lib_shutdown_fini (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
  [Calls]

  - >> __arm_fini_ (Weak Reference)

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

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

  hard_fault (Thumb, 44 bytes, Stack size 0 bytes, jump_table.o(.emb_text))
  [Address Reference Count : 1]

  - jump_table.o(jump_table_mem_area)

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

  - startup_armcm0.o(RESET)

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

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

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

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

  AACI_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_armcm0.o(.text))
  [Calls]

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

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  - startup_armcm0.o(RESET)

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

  __decompress (Thumb, 0 bytes, Stack size unknown bytes, __dczerorl.o(.text), UNUSED)

  __decompress0 (Thumb, 58 bytes, Stack size unknown bytes, __dczerorl.o(.text), UNUSED)

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

  - startup_armcm0.o(.text)

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

  _efuse_chip_version_check (Thumb, 26 bytes, Stack size 16 bytes, phy_sec_ext.o(i._efuse_chip_version_check))
  [Stack]

  - Max Depth = 72
  - Call Chain = _efuse_chip_version_check ⇒ finidv
  [Calls]
  - >> efuse_read (via Veneer)
  - >> finidv
  [Called By]
  - >> _rom_sec_boot_init

  _hard_fault (Thumb, 210 bytes, Stack size 8 bytes, jump_table.o(i._hard_fault))
  [Stack]

  - Max Depth = 8
  - Call Chain = _hard_fault
  [Calls]
  - >> rtc_get_counter (via Veneer)
  - >> rom_uart_init (via Veneer)
  - >> log_printf (via Veneer)
  - >> hal_system_soft_reset
  [Address Reference Count : 1]
  - jump_table.o(.emb_text)

  _rom_efuse_version_init (Thumb, 18 bytes, Stack size 16 bytes, phy_sec_ext.o(i._rom_efuse_version_init))
  [Stack]

  - Max Depth = 28
  - Call Chain = _rom_efuse_version_init ⇒ lib_efuse_load
  [Calls]
  - >> efuse_read (via Veneer)
  - >> lib_efuse_load
  [Called By]
  - >> hal_rom_boot_init

  _rom_sec_boot_init (Thumb, 22 bytes, Stack size 8 bytes, phy_sec_ext.o(i._rom_sec_boot_init))
  [Stack]

  - Max Depth = 80
  - Call Chain = _rom_sec_boot_init ⇒ _efuse_chip_version_check ⇒ finidv
  [Calls]
  - >> _efuse_chip_version_check
  - >> efuse_init
  [Called By]
  - >> hal_rom_boot_init

  clk_init (Thumb, 108 bytes, Stack size 32 bytes, patch.o(i.clk_init))
  [Stack]

  - Max Depth = 80
  - Call Chain = clk_init ⇒ _clk_apply_setting1
  [Calls]
  - >> _clk_apply_setting1
  [Called By]
  - >> main

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

  - >> _rom_sec_boot_init

  finidv (Thumb, 126 bytes, Stack size 56 bytes, phy_sec_ext.o(i.finidv))
  [Stack]

  - Max Depth = 56
  - Call Chain = finidv
  [Calls]
  - >> efuse_read (via Veneer)
  - >> LL_ENC_AES128_Encrypt0 (via Veneer)
  - >> osal_memcmp (via Veneer)
  [Called By]
  - >> is_crypto_app
  - >> _efuse_chip_version_check

  hal_GPIO_IRQHandler (Thumb, 20 bytes, Stack size 8 bytes, gpio.o(i.hal_GPIO_IRQHandler), UNUSED, KEPT)
  [Stack]

  - Max Depth = 48
  - Call Chain = hal_GPIO_IRQHandler ⇒ hal_gpioin_event ⇒ hal_gpio_interrupt_enable
  [Calls]
  - >> hal_gpioin_event

  hal_UART0_IRQHandler (Thumb, 62 bytes, Stack size 8 bytes, uart.o(i.hal_UART0_IRQHandler))
  [Stack]

  - Max Depth = 64
  - Call Chain = hal_UART0_IRQHandler ⇒ irq_rx_handler
  [Calls]
  - >> irq_tx_empty_handler
  - >> irq_rx_handler
  [Address Reference Count : 1]
  - jump_table.o(jump_table_mem_area)

  hal_UART1_IRQHandler (Thumb, 62 bytes, Stack size 8 bytes, uart.o(i.hal_UART1_IRQHandler), UNUSED, KEPT)
  [Stack]

  - Max Depth = 64
  - Call Chain = hal_UART1_IRQHandler ⇒ irq_rx_handler
  [Calls]
  - >> irq_tx_empty_handler
  - >> irq_rx_handler

  hal_cache_tag_flush (Thumb, 66 bytes, Stack size 16 bytes, flash.o(i.hal_cache_tag_flush))
  [Stack]

  - Max Depth = 16
  - Call Chain = hal_cache_tag_flush
  [Calls]
  - >> drv_enable_irq (via Veneer)
  - >> drv_disable_irq (via Veneer)
  [Called By]
  - >> hal_flash_erase_sector
  - >> hw_spif_cache_config

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

  - >> hw_spif_cache_config

  hal_flash_erase_sector (Thumb, 172 bytes, Stack size 40 bytes, flash.o(i.hal_flash_erase_sector))
  [Stack]

  - Max Depth = 88
  - Call Chain = hal_flash_erase_sector ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> drv_enable_irq (via Veneer)
  - >> drv_disable_irq (via Veneer)
  - >> spif_erase_sector (via Veneer)
  - >> hal_cache_tag_flush
  - >> _spif_wait_nobusy_x
  - >> spif_unlock
  - >> spif_lock
  [Called By]
  - >> slb_spif_erase
  - >> ota_flash_erase

  hal_flash_write_by_dma (Thumb, 178 bytes, Stack size 48 bytes, flash.o(i.hal_flash_write_by_dma))
  [Stack]

  - Max Depth = 96
  - Call Chain = hal_flash_write_by_dma ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> drv_enable_irq (via Veneer)
  - >> drv_disable_irq (via Veneer)
  - >> spif_write_dma (via Veneer)
  - >> _spif_wait_nobusy_x
  - >> spif_unlock
  - >> spif_lock
  [Called By]
  - >> slb_spif_write

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

  - Max Depth = 8
  - Call Chain = hal_gpio_init
  [Calls]
  - >> __aeabi_memclr4 (via Veneer)
  [Called By]
  - >> main

  hal_gpio_pull_set (Thumb, 76 bytes, Stack size 16 bytes, gpio.o(i.hal_gpio_pull_set))
  [Stack]

  - Max Depth = 16
  - Call Chain = hal_gpio_pull_set
  [Called By]
  - >> hal_rtc_clock_config
  - >> hal_low_power_io_init

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

  - >> hal_low_power_io_init

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

  - >> hal_low_power_io_init

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

  - >> hal_low_power_io_init

  hal_pwrmgr_init (Thumb, 40 bytes, Stack size 8 bytes, pwrmgr.o(i.hal_pwrmgr_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = hal_pwrmgr_init
  [Calls]
  - >> __aeabi_memclr4 (via Veneer)
  - >> enableSleep (via Veneer)
  - >> disableSleep (via Veneer)
  [Called By]
  - >> main

  hal_pwrmgr_register (Thumb, 56 bytes, Stack size 12 bytes, pwrmgr.o(i.hal_pwrmgr_register))
  [Stack]

  - Max Depth = 12
  - Call Chain = hal_pwrmgr_register
  [Called By]
  - >> hal_spif_cache_init

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

  - jump_table.o(jump_table_mem_area)

  hal_pwrmgr_unlock (Thumb, 94 bytes, Stack size 16 bytes, pwrmgr.o(i.hal_pwrmgr_unlock))
  [Stack]

  - Max Depth = 16
  - Call Chain = hal_pwrmgr_unlock
  [Calls]
  - >> drv_enable_irq (via Veneer)
  - >> drv_disable_irq (via Veneer)
  - >> enableSleep (via Veneer)
  - >> disableSleep (via Veneer)
  [Called By]
  - >> irq_tx_empty_handler

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

  - jump_table.o(jump_table_mem_area)

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

  - >> hal_rfphy_init

  hal_rom_boot_init (Thumb, 12 bytes, Stack size 8 bytes, patch.o(i.hal_rom_boot_init))
  [Stack]

  - Max Depth = 88
  - Call Chain = hal_rom_boot_init ⇒ _rom_sec_boot_init ⇒ _efuse_chip_version_check ⇒ finidv
  [Calls]
  - >> _rom_sec_boot_init
  - >> _rom_efuse_version_init
  [Called By]
  - >> hal_rfphy_init

  hal_rtc_clock_config (Thumb, 118 bytes, Stack size 16 bytes, clock.o(i.hal_rtc_clock_config))
  [Stack]

  - Max Depth = 32
  - Call Chain = hal_rtc_clock_config ⇒ hal_gpio_pull_set
  [Calls]
  - >> hal_gpio_pull_set
  [Called By]
  - >> main

  hal_spif_cache_init (Thumb, 24 bytes, Stack size 8 bytes, flash.o(i.hal_spif_cache_init))
  [Stack]

  - Max Depth = 48
  - Call Chain = hal_spif_cache_init ⇒ hw_spif_cache_config ⇒ hal_cache_tag_flush
  [Calls]
  - >> hw_spif_cache_config
  - >> hal_pwrmgr_register
  [Called By]
  - >> main

  lib_efuse_load (Thumb, 168 bytes, Stack size 12 bytes, lib_efuse3.o(i.lib_efuse_load))
  [Stack]

  - Max Depth = 12
  - Call Chain = lib_efuse_load
  [Called By]
  - >> _rom_efuse_version_init

  ll_patch_restore (Thumb, 88 bytes, Stack size 20 bytes, patch.o(i.ll_patch_restore))
  [Stack]

  - Max Depth = 20
  - Call Chain = ll_patch_restore
  [Called By]
  - >> spif_unlock
  - >> spif_lock

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

  - Max Depth = 256
  - Call Chain = main ⇒ slboot_main ⇒ slb_boot_load_exch_zone ⇒ slb_apply_exch_zone_to_fw ⇒ ota_flash_erase ⇒ hal_flash_erase_sector ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> slboot_main
  - >> hal_spif_cache_init
  - >> hal_rtc_clock_config
  - >> hal_pwrmgr_init
  - >> hal_gpio_init
  - >> drv_irq_init (via Veneer)
  - >> clk_init
  - >> hal_rfphy_init
  - >> hal_low_power_io_init
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  osalInitTasks (Thumb, 2 bytes, Stack size 0 bytes, slboot.o(i.osalInitTasks))
  [Address Reference Count : 1]

  - jump_table.o(jump_table_mem_area)

  ota_flash_erase (Thumb, 44 bytes, Stack size 24 bytes, ota_flash.o(i.ota_flash_erase))
  [Stack]

  - Max Depth = 112
  - Call Chain = ota_flash_erase ⇒ hal_flash_erase_sector ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> hal_flash_erase_sector
  [Called By]
  - >> slb_apply_exch_zone_to_fw

  rf_phy_ana_cfg (Thumb, 232 bytes, Stack size 12 bytes, rf_phy_driver.o(i.rf_phy_ana_cfg))
  [Stack]

  - Max Depth = 12
  - Call Chain = rf_phy_ana_cfg
  [Called By]
  - >> rf_phy_ini

  rf_phy_bb_cfg (Thumb, 310 bytes, Stack size 24 bytes, rf_phy_driver.o(i.rf_phy_bb_cfg))
  [Stack]

  - Max Depth = 24
  - Call Chain = rf_phy_bb_cfg
  [Calls]
  - >> ll_hw_set_crc_fmt (via Veneer)
  [Called By]
  - >> rf_phy_ini

  rf_phy_ini (Thumb, 42 bytes, Stack size 8 bytes, rf_phy_driver.o(i.rf_phy_ini))
  [Stack]

  - Max Depth = 32
  - Call Chain = rf_phy_ini ⇒ rf_phy_bb_cfg
  [Calls]
  - >> ll_hw_tx2rx_timing_config (via Veneer)
  - >> rf_phy_set_txPower
  - >> rf_phy_bb_cfg
  - >> rf_phy_ana_cfg
  [Address Reference Count : 1]
  - jump_table.o(jump_table_mem_area)

  rf_phy_set_txPower (Thumb, 108 bytes, Stack size 20 bytes, rf_phy_driver.o(i.rf_phy_set_txPower))
  [Stack]

  - Max Depth = 20
  - Call Chain = rf_phy_set_txPower
  [Called By]
  - >> rf_phy_ini

  slb_boot_load_exch_zone (Thumb, 112 bytes, Stack size 72 bytes, slb.o(i.slb_boot_load_exch_zone))
  [Stack]

  - Max Depth = 240
  - Call Chain = slb_boot_load_exch_zone ⇒ slb_apply_exch_zone_to_fw ⇒ ota_flash_erase ⇒ hal_flash_erase_sector ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> strcmp (via Veneer)
  - >> slb_spif_write
  - >> slb_spif_read
  - >> slb_apply_exch_zone_to_fw
  [Called By]
  - >> slboot_main

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

  - Max Depth = 104
  - Call Chain = slb_spif_erase ⇒ hal_flash_erase_sector ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> hal_flash_erase_sector
  [Called By]
  - >> slb_apply_exch_zone_to_fw

  slb_spif_read (Thumb, 38 bytes, Stack size 16 bytes, slb.o(i.slb_spif_read))
  [Stack]

  - Max Depth = 16
  - Call Chain = slb_spif_read
  [Calls]
  - >> __aeabi_memcpy (via Veneer)
  [Called By]
  - >> slb_boot_load_exch_zone
  - >> slb_apply_exch_zone_to_fw

  slb_spif_write (Thumb, 16 bytes, Stack size 8 bytes, slb.o(i.slb_spif_write))
  [Stack]

  - Max Depth = 104
  - Call Chain = slb_spif_write ⇒ hal_flash_write_by_dma ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> hal_flash_write_by_dma
  [Called By]
  - >> slb_boot_load_exch_zone
  - >> slb_apply_exch_zone_to_fw

  slboot_main (Thumb, 10 bytes, Stack size 0 bytes, slboot.o(i.slboot_main))
  [Stack]

  - Max Depth = 240
  - Call Chain = slboot_main ⇒ slb_boot_load_exch_zone ⇒ slb_apply_exch_zone_to_fw ⇒ ota_flash_erase ⇒ hal_flash_erase_sector ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> run_application
  - >> slb_boot_load_exch_zone
  [Called By]
  - >> main

  flash_check_parition (Thumb, 28 bytes, Stack size 32 bytes, aes.o(i.flash_check_parition))
  [Stack]

  - Max Depth = 32
  - Call Chain = flash_check_parition
  [Calls]
  - >> phy_sec_encrypt (via Veneer)
  [Called By]
  - >> ota_flash_load_app

  flash_load_parition (Thumb, 28 bytes, Stack size 32 bytes, aes.o(i.flash_load_parition))
  [Stack]

  - Max Depth = 32
  - Call Chain = flash_load_parition
  [Calls]
  - >> phy_sec_decrypt (via Veneer)
  [Called By]
  - >> ota_flash_load_app

  hal_system_soft_reset (Thumb, 28 bytes, Stack size 0 bytes, clock.o(i.hal_system_soft_reset))
  [Called By]

  - >> _hard_fault
  - >> ota_flash_load_app

  is_crypto_app (Thumb, 16 bytes, Stack size 8 bytes, aes.o(i.is_crypto_app))
  [Stack]

  - Max Depth = 64
  - Call Chain = is_crypto_app ⇒ finidv
  [Calls]
  - >> finidv
  [Called By]
  - >> ota_flash_load_app

  crc16 (Thumb, 54 bytes, Stack size 16 bytes, ota_flash.o(ota_app_loader_area))
  [Stack]

  - Max Depth = 16
  - Call Chain = crc16
  [Called By]
  - >> slb_apply_exch_zone_to_fw
  - >> ota_flash_load_app

  ota_flash_read (Thumb, 84 bytes, Stack size 20 bytes, ota_flash.o(ota_app_loader_area))
  [Stack]

  - Max Depth = 20
  - Call Chain = ota_flash_read
  [Called By]
  - >> ota_flash_load_app

  ota_flash_load_app (Thumb, 338 bytes, Stack size 56 bytes, ota_flash.o(ota_app_loader_area))
  [Stack]

  - Max Depth = 120
  - Call Chain = ota_flash_load_app ⇒ is_crypto_app ⇒ finidv
  [Calls]
  - >> is_crypto_app
  - >> hal_system_soft_reset
  - >> flash_load_parition
  - >> flash_check_parition
  - >> ota_flash_read
  - >> crc16
  [Called By]
  - >> run_application

  jump2app (Thumb, 8 bytes, Stack size 0 bytes, slboot.o(ota_app_loader_area))
  [Called By]

  - >> run_application

  run_application (Thumb, 26 bytes, Stack size 8 bytes, slboot.o(ota_app_loader_area))
  [Stack]

  - Max Depth = 128
  - Call Chain = run_application ⇒ ota_flash_load_app ⇒ is_crypto_app ⇒ finidv
  [Calls]
  - >> drv_enable_irq (via Veneer)
  - >> drv_disable_irq (via Veneer)
  - >> jump2app
  - >> ota_flash_load_app
  [Called By]
  - >> slboot_main

  ### Local Symbols

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

  - >> hal_rfphy_init

  hal_low_power_io_init (Thumb, 98 bytes, Stack size 32 bytes, main.o(i.hal_low_power_io_init))
  [Stack]

  - Max Depth = 48
  - Call Chain = hal_low_power_io_init ⇒ hal_gpio_pull_set
  [Calls]
  - >> hal_pwrmgr_RAM_retention_set
  - >> hal_pwrmgr_RAM_retention
  - >> hal_pwrmgr_LowCurrentLdo_enable
  - >> hal_gpio_pull_set
  - >> __aeabi_memcpy4 (via Veneer)
  [Called By]
  - >> main

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

  - Max Depth = 96
  - Call Chain = hal_rfphy_init ⇒ hal_rom_boot_init ⇒ _rom_sec_boot_init ⇒ _efuse_chip_version_check ⇒ finidv
  [Calls]
  - >> hal_rom_boot_init
  - >> hal_rc32k_clk_tracking_init
  - >> __NVIC_SetPriority
  [Called By]
  - >> main

  slb_apply_exch_zone_to_fw (Thumb, 244 bytes, Stack size 56 bytes, slb.o(i.slb_apply_exch_zone_to_fw))
  [Stack]

  - Max Depth = 168
  - Call Chain = slb_apply_exch_zone_to_fw ⇒ ota_flash_erase ⇒ hal_flash_erase_sector ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> slb_spif_write
  - >> slb_spif_read
  - >> slb_spif_erase
  - >> crc16
  - >> ota_flash_erase
  [Called By]
  - >> slb_boot_load_exch_zone

  hal_gpio_interrupt_enable (Thumb, 58 bytes, Stack size 8 bytes, gpio.o(i.hal_gpio_interrupt_enable), UNUSED, KEPT)
  [Stack]

  - Max Depth = 8
  - Call Chain = hal_gpio_interrupt_enable
  [Called By]
  - >> hal_gpioin_event

  hal_gpioin_event (Thumb, 130 bytes, Stack size 32 bytes, gpio.o(i.hal_gpioin_event), UNUSED, KEPT)
  [Stack]

  - Max Depth = 40
  - Call Chain = hal_gpioin_event ⇒ hal_gpio_interrupt_enable
  [Calls]
  - >> hal_gpio_interrupt_enable
  [Called By]
  - >> hal_GPIO_IRQHandler

  irq_rx_handler (Thumb, 84 bytes, Stack size 56 bytes, uart.o(_section_sram_code_))
  [Stack]

  - Max Depth = 56
  - Call Chain = irq_rx_handler
  [Called By]
  - >> hal_UART0_IRQHandler
  - >> hal_UART1_IRQHandler

  irq_tx_empty_handler (Thumb, 138 bytes, Stack size 32 bytes, uart.o(_section_sram_code_))
  [Stack]

  - Max Depth = 48
  - Call Chain = irq_tx_empty_handler ⇒ hal_pwrmgr_unlock
  [Calls]
  - >> hal_pwrmgr_unlock
  [Called By]
  - >> hal_UART0_IRQHandler
  - >> hal_UART1_IRQHandler

  spif_lock (Thumb, 36 bytes, Stack size 8 bytes, flash.o(_section_sram_code_))
  [Stack]

  - Max Depth = 28
  - Call Chain = spif_lock ⇒ ll_patch_restore
  [Calls]
  - >> drv_enable_irq (via Veneer)
  - >> drv_disable_irq (via Veneer)
  - >> ll_patch_restore
  [Called By]
  - >> hal_flash_write_by_dma
  - >> hal_flash_erase_sector

  spif_unlock (Thumb, 24 bytes, Stack size 8 bytes, flash.o(_section_sram_code_))
  [Stack]

  - Max Depth = 28
  - Call Chain = spif_unlock ⇒ ll_patch_restore
  [Calls]
  - >> drv_enable_irq (via Veneer)
  - >> drv_disable_irq (via Veneer)
  - >> ll_patch_restore
  [Called By]
  - >> hal_flash_write_by_dma
  - >> hal_flash_erase_sector

  _spif_read_status_reg_x (Thumb, 104 bytes, Stack size 32 bytes, flash.o(i._spif_read_status_reg_x))
  [Stack]

  - Max Depth = 32
  - Call Chain = _spif_read_status_reg_x
  [Calls]
  - >> spif_rddata (via Veneer)
  - >> spif_cmd (via Veneer)
  [Called By]
  - >> _spif_wait_nobusy_x

  _spif_wait_nobusy_x (Thumb, 38 bytes, Stack size 16 bytes, flash.o(i._spif_wait_nobusy_x))
  [Stack]

  - Max Depth = 48
  - Call Chain = _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x
  [Calls]
  - >> _spif_read_status_reg_x
  - >> WaitRTCCount (via Veneer)
  [Called By]
  - >> hal_flash_write_by_dma
  - >> hal_flash_erase_sector

  hw_spif_cache_config (Thumb, 140 bytes, Stack size 24 bytes, flash.o(i.hw_spif_cache_config))
  [Stack]

  - Max Depth = 40
  - Call Chain = hw_spif_cache_config ⇒ hal_cache_tag_flush
  [Calls]
  - >> spif_read_id (via Veneer)
  - >> spif_config (via Veneer)
  - >> hal_cache_tag_flush
  - >> hal_clk_gate_enable
  [Called By]
  - >> hal_spif_cache_init
  [Address Reference Count : 1]
  - flash.o(i.hal_spif_cache_init)

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

  - >> _clk_apply_setting1

  _clk_apply_setting1 (Thumb, 250 bytes, Stack size 48 bytes, patch.o(i._clk_apply_setting1))
  [Stack]

  - Max Depth = 48
  - Call Chain = _clk_apply_setting1
  [Calls]
  - >> NVIC_EnableIRQ
  [Called By]
  - >> clk_init

  ### Undefined Global Symbols

  __arm_fini_ (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_shutdown_fini