Static Call Graph - [.\obj\SPI_Master.axf]

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

#<CALLGRAPH># ARM Linker, 5060422: Last Updated: Sun May 06 19:28:25 2018

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

### Call chain for Maximum Stack Depth:

main ⇒ SPI_Init ⇒ SPI_Open ⇒ SPI_SetBusClock ⇒ CLK_GetHCLKFreq ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- SVC_Handler ⇒ SVC_Handler
- PendSV_Handler ⇒ PendSV_Handler
- SysTick_Handler ⇒ SysTick_Handler
- ADC_IRQHandler ⇒ ADC_IRQHandler

  ### Function Pointers

  - ADC_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - APU_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - EXINT_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - GPAB_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - HardFault_Handler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - NMI_Handler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - PWM0_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - PWRWU_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - PendSV_Handler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - RTC_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - Reset_Handler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - SPI0_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - SPI1_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - SVC_Handler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - SysTick_Handler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - TMR0_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - TMR1_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - TMR2_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - TMRF_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - USBD_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - WDT_IRQHandler from startup_n572.o(.text) referenced from startup_n572.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_n572.o(.text)
  - fputc from retarget.o(i.fputc) referenced from printf5.o(i.__0printf$5)
  - main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)

  ### Global Symbols

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

  - startup_n572.o(.text)

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

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

  - >> __scatterload

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

  - >> __scatterload

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

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

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

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

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

  SH_DoCommand (Thumb, 18 bytes, Stack size 0 bytes, retarget.o(.emb_text))
  [Called By]

  - >> SendChar
  - >> GetChar

  Reset_Handler (Thumb, 4 bytes, Stack size 0 bytes, startup_n572.o(.text))

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

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

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

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

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

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

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

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

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

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

  ADC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_n572.o(.text))
  [Calls]

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

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

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

  - startup_n572.o(RESET)

  __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))
  [Stack]

  - Max Depth = 12
  - Call Chain = __aeabi_uidivmod
  [Called By]
  - >> SPI_SetBusClock
  - >> SPI_GetBusClock
  - >> SystemCoreClockUpdate

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

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

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

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

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

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

  - >> __aeabi_uldivmod

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

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

  - >> __aeabi_uldivmod

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

  CLK_EnableModuleClock (Thumb, 36 bytes, Stack size 8 bytes, clk.o(i.CLK_EnableModuleClock))
  [Stack]

  - Max Depth = 16
  - Call Chain = CLK_EnableModuleClock ⇒ SYS_Unlock
  [Calls]
  - >> SYS_Unlock
  - >> SYS_Lock
  [Called By]
  - >> SYS_Init

  CLK_EnableXtalRC (Thumb, 22 bytes, Stack size 8 bytes, clk.o(i.CLK_EnableXtalRC))
  [Stack]

  - Max Depth = 16
  - Call Chain = CLK_EnableXtalRC ⇒ SYS_Unlock
  [Calls]
  - >> SYS_Unlock
  - >> SYS_Lock
  [Called By]
  - >> SYS_Init

  CLK_GetHCLKFreq (Thumb, 12 bytes, Stack size 8 bytes, clk.o(i.CLK_GetHCLKFreq))
  [Stack]

  - Max Depth = 28
  - Call Chain = CLK_GetHCLKFreq ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> SystemCoreClockUpdate
  [Called By]
  - >> SPI_SetBusClock
  - >> SPI_GetBusClock

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

  - >> SystemCoreClockUpdate

  CLK_SetHCLK (Thumb, 42 bytes, Stack size 16 bytes, clk.o(i.CLK_SetHCLK))
  [Stack]

  - Max Depth = 36
  - Call Chain = CLK_SetHCLK ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> SYS_Unlock
  - >> SYS_Lock
  - >> SystemCoreClockUpdate
  [Called By]
  - >> SYS_Init

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

  - >> SYS_Init

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

  - >> SYS_Init

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

  - >> SYS_Init

  GetChar (Thumb, 46 bytes, Stack size 16 bytes, retarget.o(i.GetChar))
  [Stack]

  - Max Depth = 16
  - Call Chain = GetChar
  [Calls]
  - >> SH_DoCommand
  [Called By]
  - >> fgetc

  SPI_GetBusClock (Thumb, 38 bytes, Stack size 8 bytes, spi.o(i.SPI_GetBusClock))
  [Stack]

  - Max Depth = 36
  - Call Chain = SPI_GetBusClock ⇒ CLK_GetHCLKFreq ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  - >> CLK_GetHCLKFreq
  [Called By]
  - >> SPI_Open
  - >> main

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

  - Max Depth = 60
  - Call Chain = SPI_Init ⇒ SPI_Open ⇒ SPI_SetBusClock ⇒ CLK_GetHCLKFreq ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> SPI_Open
  [Called By]
  - >> main

  SPI_Open (Thumb, 20 bytes, Stack size 8 bytes, spi.o(i.SPI_Open))
  [Stack]

  - Max Depth = 52
  - Call Chain = SPI_Open ⇒ SPI_SetBusClock ⇒ CLK_GetHCLKFreq ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> SPI_SetBusClock
  - >> SPI_GetBusClock
  [Called By]
  - >> SPI_Init

  SPI_SetBusClock (Thumb, 72 bytes, Stack size 16 bytes, spi.o(i.SPI_SetBusClock))
  [Stack]

  - Max Depth = 44
  - Call Chain = SPI_SetBusClock ⇒ CLK_GetHCLKFreq ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  - >> CLK_GetHCLKFreq
  [Called By]
  - >> SPI_Open

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

  - Max Depth = 44
  - Call Chain = SYS_Init ⇒ CLK_SetHCLK ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> SYS_UnlockReg
  - >> SYS_SetRamWaitSate
  - >> SYS_SetCpuWaiState
  - >> SYS_ResetModule
  - >> SYS_LockReg
  - >> CLK_SetPLL2Mode
  - >> CLK_SetPLL2
  - >> CLK_SetPLL1Mode
  - >> CLK_SetHCLK
  - >> CLK_EnableXtalRC
  - >> CLK_EnableModuleClock
  - >> SystemCoreClockUpdate
  [Called By]
  - >> main

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

  - >> SYS_SetRamWaitSate
  - >> SYS_SetCpuWaiState
  - >> SYS_ResetModule
  - >> CLK_SetHCLK
  - >> CLK_EnableXtalRC
  - >> CLK_EnableModuleClock

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

  - >> SYS_Init

  SYS_ResetModule (Thumb, 38 bytes, Stack size 8 bytes, sys.o(i.SYS_ResetModule))
  [Stack]

  - Max Depth = 16
  - Call Chain = SYS_ResetModule ⇒ SYS_Unlock
  [Calls]
  - >> SYS_Unlock
  - >> SYS_Lock
  [Called By]
  - >> SYS_Init

  SYS_SetCpuWaiState (Thumb, 28 bytes, Stack size 8 bytes, sys.o(i.SYS_SetCpuWaiState))
  [Stack]

  - Max Depth = 16
  - Call Chain = SYS_SetCpuWaiState ⇒ SYS_Unlock
  [Calls]
  - >> SYS_Unlock
  - >> SYS_Lock
  [Called By]
  - >> SYS_Init

  SYS_SetRamWaitSate (Thumb, 28 bytes, Stack size 8 bytes, sys.o(i.SYS_SetRamWaitSate))
  [Stack]

  - Max Depth = 16
  - Call Chain = SYS_SetRamWaitSate ⇒ SYS_Unlock
  [Calls]
  - >> SYS_Unlock
  - >> SYS_Lock
  [Called By]
  - >> SYS_Init

  SYS_Unlock (Thumb, 38 bytes, Stack size 8 bytes, sys.o(i.SYS_Unlock))
  [Stack]

  - Max Depth = 8
  - Call Chain = SYS_Unlock
  [Called By]
  - >> SYS_SetRamWaitSate
  - >> SYS_SetCpuWaiState
  - >> SYS_ResetModule
  - >> CLK_SetHCLK
  - >> CLK_EnableXtalRC
  - >> CLK_EnableModuleClock

  SYS_UnlockReg (Thumb, 26 bytes, Stack size 8 bytes, sys.o(i.SYS_UnlockReg))
  [Stack]

  - Max Depth = 8
  - Call Chain = SYS_UnlockReg
  [Called By]
  - >> SYS_Init

  SendChar (Thumb, 62 bytes, Stack size 16 bytes, retarget.o(i.SendChar))
  [Stack]

  - Max Depth = 16
  - Call Chain = SendChar
  [Calls]
  - >> SH_DoCommand
  [Called By]
  - >> fputc

  SystemCoreClockUpdate (Thumb, 70 bytes, Stack size 8 bytes, system_n572.o(i.SystemCoreClockUpdate))
  [Stack]

  - Max Depth = 20
  - Call Chain = SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  - >> CLK_GetPLL2ClockFreq
  - >> __ARM_common_switch8
  [Called By]
  - >> CLK_GetHCLKFreq
  - >> CLK_SetHCLK
  - >> SYS_Init

  __0printf$5 (Thumb, 24 bytes, Stack size 24 bytes, printf5.o(i.__0printf$5), UNUSED)
  [Calls]

  - >> _printf_core

  __1printf$5 (Thumb, 0 bytes, Stack size 24 bytes, printf5.o(i.__0printf$5), UNUSED)

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

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

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

  - Max Depth = 8
  - Call Chain = __ARM_common_switch8
  [Called By]
  - >> SystemCoreClockUpdate

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

  fgetc (Thumb, 8 bytes, Stack size 8 bytes, retarget.o(i.fgetc))
  [Stack]

  - Max Depth = 24
  - Call Chain = fgetc ⇒ GetChar
  [Calls]
  - >> GetChar
  [Called By]
  - >> getc

  fputc (Thumb, 12 bytes, Stack size 8 bytes, retarget.o(i.fputc))
  [Stack]

  - Max Depth = 24
  - Call Chain = fputc ⇒ SendChar
  [Calls]
  - >> SendChar
  [Address Reference Count : 1]
  - printf5.o(i.__0printf$5)

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

  - Max Depth = 32
  - Call Chain = getc ⇒ fgetc ⇒ GetChar
  [Calls]
  - >> fgetc
  [Called By]
  - >> main

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

  - Max Depth = 60
  - Call Chain = main ⇒ SPI_Init ⇒ SPI_Open ⇒ SPI_SetBusClock ⇒ CLK_GetHCLKFreq ⇒ SystemCoreClockUpdate ⇒ __aeabi_uidivmod
  [Calls]
  - >> getc
  - >> SPI_GetBusClock
  - >> SYS_Init
  - >> SPI_Init
  - >> __2printf
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  ### Local Symbols

  _printf_core (Thumb, 688 bytes, Stack size 96 bytes, printf5.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  [Called By]
  - >> __0printf$5

  ### Undefined Global Symbols