# Static Call Graph for image .\Out\USB_Printer.axf

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Thu Jun 03 15:50:36 2021

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

### Call chain for Maximum Stack Depth:

main ⇒ USB_ProcCtrlPkg ⇒ COM_DecodeSetupCommands ⇒ COM_CmdGetDescriptor ⇒ USB_ControlIn ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt

### 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_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - CT16B0_IRQHandler from timer16.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - CT16B1_IRQHandler from timer16.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - CT16B2_IRQHandler from timer16.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - CT16B3_IRQHandler from timer16.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - CT16B4_IRQHandler from timer16.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - CT32B0_IRQHandler from timer32.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - DMA_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - GPIO0_IRQHandler from gpio.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - GPIO1_IRQHandler from gpio.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - GPIO2_IRQHandler from gpio.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - GPIO3_IRQHandler from gpio.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - HardFault_Handler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - I2C0_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - I2C1_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - I2S_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - LVI_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - NMI_Handler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - PWM_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - PendSV_Handler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - RTC_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - Reset_Handler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - SPI0_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - SPI1_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - SPI2_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - SVC_Handler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - SysTick_Handler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - SystemInit from system_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(.text)
  - UART0_IRQHandler from uart.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - UART1_IRQHandler from uart.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - UART2_IRQHandler from uart.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - USBRSM_IRQHandler from usb.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - USB_IRQHandler from usb.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - WDT_IRQHandler from startup_ob90a64u1.o(.text) referenced from startup_ob90a64u1.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_ob90a64u1.o(.text)
  - main from main.o(.text) 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_ob90a64u1.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, 8 bytes, Stack size 0 bytes, startup_ob90a64u1.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

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

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

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

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

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

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

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

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

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

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

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

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

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(RESET)

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

  - startup_ob90a64u1.o(.text)

  SystemCoreClockUpdate (Thumb, 22 bytes, Stack size 8 bytes, system_ob90a64u1.o(.text))
  [Stack]

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

  main (Thumb, 102 bytes, Stack size 8 bytes, main.o(.text))
  [Stack]

  - Max Depth = 192
  - Call Chain = main ⇒ USB_ProcCtrlPkg ⇒ COM_DecodeSetupCommands ⇒ COM_CmdGetDescriptor ⇒ USB_ControlIn ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> USB_WaitInterrupt
  - >> USB_ProcCtrlPkg
  - >> USB_Open
  - >> USBSetReady
  - >> COM_ProcBulkPkg
  - >> SystemCoreClockUpdate
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

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

  - Max Depth = 128
  - Call Chain = COM_CmdMassStorageReset ⇒ USB_ControlIn ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> USB_StallEp
  - >> USB_ControlIn
  [Called By]
  - >> COM_DecodeSetupCommands

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

  - Max Depth = 128
  - Call Chain = COM_CmdGetMaxLun ⇒ USB_ControlIn ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> USB_StallEp
  - >> USB_ControlIn
  [Called By]
  - >> COM_DecodeSetupCommands

  COM_CmdGetDescriptor (Thumb, 280 bytes, Stack size 32 bytes, usbcom.o(.text))
  [Stack]

  - Max Depth = 152
  - Call Chain = COM_CmdGetDescriptor ⇒ USB_ControlIn ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> USB_StallEp
  - >> USB_ControlIn
  - >> __ARM_common_switch8
  [Called By]
  - >> COM_DecodeSetupCommands

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

  - Max Depth = 128
  - Call Chain = COM_CmdGetStatus ⇒ USB_ControlIn ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> USB_StallEp
  - >> USB_ControlIn
  [Called By]
  - >> COM_DecodeSetupCommands

  COM_DecodeSetupCommands (Thumb, 128 bytes, Stack size 16 bytes, usbcom.o(.text))
  [Stack]

  - Max Depth = 168
  - Call Chain = COM_DecodeSetupCommands ⇒ COM_CmdGetDescriptor ⇒ USB_ControlIn ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> __ARM_common_switch8
  - >> COM_CmdGetStatus
  - >> COM_CmdGetDescriptor
  - >> COM_CmdGetMaxLun
  - >> COM_CmdMassStorageReset
  - >> USBSetReady
  [Called By]
  - >> USB_ProcCtrlPkg

  COM_ProcBulkPkg (Thumb, 98 bytes, Stack size 16 bytes, usbcom.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = COM_ProcBulkPkg ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> USB_Transfer_Out
  - >> USB_Transfer_In
  - >> USB_StallEp
  [Called By]
  - >> main

  GPIO0_IRQHandler (Thumb, 22 bytes, Stack size 0 bytes, gpio.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  GPIO1_IRQHandler (Thumb, 18 bytes, Stack size 0 bytes, gpio.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  GPIO2_IRQHandler (Thumb, 18 bytes, Stack size 0 bytes, gpio.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  GPIO3_IRQHandler (Thumb, 18 bytes, Stack size 0 bytes, gpio.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  GPIO_SetPinMode (Thumb, 476 bytes, Stack size 12 bytes, gpio.o(.text), UNUSED)
  [Called By]

  - >> GPIO_SetFunMode

  GPIO_SetFunMode (Thumb, 148 bytes, Stack size 20 bytes, gpio.o(.text), UNUSED)
  [Calls]

  - >> GPIO_SetPinMode
  - >> __ARM_common_switch8
  [Called By]
  - >> GPIO_SetPinMFType

  GPIO_SetPinMFType (Thumb, 3706 bytes, Stack size 16 bytes, gpio.o(.text), UNUSED)
  [Calls]

  - >> GPIO_SetFunMode

  GPIO_EnableINT (Thumb, 552 bytes, Stack size 16 bytes, gpio.o(.text), UNUSED)
  [Calls]

  - >> __NVIC_EnableIRQ

  GPIO_EnablePinINTDebounce (Thumb, 8 bytes, Stack size 0 bytes, gpio.o(.text), UNUSED)

  GPIO_DisablePinINTDebounce (Thumb, 8 bytes, Stack size 0 bytes, gpio.o(.text), UNUSED)

  GPIO_SetINTDebounce (Thumb, 4 bytes, Stack size 0 bytes, gpio.o(.text), UNUSED)

  GPIO_GetINTStatus (Thumb, 20 bytes, Stack size 0 bytes, gpio.o(.text), UNUSED)

  GPIO_ClearINTStatus (Thumb, 4 bytes, Stack size 0 bytes, gpio.o(.text), UNUSED)

  GPIO_SetTADC0 (Thumb, 486 bytes, Stack size 12 bytes, gpio.o(.text), UNUSED)

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

  - >> UART2_IRQHandler
  - >> UART1_IRQHandler
  - >> UART0_IRQHandler

  UART0_IRQHandler (Thumb, 66 bytes, Stack size 4 bytes, uart.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = UART0_IRQHandler
  [Calls]
  - >> UART_DisableInt
  [Address Reference Count : 1]
  - startup_ob90a64u1.o(RESET)

  UART1_IRQHandler (Thumb, 66 bytes, Stack size 4 bytes, uart.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = UART1_IRQHandler
  [Calls]
  - >> UART_DisableInt
  [Address Reference Count : 1]
  - startup_ob90a64u1.o(RESET)

  UART2_IRQHandler (Thumb, 66 bytes, Stack size 4 bytes, uart.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = UART2_IRQHandler
  [Calls]
  - >> UART_DisableInt
  [Address Reference Count : 1]
  - startup_ob90a64u1.o(RESET)

  UART_EnableInt (Thumb, 4 bytes, Stack size 0 bytes, uart.o(.text), UNUSED)

  UART_Open (Thumb, 30 bytes, Stack size 16 bytes, uart.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod

  UART_Read (Thumb, 56 bytes, Stack size 12 bytes, uart.o(.text), UNUSED)
  [Called By]

  - >> fgetc

  UART_Write (Thumb, 56 bytes, Stack size 16 bytes, uart.o(.text), UNUSED)
  [Called By]

  - >> fputc

  fputc (Thumb, 24 bytes, Stack size 16 bytes, uart.o(.text), UNUSED)
  [Calls]

  - >> UART_Write

  fgetc (Thumb, 22 bytes, Stack size 12 bytes, uart.o(.text), UNUSED)
  [Calls]

  - >> UART_Read

  CT16B0_IRQHandler (Thumb, 18 bytes, Stack size 0 bytes, timer16.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  CT16B1_IRQHandler (Thumb, 18 bytes, Stack size 0 bytes, timer16.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  CT16B2_IRQHandler (Thumb, 18 bytes, Stack size 0 bytes, timer16.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  CT16B3_IRQHandler (Thumb, 18 bytes, Stack size 0 bytes, timer16.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  CT16B4_IRQHandler (Thumb, 18 bytes, Stack size 0 bytes, timer16.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  TIMER16_Enable (Thumb, 18 bytes, Stack size 0 bytes, timer16.o(.text), UNUSED)
  [Called By]

  - >> TIMER16_Delay

  TIMER16_Close (Thumb, 6 bytes, Stack size 0 bytes, timer16.o(.text), UNUSED)
  [Called By]

  - >> TIMER16_Delay

  TIMER16_Delay (Thumb, 100 bytes, Stack size 24 bytes, timer16.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  - >> TIMER16_Close
  - >> TIMER16_Enable

  TIMER16_ToggleOut (Thumb, 82 bytes, Stack size 24 bytes, timer16.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod

  TIMER16_EnableCapture (Thumb, 32 bytes, Stack size 8 bytes, timer16.o(.text), UNUSED)

  TIMER16_DisableCapture (Thumb, 6 bytes, Stack size 0 bytes, timer16.o(.text), UNUSED)

  TIMER16_GetModuleClock (Thumb, 44 bytes, Stack size 16 bytes, timer16.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod

  TIMER16_SetExternalMatch (Thumb, 118 bytes, Stack size 12 bytes, timer16.o(.text), UNUSED)

  TIMER16_EnableInterrupt (Thumb, 56 bytes, Stack size 12 bytes, timer16.o(.text), UNUSED)
  [Called By]

  - >> TIMER16_Delay_Interrupt

  TIMER16_Delay_Interrupt (Thumb, 96 bytes, Stack size 40 bytes, timer16.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  - >> TIMER16_EnableInterrupt

  USB_SetCon (Thumb, 162 bytes, Stack size 0 bytes, usb.o(.text))
  [Called By]

  - >> USB_Open

  USB_SetFifoSize (Thumb, 68 bytes, Stack size 0 bytes, usb.o(.text))
  [Called By]

  - >> USB_Open

  USB_AutoTrim48M (Thumb, 34 bytes, Stack size 8 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_AutoTrim48M
  [Called By]
  - >> USB_Open

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

  - >> USB_Open

  USB_Open (Thumb, 116 bytes, Stack size 8 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = USB_Open ⇒ TIMER32_UsbDelay ⇒ __aeabi_uidivmod
  [Calls]
  - >> TIMER32_UsbDelay
  - >> USB_SetClockSource
  - >> USB_AutoTrim48M
  - >> USB_SetFifoSize
  - >> USB_SetCon
  - >> __NVIC_EnableIRQ
  [Called By]
  - >> main

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

  - >> USB_Transfer_Out
  - >> USB_Transfer_In
  - >> USB_StallEp
  - >> USB_ControlIn
  - >> COM_DecodeSetupCommands
  - >> main

  USB_WaitInterrupt (Thumb, 328 bytes, Stack size 40 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = USB_WaitInterrupt
  [Calls]
  - >> TIMER32_Enable
  - >> TIMER32_Close
  [Called By]
  - >> USB_Transfer_Out
  - >> USB_Transfer_In
  - >> USB_ControlIn
  - >> main

  USB_WriteFifo (Thumb, 208 bytes, Stack size 12 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_WriteFifo
  [Called By]
  - >> USB_Transfer_In

  USB_GetFifoSize (Thumb, 92 bytes, Stack size 0 bytes, usb.o(.text))
  [Called By]

  - >> USB_Transfer_In

  USB_GetInterruptTimerOut (Thumb, 54 bytes, Stack size 0 bytes, usb.o(.text))
  [Called By]

  - >> USB_Transfer_Out
  - >> USB_Transfer_In
  - >> USB_ControlIn

  USB_Transfer_In (Thumb, 148 bytes, Stack size 56 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> USB_GetInterruptTimerOut
  - >> USB_GetFifoSize
  - >> USB_WriteFifo
  - >> USB_WaitInterrupt
  - >> USBSetReady
  [Called By]
  - >> USB_ControlIn
  - >> COM_ProcBulkPkg

  USB_ControlIn (Thumb, 72 bytes, Stack size 24 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = USB_ControlIn ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> USB_GetInterruptTimerOut
  - >> USB_Transfer_In
  - >> USB_WaitInterrupt
  - >> USBSetReady
  [Called By]
  - >> COM_CmdGetStatus
  - >> COM_CmdGetDescriptor
  - >> COM_CmdGetMaxLun
  - >> COM_CmdMassStorageReset

  USBGetFiFo (Thumb, 268 bytes, Stack size 12 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = USBGetFiFo
  [Called By]
  - >> USBCommControlOut
  - >> USB_Transfer_Out

  USBCommControlOut (Thumb, 20 bytes, Stack size 16 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = USBCommControlOut ⇒ USBGetFiFo
  [Calls]
  - >> USBGetFiFo
  [Called By]
  - >> USB_ProcCtrlPkg

  USB_Transfer_Out (Thumb, 88 bytes, Stack size 32 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = USB_Transfer_Out ⇒ USB_WaitInterrupt
  [Calls]
  - >> USBGetFiFo
  - >> USB_GetInterruptTimerOut
  - >> USB_WaitInterrupt
  - >> USBSetReady
  [Called By]
  - >> COM_ProcBulkPkg

  USB_StallEp (Thumb, 46 bytes, Stack size 8 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_StallEp
  [Calls]
  - >> USBSetReady
  [Called By]
  - >> COM_CmdGetStatus
  - >> COM_CmdGetDescriptor
  - >> COM_CmdGetMaxLun
  - >> COM_CmdMassStorageReset
  - >> USB_ProcCtrlPkg
  - >> COM_ProcBulkPkg

  USB_IRQHandler (Thumb, 90 bytes, Stack size 0 bytes, usb.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  USBRSM_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, usb.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

  USB_ProcCtrlPkg (Thumb, 30 bytes, Stack size 16 bytes, usb.o(.text))
  [Stack]

  - Max Depth = 184
  - Call Chain = USB_ProcCtrlPkg ⇒ COM_DecodeSetupCommands ⇒ COM_CmdGetDescriptor ⇒ USB_ControlIn ⇒ USB_Transfer_In ⇒ USB_WaitInterrupt
  [Calls]
  - >> USBCommControlOut
  - >> USB_StallEp
  - >> COM_DecodeSetupCommands
  [Called By]
  - >> main

  CT32B0_IRQHandler (Thumb, 18 bytes, Stack size 0 bytes, timer32.o(.text))
  [Address Reference Count : 1]

  - startup_ob90a64u1.o(RESET)

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

  - >> USB_WaitInterrupt

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

  - >> TIMER32_Delay
  - >> USB_WaitInterrupt

  TIMER32_Delay (Thumb, 110 bytes, Stack size 24 bytes, timer32.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  - >> TIMER32_Close

  TIMER32_EnableCapture (Thumb, 32 bytes, Stack size 8 bytes, timer32.o(.text), UNUSED)

  TIMER32_DisableCapture (Thumb, 6 bytes, Stack size 0 bytes, timer32.o(.text), UNUSED)

  TIMER32_GetModuleClock (Thumb, 44 bytes, Stack size 16 bytes, timer32.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod

  TIMER32_ToggleOut (Thumb, 94 bytes, Stack size 24 bytes, timer32.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod

  TIMER32_SetExternalMatch (Thumb, 118 bytes, Stack size 12 bytes, timer32.o(.text), UNUSED)

  TIMER32_EnableInterrupt (Thumb, 56 bytes, Stack size 12 bytes, timer32.o(.text), UNUSED)
  [Called By]

  - >> TIMER32_Delay_Interrupt

  TIMER32_Delay_Interrupt (Thumb, 96 bytes, Stack size 40 bytes, timer32.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  - >> TIMER32_EnableInterrupt

  TIMER32_PWMSel (Thumb, 56 bytes, Stack size 8 bytes, timer32.o(.text), UNUSED)

  TIMER32_PWM_Length (Thumb, 96 bytes, Stack size 40 bytes, timer32.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod

  TIMER32_UsbDelay (Thumb, 42 bytes, Stack size 16 bytes, timer32.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = TIMER32_UsbDelay ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> USB_Open

  __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]
  - >> TIMER32_PWM_Length
  - >> TIMER32_Delay_Interrupt
  - >> TIMER32_ToggleOut
  - >> TIMER32_GetModuleClock
  - >> TIMER32_Delay
  - >> TIMER32_UsbDelay
  - >> TIMER16_Delay_Interrupt
  - >> TIMER16_GetModuleClock
  - >> TIMER16_ToggleOut
  - >> TIMER16_Delay
  - >> UART_Open
  - >> SystemCoreClockUpdate

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

  __ARM_common_switch8 (Thumb, 28 bytes, Stack size 8 bytes, usbcom.o(i.__ARM_common_switch8))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_common_switch8
  [Called By]
  - >> GPIO_SetFunMode
  - >> COM_DecodeSetupCommands
  - >> COM_CmdGetDescriptor

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

  ### Local Symbols

  __NVIC_EnableIRQ (Thumb, 18 bytes, Stack size 0 bytes, gpio.o(.text), UNUSED)
  [Called By]

  - >> GPIO_EnableINT

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

  - >> USB_Open

  ### Undefined Global Symbols