# Static Call Graph for image .\Obj\Memory.axf

#<CALLGRAPH># ARM Linker, RVCT3.1 [Build 914]: Last Updated: Tue Mar 24 16:37:23 2009

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

### Call chain for Maximum Stack Depth:

USB_EndPoint2 ⇒ MSC_BulkOut ⇒ MSC_GetCBW ⇒ MSC_ReadFormatCapacity ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP

### Functions with no stack information

- Reset_Handler
- __user_initial_stackheap
- Undef_Handler
- SWI_Handler
- PAbt_Handler
- DAbt_Handler
- IRQ_Handler
- FIQ_Handler

### Mutually Recursive functions

- Undef_Handler ⇒ Undef_Handler
- SWI_Handler ⇒ SWI_Handler
- PAbt_Handler ⇒ PAbt_Handler
- DAbt_Handler ⇒ DAbt_Handler
- IRQ_Handler ⇒ IRQ_Handler
- FIQ_Handler ⇒ FIQ_Handler

  ### Function Pointers

  - Reset_Handler
  - Undef_Handler
  - SWI_Handler
  - PAbt_Handler
  - DAbt_Handler
  - IRQ_Handler
  - FIQ_Handler
  - __main
  - __ARM_get_argv
  - USB_ISR
  - main
  - __I_use_semihosting
  - USB_EndPoint0
  - USB_EndPoint2

  ### Global Symbols

  Reset_Handler (ARM, 0 bytes, Stack size unknown bytes, startup.o(RESET))
  [Address Reference Count : 1]

  - startup.o(RESET)

  __main (ARM, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
  [Stack]

  - Max Depth = 64 + Unknown Stack Size
  - Call Chain = __main ⇒ __rt_entry ⇒ __rt_lib_init ⇒ _fp_init
  [Calls]
  - >> __rt_entry
  - >> __scatterload

  __scatterload (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
  [Called By]

  - >> __main

  __scatterload_rt2 (ARM, 52 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
  [Calls]

  - >> __rt_entry

  __scatterload_null (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

  __scatterload_copy (ARM, 40 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
  [Calls]

  - >> __scatterload_copy
  [Called By]
  - >> __scatterload_copy

  __scatterload_zeroinit (ARM, 44 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)

  __ARM_argv_veneer (ARM, 16 bytes, Stack size 0 bytes, lib_init.o(.emb_text))
  [Called By]

  - >> __rt_lib_init (via Veneer)

  __user_initial_stackheap (ARM, 0 bytes, Stack size unknown bytes, startup.o(.text))
  [Called By]

  - >> __user_setup_stackheap

  EPAdr (Thumb, 16 bytes, Stack size 0 bytes, usbhw.o(.text))
  [Called By]

  - >> USB_WriteEP
  - >> USB_ReadEP
  - >> USB_ClrStallEP
  - >> USB_SetStallEP
  - >> USB_ResetEP
  - >> USB_DisableEP
  - >> USB_EnableEP
  - >> USB_ConfigEP

  WrCmd (Thumb, 24 bytes, Stack size 0 bytes, usbhw.o(.text))
  [Called By]

  - >> USB_GetFrame
  - >> USB_WriteEP
  - >> USB_ReadEP
  - >> USB_ISR (via Veneer)

  WrCmdDat (Thumb, 46 bytes, Stack size 0 bytes, usbhw.o(.text))
  [Called By]

  - >> USB_ClrStallEP
  - >> USB_SetStallEP
  - >> USB_ResetEP
  - >> USB_DisableEP
  - >> USB_EnableEP
  - >> USB_Configure
  - >> USB_WakeUp
  - >> USB_Connect
  - >> USB_SetAddress

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

  - >> USB_GetFrame
  - >> USB_ISR (via Veneer)

  USB_SetAddress (Thumb, 50 bytes, Stack size 8 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_SetAddress
  [Calls]
  - >> WrCmdDat
  [Called By]
  - >> USB_EndPoint0
  - >> USB_Init

  USB_Reset (Thumb, 52 bytes, Stack size 0 bytes, usbhw.o(.text))
  [Called By]

  - >> USB_Init
  - >> USB_ISR (via Veneer)

  USB_Resume (Thumb, 2 bytes, Stack size 0 bytes, usbhw.o(.text))
  [Called By]

  - >> USB_ISR (via Veneer)

  USB_Suspend (Thumb, 2 bytes, Stack size 0 bytes, usbhw.o(.text))
  [Called By]

  - >> USB_ISR (via Veneer)

  USB_Init (Thumb, 130 bytes, Stack size 4 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_Init ⇒ USB_SetAddress
  [Calls]
  - >> USB_Reset
  - >> USB_SetAddress
  [Called By]
  - >> main

  USB_Connect (Thumb, 34 bytes, Stack size 8 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_Connect
  [Calls]
  - >> WrCmdDat
  [Called By]
  - >> main

  USB_WakeUp (Thumb, 24 bytes, Stack size 4 bytes, usbhw.o(.text), UNUSED)
  [Calls]

  - >> WrCmdDat

  USB_WakeUpCfg (Thumb, 2 bytes, Stack size 0 bytes, usbhw.o(.text))
  [Called By]

  - >> USB_SetClrFeature

  USB_Configure (Thumb, 64 bytes, Stack size 8 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_Configure
  [Calls]
  - >> WrCmdDat
  [Called By]
  - >> USB_SetConfiguration

  USB_ConfigEP (Thumb, 74 bytes, Stack size 8 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_ConfigEP
  [Calls]
  - >> EPAdr
  [Called By]
  - >> USB_SetInterface
  - >> USB_SetConfiguration

  USB_DirCtrlEP (Thumb, 2 bytes, Stack size 0 bytes, usbhw.o(.text))
  [Called By]

  - >> USB_EndPoint0

  USB_EnableEP (Thumb, 30 bytes, Stack size 12 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_EnableEP
  [Calls]
  - >> WrCmdDat
  - >> EPAdr
  [Called By]
  - >> USB_SetInterface
  - >> USB_SetConfiguration

  USB_DisableEP (Thumb, 30 bytes, Stack size 12 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_DisableEP
  [Calls]
  - >> WrCmdDat
  - >> EPAdr
  [Called By]
  - >> USB_SetInterface
  - >> USB_SetConfiguration

  USB_ResetEP (Thumb, 30 bytes, Stack size 12 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_ResetEP
  [Calls]
  - >> WrCmdDat
  - >> EPAdr
  [Called By]
  - >> USB_SetInterface
  - >> USB_SetConfiguration

  USB_SetStallEP (Thumb, 30 bytes, Stack size 12 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_SetStallEP
  [Calls]
  - >> WrCmdDat
  - >> EPAdr
  [Called By]
  - >> MSC_GetCBW
  - >> MSC_TestUnitReady
  - >> DataInFormat
  - >> MSC_RWSetup
  - >> MSC_MemoryVerify
  - >> MSC_MemoryWrite
  - >> MSC_BulkOut
  - >> MSC_BulkIn
  - >> USB_SetClrFeature
  - >> USB_EndPoint0

  USB_ClrStallEP (Thumb, 30 bytes, Stack size 12 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = USB_ClrStallEP
  [Calls]
  - >> WrCmdDat
  - >> EPAdr
  [Called By]
  - >> USB_SetClrFeature
  - >> USB_EndPoint0

  USB_ReadEP (Thumb, 110 bytes, Stack size 24 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = USB_ReadEP
  [Calls]
  - >> __aeabi_uwrite4 (via Veneer)
  - >> WrCmd
  - >> EPAdr
  [Called By]
  - >> MSC_BulkOut
  - >> USB_StatusOutStage
  - >> USB_DataOutStage
  - >> USB_SetupStage

  USB_WriteEP (Thumb, 88 bytes, Stack size 24 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = USB_WriteEP
  [Calls]
  - >> __aeabi_uread4 (via Veneer)
  - >> WrCmd
  - >> EPAdr
  [Called By]
  - >> DataInTransfer
  - >> MSC_SetCSW
  - >> MSC_MemoryRead
  - >> USB_StatusInStage
  - >> USB_DataInStage

  USB_GetFrame (Thumb, 32 bytes, Stack size 4 bytes, usbhw.o(.text), UNUSED)
  [Calls]

  - >> RdCmdDat
  - >> WrCmd

  USB_ISR (ARM, 400 bytes, Stack size 40 bytes, usbhw.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = USB_ISR ⇒ USB_Reset_Event
  [Calls]
  - >> USB_Suspend_Event (via Veneer)
  - >> USB_Resume_Event (via Veneer)
  - >> USB_Reset_Event (via Veneer)
  - >> USB_Suspend (via Veneer)
  - >> USB_Resume (via Veneer)
  - >> USB_Reset (via Veneer)
  - >> RdCmdDat (via Veneer)
  - >> WrCmd (via Veneer)
  [Address Reference Count : 1]
  - usbhw.o(.text)

  USB_ResetCore (Thumb, 28 bytes, Stack size 0 bytes, usbcore.o(.text))
  [Called By]

  - >> USB_Reset_Event

  USB_SetupStage (Thumb, 16 bytes, Stack size 8 bytes, usbcore.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = USB_SetupStage ⇒ USB_ReadEP
  [Calls]
  - >> USB_ReadEP
  [Called By]
  - >> USB_EndPoint0

  USB_DataInStage (Thumb, 56 bytes, Stack size 8 bytes, usbcore.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = USB_DataInStage ⇒ USB_WriteEP
  [Calls]
  - >> USB_WriteEP
  [Called By]
  - >> USB_GetStatus
  - >> USB_GetDescriptor
  - >> USB_EndPoint0

  USB_DataOutStage (Thumb, 38 bytes, Stack size 8 bytes, usbcore.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = USB_DataOutStage ⇒ USB_ReadEP
  [Calls]
  - >> USB_ReadEP
  [Called By]
  - >> USB_EndPoint0

  USB_StatusInStage (Thumb, 18 bytes, Stack size 8 bytes, usbcore.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = USB_StatusInStage ⇒ USB_WriteEP
  [Calls]
  - >> USB_WriteEP
  [Called By]
  - >> USB_EndPoint0

  USB_StatusOutStage (Thumb, 16 bytes, Stack size 8 bytes, usbcore.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = USB_StatusOutStage ⇒ USB_ReadEP
  [Calls]
  - >> USB_ReadEP
  [Called By]
  - >> USB_EndPoint0

  USB_EndPoint0 (Thumb, 622 bytes, Stack size 8 bytes, usbcore.o(.text))
  [Stack]

  - Max Depth = 60
  - Call Chain = USB_EndPoint0 ⇒ USB_SetInterface ⇒ USB_ResetEP
  [Calls]
  - >> __ARM_switch8 (via Veneer)
  - >> USB_Configure_Event
  - >> MSC_Reset
  - >> MSC_GetMaxLUN
  - >> USB_SetInterface
  - >> USB_SetConfiguration
  - >> USB_SetClrFeature
  - >> USB_GetStatus
  - >> USB_GetDescriptor
  - >> USB_StatusOutStage
  - >> USB_StatusInStage
  - >> USB_DataOutStage
  - >> USB_DataInStage
  - >> USB_SetupStage
  - >> USB_ClrStallEP
  - >> USB_SetStallEP
  - >> USB_DirCtrlEP
  - >> USB_SetAddress
  [Address Reference Count : 1]
  - usbuser.o(.constdata)

  USB_Reset_Event (Thumb, 20 bytes, Stack size 8 bytes, usbuser.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = USB_Reset_Event
  [Calls]
  - >> USB_ResetCore
  [Called By]
  - >> USB_ISR (via Veneer)

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

  - >> USB_ISR (via Veneer)

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

  - >> USB_ISR (via Veneer)

  USB_Configure_Event (Thumb, 28 bytes, Stack size 0 bytes, usbuser.o(.text))
  [Called By]

  - >> USB_EndPoint0

  USB_EndPoint1 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint2 (Thumb, 34 bytes, Stack size 8 bytes, usbuser.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = USB_EndPoint2 ⇒ MSC_BulkOut ⇒ MSC_GetCBW ⇒ MSC_ReadFormatCapacity ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> MSC_BulkOut
  - >> MSC_BulkIn
  [Address Reference Count : 1]
  - usbuser.o(.constdata)

  USB_EndPoint3 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint4 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint5 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint6 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint7 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint8 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint9 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint10 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint11 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint12 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint13 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint14 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

  USB_EndPoint15 (Thumb, 2 bytes, Stack size 0 bytes, usbuser.o(.text), UNUSED)

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

  - >> USB_EndPoint0

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

  - >> USB_EndPoint0

  MSC_MemoryRead (Thumb, 144 bytes, Stack size 16 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = MSC_MemoryRead ⇒ USB_WriteEP
  [Calls]
  - >> __aeabi_uwrite4 (via Veneer)
  - >> __aeabi_uread4 (via Veneer)
  - >> USB_WriteEP
  [Called By]
  - >> MSC_GetCBW
  - >> MSC_BulkIn

  MSC_SetCSW (Thumb, 36 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> __aeabi_uwrite4 (via Veneer)
  - >> USB_WriteEP
  [Called By]
  - >> MSC_GetCBW
  - >> MSC_TestUnitReady
  - >> DataInFormat
  - >> MSC_RWSetup
  - >> MSC_MemoryVerify
  - >> MSC_MemoryWrite
  - >> MSC_BulkOut
  - >> MSC_BulkIn

  MSC_MemoryWrite (Thumb, 162 bytes, Stack size 16 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = MSC_MemoryWrite ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> __aeabi_uwrite4 (via Veneer)
  - >> __aeabi_uread4 (via Veneer)
  - >> MSC_SetCSW
  - >> USB_SetStallEP
  [Called By]
  - >> MSC_BulkOut

  MSC_MemoryVerify (Thumb, 180 bytes, Stack size 16 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = MSC_MemoryVerify ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> __aeabi_uwrite4 (via Veneer)
  - >> __aeabi_uread4 (via Veneer)
  - >> MSC_SetCSW
  - >> USB_SetStallEP
  [Called By]
  - >> MSC_BulkOut

  MSC_RWSetup (Thumb, 110 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = MSC_RWSetup ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> __aeabi_uread4 (via Veneer)
  - >> MSC_SetCSW
  - >> USB_SetStallEP
  [Called By]
  - >> MSC_GetCBW

  DataInFormat (Thumb, 70 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> __aeabi_uread4 (via Veneer)
  - >> MSC_SetCSW
  - >> USB_SetStallEP
  [Called By]
  - >> MSC_ReadFormatCapacity
  - >> MSC_ReadCapacity
  - >> MSC_ModeSense10
  - >> MSC_ModeSense6
  - >> MSC_Inquiry
  - >> MSC_RequestSense

  DataInTransfer (Thumb, 82 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = DataInTransfer ⇒ USB_WriteEP
  [Calls]
  - >> __aeabi_uwrite4 (via Veneer)
  - >> __aeabi_uread4 (via Veneer)
  - >> USB_WriteEP
  [Called By]
  - >> MSC_ReadFormatCapacity
  - >> MSC_ReadCapacity
  - >> MSC_ModeSense10
  - >> MSC_ModeSense6
  - >> MSC_Inquiry
  - >> MSC_RequestSense

  MSC_TestUnitReady (Thumb, 56 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = MSC_TestUnitReady ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> __aeabi_uread4 (via Veneer)
  - >> MSC_SetCSW
  - >> USB_SetStallEP
  [Called By]
  - >> MSC_GetCBW

  MSC_RequestSense (Thumb, 84 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = MSC_RequestSense ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> DataInTransfer
  - >> DataInFormat
  [Called By]
  - >> MSC_GetCBW

  MSC_Inquiry (Thumb, 212 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = MSC_Inquiry ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> DataInTransfer
  - >> DataInFormat
  [Called By]
  - >> MSC_GetCBW

  MSC_ModeSense6 (Thumb, 44 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = MSC_ModeSense6 ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> DataInTransfer
  - >> DataInFormat
  [Called By]
  - >> MSC_GetCBW

  MSC_ModeSense10 (Thumb, 54 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = MSC_ModeSense10 ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> DataInTransfer
  - >> DataInFormat
  [Called By]
  - >> MSC_GetCBW

  MSC_ReadCapacity (Thumb, 58 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = MSC_ReadCapacity ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> DataInTransfer
  - >> DataInFormat
  [Called By]
  - >> MSC_GetCBW

  MSC_ReadFormatCapacity (Thumb, 72 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = MSC_ReadFormatCapacity ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> DataInTransfer
  - >> DataInFormat
  [Called By]
  - >> MSC_GetCBW

  MSC_GetCBW (Thumb, 444 bytes, Stack size 16 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = MSC_GetCBW ⇒ MSC_ReadFormatCapacity ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> __aeabi_uwrite4 (via Veneer)
  - >> __aeabi_uread4 (via Veneer)
  - >> MSC_ReadFormatCapacity
  - >> MSC_ReadCapacity
  - >> MSC_ModeSense10
  - >> MSC_ModeSense6
  - >> MSC_Inquiry
  - >> MSC_RequestSense
  - >> MSC_TestUnitReady
  - >> MSC_RWSetup
  - >> MSC_SetCSW
  - >> MSC_MemoryRead
  - >> USB_SetStallEP
  [Called By]
  - >> MSC_BulkOut

  MSC_BulkIn (Thumb, 76 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = MSC_BulkIn ⇒ MSC_MemoryRead ⇒ USB_WriteEP
  [Calls]
  - >> MSC_SetCSW
  - >> MSC_MemoryRead
  - >> USB_SetStallEP
  [Called By]
  - >> USB_EndPoint2

  MSC_BulkOut (Thumb, 94 bytes, Stack size 8 bytes, mscuser.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = MSC_BulkOut ⇒ MSC_GetCBW ⇒ MSC_ReadFormatCapacity ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
  [Calls]
  - >> MSC_GetCBW
  - >> MSC_MemoryVerify
  - >> MSC_MemoryWrite
  - >> MSC_SetCSW
  - >> USB_ReadEP
  - >> USB_SetStallEP
  [Called By]
  - >> USB_EndPoint2

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

  - Max Depth = 20
  - Call Chain = main ⇒ USB_Init ⇒ USB_SetAddress
  [Calls]
  - >> USB_Connect
  - >> USB_Init
  [Address Reference Count : 1]
  - kernel.o(.text)

  __aeabi_uread4 (ARM, 0 bytes, Stack size 0 bytes, uread4.o(.text))
  [Called By]

  - >> MSC_GetCBW (via Veneer)
  - >> MSC_TestUnitReady (via Veneer)
  - >> DataInTransfer (via Veneer)
  - >> DataInFormat (via Veneer)
  - >> MSC_RWSetup (via Veneer)
  - >> MSC_MemoryVerify (via Veneer)
  - >> MSC_MemoryWrite (via Veneer)
  - >> MSC_MemoryRead (via Veneer)
  - >> USB_WriteEP (via Veneer)

  __rt_uread4 (ARM, 32 bytes, Stack size 0 bytes, uread4.o(.text), UNUSED)

  __aeabi_uwrite4 (ARM, 0 bytes, Stack size 0 bytes, uwrite4.o(.text))
  [Called By]

  - >> MSC_GetCBW (via Veneer)
  - >> DataInTransfer (via Veneer)
  - >> MSC_MemoryVerify (via Veneer)
  - >> MSC_MemoryWrite (via Veneer)
  - >> MSC_SetCSW (via Veneer)
  - >> MSC_MemoryRead (via Veneer)
  - >> USB_ReadEP (via Veneer)

  __rt_uwrite4 (ARM, 32 bytes, Stack size 0 bytes, uwrite4.o(.text), UNUSED)

  __use_two_region_memory (ARM, 4 bytes, Stack size 0 bytes, stkheap2.o(.text), UNUSED)

  __rt_stackheap_init (ARM, 36 bytes, Stack size 16 bytes, stkheap2.o(.text))
  [Stack]

  - Max Depth = 24 + Unknown Stack Size
  - Call Chain = __rt_stackheap_init ⇒ __user_setup_stackheap
  [Calls]
  - >> __rt_stackheap_storage
  - >> __user_setup_stackheap
  [Called By]
  - >> __rt_entry

  __rt_heap_extend (ARM, 24 bytes, Stack size 8 bytes, stkheap2.o(.text), UNUSED)
  [Calls]

  - >> __user_heap_extend (Weak Reference)

  __ARM_switch8 (ARM, 24 bytes, Stack size 0 bytes, switch8.o(.text))
  [Called By]

  - >> USB_EndPoint0 (via Veneer)

  __rt_switch8 (ARM, 0 bytes, Stack size 0 bytes, switch8.o(.text), UNUSED)

  __rt_entry (ARM, 76 bytes, Stack size 16 bytes, kernel.o(.text))
  [Stack]

  - Max Depth = 64 + Unknown Stack Size
  - Call Chain = __rt_entry ⇒ __rt_lib_init ⇒ _fp_init
  [Calls]
  - >> _platform_post_lib_init
  - >> _platform_post_stackheap_init
  - >> __rt_lib_init (via Veneer)
  - >> exit (via BX)
  - >> __rt_stackheap_init
  [Called By]
  - >> __main
  - >> __scatterload_rt2

  __rt_exit (ARM, 20 bytes, Stack size 8 bytes, kernel.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __rt_exit ⇒ __rt_lib_shutdown
  [Calls]
  - >> __rt_lib_shutdown (via Veneer)
  [Called By]
  - >> exit (via Veneer)

  __rt_abort (ARM, 8 bytes, Stack size 0 bytes, kernel.o(.text), UNUSED)
  [Calls]

  - >> _sys_exit

  __user_setup_stackheap (ARM, 96 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = __user_setup_stackheap
  [Calls]
  - >> __user_perproc_libspace
  - >> __user_initial_stackheap
  [Called By]
  - >> __rt_stackheap_init

  __rt_stackheap_storage (ARM, 12 bytes, Stack size 0 bytes, rt_stackheap_storage_intlibspace.o(.text))
  [Called By]

  - >> __rt_stackheap_init

  _sys_exit (ARM, 20 bytes, Stack size 0 bytes, sys_exit.o(.text), UNUSED)
  [Called By]

  - >> __rt_abort

  __user_libspace (ARM, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

  __user_perproc_libspace (ARM, 0 bytes, Stack size 0 bytes, libspace.o(.text))
  [Called By]

  - >> __user_setup_stackheap

  __user_perthread_libspace (ARM, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

  exit (Thumb, 12 bytes, Stack size 0 bytes, exit.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = exit ⇒ __rt_exit ⇒ __rt_lib_shutdown
  [Calls]
  - >> _call_atexit_fns (Weak Reference)
  - >> __rt_exit (via Veneer)
  [Called By]
  - >> __rt_entry

  __rt_lib_init (Thumb, 184 bytes, Stack size 40 bytes, lib_init.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = __rt_lib_init ⇒ _fp_init
  [Calls]
  - >> _fp_init (via Veneer)
  - >> __rt_locale (via Veneer)
  - >> _signal_init (Weak Reference)
  - >> _rand_init (Weak Reference)
  - >> _initio (Weak Reference)
  - >> _init_user_alloc (Weak Reference)
  - >> _init_alloc (Weak Reference)
  - >> _getenv_init (Weak Reference)
  - >> _get_lc_time (Weak Reference)
  - >> _get_lc_numeric (Weak Reference)
  - >> _get_lc_monetary (Weak Reference)
  - >> _get_lc_ctype (Weak Reference)
  - >> _get_lc_collate (Weak Reference)
  - >> _fp_trap_init (Weak Reference)
  - >> _clock_init (Weak Reference)
  - >> _atexit_init (Weak Reference)
  - >> __cpp_initialize__aeabi_ (Weak Reference)
  - >> __alloca_initialize (Weak Reference)
  - >> __Heap_DescSize (Weak Reference)
  - >> __ARM_exceptions_init (Weak Reference)
  - >> __ARM_argv_veneer (via Veneer)
  [Called By]
  - >> __rt_entry (via Veneer)

  __rt_lib_shutdown (Thumb, 22 bytes, Stack size 8 bytes, lib_init.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __rt_lib_shutdown
  [Calls]
  - >> _terminateio (Weak Reference)
  - >> _terminate_user_alloc (Weak Reference)
  - >> __cxa_finalize (Weak Reference)
  [Called By]
  - >> __rt_exit (via Veneer)

  _platform_post_stackheap_init (ARM, 12 bytes, Stack size 0 bytes, boardinit2.o(.text))
  [Called By]

  - >> __rt_entry

  _platform_post_lib_init (ARM, 16 bytes, Stack size 8 bytes, boardinit3.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = _platform_post_lib_init
  [Called By]
  - >> __rt_entry

  __I_use_semihosting (ARM, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text))
  [Address Reference Count : 1]

  - sys_exit.o(.text)

  __use_no_semihosting_swi (ARM, 4 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

  __rt_locale (ARM, 12 bytes, Stack size 0 bytes, rt_locale_intlibspace.o(.text))
  [Called By]

  - >> __rt_lib_init (via Veneer)

  __ARM_get_argv (Thumb, 6 bytes, Stack size 4 bytes, no_argv.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = __ARM_get_argv
  [Address Reference Count : 1]
  - lib_init.o(.emb_text)

  __rt_fp_status_addr (ARM, 12 bytes, Stack size 0 bytes, rt_fp_status_addr_intlibspace.o(.text))
  [Called By]

  - >> _fp_init

  USB_GetDescriptor (Thumb, 166 bytes, Stack size 16 bytes, usbcore.o(i.USB_GetDescriptor))
  [Stack]

  - Max Depth = 48
  - Call Chain = USB_GetDescriptor ⇒ USB_DataInStage ⇒ USB_WriteEP
  [Calls]
  - >> USB_DataInStage
  [Called By]
  - >> USB_EndPoint0

  USB_GetStatus (Thumb, 188 bytes, Stack size 16 bytes, usbcore.o(i.USB_GetStatus))
  [Stack]

  - Max Depth = 48
  - Call Chain = USB_GetStatus ⇒ USB_DataInStage ⇒ USB_WriteEP
  [Calls]
  - >> USB_DataInStage
  [Called By]
  - >> USB_EndPoint0

  USB_SetClrFeature (Thumb, 212 bytes, Stack size 16 bytes, usbcore.o(i.USB_SetClrFeature))
  [Stack]

  - Max Depth = 28
  - Call Chain = USB_SetClrFeature ⇒ USB_ClrStallEP
  [Calls]
  - >> USB_ClrStallEP
  - >> USB_SetStallEP
  - >> USB_WakeUpCfg
  [Called By]
  - >> USB_EndPoint0

  USB_SetConfiguration (Thumb, 380 bytes, Stack size 24 bytes, usbcore.o(i.USB_SetConfiguration))
  [Stack]

  - Max Depth = 36
  - Call Chain = USB_SetConfiguration ⇒ USB_ResetEP
  [Calls]
  - >> USB_ResetEP
  - >> USB_DisableEP
  - >> USB_EnableEP
  - >> USB_ConfigEP
  - >> USB_Configure
  [Called By]
  - >> USB_EndPoint0

  USB_SetInterface (Thumb, 268 bytes, Stack size 40 bytes, usbcore.o(i.USB_SetInterface))
  [Stack]

  - Max Depth = 52
  - Call Chain = USB_SetInterface ⇒ USB_ResetEP
  [Calls]
  - >> USB_ResetEP
  - >> USB_DisableEP
  - >> USB_EnableEP
  - >> USB_ConfigEP
  [Called By]
  - >> USB_EndPoint0

  _fp_init (ARM, 24 bytes, Stack size 8 bytes, fpinit.o(x$fpl$fpinit))
  [Stack]

  - Max Depth = 8
  - Call Chain = _fp_init
  [Calls]
  - >> __rt_fp_status_addr
  [Called By]
  - >> __rt_lib_init (via Veneer)

  __fplib_config_pureend_doubles (ARM, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED)

  ### Local Symbols

  Undef_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
  [Calls]

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

  SWI_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
  [Calls]

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

  PAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
  [Calls]

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

  DAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
  [Calls]

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

  IRQ_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
  [Calls]

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

  FIQ_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
  [Calls]

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

  ### Undefined Global Symbols

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_shutdown (Weak Reference)

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

  - >> __rt_heap_extend (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> exit (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_init (Weak Reference)

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

  - >> __rt_lib_shutdown (Weak Reference)

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

  - >> __rt_lib_shutdown (Weak Reference)