# Static Call Graph for image .\obj\stand_at_Project.axf

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Tue Feb 18 20:06:38 2025

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

### Call chain for Maximum Stack Depth:

main ⇒ nfc_card_process ⇒ Card_Check ⇒ ComReqA ⇒ CpuCard_Write_BinaryFile_Exp ⇒ CardCpu_authentication ⇒ des3_cbc_encrypt ⇒ des3_set3key_enc ⇒ des3_set3key ⇒ des_setkey

### Functions with no stack information

- START_RECOVER

### Mutually Recursive functions

- HardFault_Handler ⇒ HardFault_Handler
- MemManage_Handler ⇒ MemManage_Handler
- BusFault_Handler ⇒ BusFault_Handler
- UsageFault_Handler ⇒ UsageFault_Handler
- SVC_Handler ⇒ SVC_Handler
- DebugMon_Handler ⇒ DebugMon_Handler
- PendSV_Handler ⇒ PendSV_Handler
- SysTick_Handler ⇒ SysTick_Handler
- GPADC_IRQHandler ⇒ GPADC_IRQHandler

  ### Function Pointers

  - BusFault_Handler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - DebugMon_Handler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - GPADC_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - GPIO_INT0_IRQHandler from user_gpio.o(i.GPIO_INT0_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - GPIO_INT1_IRQHandler from user_gpio.o(i.GPIO_INT1_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - GPIO_INT2_IRQHandler from user_gpio.o(i.GPIO_INT2_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - GPIO_INT3_IRQHandler from user_gpio.o(i.GPIO_INT3_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - HardFault_Handler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - I2C_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - Keyboard_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_0_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_10_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_11_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_12_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_13_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_1_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_2_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_3_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_4_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_5_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_6_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_7_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_8_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - LIB_9_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - MemManage_Handler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - NMI_Handler from interrupt.o(i.NMI_Handler) referenced from startup_cpu_deepsleep.o(RESET)
  - PendSV_Handler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - QDEC_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - RNG_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - RTC_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - Reset_Handler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - SPI0_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - SPI1_IRQHandler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - START_RECOVER from deep_sleep_enter.o(.emb_text) referenced from deep_sleep_enter.o(.emb_text)
  - SVC_Handler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - SysTick_Handler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - SystemInit from system_cpu.o(i.SystemInit) referenced from startup_cpu_deepsleep.o(.text)
  - TIMER0_IRQHandler from user_timer.o(i.TIMER0_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - TIMER1_IRQHandler from user_timer.o(i.TIMER1_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - TIMER2_IRQHandler from user_timer.o(i.TIMER2_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - TIMER3_IRQHandler from user_timer.o(i.TIMER3_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - UART0_IRQHandler from user_uart.o(i.UART0_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - UART1_IRQHandler from user_uart.o(i.UART1_IRQHandler) referenced from startup_cpu_deepsleep.o(RESET)
  - UsageFault_Handler from startup_cpu_deepsleep.o(.text) referenced from startup_cpu_deepsleep.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_cpu_deepsleep.o(.text)
  - _sputc from printfa.o(i._sputc) referenced from printfa.o(i.__0vsprintf)
  - fputc from fputc.o(i.fputc) referenced from printfa.o(i.__0printf)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - user_gpio_cbk2 from hw_config.o(i.user_gpio_cbk2) referenced from hw_config.o(i.nfc_interface_init)

  ### Global Symbols

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

  - startup_cpu_deepsleep.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))

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

  deep_sleep_enter (Thumb, 120 bytes, Stack size 0 bytes, deep_sleep_enter.o(.emb_text))
  [Called By]

  - >> low_power_sleep

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

  - startup_cpu_deepsleep.o(RESET)

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

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

  MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_cpu_deepsleep.o(.text))
  [Calls]

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

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

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

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

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

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

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

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

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

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

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

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

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

  GPADC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_cpu_deepsleep.o(.text))
  [Calls]

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

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - startup_cpu_deepsleep.o(RESET)

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

  - >> flash_read
  - >> CardCpu_Write_BinaryFile
  - >> CardCpu_Read_BinaryFile
  - >> des3_cbc_encrypt
  - >> ISO14443_4_HalfDuplexExchange
  - >> pcd_write
  - >> pcd_read
  - >> PcdSlotMarker
  - >> PcdRequestB

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

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

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

  - >> _memset$wrapper
  - >> __aeabi_memclr

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

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

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

  - >> __aeabi_memset
  [Called By]
  - >> user_print_hex
  - >> user_print
  - >> user_block_print
  - >> CardCpu_authentication

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

  - >> ui_uart_init
  - >> load_default_config
  - >> pcd_default_info

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

  _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memset

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

  - >> user_print_hex
  - >> user_print
  - >> user_block_print

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

  - Max Depth = 28
  - Call Chain = calloc ⇒ malloc
  [Calls]
  - >> malloc
  [Called By]
  - >> des3_cbc_encrypt

  __aeabi_dadd (Thumb, 322 bytes, Stack size 48 bytes, dadd.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_lasr
  - >> __aeabi_llsl
  - >> _double_round
  - >> _double_epilogue
  [Called By]
  - >> uart_init
  - >> __aeabi_dsub
  - >> __aeabi_drsub
  - >> _fp_digits

  __aeabi_dsub (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_dadd

  __aeabi_drsub (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_dadd

  __aeabi_dmul (Thumb, 228 bytes, Stack size 48 bytes, dmul.o(.text), UNUSED)
  [Calls]

  - >> _double_epilogue
  [Called By]
  - >> _fp_digits

  __aeabi_ddiv (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = __aeabi_ddiv ⇒ _double_round
  [Calls]
  - >> _double_round
  [Called By]
  - >> uart_init
  - >> _fp_digits

  __ARM_scalbn (Thumb, 46 bytes, Stack size 16 bytes, dscalb.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __ARM_scalbn
  [Called By]
  - >> uart_init

  scalbn (Thumb, 0 bytes, Stack size 16 bytes, dscalb.o(.text), UNUSED)

  __aeabi_ui2d (Thumb, 26 bytes, Stack size 16 bytes, dfltui.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = __aeabi_ui2d ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> _double_epilogue
  [Called By]
  - >> uart_init

  __aeabi_d2uiz (Thumb, 50 bytes, Stack size 8 bytes, dfixui.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __aeabi_d2uiz
  [Calls]
  - >> __aeabi_llsr
  [Called By]
  - >> uart_init

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

  __aeabi_uidivmod (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
  [Called By]

  - >> _printf_core

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

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

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

  - >> __aeabi_dadd
  - >> __aeabi_uldivmod
  - >> _double_epilogue
  - >> __aeabi_d2ulz

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

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

  - >> __aeabi_d2uiz
  - >> __aeabi_uldivmod
  - >> _double_epilogue
  - >> __aeabi_d2ulz

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

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

  - >> __aeabi_dadd

  _ll_sshift_r (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)

  __I$use$fp (Thumb, 0 bytes, Stack size 8 bytes, iusefp.o(.text), UNUSED)

  _double_round (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = _double_round
  [Called By]
  - >> __aeabi_ddiv
  - >> __aeabi_dadd
  - >> _double_epilogue

  _double_epilogue (Thumb, 156 bytes, Stack size 32 bytes, depilogue.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_llsr
  - >> __aeabi_llsl
  - >> _double_round
  [Called By]
  - >> __aeabi_ui2d
  - >> __aeabi_dmul
  - >> __aeabi_dadd

  __aeabi_d2ulz (Thumb, 48 bytes, Stack size 0 bytes, dfixul.o(.text), UNUSED)
  [Calls]

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

  __aeabi_cdrcmple (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
  [Called By]

  - >> _fp_digits

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

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

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

  __decompress1 (Thumb, 86 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)

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

  CardCpu_Add_External_Auth_Key (Thumb, 120 bytes, Stack size 16 bytes, cpu_card.o(i.CardCpu_Add_External_Auth_Key))
  [Stack]

  - Max Depth = 192
  - Call Chain = CardCpu_Add_External_Auth_Key ⇒ ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> ISO14443_4_HalfDuplexExchange
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  CardCpu_Add_Line_Protect_Key (Thumb, 116 bytes, Stack size 16 bytes, cpu_card.o(i.CardCpu_Add_Line_Protect_Key))
  [Stack]

  - Max Depth = 192
  - Call Chain = CardCpu_Add_Line_Protect_Key ⇒ ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> ISO14443_4_HalfDuplexExchange
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  CardCpu_ClearMfAllFile (Thumb, 64 bytes, Stack size 16 bytes, cpu_card.o(i.CardCpu_ClearMfAllFile))
  [Stack]

  - Max Depth = 192
  - Call Chain = CardCpu_ClearMfAllFile ⇒ ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> ISO14443_4_HalfDuplexExchange
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  CardCpu_CreatMf_Keyfile (Thumb, 90 bytes, Stack size 16 bytes, cpu_card.o(i.CardCpu_CreatMf_Keyfile))
  [Stack]

  - Max Depth = 192
  - Call Chain = CardCpu_CreatMf_Keyfile ⇒ ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> ISO14443_4_HalfDuplexExchange
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  CardCpu_Creat_BinaryFile (Thumb, 90 bytes, Stack size 16 bytes, cpu_card.o(i.CardCpu_Creat_BinaryFile))
  [Stack]

  - Max Depth = 192
  - Call Chain = CardCpu_Creat_BinaryFile ⇒ ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> ISO14443_4_HalfDuplexExchange
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  CardCpu_Read_BinaryFile (Thumb, 76 bytes, Stack size 24 bytes, cpu_card.o(i.CardCpu_Read_BinaryFile))
  [Stack]

  - Max Depth = 200
  - Call Chain = CardCpu_Read_BinaryFile ⇒ ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> ISO14443_4_HalfDuplexExchange
  - >> __aeabi_memcpy
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  CardCpu_SelectFile (Thumb, 70 bytes, Stack size 16 bytes, cpu_card.o(i.CardCpu_SelectFile))
  [Stack]

  - Max Depth = 192
  - Call Chain = CardCpu_SelectFile ⇒ ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> ISO14443_4_HalfDuplexExchange
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  CardCpu_SelectMainFile (Thumb, 70 bytes, Stack size 16 bytes, cpu_card.o(i.CardCpu_SelectMainFile))
  [Stack]

  - Max Depth = 192
  - Call Chain = CardCpu_SelectMainFile ⇒ ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> ISO14443_4_HalfDuplexExchange
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  CardCpu_Write_BinaryFile (Thumb, 72 bytes, Stack size 16 bytes, cpu_card.o(i.CardCpu_Write_BinaryFile))
  [Stack]

  - Max Depth = 192
  - Call Chain = CardCpu_Write_BinaryFile ⇒ ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> ISO14443_4_HalfDuplexExchange
  - >> __aeabi_memcpy
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  CardCpu_authentication (Thumb, 228 bytes, Stack size 72 bytes, cpu_card.o(i.CardCpu_authentication))
  [Stack]

  - Max Depth = 952
  - Call Chain = CardCpu_authentication ⇒ des3_cbc_encrypt ⇒ des3_set3key_enc ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> des3_cbc_encrypt
  - >> des3_cbc_decrypt
  - >> ISO14443_4_HalfDuplexExchange
  - >> __aeabi_memclr
  [Called By]
  - >> CpuCard_Write_BinaryFile_Exp

  Card_Check (Thumb, 250 bytes, Stack size 16 bytes, rfid.o(i.Card_Check))
  [Stack]

  - Max Depth = 1008
  - Call Chain = Card_Check ⇒ ComReqA ⇒ CpuCard_Write_BinaryFile_Exp ⇒ CardCpu_authentication ⇒ des3_cbc_encrypt ⇒ des3_set3key_enc ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> gpio_set
  - >> delay_ms
  - >> gpio_reset
  - >> user_print_hex
  - >> user_print
  - >> ComReqB
  - >> ComReqA
  [Called By]
  - >> nfc_card_process

  CheckIrq (Thumb, 26 bytes, Stack size 8 bytes, rfid.o(i.CheckIrq))
  [Stack]

  - Max Depth = 36
  - Call Chain = CheckIrq ⇒ ReadRawRC ⇒ SPIReadByte ⇒ gpio_get_input
  [Calls]
  - >> ReadRawRC
  [Called By]
  - >> pcd_delay_sfgi
  - >> pcd_com_transceive

  ClearBitMask (Thumb, 24 bytes, Stack size 16 bytes, ws18xxx_interface_driver.o(i.ClearBitMask))
  [Stack]

  - Max Depth = 48
  - Call Chain = ClearBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> WriteRawRC
  - >> ReadRawRC
  [Called By]
  - >> pcd_lpcd_start
  - >> pcd_write
  - >> pcd_delay_sfgi
  - >> pcd_cascaded_anticoll
  - >> PcdRequest
  - >> PcdConfig
  - >> pcd_com_transceive

  ComReqA (Thumb, 246 bytes, Stack size 32 bytes, rfid.o(i.ComReqA))
  [Stack]

  - Max Depth = 992
  - Call Chain = ComReqA ⇒ CpuCard_Write_BinaryFile_Exp ⇒ CardCpu_authentication ⇒ des3_cbc_encrypt ⇒ des3_set3key_enc ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> pcd_default_info
  - >> com_typea_rats
  - >> CpuCard_Write_BinaryFile_Exp
  - >> pcd_write
  - >> pcd_read
  - >> pcd_cascaded_select
  - >> pcd_cascaded_anticoll
  - >> pcd_auth_state
  - >> PcdRequest
  - >> PcdConfig
  [Called By]
  - >> Card_Check

  ComReqB (Thumb, 176 bytes, Stack size 40 bytes, rfid.o(i.ComReqB))
  [Stack]

  - Max Depth = 152
  - Call Chain = ComReqB ⇒ PcdSlotMarker ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> PcdConfig
  - >> PcdSlotMarker
  - >> PcdRequestB
  - >> PcdAttriB
  - >> GetIdcardNum
  [Called By]
  - >> Card_Check

  CpuCard_Write_BinaryFile_Exp (Thumb, 106 bytes, Stack size 8 bytes, cpu_card.o(i.CpuCard_Write_BinaryFile_Exp))
  [Stack]

  - Max Depth = 960
  - Call Chain = CpuCard_Write_BinaryFile_Exp ⇒ CardCpu_authentication ⇒ des3_cbc_encrypt ⇒ des3_set3key_enc ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> delay_ms
  - >> user_print_hex
  - >> CardCpu_authentication
  - >> CardCpu_Write_BinaryFile
  - >> CardCpu_SelectMainFile
  - >> CardCpu_SelectFile
  - >> CardCpu_Read_BinaryFile
  - >> CardCpu_Creat_BinaryFile
  - >> CardCpu_CreatMf_Keyfile
  - >> CardCpu_ClearMfAllFile
  - >> CardCpu_Add_Line_Protect_Key
  - >> CardCpu_Add_External_Auth_Key
  [Called By]
  - >> ComReqA

  GPIO_INT0_IRQHandler (Thumb, 26 bytes, Stack size 8 bytes, user_gpio.o(i.GPIO_INT0_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIO_INT0_IRQHandler
  [Calls]
  - >> gpio_clear_it_pending
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  GPIO_INT1_IRQHandler (Thumb, 26 bytes, Stack size 8 bytes, user_gpio.o(i.GPIO_INT1_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIO_INT1_IRQHandler
  [Calls]
  - >> gpio_clear_it_pending
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  GPIO_INT2_IRQHandler (Thumb, 26 bytes, Stack size 8 bytes, user_gpio.o(i.GPIO_INT2_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIO_INT2_IRQHandler
  [Calls]
  - >> gpio_clear_it_pending
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  GPIO_INT3_IRQHandler (Thumb, 26 bytes, Stack size 8 bytes, user_gpio.o(i.GPIO_INT3_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIO_INT3_IRQHandler
  [Calls]
  - >> gpio_clear_it_pending
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  GetIdcardNum (Thumb, 58 bytes, Stack size 16 bytes, iso14443b.o(i.GetIdcardNum))
  [Stack]

  - Max Depth = 104
  - Call Chain = GetIdcardNum ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  [Called By]
  - >> ComReqB

  IC_Version (Thumb, 52 bytes, Stack size 8 bytes, rfid.o(i.IC_Version))
  [Stack]

  - Max Depth = 80
  - Call Chain = IC_Version ⇒ user_print ⇒ ui_dbg_uart_writebuf ⇒ ui_uart_sendchar
  [Calls]
  - >> gpio_set
  - >> delay_ms
  - >> gpio_reset
  - >> user_print
  - >> ReadRawRC
  [Called By]
  - >> nfc_interface_init

  ISO14443_4_HalfDuplexExchange (Thumb, 870 bytes, Stack size 88 bytes, iso14443_4.o(i.ISO14443_4_HalfDuplexExchange))
  [Stack]

  - Max Depth = 176
  - Call Chain = ISO14443_4_HalfDuplexExchange ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_delay_sfgi
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> __aeabi_memcpy
  [Called By]
  - >> CardCpu_authentication
  - >> CardCpu_Write_BinaryFile
  - >> CardCpu_SelectMainFile
  - >> CardCpu_SelectFile
  - >> CardCpu_Read_BinaryFile
  - >> CardCpu_Creat_BinaryFile
  - >> CardCpu_CreatMf_Keyfile
  - >> CardCpu_ClearMfAllFile
  - >> CardCpu_Add_Line_Protect_Key
  - >> CardCpu_Add_External_Auth_Key

  NMI_Handler (Thumb, 20 bytes, Stack size 8 bytes, interrupt.o(i.NMI_Handler))
  [Stack]

  - Max Depth = 8
  - Call Chain = NMI_Handler
  [Calls]
  - >> wdt_get_it_status
  - >> app_nmi_interrupt_handle
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  PcdAntennaOff (Thumb, 22 bytes, Stack size 8 bytes, rfid.o(i.PcdAntennaOff))
  [Stack]

  - Max Depth = 40
  - Call Chain = PcdAntennaOff ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> WriteRawRC
  - >> ReadRawRC
  [Called By]
  - >> PcdConfig

  PcdAntennaOn (Thumb, 22 bytes, Stack size 8 bytes, rfid.o(i.PcdAntennaOn))
  [Stack]

  - Max Depth = 40
  - Call Chain = PcdAntennaOn ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> WriteRawRC
  - >> ReadRawRC
  [Called By]
  - >> PcdConfig

  PcdAttriB (Thumb, 82 bytes, Stack size 16 bytes, iso14443b.o(i.PcdAttriB))
  [Stack]

  - Max Depth = 104
  - Call Chain = PcdAttriB ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> SetBitMask
  [Called By]
  - >> ComReqB

  PcdConfig (Thumb, 448 bytes, Stack size 8 bytes, rfid.o(i.PcdConfig))
  [Stack]

  - Max Depth = 56
  - Call Chain = PcdConfig ⇒ ClearBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> delay_ms
  - >> PcdAntennaOn
  - >> PcdAntennaOff
  - >> WriteRawRC
  - >> ReadRawRC
  - >> ClearBitMask
  [Called By]
  - >> ComReqB
  - >> ComReqA

  PcdRequest (Thumb, 124 bytes, Stack size 24 bytes, rfid.o(i.PcdRequest))
  [Stack]

  - Max Depth = 112
  - Call Chain = PcdRequest ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> WriteRawRC
  - >> ReadRawRC
  - >> ClearBitMask
  [Called By]
  - >> ComReqA

  PcdRequestB (Thumb, 100 bytes, Stack size 16 bytes, iso14443b.o(i.PcdRequestB))
  [Stack]

  - Max Depth = 104
  - Call Chain = PcdRequestB ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> __aeabi_memcpy
  [Called By]
  - >> ComReqB

  PcdReset (Thumb, 30 bytes, Stack size 8 bytes, rfid.o(i.PcdReset))
  [Stack]

  - Max Depth = 8
  - Call Chain = PcdReset
  [Calls]
  - >> gpio_set
  - >> delay_ms
  - >> gpio_reset
  [Called By]
  - >> nfc_card_process

  PcdSetTmo (Thumb, 46 bytes, Stack size 16 bytes, rfid.o(i.PcdSetTmo))
  [Stack]

  - Max Depth = 48
  - Call Chain = PcdSetTmo ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> WriteRawRC
  [Called By]
  - >> pcd_rats_a
  - >> ISO14443_4_HalfDuplexExchange
  - >> pcd_write
  - >> pcd_read
  - >> pcd_delay_sfgi
  - >> pcd_cascaded_select
  - >> pcd_cascaded_anticoll
  - >> pcd_auth_state
  - >> PcdRequest
  - >> PcdSlotMarker
  - >> PcdRequestB
  - >> PcdAttriB

  PcdSlotMarker (Thumb, 112 bytes, Stack size 24 bytes, iso14443b.o(i.PcdSlotMarker))
  [Stack]

  - Max Depth = 112
  - Call Chain = PcdSlotMarker ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> __aeabi_memcpy
  [Called By]
  - >> ComReqB

  ReadRawRC (Thumb, 40 bytes, Stack size 8 bytes, ws18xxx_interface_driver.o(i.ReadRawRC))
  [Stack]

  - Max Depth = 28
  - Call Chain = ReadRawRC ⇒ SPIReadByte ⇒ gpio_get_input
  [Calls]
  - >> gpio_set
  - >> gpio_reset
  - >> SPIWriteByte
  - >> SPIReadByte
  [Called By]
  - >> IC_Version
  - >> pcd_cascaded_anticoll
  - >> pcd_auth_state
  - >> PcdRequest
  - >> PcdConfig
  - >> PcdAntennaOn
  - >> PcdAntennaOff
  - >> CheckIrq
  - >> pcd_com_transceive
  - >> SetBitMask
  - >> ClearBitMask

  SPIReadByte (Thumb, 46 bytes, Stack size 16 bytes, ws18xxx_interface_driver.o(i.SPIReadByte))
  [Stack]

  - Max Depth = 20
  - Call Chain = SPIReadByte ⇒ gpio_get_input
  [Calls]
  - >> gpio_set
  - >> gpio_reset
  - >> gpio_get_input
  [Called By]
  - >> ReadRawRC

  SPIWriteByte (Thumb, 50 bytes, Stack size 16 bytes, ws18xxx_interface_driver.o(i.SPIWriteByte))
  [Stack]

  - Max Depth = 16
  - Call Chain = SPIWriteByte
  [Calls]
  - >> gpio_set
  - >> gpio_reset
  [Called By]
  - >> WriteRawRC
  - >> ReadRawRC

  SetBitMask (Thumb, 24 bytes, Stack size 16 bytes, ws18xxx_interface_driver.o(i.SetBitMask))
  [Stack]

  - Max Depth = 48
  - Call Chain = SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> WriteRawRC
  - >> ReadRawRC
  [Called By]
  - >> pcd_rats_a
  - >> pcd_write
  - >> pcd_read
  - >> pcd_delay_sfgi
  - >> pcd_cascaded_select
  - >> pcd_cascaded_anticoll
  - >> pcd_com_transceive
  - >> PcdAttriB

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

  - startup_cpu_deepsleep.o(.text)

  TIMER0_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, user_timer.o(i.TIMER0_IRQHandler))
  [Stack]

  - Max Depth = 8
  - Call Chain = TIMER0_IRQHandler
  [Calls]
  - >> timer_clear_it_pending_bit
  - >> timer_x_isr
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  TIMER1_IRQHandler (Thumb, 8 bytes, Stack size 0 bytes, user_timer.o(i.TIMER1_IRQHandler))
  [Calls]

  - >> timer_x_isr
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  TIMER2_IRQHandler (Thumb, 8 bytes, Stack size 0 bytes, user_timer.o(i.TIMER2_IRQHandler))
  [Calls]

  - >> timer_x_isr
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  TIMER3_IRQHandler (Thumb, 8 bytes, Stack size 0 bytes, user_timer.o(i.TIMER3_IRQHandler))
  [Calls]

  - >> timer_x_isr
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  UART0_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, user_uart.o(i.UART0_IRQHandler))
  [Stack]

  - Max Depth = 64
  - Call Chain = UART0_IRQHandler ⇒ dev_isr ⇒ read_all_fifo_data
  [Calls]
  - >> get_instance
  - >> dev_isr
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  UART1_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, user_uart.o(i.UART1_IRQHandler))
  [Stack]

  - Max Depth = 64
  - Call Chain = UART1_IRQHandler ⇒ dev_isr ⇒ read_all_fifo_data
  [Calls]
  - >> get_instance
  - >> dev_isr
  [Address Reference Count : 1]
  - startup_cpu_deepsleep.o(RESET)

  WriteRawRC (Thumb, 38 bytes, Stack size 16 bytes, ws18xxx_interface_driver.o(i.WriteRawRC))
  [Stack]

  - Max Depth = 32
  - Call Chain = WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> gpio_set
  - >> gpio_reset
  - >> SPIWriteByte
  [Called By]
  - >> pcd_lpcd_start
  - >> pcd_rats_a
  - >> pcd_write
  - >> pcd_read
  - >> pcd_delay_sfgi
  - >> pcd_cascaded_select
  - >> pcd_cascaded_anticoll
  - >> pcd_auth_state
  - >> PcdRequest
  - >> PcdConfig
  - >> PcdAntennaOn
  - >> PcdAntennaOff
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> SetBitMask
  - >> ClearBitMask

  __0printf (Thumb, 22 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)
  [Calls]

  - >> _printf_core

  __1printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)

  __2printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf))
  [Stack]

  - Max Depth = 24
  - Call Chain = __2printf
  [Called By]
  - >> des3_crypt_cbc

  __c89printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)

  printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)

  __0vsprintf (Thumb, 30 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
  [Calls]

  - >> _sputc
  - >> _printf_core

  __1vsprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)

  __2vsprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)

  __c89vsprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)

  vsprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf))
  [Stack]

  - Max Depth = 24
  - Call Chain = vsprintf
  [Called By]
  - >> user_print
  - >> user_block_print

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

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

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

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

  - >> NMI_Handler

  block_putchar (Thumb, 28 bytes, Stack size 8 bytes, app_trace.o(i.block_putchar))
  [Stack]

  - Max Depth = 24
  - Call Chain = block_putchar ⇒ uart_block_putchar
  [Calls]
  - >> uart_block_putchar
  [Called By]
  - >> user_block_print

  check_config (Thumb, 44 bytes, Stack size 16 bytes, ws8100_config.o(i.check_config))
  [Stack]

  - Max Depth = 16
  - Call Chain = check_config
  [Called By]
  - >> load_config

  com_typea_rats (Thumb, 36 bytes, Stack size 16 bytes, iso14443_4.o(i.com_typea_rats))
  [Stack]

  - Max Depth = 144
  - Call Chain = com_typea_rats ⇒ pcd_rats_a ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print
  - >> pcd_rats_a
  [Called By]
  - >> ComReqA

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

  - >> dev_isr

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

  - >> deep_sleep_not_available

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

  - >> ui_uart_sendchar

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

  - >> hardware_init
  - >> flash_voltage_protection_check

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

  - >> hardware_init

  dbg_uart_configuration (Thumb, 22 bytes, Stack size 24 bytes, hw_config.o(i.dbg_uart_configuration))
  [Stack]

  - Max Depth = 208
  - Call Chain = dbg_uart_configuration ⇒ ui_uart_configuration ⇒ uart_init ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> ui_uart_configuration
  [Called By]
  - >> user_deepsleep_exit
  - >> hardware_init

  deepsleep_exit (Thumb, 46 bytes, Stack size 16 bytes, cpu_deepsleep.o(i.deepsleep_exit))
  [Stack]

  - Max Depth = 224
  - Call Chain = deepsleep_exit ⇒ user_deepsleep_exit ⇒ dbg_uart_configuration ⇒ ui_uart_configuration ⇒ uart_init ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> user_deepsleep_exit
  - >> flash_burst_enable (via Veneer)
  - >> retain_ram_standbye_exit
  [Called By]
  - >> low_power_sleep

  deepsleep_prepare (Thumb, 40 bytes, Stack size 8 bytes, cpu_deepsleep.o(i.deepsleep_prepare))
  [Stack]

  - Max Depth = 16
  - Call Chain = deepsleep_prepare ⇒ flash_burst_disable
  [Calls]
  - >> user_deepsleep_prepare
  - >> flash_burst_disable (via Veneer)
  - >> retain_ram_standbye_prepare
  [Called By]
  - >> low_power_sleep

  deepsleep_set_wakeup_gpio (Thumb, 108 bytes, Stack size 20 bytes, cpu_sysctrl.o(i.deepsleep_set_wakeup_gpio))
  [Stack]

  - Max Depth = 20
  - Call Chain = deepsleep_set_wakeup_gpio
  [Called By]
  - >> setup_gpio_irq

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

  - >> pcd_lpcd_start
  - >> PcdReset
  - >> IC_Version
  - >> Card_Check
  - >> nfc_interface_init
  - >> nfc_card_process
  - >> CpuCard_Write_BinaryFile_Exp
  - >> PcdConfig

  des3_cbc_decrypt (Thumb, 94 bytes, Stack size 432 bytes, count_des.o(i.des3_cbc_decrypt))
  [Stack]

  - Max Depth = 880
  - Call Chain = des3_cbc_decrypt ⇒ des3_set3key_dec ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> user_block_print
  - >> des3_set3key_dec
  - >> des3_set2key_dec
  - >> des3_free
  - >> des3_crypt_cbc
  [Called By]
  - >> CardCpu_authentication

  des3_cbc_encrypt (Thumb, 140 bytes, Stack size 432 bytes, count_des.o(i.des3_cbc_encrypt))
  [Stack]

  - Max Depth = 880
  - Call Chain = des3_cbc_encrypt ⇒ des3_set3key_enc ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> des3_set3key_enc
  - >> des3_set2key_enc
  - >> des3_free
  - >> des3_crypt_cbc
  - >> calloc
  - >> free
  - >> __aeabi_memcpy
  [Called By]
  - >> CardCpu_authentication

  des3_crypt_cbc (Thumb, 142 bytes, Stack size 32 bytes, count_des.o(i.des3_crypt_cbc))
  [Stack]

  - Max Depth = 68
  - Call Chain = des3_crypt_cbc ⇒ des3_crypt_ecb
  [Calls]
  - >> des3_crypt_ecb
  - >> __2printf
  [Called By]
  - >> des3_cbc_encrypt
  - >> des3_cbc_decrypt

  des3_crypt_ecb (Thumb, 926 bytes, Stack size 36 bytes, count_des.o(i.des3_crypt_ecb))
  [Stack]

  - Max Depth = 36
  - Call Chain = des3_crypt_ecb
  [Called By]
  - >> des3_crypt_cbc

  des3_free (Thumb, 14 bytes, Stack size 0 bytes, count_des.o(i.des3_free))
  [Calls]

  - >> zeroize
  [Called By]
  - >> des3_cbc_encrypt
  - >> des3_cbc_decrypt

  des3_set2key_dec (Thumb, 28 bytes, Stack size 392 bytes, count_des.o(i.des3_set2key_dec))
  [Stack]

  - Max Depth = 448
  - Call Chain = des3_set2key_dec ⇒ des3_set2key ⇒ des_setkey
  [Calls]
  - >> zeroize
  - >> des3_set2key
  [Called By]
  - >> des3_cbc_decrypt

  des3_set2key_enc (Thumb, 26 bytes, Stack size 392 bytes, count_des.o(i.des3_set2key_enc))
  [Stack]

  - Max Depth = 448
  - Call Chain = des3_set2key_enc ⇒ des3_set2key ⇒ des_setkey
  [Calls]
  - >> zeroize
  - >> des3_set2key
  [Called By]
  - >> des3_cbc_encrypt

  des3_set3key_dec (Thumb, 28 bytes, Stack size 392 bytes, count_des.o(i.des3_set3key_dec))
  [Stack]

  - Max Depth = 448
  - Call Chain = des3_set3key_dec ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> zeroize
  - >> des3_set3key
  [Called By]
  - >> des3_cbc_decrypt

  des3_set3key_enc (Thumb, 26 bytes, Stack size 392 bytes, count_des.o(i.des3_set3key_enc))
  [Stack]

  - Max Depth = 448
  - Call Chain = des3_set3key_enc ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> zeroize
  - >> des3_set3key
  [Called By]
  - >> des3_cbc_encrypt

  des_setkey (Thumb, 808 bytes, Stack size 36 bytes, count_des.o(i.des_setkey))
  [Stack]

  - Max Depth = 36
  - Call Chain = des_setkey
  [Called By]
  - >> des3_set3key
  - >> des3_set2key

  dev_isr (Thumb, 158 bytes, Stack size 24 bytes, user_uart.o(i.dev_isr))
  [Stack]

  - Max Depth = 56
  - Call Chain = dev_isr ⇒ read_all_fifo_data
  [Calls]
  - >> cpu_prevent_sleep_clear
  - >> read_all_fifo_data
  - >> uart_it_config
  [Called By]
  - >> UART1_IRQHandler
  - >> UART0_IRQHandler

  flash_erase (Thumb, 108 bytes, Stack size 24 bytes, cpu_flash.o(i.flash_erase))
  [Stack]

  - Max Depth = 64
  - Call Chain = flash_erase ⇒ flash_voltage_protection_check
  [Calls]
  - >> flash_voltage_protection_check
  - >> flash_cache_clear
  [Called By]
  - >> save_config

  flash_read (Thumb, 36 bytes, Stack size 8 bytes, cpu_flash.o(i.flash_read))
  [Stack]

  - Max Depth = 8
  - Call Chain = flash_read
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> load_config

  flash_write (Thumb, 142 bytes, Stack size 32 bytes, cpu_flash.o(i.flash_write))
  [Stack]

  - Max Depth = 72
  - Call Chain = flash_write ⇒ flash_voltage_protection_check
  [Calls]
  - >> flash_voltage_protection_check
  - >> flash_cache_clear
  [Called By]
  - >> save_config

  flush_uartx_2_usr_fifo (Thumb, 98 bytes, Stack size 32 bytes, user_uart.o(i.flush_uartx_2_usr_fifo))
  [Stack]

  - Max Depth = 64
  - Call Chain = flush_uartx_2_usr_fifo ⇒ read_all_fifo_data
  [Calls]
  - >> get_instance
  - >> read_all_fifo_data
  [Called By]
  - >> low_power_sleep

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

  - Max Depth = 16
  - Call Chain = fputc
  [Address Reference Count : 1]
  - printfa.o(i.__0printf)

  free (Thumb, 76 bytes, Stack size 8 bytes, malloc.o(i.free))
  [Stack]

  - Max Depth = 8
  - Call Chain = free
  [Called By]
  - >> des3_cbc_encrypt

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

  - >> ui_uart_init
  - >> set_uart_init
  - >> uart_block_putchar
  - >> ui_uart_sendchar
  - >> flush_uartx_2_usr_fifo
  - >> UART1_IRQHandler
  - >> UART0_IRQHandler

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

  - >> GPIO_INT3_IRQHandler
  - >> GPIO_INT2_IRQHandler
  - >> GPIO_INT1_IRQHandler
  - >> GPIO_INT0_IRQHandler

  gpio_config_default (Thumb, 30 bytes, Stack size 8 bytes, user_gpio.o(i.gpio_config_default))
  [Stack]

  - Max Depth = 20
  - Call Chain = gpio_config_default ⇒ gpio_remap_config
  [Calls]
  - >> gpio_remap_config
  - >> gpio_init
  [Called By]
  - >> hardware_init

  gpio_get_input (Thumb, 34 bytes, Stack size 4 bytes, cpu_gpio.o(i.gpio_get_input))
  [Stack]

  - Max Depth = 4
  - Call Chain = gpio_get_input
  [Calls]
  - >> gpio_group_get_input
  [Called By]
  - >> nfc_interface_init
  - >> SPIReadByte

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

  - >> gpio_get_input

  gpio_init (Thumb, 42 bytes, Stack size 12 bytes, cpu_gpio.o(i.gpio_init))
  [Stack]

  - Max Depth = 12
  - Call Chain = gpio_init
  [Called By]
  - >> ui_uart_configuration
  - >> nfc_interface_init
  - >> gpio_config_default

  gpio_remap_config (Thumb, 56 bytes, Stack size 12 bytes, cpu_gpio.o(i.gpio_remap_config))
  [Stack]

  - Max Depth = 12
  - Call Chain = gpio_remap_config
  [Called By]
  - >> ui_uart_configuration
  - >> gpio_config_default

  gpio_reset (Thumb, 32 bytes, Stack size 0 bytes, cpu_gpio.o(i.gpio_reset))
  [Called By]

  - >> PcdReset
  - >> IC_Version
  - >> Card_Check
  - >> nfc_interface_init
  - >> nfc_card_process
  - >> WriteRawRC
  - >> SPIWriteByte
  - >> SPIReadByte
  - >> ReadRawRC

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

  - >> ui_uart_configuration
  - >> PcdReset
  - >> IC_Version
  - >> Card_Check
  - >> nfc_interface_init
  - >> WriteRawRC
  - >> SPIWriteByte
  - >> SPIReadByte
  - >> ReadRawRC

  gpio_set_irq_src_type (Thumb, 46 bytes, Stack size 12 bytes, cpu_gpio.o(i.gpio_set_irq_src_type))
  [Stack]

  - Max Depth = 12
  - Call Chain = gpio_set_irq_src_type
  [Called By]
  - >> setup_gpio_irq

  hardware_init (Thumb, 54 bytes, Stack size 8 bytes, hw_config.o(i.hardware_init))
  [Stack]

  - Max Depth = 216
  - Call Chain = hardware_init ⇒ dbg_uart_configuration ⇒ ui_uart_configuration ⇒ uart_init ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> ui_uart_init
  - >> set_uart_init
  - >> load_config
  - >> crm_reset_periph
  - >> crm_cmd_periphclock
  - >> syscfg_configuration
  - >> dbg_uart_configuration
  - >> gpio_config_default
  [Called By]
  - >> main

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

  - >> user_print_hex
  - >> user_print
  - >> user_block_print

  load_config (Thumb, 64 bytes, Stack size 8 bytes, ws8100_config.o(i.load_config))
  [Stack]

  - Max Depth = 88
  - Call Chain = load_config ⇒ save_config ⇒ flash_write ⇒ flash_voltage_protection_check
  [Calls]
  - >> flash_read
  - >> save_config
  - >> load_default_config
  - >> check_config
  [Called By]
  - >> hardware_init

  load_default_config (Thumb, 72 bytes, Stack size 8 bytes, ws8100_config.o(i.load_default_config))
  [Stack]

  - Max Depth = 8
  - Call Chain = load_default_config
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> load_config

  low_power_sleep (Thumb, 42 bytes, Stack size 8 bytes, system_sleep.o(i.low_power_sleep))
  [Stack]

  - Max Depth = 232
  - Call Chain = low_power_sleep ⇒ deepsleep_exit ⇒ user_deepsleep_exit ⇒ dbg_uart_configuration ⇒ ui_uart_configuration ⇒ uart_init ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> low_power_sleep_config_ex
  - >> deep_sleep_not_available
  - >> deep_sleep_enter
  - >> deepsleep_prepare
  - >> deepsleep_exit
  - >> flush_uartx_2_usr_fifo
  [Called By]
  - >> main

  low_power_sleep_config_ex (Thumb, 74 bytes, Stack size 8 bytes, system_sleep.o(i.low_power_sleep_config_ex))
  [Stack]

  - Max Depth = 8
  - Call Chain = low_power_sleep_config_ex
  [Calls]
  - >> syscfg_deepsleep_set_ram_retention
  - >> syscfg_deepsleep_set_mode
  - >> syscfg_deepsleep_cmd_wakeup_source
  [Called By]
  - >> syscfg_configuration
  - >> low_power_sleep

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

  - Max Depth = 1016
  - Call Chain = main ⇒ nfc_card_process ⇒ Card_Check ⇒ ComReqA ⇒ CpuCard_Write_BinaryFile_Exp ⇒ CardCpu_authentication ⇒ des3_cbc_encrypt ⇒ des3_set3key_enc ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> nvic_configuration
  - >> nfc_interface_init
  - >> nfc_card_process
  - >> low_power_sleep
  - >> hardware_init
  - >> user_block_print
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  malloc (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
  [Stack]

  - Max Depth = 20
  - Call Chain = malloc
  [Called By]
  - >> calloc

  mcu_osc_configure (Thumb, 126 bytes, Stack size 0 bytes, cpu_sysctrl.o(i.mcu_osc_configure))
  [Called By]

  - >> syscfg_configuration

  nfc_card_process (Thumb, 58 bytes, Stack size 8 bytes, hw_config.o(i.nfc_card_process))
  [Stack]

  - Max Depth = 1016
  - Call Chain = nfc_card_process ⇒ Card_Check ⇒ ComReqA ⇒ CpuCard_Write_BinaryFile_Exp ⇒ CardCpu_authentication ⇒ des3_cbc_encrypt ⇒ des3_set3key_enc ⇒ des3_set3key ⇒ des_setkey
  [Calls]
  - >> pcd_lpcd_start
  - >> delay_ms
  - >> PcdReset
  - >> Card_Check
  - >> gpio_reset
  [Called By]
  - >> main

  nfc_interface_init (Thumb, 150 bytes, Stack size 8 bytes, hw_config.o(i.nfc_interface_init))
  [Stack]

  - Max Depth = 88
  - Call Chain = nfc_interface_init ⇒ IC_Version ⇒ user_print ⇒ ui_dbg_uart_writebuf ⇒ ui_uart_sendchar
  [Calls]
  - >> pcd_lpcd_start
  - >> gpio_set
  - >> delay_ms
  - >> IC_Version
  - >> user_gpio_config
  - >> setup_gpio_irq
  - >> gpio_reset
  - >> gpio_init
  - >> gpio_get_input
  [Called By]
  - >> main

  nvic_configuration (Thumb, 208 bytes, Stack size 32 bytes, hw_config.o(i.nvic_configuration))
  [Stack]

  - Max Depth = 52
  - Call Chain = nvic_configuration ⇒ nvic_init
  [Calls]
  - >> nvic_init
  [Called By]
  - >> main

  nvic_init (Thumb, 142 bytes, Stack size 20 bytes, cpu_nvic.o(i.nvic_init))
  [Stack]

  - Max Depth = 20
  - Call Chain = nvic_init
  [Called By]
  - >> nvic_configuration

  pcd_auth_state (Thumb, 92 bytes, Stack size 24 bytes, rfid.o(i.pcd_auth_state))
  [Stack]

  - Max Depth = 112
  - Call Chain = pcd_auth_state ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> WriteRawRC
  - >> ReadRawRC
  [Called By]
  - >> ComReqA

  pcd_cascaded_anticoll (Thumb, 398 bytes, Stack size 64 bytes, rfid.o(i.pcd_cascaded_anticoll))
  [Stack]

  - Max Depth = 152
  - Call Chain = pcd_cascaded_anticoll ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> WriteRawRC
  - >> SetBitMask
  - >> ReadRawRC
  - >> ClearBitMask
  [Called By]
  - >> ComReqA

  pcd_cascaded_select (Thumb, 112 bytes, Stack size 32 bytes, rfid.o(i.pcd_cascaded_select))
  [Stack]

  - Max Depth = 120
  - Call Chain = pcd_cascaded_select ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> WriteRawRC
  - >> SetBitMask
  [Called By]
  - >> ComReqA

  pcd_com_transceive (Thumb, 884 bytes, Stack size 40 bytes, rfid.o(i.pcd_com_transceive))
  [Stack]

  - Max Depth = 88
  - Call Chain = pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> CheckIrq
  - >> WriteRawRC
  - >> SetBitMask
  - >> ReadRawRC
  - >> ClearBitMask
  [Called By]
  - >> pcd_rats_a
  - >> ISO14443_4_HalfDuplexExchange
  - >> pcd_write
  - >> pcd_read
  - >> pcd_cascaded_select
  - >> pcd_cascaded_anticoll
  - >> pcd_auth_state
  - >> PcdRequest
  - >> PcdSlotMarker
  - >> PcdRequestB
  - >> PcdAttriB
  - >> GetIdcardNum

  pcd_default_info (Thumb, 34 bytes, Stack size 8 bytes, iso14443_4.o(i.pcd_default_info))
  [Stack]

  - Max Depth = 8
  - Call Chain = pcd_default_info
  [Calls]
  - >> __aeabi_memclr4
  [Called By]
  - >> ComReqA

  pcd_delay_sfgi (Thumb, 106 bytes, Stack size 16 bytes, rfid.o(i.pcd_delay_sfgi))
  [Stack]

  - Max Depth = 64
  - Call Chain = pcd_delay_sfgi ⇒ PcdSetTmo ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> CheckIrq
  - >> PcdSetTmo
  - >> WriteRawRC
  - >> SetBitMask
  - >> ClearBitMask
  [Called By]
  - >> pcd_rats_a
  - >> ISO14443_4_HalfDuplexExchange

  pcd_lpcd_start (Thumb, 166 bytes, Stack size 16 bytes, rfid.o(i.pcd_lpcd_start))
  [Stack]

  - Max Depth = 64
  - Call Chain = pcd_lpcd_start ⇒ ClearBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> delay_ms
  - >> WriteRawRC
  - >> ClearBitMask
  [Called By]
  - >> nfc_interface_init
  - >> nfc_card_process

  pcd_rats_a (Thumb, 302 bytes, Stack size 40 bytes, iso14443_4.o(i.pcd_rats_a))
  [Stack]

  - Max Depth = 128
  - Call Chain = pcd_rats_a ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> user_print_hex
  - >> user_print
  - >> pcd_delay_sfgi
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> WriteRawRC
  - >> SetBitMask
  [Called By]
  - >> com_typea_rats

  pcd_read (Thumb, 92 bytes, Stack size 24 bytes, rfid.o(i.pcd_read))
  [Stack]

  - Max Depth = 112
  - Call Chain = pcd_read ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> WriteRawRC
  - >> SetBitMask
  - >> __aeabi_memcpy
  [Called By]
  - >> ComReqA

  pcd_write (Thumb, 170 bytes, Stack size 24 bytes, rfid.o(i.pcd_write))
  [Stack]

  - Max Depth = 112
  - Call Chain = pcd_write ⇒ pcd_com_transceive ⇒ SetBitMask ⇒ WriteRawRC ⇒ SPIWriteByte
  [Calls]
  - >> pcd_com_transceive
  - >> PcdSetTmo
  - >> WriteRawRC
  - >> SetBitMask
  - >> ClearBitMask
  - >> __aeabi_memcpy
  [Called By]
  - >> ComReqA

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

  - >> retain_ram_standbye_prepare

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

  - >> retain_ram_standbye_exit

  retain_ram_standbye_exit (Thumb, 24 bytes, Stack size 8 bytes, cpu_deepsleep.o(i.retain_ram_standbye_exit))
  [Stack]

  - Max Depth = 8
  - Call Chain = retain_ram_standbye_exit
  [Calls]
  - >> retain_ram_exit_standbye_process
  [Called By]
  - >> deepsleep_exit

  retain_ram_standbye_prepare (Thumb, 24 bytes, Stack size 8 bytes, cpu_deepsleep.o(i.retain_ram_standbye_prepare))
  [Stack]

  - Max Depth = 8
  - Call Chain = retain_ram_standbye_prepare
  [Calls]
  - >> retain_ram_enter_standbye_process
  [Called By]
  - >> deepsleep_prepare

  save_config (Thumb, 30 bytes, Stack size 8 bytes, ws8100_config.o(i.save_config))
  [Stack]

  - Max Depth = 80
  - Call Chain = save_config ⇒ flash_write ⇒ flash_voltage_protection_check
  [Calls]
  - >> flash_write
  - >> flash_erase
  [Called By]
  - >> load_config

  set_uart_init (Thumb, 18 bytes, Stack size 4 bytes, user_uart.o(i.set_uart_init))
  [Stack]

  - Max Depth = 4
  - Call Chain = set_uart_init
  [Calls]
  - >> get_instance
  [Called By]
  - >> ui_uart_configuration
  - >> hardware_init

  setup_gpio_irq (Thumb, 96 bytes, Stack size 32 bytes, system_sleep.o(i.setup_gpio_irq))
  [Stack]

  - Max Depth = 52
  - Call Chain = setup_gpio_irq ⇒ deepsleep_set_wakeup_gpio
  [Calls]
  - >> deepsleep_set_wakeup_gpio
  - >> gpio_set_irq_src_type
  [Called By]
  - >> nfc_interface_init

  syscfg_configuration (Thumb, 32 bytes, Stack size 8 bytes, hw_config.o(i.syscfg_configuration))
  [Stack]

  - Max Depth = 16
  - Call Chain = syscfg_configuration ⇒ low_power_sleep_config_ex
  [Calls]
  - >> syscfg_set_oscxtal_config
  - >> syscfg_internal_32k_rc
  - >> syscfg_external_16M_xtal
  - >> mcu_osc_configure
  - >> low_power_sleep_config_ex
  [Called By]
  - >> hardware_init

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

  - >> low_power_sleep_config_ex
  - >> low_power_type_config_ex

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

  - >> low_power_sleep_config_ex
  - >> low_power_type_config_ex

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

  - >> low_power_sleep_config_ex
  - >> low_power_type_config_ex

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

  - >> syscfg_configuration

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

  - >> syscfg_configuration

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

  - >> syscfg_configuration

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

  - >> TIMER0_IRQHandler

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

  - >> TIMER3_IRQHandler
  - >> TIMER2_IRQHandler
  - >> TIMER1_IRQHandler
  - >> TIMER0_IRQHandler

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

  - >> ui_uart_configuration

  uart_block_putchar (Thumb, 62 bytes, Stack size 16 bytes, user_uart.o(i.uart_block_putchar))
  [Stack]

  - Max Depth = 16
  - Call Chain = uart_block_putchar
  [Calls]
  - >> get_instance
  - >> uart_send_data
  - >> uart_is_tx_empty
  [Called By]
  - >> block_putchar

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

  - >> ui_uart_configuration

  uart_fifo_init (Thumb, 104 bytes, Stack size 0 bytes, cpu_uart.o(i.uart_fifo_init))
  [Called By]

  - >> ui_uart_configuration

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

  - >> ui_uart_configuration

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

  - >> ui_uart_configuration

  uart_init (Thumb, 96 bytes, Stack size 24 bytes, cpu_uart.o(i.uart_init))
  [Stack]

  - Max Depth = 112
  - Call Chain = uart_init ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> __aeabi_ui2d
  - >> __aeabi_ddiv
  - >> __aeabi_d2uiz
  - >> __aeabi_dadd
  - >> __ARM_scalbn
  [Called By]
  - >> ui_uart_configuration

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

  - >> read_all_fifo_data

  uart_is_tx_empty (Thumb, 48 bytes, Stack size 0 bytes, cpu_uart.o(i.uart_is_tx_empty))
  [Called By]

  - >> uart_block_putchar

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

  - >> ui_uart_configuration
  - >> ui_uart_sendchar
  - >> dev_isr

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

  - >> ui_uart_configuration

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

  - >> uart_block_putchar

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

  - >> ui_uart_configuration

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

  - >> ui_uart_configuration

  ui_dbg_uart_writebuf (Thumb, 46 bytes, Stack size 24 bytes, user_uart.o(i.ui_dbg_uart_writebuf))
  [Stack]

  - Max Depth = 48
  - Call Chain = ui_dbg_uart_writebuf ⇒ ui_uart_sendchar
  [Calls]
  - >> ui_uart_sendchar
  [Called By]
  - >> user_print_hex
  - >> user_print

  ui_uart_configuration (Thumb, 386 bytes, Stack size 72 bytes, user_uart.o(i.ui_uart_configuration))
  [Stack]

  - Max Depth = 184
  - Call Chain = ui_uart_configuration ⇒ uart_init ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> uart_init
  - >> set_uart_init
  - >> gpio_set
  - >> gpio_remap_config
  - >> gpio_init
  - >> uart_struct_init
  - >> uart_set_rts
  - >> uart_reset_rts
  - >> uart_it_config
  - >> uart_fifo_struct_init
  - >> uart_fifo_set_trigger_level
  - >> uart_fifo_init
  - >> uart_fifo_cmd
  - >> uart_auto_flow_ctrl_cmd
  [Called By]
  - >> dbg_uart_configuration

  ui_uart_init (Thumb, 24 bytes, Stack size 8 bytes, user_uart.o(i.ui_uart_init))
  [Stack]

  - Max Depth = 8
  - Call Chain = ui_uart_init
  [Calls]
  - >> get_instance
  - >> __aeabi_memclr4
  [Called By]
  - >> hardware_init

  ui_uart_sendchar (Thumb, 172 bytes, Stack size 24 bytes, user_uart.o(i.ui_uart_sendchar))
  [Stack]

  - Max Depth = 24
  - Call Chain = ui_uart_sendchar
  [Calls]
  - >> cpu_prevent_sleep_set
  - >> get_instance
  - >> uart_it_config
  [Called By]
  - >> ui_dbg_uart_writebuf

  user_block_print (Thumb, 68 bytes, Stack size 32 bytes, app_trace.o(i.user_block_print))
  [Stack]

  - Max Depth = 56
  - Call Chain = user_block_print ⇒ block_putchar ⇒ uart_block_putchar
  [Calls]
  - >> is_log_enable
  - >> block_putchar
  - >> vsprintf
  - >> strlen
  - >> __aeabi_memclr
  [Called By]
  - >> user_gpio_cbk2
  - >> main
  - >> des3_cbc_decrypt

  user_deepsleep_exit (Thumb, 6 bytes, Stack size 0 bytes, hw_config.o(i.user_deepsleep_exit))
  [Stack]

  - Max Depth = 208
  - Call Chain = user_deepsleep_exit ⇒ dbg_uart_configuration ⇒ ui_uart_configuration ⇒ uart_init ⇒ __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round
  [Calls]
  - >> dbg_uart_configuration
  [Called By]
  - >> deepsleep_exit

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

  - >> deepsleep_prepare

  user_gpio_cbk2 (Thumb, 18 bytes, Stack size 8 bytes, hw_config.o(i.user_gpio_cbk2))
  [Stack]

  - Max Depth = 64
  - Call Chain = user_gpio_cbk2 ⇒ user_block_print ⇒ block_putchar ⇒ uart_block_putchar
  [Calls]
  - >> user_block_print
  [Address Reference Count : 1]
  - hw_config.o(i.nfc_interface_init)

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

  - >> nfc_interface_init

  user_print (Thumb, 56 bytes, Stack size 24 bytes, app_trace.o(i.user_print))
  [Stack]

  - Max Depth = 72
  - Call Chain = user_print ⇒ ui_dbg_uart_writebuf ⇒ ui_uart_sendchar
  [Calls]
  - >> ui_dbg_uart_writebuf
  - >> is_log_enable
  - >> vsprintf
  - >> strlen
  - >> __aeabi_memclr
  [Called By]
  - >> IC_Version
  - >> Card_Check
  - >> CardCpu_authentication
  - >> CardCpu_Write_BinaryFile
  - >> CardCpu_SelectMainFile
  - >> CardCpu_SelectFile
  - >> CardCpu_Read_BinaryFile
  - >> CardCpu_Creat_BinaryFile
  - >> CardCpu_CreatMf_Keyfile
  - >> CardCpu_ClearMfAllFile
  - >> CardCpu_Add_Line_Protect_Key
  - >> CardCpu_Add_External_Auth_Key
  - >> pcd_rats_a
  - >> com_typea_rats

  user_print_hex (Thumb, 160 bytes, Stack size 24 bytes, app_trace.o(i.user_print_hex))
  [Stack]

  - Max Depth = 72
  - Call Chain = user_print_hex ⇒ ui_dbg_uart_writebuf ⇒ ui_uart_sendchar
  [Calls]
  - >> ui_dbg_uart_writebuf
  - >> is_log_enable
  - >> strlen
  - >> __aeabi_memclr
  [Called By]
  - >> Card_Check
  - >> CardCpu_authentication
  - >> CardCpu_Write_BinaryFile
  - >> CardCpu_SelectMainFile
  - >> CardCpu_SelectFile
  - >> CardCpu_Read_BinaryFile
  - >> CardCpu_Creat_BinaryFile
  - >> CardCpu_CreatMf_Keyfile
  - >> CardCpu_ClearMfAllFile
  - >> CardCpu_Add_Line_Protect_Key
  - >> CardCpu_Add_External_Auth_Key
  - >> pcd_rats_a
  - >> CpuCard_Write_BinaryFile_Exp

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

  - >> NMI_Handler

  flash_burst_disable (Thumb, 42 bytes, Stack size 8 bytes, cpu_flash.o(config_extflash))
  [Stack]

  - Max Depth = 8
  - Call Chain = flash_burst_disable
  [Called By]
  - >> deepsleep_prepare (via Veneer)

  flash_burst_enable (Thumb, 72 bytes, Stack size 8 bytes, cpu_flash.o(config_extflash))
  [Stack]

  - Max Depth = 8
  - Call Chain = flash_burst_enable
  [Called By]
  - >> deepsleep_exit (via Veneer)

  ### Local Symbols

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

  - >> flash_write
  - >> flash_erase

  flash_voltage_protection_check (Thumb, 126 bytes, Stack size 40 bytes, cpu_flash.o(i.flash_voltage_protection_check))
  [Stack]

  - Max Depth = 40
  - Call Chain = flash_voltage_protection_check
  [Calls]
  - >> crm_cmd_periphclock
  [Called By]
  - >> flash_write
  - >> flash_erase

  read_all_fifo_data (Thumb, 132 bytes, Stack size 32 bytes, user_uart.o(i.read_all_fifo_data))
  [Stack]

  - Max Depth = 32
  - Call Chain = read_all_fifo_data
  [Calls]
  - >> uart_is_rx_fifo_no_empty
  [Called By]
  - >> flush_uartx_2_usr_fifo
  - >> dev_isr

  START_RECOVER (Thumb, 0 bytes, Stack size unknown bytes, deep_sleep_enter.o(.emb_text))
  [Address Reference Count : 1]

  - deep_sleep_enter.o(.emb_text)

  deep_sleep_not_available (Thumb, 90 bytes, Stack size 16 bytes, system_sleep.o(i.deep_sleep_not_available))
  [Stack]

  - Max Depth = 32
  - Call Chain = deep_sleep_not_available ⇒ low_power_type_config_ex
  [Calls]
  - >> low_power_type_config_ex
  - >> cpu_prevent_sleep_get
  [Called By]
  - >> low_power_sleep

  low_power_type_config_ex (Thumb, 56 bytes, Stack size 16 bytes, system_sleep.o(i.low_power_type_config_ex))
  [Stack]

  - Max Depth = 16
  - Call Chain = low_power_type_config_ex
  [Calls]
  - >> syscfg_deepsleep_set_ram_retention
  - >> syscfg_deepsleep_set_mode
  - >> syscfg_deepsleep_cmd_wakeup_source
  [Called By]
  - >> deep_sleep_not_available

  des3_set2key (Thumb, 120 bytes, Stack size 20 bytes, count_des.o(i.des3_set2key))
  [Stack]

  - Max Depth = 56
  - Call Chain = des3_set2key ⇒ des_setkey
  [Calls]
  - >> des_setkey
  [Called By]
  - >> des3_set2key_enc
  - >> des3_set2key_dec

  des3_set3key (Thumb, 126 bytes, Stack size 20 bytes, count_des.o(i.des3_set3key))
  [Stack]

  - Max Depth = 56
  - Call Chain = des3_set3key ⇒ des_setkey
  [Calls]
  - >> des_setkey
  [Called By]
  - >> des3_set3key_enc
  - >> des3_set3key_dec

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

  - >> des3_set3key_enc
  - >> des3_set3key_dec
  - >> des3_set2key_enc
  - >> des3_set2key_dec
  - >> des3_free

  _fp_digits (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
  [Calls]

  - >> __aeabi_ddiv
  - >> __aeabi_dmul
  - >> __aeabi_dadd
  - >> __aeabi_uldivmod
  - >> __aeabi_d2ulz
  - >> __aeabi_cdrcmple
  [Called By]
  - >> _printf_core

  _printf_core (Thumb, 1704 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  - >> __aeabi_uidivmod
  - >> _printf_pre_padding
  - >> _printf_post_padding
  - >> _fp_digits
  [Called By]
  - >> __0vsprintf
  - >> __0printf

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

  - >> _printf_core

  _printf_pre_padding (Thumb, 46 bytes, Stack size 24 bytes, printfa.o(i._printf_pre_padding), UNUSED)
  [Called By]

  - >> _printf_core

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

  - >> __0vsprintf
  [Address Reference Count : 1]
  - printfa.o(i.__0vsprintf)

  ### Undefined Global Symbols