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

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Jan 02 14:45:36 2019

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

### Call chain for Maximum Stack Depth:

doCmdWriteBlock ⇒ flashWriteBlock ⇒ Program

### Mutually Recursive functions

- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- SVC_Handler ⇒ SVC_Handler
- PendSV_Handler ⇒ PendSV_Handler
- SysTick_Handler ⇒ SysTick_Handler
- ADC_OVR_IRQHandler ⇒ ADC_OVR_IRQHandler

  ### Function Pointers

  - ADC_OVR_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - ADC_SEQA_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - ADC_SEQB_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - ADC_THCMP_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - BOD_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - CMP_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - CTIMER0_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - DAC0_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - FLASH_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - HardFault_Handler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - I2C0_IRQHandler from sl_hostif_i2c.o(i.I2C0_IRQHandler) referenced from keil_startup.o(RESET)
  - I2C1_IRQHandler from sl_hostif_i2c.o(i.I2C1_IRQHandler) referenced from keil_startup.o(RESET)
  - MRT_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - NMI_Handler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - PININT0_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - PININT1_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - PININT2_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - PININT3_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - PININT4_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - PININT5_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - PININT6_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - PININT7_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - PendSV_Handler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - Reset_Handler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - SPI0_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - SVC_Handler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - SysTick_Handler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - SystemInit from system.o(i.SystemInit) referenced from keil_startup.o(.text)
  - UART0_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - UART1_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - WDT_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - WKT_IRQHandler from keil_startup.o(.text) referenced from keil_startup.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from keil_startup.o(.text)
  - doCmdBoot from sl_hostif.o(i.doCmdBoot) referenced from sl_hostif.o(.constdata)
  - doCmdCheckImage from sl_hostif.o(i.doCmdCheckImage) referenced from sl_hostif.o(.constdata)
  - doCmdGetVersion from sl_hostif.o(i.doCmdGetVersion) referenced from sl_hostif.o(.constdata)
  - doCmdPageErase from sl_hostif.o(i.doCmdPageErase) referenced from sl_hostif.o(.constdata)
  - doCmdPageRead from sl_hostif.o(i.doCmdPageRead) referenced from sl_hostif.o(.constdata)
  - doCmdPageWrite from sl_hostif.o(i.doCmdPageWrite) referenced from sl_hostif.o(.constdata)
  - doCmdProbe from sl_hostif.o(i.doCmdProbe) referenced from sl_hostif.o(.constdata)
  - doCmdReadBlock from sl_hostif.o(i.doCmdReadBlock) referenced from sl_hostif.o(.constdata)
  - doCmdReadSubBlock from sl_hostif.o(i.doCmdReadSubBlock) referenced from sl_hostif.o(.constdata)
  - doCmdReset from sl_hostif.o(i.doCmdReset) referenced from sl_hostif.o(.constdata)
  - doCmdSectorErase from sl_hostif.o(i.doCmdSectorErase) referenced from sl_hostif.o(.constdata)
  - doCmdWhoAmI from sl_hostif.o(i.doCmdWhoAmI) referenced from sl_hostif.o(.constdata)
  - doCmdWriteBlock from sl_hostif.o(i.doCmdWriteBlock) referenced from sl_hostif.o(.constdata)
  - doCmdWriteSubBlock from sl_hostif.o(i.doCmdWriteSubBlock) referenced from sl_hostif.o(.constdata)
  - loopHostIfI2C from sl_hostif_i2c.o(i.loopHostIfI2C) referenced from sl_main.o(i.I2C_Interface_Config)
  - main from sl_main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
  - processSlaveTransferDone_0 from sl_hostif_i2c.o(i.processSlaveTransferDone_0) referenced from sl_hostif_i2c.o(i.startHostIfI2C)
  - processSlaveTransferDone_1 from sl_hostif_i2c.o(i.processSlaveTransferDone_1) referenced from sl_hostif_i2c.o(i.startHostIfI2C)
  - processSlaveTransferDone_2 from sl_hostif_i2c.o(i.processSlaveTransferDone_2) referenced from sl_hostif_i2c.o(i.startHostIfI2C)
  - processSlaveTransferRecv from sl_hostif_i2c.o(i.processSlaveTransferRecv) referenced from sl_hostif_i2c.o(i.startHostIfI2C)
  - processSlaveTransferSend from sl_hostif_i2c.o(i.processSlaveTransferSend) referenced from sl_hostif_i2c.o(i.startHostIfI2C)
  - processSlaveTransferStart from sl_hostif_i2c.o(i.processSlaveTransferStart) referenced from sl_hostif_i2c.o(i.startHostIfI2C)
  - secondaryLoaderEntry from sl_app_entry.o(i.secondaryLoaderEntry) referenced from sl_app_entry_place.o(.ARM.__AT_0x00001F00)

  ### Global Symbols

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

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

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

  - keil_startup.o(RESET)

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

  - >> secondaryLoaderEntry

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

  - >> doCleanBoot

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

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

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

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

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

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

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

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

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

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

  ADC_OVR_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, keil_startup.o(.text))
  [Calls]

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

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.o(RESET)

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

  - keil_startup.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]
  - >> SystemCoreClockUpdate

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

  - >> doCmdWriteSubBlock
  - >> flashReadPage
  - >> flashReadBlock

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

  - >> doCmdReadSubBlock

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

  - >> doCmdWriteSubBlock
  - >> _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), UNUSED)
  [Calls]

  - >> __aeabi_memset

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

  __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

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

  Chip_CRC_Deinit (Thumb, 10 bytes, Stack size 8 bytes, crc_8xx.o(i.Chip_CRC_Deinit))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_CRC_Deinit
  [Calls]
  - >> Disable_Periph_Clock
  [Called By]
  - >> computeCrc32
  - >> computeAppCRC

  Chip_CRC_Init (Thumb, 10 bytes, Stack size 8 bytes, crc_8xx.o(i.Chip_CRC_Init))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_CRC_Init
  [Calls]
  - >> Enable_Periph_Clock
  [Called By]
  - >> computeCrc32
  - >> computeAppCRC

  Chip_GPIO_DeInit (Thumb, 10 bytes, Stack size 8 bytes, gpio.o(i.Chip_GPIO_DeInit))
  [Stack]

  - Max Depth = 8
  - Call Chain = Chip_GPIO_DeInit
  [Calls]
  - >> Disable_Periph_Clock
  [Called By]
  - >> CleanUpSystem

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

  - >> boot_App_ImageCheck

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

  Chip_I2CS_XferHandler (Thumb, 118 bytes, Stack size 16 bytes, i2cs_8xx.o(i.Chip_I2CS_XferHandler))
  [Stack]

  - Max Depth = 16
  - Call Chain = Chip_I2CS_XferHandler
  [Called By]
  - >> loopHostIfI2C

  CleanUpSystem (Thumb, 64 bytes, Stack size 8 bytes, sl_main.o(i.CleanUpSystem))
  [Stack]

  - Max Depth = 24
  - Call Chain = CleanUpSystem ⇒ shutdownInterfaceI2C
  [Calls]
  - >> shutdownInterfaceI2C
  - >> Disable_Periph_Clock
  - >> Chip_GPIO_DeInit
  [Called By]
  - >> doCleanBoot

  Disable_Periph_Clock (Thumb, 44 bytes, Stack size 0 bytes, syscon.o(i.Disable_Periph_Clock))
  [Called By]

  - >> shutdownInterfaceI2C
  - >> Chip_CRC_Deinit
  - >> Chip_GPIO_DeInit
  - >> CleanUpSystem

  Enable_Periph_Clock (Thumb, 44 bytes, Stack size 0 bytes, syscon.o(i.Enable_Periph_Clock))
  [Called By]

  - >> Chip_CRC_Init
  - >> main
  - >> hostifAutoDetect

  ErasePages (Thumb, 94 bytes, Stack size 24 bytes, flashprg.o(i.ErasePages))
  [Stack]

  - Max Depth = 24
  - Call Chain = ErasePages
  [Calls]
  - >> GetSecNum
  [Called By]
  - >> flashErasePage

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

  - Max Depth = 16
  - Call Chain = EraseSector
  [Calls]
  - >> GetSecNum
  [Called By]
  - >> flashWriteBlock
  - >> flashEraseSector

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

  - >> main

  GPIOSetBitValue (Thumb, 46 bytes, Stack size 12 bytes, gpio.o(i.GPIOSetBitValue))
  [Stack]

  - Max Depth = 12
  - Call Chain = GPIOSetBitValue
  [Called By]
  - >> loopHostIfI2C
  - >> Hostif_DeAssertIRQ
  - >> Hostif_AssertIRQ

  GPIOSetDir (Thumb, 46 bytes, Stack size 12 bytes, gpio.o(i.GPIOSetDir))
  [Stack]

  - Max Depth = 12
  - Call Chain = GPIOSetDir
  [Called By]
  - >> I2C_Interface_Detect
  - >> loopHostIfI2C
  - >> processHostIfPacket
  - >> boot_App_ImageCheck

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

  - >> Program
  - >> EraseSector
  - >> ErasePages

  Hostif_AssertIRQ (Thumb, 20 bytes, Stack size 8 bytes, sl_hostif.o(i.Hostif_AssertIRQ))
  [Stack]

  - Max Depth = 20
  - Call Chain = Hostif_AssertIRQ ⇒ GPIOSetBitValue
  [Calls]
  - >> GPIOSetBitValue
  [Called By]
  - >> I2C_Interface_Detect
  - >> processHostIfPacket

  Hostif_DeAssertIRQ (Thumb, 20 bytes, Stack size 8 bytes, sl_hostif.o(i.Hostif_DeAssertIRQ))
  [Stack]

  - Max Depth = 20
  - Call Chain = Hostif_DeAssertIRQ ⇒ GPIOSetBitValue
  [Calls]
  - >> GPIOSetBitValue
  [Called By]
  - >> processSlaveTransferStart
  - >> processHostIfPacket
  - >> doCmdProbe

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

  - >> main

  I2C0_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, sl_hostif_i2c.o(i.I2C0_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = I2C0_IRQHandler ⇒ loopHostIfI2C ⇒ Chip_I2CS_XferHandler
  [Calls]
  - >> loopHostIfI2C
  [Address Reference Count : 1]
  - keil_startup.o(RESET)

  I2C1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, sl_hostif_i2c.o(i.I2C1_IRQHandler))
  [Stack]

  - Max Depth = 48
  - Call Chain = I2C1_IRQHandler ⇒ loopHostIfI2C ⇒ Chip_I2CS_XferHandler
  [Calls]
  - >> loopHostIfI2C
  [Address Reference Count : 1]
  - keil_startup.o(RESET)

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

  - >> I2C_Interface_Detect

  Program (Thumb, 86 bytes, Stack size 24 bytes, flashprg.o(i.Program))
  [Stack]

  - Max Depth = 24
  - Call Chain = Program
  [Calls]
  - >> GetSecNum
  [Called By]
  - >> flashWritePage
  - >> flashWriteBlock

  SystemCoreClockUpdate (Thumb, 122 bytes, Stack size 16 bytes, system.o(i.SystemCoreClockUpdate))
  [Stack]

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

  SystemInit (Thumb, 74 bytes, Stack size 8 bytes, system.o(i.SystemInit))
  [Stack]

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

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

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

  boot_App_ImageCheck (Thumb, 96 bytes, Stack size 16 bytes, sl_main.o(i.boot_App_ImageCheck))
  [Stack]

  - Max Depth = 48
  - Call Chain = boot_App_ImageCheck ⇒ checkAppCRC ⇒ computeAppCRC ⇒ Chip_CRC_Init
  [Calls]
  - >> GPIOSetDir
  - >> checkAppCRC
  - >> pinCheckValidHostif
  - >> GPIOGetPinValue
  [Called By]
  - >> boot_ImageCheck

  boot_ImageCheck (Thumb, 24 bytes, Stack size 8 bytes, sl_main.o(i.boot_ImageCheck))
  [Stack]

  - Max Depth = 56
  - Call Chain = boot_ImageCheck ⇒ boot_App_ImageCheck ⇒ checkAppCRC ⇒ computeAppCRC ⇒ Chip_CRC_Init
  [Calls]
  - >> doCleanBoot
  - >> boot_App_ImageCheck
  [Called By]
  - >> main

  checkAppCRC (Thumb, 46 bytes, Stack size 8 bytes, sl_crc_check.o(i.checkAppCRC))
  [Stack]

  - Max Depth = 32
  - Call Chain = checkAppCRC ⇒ computeAppCRC ⇒ Chip_CRC_Init
  [Calls]
  - >> computeAppCRC
  [Called By]
  - >> doCmdWriteBlock
  - >> doCmdCheckImage
  - >> boot_App_ImageCheck

  computeAppCRC (Thumb, 94 bytes, Stack size 16 bytes, sl_crc_check.o(i.computeAppCRC))
  [Stack]

  - Max Depth = 24
  - Call Chain = computeAppCRC ⇒ Chip_CRC_Init
  [Calls]
  - >> Chip_CRC_UseCRC32
  - >> Chip_CRC_Init
  - >> Chip_CRC_Deinit
  [Called By]
  - >> checkAppCRC

  computeCrc32 (Thumb, 46 bytes, Stack size 16 bytes, sl_crc_check.o(i.computeCrc32))
  [Stack]

  - Max Depth = 24
  - Call Chain = computeCrc32 ⇒ Chip_CRC_Init
  [Calls]
  - >> Chip_CRC_UseCRC32
  - >> Chip_CRC_Init
  - >> Chip_CRC_Deinit
  [Called By]
  - >> doCmdWriteSubBlock
  - >> doCmdWriteBlock
  - >> doCmdReadSubBlock
  - >> doCmdReadBlock
  - >> doCmdPageWrite
  - >> doCmdPageRead

  doCleanBoot (Thumb, 16 bytes, Stack size 8 bytes, sl_main.o(i.doCleanBoot))
  [Stack]

  - Max Depth = 32
  - Call Chain = doCleanBoot ⇒ CleanUpSystem ⇒ shutdownInterfaceI2C
  [Calls]
  - >> bootValidApp
  - >> CleanUpSystem
  [Called By]
  - >> doCmdBoot
  - >> boot_ImageCheck

  doCmdBoot (Thumb, 14 bytes, Stack size 8 bytes, sl_hostif.o(i.doCmdBoot))
  [Stack]

  - Max Depth = 40
  - Call Chain = doCmdBoot ⇒ doCleanBoot ⇒ CleanUpSystem ⇒ shutdownInterfaceI2C
  [Calls]
  - >> doCleanBoot
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

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

  - Max Depth = 48
  - Call Chain = doCmdCheckImage ⇒ checkAppCRC ⇒ computeAppCRC ⇒ Chip_CRC_Init
  [Calls]
  - >> checkAppCRC
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

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

  - sl_hostif.o(.constdata)

  doCmdPageErase (Thumb, 28 bytes, Stack size 16 bytes, sl_hostif.o(i.doCmdPageErase))
  [Stack]

  - Max Depth = 48
  - Call Chain = doCmdPageErase ⇒ flashErasePage ⇒ ErasePages
  [Calls]
  - >> flashErasePage
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

  doCmdPageRead (Thumb, 42 bytes, Stack size 16 bytes, sl_hostif.o(i.doCmdPageRead))
  [Stack]

  - Max Depth = 40
  - Call Chain = doCmdPageRead ⇒ computeCrc32 ⇒ Chip_CRC_Init
  [Calls]
  - >> flashReadPage
  - >> computeCrc32
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

  doCmdPageWrite (Thumb, 64 bytes, Stack size 24 bytes, sl_hostif.o(i.doCmdPageWrite))
  [Stack]

  - Max Depth = 56
  - Call Chain = doCmdPageWrite ⇒ flashWritePage ⇒ Program
  [Calls]
  - >> flashWritePage
  - >> computeCrc32
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

  doCmdProbe (Thumb, 94 bytes, Stack size 8 bytes, sl_hostif.o(i.doCmdProbe))
  [Stack]

  - Max Depth = 28
  - Call Chain = doCmdProbe ⇒ Hostif_DeAssertIRQ ⇒ GPIOSetBitValue
  [Calls]
  - >> parsePortData
  - >> Hostif_DeAssertIRQ
  - >> NVIC_SystemReset
  - >> pinCheckValidHostif
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

  doCmdReadBlock (Thumb, 58 bytes, Stack size 24 bytes, sl_hostif.o(i.doCmdReadBlock))
  [Stack]

  - Max Depth = 48
  - Call Chain = doCmdReadBlock ⇒ computeCrc32 ⇒ Chip_CRC_Init
  [Calls]
  - >> flashReadBlock
  - >> computeCrc32
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

  doCmdReadSubBlock (Thumb, 88 bytes, Stack size 24 bytes, sl_hostif.o(i.doCmdReadSubBlock))
  [Stack]

  - Max Depth = 48
  - Call Chain = doCmdReadSubBlock ⇒ computeCrc32 ⇒ Chip_CRC_Init
  [Calls]
  - >> flashReadBlock
  - >> computeCrc32
  - >> __aeabi_memcpy4
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

  doCmdReset (Thumb, 4 bytes, Stack size 0 bytes, sl_hostif.o(i.doCmdReset))
  [Calls]

  - >> NVIC_SystemReset
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

  doCmdSectorErase (Thumb, 26 bytes, Stack size 16 bytes, sl_hostif.o(i.doCmdSectorErase))
  [Stack]

  - Max Depth = 40
  - Call Chain = doCmdSectorErase ⇒ flashEraseSector ⇒ EraseSector
  [Calls]
  - >> flashEraseSector
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

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

  - sl_hostif.o(.constdata)

  doCmdWriteBlock (Thumb, 198 bytes, Stack size 24 bytes, sl_hostif.o(i.doCmdWriteBlock))
  [Stack]

  - Max Depth = 64
  - Call Chain = doCmdWriteBlock ⇒ flashWriteBlock ⇒ Program
  [Calls]
  - >> flashWriteBlock
  - >> computeCrc32
  - >> checkAppCRC
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

  doCmdWriteSubBlock (Thumb, 152 bytes, Stack size 24 bytes, sl_hostif.o(i.doCmdWriteSubBlock))
  [Stack]

  - Max Depth = 64
  - Call Chain = doCmdWriteSubBlock ⇒ flashWriteBlock ⇒ Program
  [Calls]
  - >> flashWriteBlock
  - >> computeCrc32
  - >> __aeabi_memset
  - >> __aeabi_memcpy
  [Address Reference Count : 1]
  - sl_hostif.o(.constdata)

  flashErasePage (Thumb, 48 bytes, Stack size 8 bytes, sl_flash.o(i.flashErasePage))
  [Stack]

  - Max Depth = 32
  - Call Chain = flashErasePage ⇒ ErasePages
  [Calls]
  - >> ErasePages
  [Called By]
  - >> doCmdPageErase

  flashEraseSector (Thumb, 26 bytes, Stack size 8 bytes, sl_flash.o(i.flashEraseSector))
  [Stack]

  - Max Depth = 24
  - Call Chain = flashEraseSector ⇒ EraseSector
  [Calls]
  - >> EraseSector
  [Called By]
  - >> doCmdSectorErase

  flashReadBlock (Thumb, 34 bytes, Stack size 8 bytes, sl_flash.o(i.flashReadBlock))
  [Stack]

  - Max Depth = 8
  - Call Chain = flashReadBlock
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> doCmdReadSubBlock
  - >> doCmdReadBlock

  flashReadPage (Thumb, 30 bytes, Stack size 8 bytes, sl_flash.o(i.flashReadPage))
  [Stack]

  - Max Depth = 8
  - Call Chain = flashReadPage
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> doCmdPageRead

  flashWriteBlock (Thumb, 70 bytes, Stack size 16 bytes, sl_flash.o(i.flashWriteBlock))
  [Stack]

  - Max Depth = 40
  - Call Chain = flashWriteBlock ⇒ Program
  [Calls]
  - >> Program
  - >> EraseSector
  [Called By]
  - >> doCmdWriteSubBlock
  - >> doCmdWriteBlock

  flashWritePage (Thumb, 36 bytes, Stack size 8 bytes, sl_flash.o(i.flashWritePage))
  [Stack]

  - Max Depth = 32
  - Call Chain = flashWritePage ⇒ Program
  [Calls]
  - >> Program
  [Called By]
  - >> doCmdPageWrite

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

  - >> main

  hostifAutoDetect (Thumb, 48 bytes, Stack size 8 bytes, sl_main.o(i.hostifAutoDetect))
  [Stack]

  - Max Depth = 24
  - Call Chain = hostifAutoDetect ⇒ startHostIfI2C
  [Calls]
  - >> startHostIfI2C
  - >> setupMuxingI2C
  - >> setupInterfaceI2C
  - >> Enable_Periph_Clock
  [Called By]
  - >> I2C_Interface_Detect

  loopHostIfI2C (Thumb, 66 bytes, Stack size 24 bytes, sl_hostif_i2c.o(i.loopHostIfI2C))
  [Stack]

  - Max Depth = 40
  - Call Chain = loopHostIfI2C ⇒ Chip_I2CS_XferHandler
  [Calls]
  - >> GPIOSetDir
  - >> GPIOSetBitValue
  - >> Chip_I2CS_XferHandler
  [Called By]
  - >> I2C1_IRQHandler
  - >> I2C0_IRQHandler
  [Address Reference Count : 1]
  - sl_main.o(i.I2C_Interface_Config)

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

  - Max Depth = 56
  - Call Chain = main ⇒ boot_ImageCheck ⇒ boot_App_ImageCheck ⇒ checkAppCRC ⇒ computeAppCRC ⇒ Chip_CRC_Init
  [Calls]
  - >> isbootFromReset
  - >> I2C_Interface_Detect
  - >> I2C_Interface_Config
  - >> processHostIfPacket
  - >> hostIfPacketPending
  - >> Hostif_Init
  - >> Enable_Periph_Clock
  - >> SystemCoreClockUpdate
  - >> GPIOInit
  - >> boot_ImageCheck
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

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

  - >> I2C_Interface_Detect
  - >> doCmdProbe

  pinCheckValidHostif (Thumb, 80 bytes, Stack size 12 bytes, sl_pin_manager.o(i.pinCheckValidHostif))
  [Stack]

  - Max Depth = 12
  - Call Chain = pinCheckValidHostif
  [Called By]
  - >> I2C_Interface_Detect
  - >> doCmdProbe
  - >> secondaryLoaderEntry
  - >> boot_App_ImageCheck

  processHostIfPacket (Thumb, 120 bytes, Stack size 24 bytes, sl_hostif.o(i.processHostIfPacket))
  [Stack]

  - Max Depth = 44
  - Call Chain = processHostIfPacket ⇒ Hostif_DeAssertIRQ ⇒ GPIOSetBitValue
  [Calls]
  - >> GPIOSetDir
  - >> Hostif_DeAssertIRQ
  - >> Hostif_AssertIRQ
  [Called By]
  - >> main

  secondaryLoaderEntry (Thumb, 28 bytes, Stack size 8 bytes, sl_app_entry.o(i.secondaryLoaderEntry))
  [Stack]

  - Max Depth = 20
  - Call Chain = secondaryLoaderEntry ⇒ pinCheckValidHostif
  [Calls]
  - >> pinCheckValidHostif
  - >> secondaryLoaderAppEntry
  [Address Reference Count : 1]
  - sl_app_entry_place.o(.ARM.__AT_0x00001F00)

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

  - >> I2C_Interface_Config
  - >> hostifAutoDetect

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

  - >> I2C_Interface_Config
  - >> hostifAutoDetect

  shutdownInterfaceI2C (Thumb, 54 bytes, Stack size 16 bytes, sl_hostif_i2c.o(i.shutdownInterfaceI2C))
  [Stack]

  - Max Depth = 16
  - Call Chain = shutdownInterfaceI2C
  [Calls]
  - >> I2C_GetClockID
  - >> Disable_Periph_Clock
  [Called By]
  - >> CleanUpSystem

  startHostIfI2C (Thumb, 60 bytes, Stack size 16 bytes, sl_hostif_i2c.o(i.startHostIfI2C))
  [Stack]

  - Max Depth = 16
  - Call Chain = startHostIfI2C
  [Called By]
  - >> I2C_Interface_Config
  - >> hostifAutoDetect

  ### Local Symbols

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

  - >> computeCrc32
  - >> computeAppCRC

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

  - >> doCmdReset
  - >> doCmdProbe

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

  - >> shutdownInterfaceI2C

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

  - >> processSlaveTransferDone_2
  - >> processSlaveTransferDone_1
  - >> processSlaveTransferDone_0

  processSlaveTransferDone_0 (Thumb, 14 bytes, Stack size 8 bytes, sl_hostif_i2c.o(i.processSlaveTransferDone_0))
  [Stack]

  - Max Depth = 8
  - Call Chain = processSlaveTransferDone_0
  [Calls]
  - >> processSlaveTransferDone
  [Address Reference Count : 1]
  - sl_hostif_i2c.o(i.startHostIfI2C)

  processSlaveTransferDone_1 (Thumb, 14 bytes, Stack size 8 bytes, sl_hostif_i2c.o(i.processSlaveTransferDone_1))
  [Stack]

  - Max Depth = 8
  - Call Chain = processSlaveTransferDone_1
  [Calls]
  - >> processSlaveTransferDone
  [Address Reference Count : 1]
  - sl_hostif_i2c.o(i.startHostIfI2C)

  processSlaveTransferDone_2 (Thumb, 14 bytes, Stack size 8 bytes, sl_hostif_i2c.o(i.processSlaveTransferDone_2))
  [Stack]

  - Max Depth = 8
  - Call Chain = processSlaveTransferDone_2
  [Calls]
  - >> processSlaveTransferDone
  [Address Reference Count : 1]
  - sl_hostif_i2c.o(i.startHostIfI2C)

  processSlaveTransferRecv (Thumb, 18 bytes, Stack size 0 bytes, sl_hostif_i2c.o(i.processSlaveTransferRecv))
  [Address Reference Count : 1]

  - sl_hostif_i2c.o(i.startHostIfI2C)

  processSlaveTransferSend (Thumb, 36 bytes, Stack size 8 bytes, sl_hostif_i2c.o(i.processSlaveTransferSend))
  [Stack]

  - Max Depth = 8
  - Call Chain = processSlaveTransferSend
  [Address Reference Count : 1]
  - sl_hostif_i2c.o(i.startHostIfI2C)

  processSlaveTransferStart (Thumb, 18 bytes, Stack size 8 bytes, sl_hostif_i2c.o(i.processSlaveTransferStart))
  [Stack]

  - Max Depth = 28
  - Call Chain = processSlaveTransferStart ⇒ Hostif_DeAssertIRQ ⇒ GPIOSetBitValue
  [Calls]
  - >> Hostif_DeAssertIRQ
  [Address Reference Count : 1]
  - sl_hostif_i2c.o(i.startHostIfI2C)

  I2C_Interface_Config (Thumb, 38 bytes, Stack size 8 bytes, sl_main.o(i.I2C_Interface_Config))
  [Stack]

  - Max Depth = 24
  - Call Chain = I2C_Interface_Config ⇒ startHostIfI2C
  [Calls]
  - >> startHostIfI2C
  - >> setupMuxingI2C
  - >> setupInterfaceI2C
  [Called By]
  - >> main

  I2C_Interface_Detect (Thumb, 70 bytes, Stack size 16 bytes, sl_main.o(i.I2C_Interface_Detect))
  [Stack]

  - Max Depth = 40
  - Call Chain = I2C_Interface_Detect ⇒ hostifAutoDetect ⇒ startHostIfI2C
  [Calls]
  - >> isbootFromReset
  - >> GPIOSetDir
  - >> parsePortData
  - >> IRQ_Pin_Config
  - >> Hostif_AssertIRQ
  - >> pinCheckValidHostif
  - >> hostifAutoDetect
  [Called By]
  - >> main

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

  - >> I2C_Interface_Detect
  - >> main

  ### Undefined Global Symbols