📄 memory.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [.\flash\Memory.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\flash\Memory.axf</H1><HR>
<BR><P>#<CALLGRAPH># ARM Linker, RVCT3.1 [Build 903]: Last Updated: Mon Nov 12 09:51:37 2007
<BR><P>
<H3>Maximum Stack Usage = 80 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
USB_EndPoint2 ⇒ MSC_BulkOut ⇒ MSC_GetCBW ⇒ MSC_ReadFormatCapacity ⇒ DataInFormat ⇒ MSC_SetCSW ⇒ USB_WriteEP
<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[c83408]">Reset_Handler</a>
<LI><a href="#[c836d8]">Undef_Handler</a>
<LI><a href="#[c83690]">SWI_Handler</a>
<LI><a href="#[c83648]">PAbt_Handler</a>
<LI><a href="#[c83600]">DAbt_Handler</a>
<LI><a href="#[c835b8]">IRQ_Handler</a>
<LI><a href="#[c83570]">FIQ_Handler</a>
</UL>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[c836d8]">Undef_Handler</a> ⇒ <a href="#[c836d8]">Undef_Handler</a><BR>
<LI><a href="#[c83690]">SWI_Handler</a> ⇒ <a href="#[c83690]">SWI_Handler</a><BR>
<LI><a href="#[c83648]">PAbt_Handler</a> ⇒ <a href="#[c83648]">PAbt_Handler</a><BR>
<LI><a href="#[c83600]">DAbt_Handler</a> ⇒ <a href="#[c83600]">DAbt_Handler</a><BR>
<LI><a href="#[c835b8]">IRQ_Handler</a> ⇒ <a href="#[c835b8]">IRQ_Handler</a><BR>
<LI><a href="#[c83570]">FIQ_Handler</a> ⇒ <a href="#[c83570]">FIQ_Handler</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
<LI><a href="#[c83408]">Reset_Handler</a>
<LI><a href="#[c836d8]">Undef_Handler</a>
<LI><a href="#[c83690]">SWI_Handler</a>
<LI><a href="#[c83648]">PAbt_Handler</a>
<LI><a href="#[c83600]">DAbt_Handler</a>
<LI><a href="#[c835b8]">IRQ_Handler</a>
<LI><a href="#[c83570]">FIQ_Handler</a>
<LI><a href="#[c79380]">__main</a>
<LI><a href="#[c82248]">main</a>
<LI><a href="#[c7f630]">USB_EndPoint0</a>
<LI><a href="#[c7bcc0]">USB_EndPoint2</a>
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[c83408]"></a>Reset_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, lpc2300.o(RESET))
<BR>[Address Reference Count : 1]<UL><LI> lpc2300.o(RESET)
</UL>
<P><STRONG><a name="[c79380]"></a>__main</STRONG> (ARM, 8 bytes, Stack size 0 bytes, entry.o($$startup$$))
<BR><BR>[Calls]<UL><LI><a href="#[c78af0]">>></a> __init (via Veneer)
</UL>
<P><STRONG><a name="[c78b38]"></a>__call_main</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, init.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[c78af0]">>></a> __init
</UL>
<P><STRONG><a name="[c82248]"></a>main</STRONG> (ARM, 128 bytes, Stack size 8 bytes, usbmemmain.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = main ⇒ lcd_init ⇒ lcd_putchar ⇒ lcd_write_data ⇒ wait_while_busy ⇒ lcd_read_status
</UL>
<BR>[Calls]<UL><LI><a href="#[c82008]">>></a> set_cursor
<LI><a href="#[c82050]">>></a> lcd_print
<LI><a href="#[c82098]">>></a> lcd_init
<LI><a href="#[c820e0]">>></a> lcd_clear
<LI><a href="#[c82128]">>></a> USB_Init
<LI><a href="#[c82170]">>></a> USB_Connect
</UL>
<BR>[Address Reference Count : 1]<UL><LI> init.o(.text)
</UL>
<P><STRONG><a name="[c815c0]"></a>lcd_write_4bit</STRONG> (ARM, 84 bytes, Stack size 4 bytes, lcd_4bit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = lcd_write_4bit
</UL>
<BR>[Calls]<UL><LI><a href="#[c81890]">>></a> delay
</UL>
<BR>[Called By]<UL><LI><a href="#[c81578]">>></a> lcd_write_cmd
<LI><a href="#[c817b8]">>></a> lcd_write_data
<LI><a href="#[c82098]">>></a> lcd_init
</UL>
<P><STRONG><a name="[c81578]"></a>lcd_write_cmd</STRONG> (ARM, 48 bytes, Stack size 8 bytes, lcd_4bit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = lcd_write_cmd ⇒ wait_while_busy ⇒ lcd_read_status
</UL>
<BR>[Calls]<UL><LI><a href="#[c815c0]">>></a> lcd_write_4bit
<LI><a href="#[c81800]">>></a> wait_while_busy
</UL>
<BR>[Called By]<UL><LI><a href="#[c82008]">>></a> set_cursor
<LI><a href="#[c82098]">>></a> lcd_init
<LI><a href="#[c820e0]">>></a> lcd_clear
</UL>
<P><STRONG><a name="[c81530]"></a>lcd_putchar</STRONG> (ARM, 24 bytes, Stack size 8 bytes, lcd_4bit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = lcd_putchar ⇒ lcd_write_data ⇒ wait_while_busy ⇒ lcd_read_status
</UL>
<BR>[Calls]<UL><LI><a href="#[c817b8]">>></a> lcd_write_data
</UL>
<BR>[Called By]<UL><LI><a href="#[c82050]">>></a> lcd_print
<LI><a href="#[c82098]">>></a> lcd_init
</UL>
<P><STRONG><a name="[c82098]"></a>lcd_init</STRONG> (ARM, 176 bytes, Stack size 12 bytes, lcd_4bit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = lcd_init ⇒ lcd_putchar ⇒ lcd_write_data ⇒ wait_while_busy ⇒ lcd_read_status
</UL>
<BR>[Calls]<UL><LI><a href="#[c81530]">>></a> lcd_putchar
<LI><a href="#[c81578]">>></a> lcd_write_cmd
<LI><a href="#[c815c0]">>></a> lcd_write_4bit
<LI><a href="#[c81890]">>></a> delay
</UL>
<BR>[Called By]<UL><LI><a href="#[c82248]">>></a> main
</UL>
<P><STRONG><a name="[c82008]"></a>set_cursor</STRONG> (ARM, 48 bytes, Stack size 16 bytes, lcd_4bit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = set_cursor ⇒ lcd_write_cmd ⇒ wait_while_busy ⇒ lcd_read_status
</UL>
<BR>[Calls]<UL><LI><a href="#[c81578]">>></a> lcd_write_cmd
</UL>
<BR>[Called By]<UL><LI><a href="#[c820e0]">>></a> lcd_clear
<LI><a href="#[c82248]">>></a> main
</UL>
<P><STRONG><a name="[c820e0]"></a>lcd_clear</STRONG> (ARM, 32 bytes, Stack size 4 bytes, lcd_4bit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = lcd_clear ⇒ set_cursor ⇒ lcd_write_cmd ⇒ wait_while_busy ⇒ lcd_read_status
</UL>
<BR>[Calls]<UL><LI><a href="#[c81578]">>></a> lcd_write_cmd
<LI><a href="#[c82008]">>></a> set_cursor
</UL>
<BR>[Called By]<UL><LI><a href="#[c82248]">>></a> main
</UL>
<P><STRONG><a name="[c82050]"></a>lcd_print</STRONG> (ARM, 40 bytes, Stack size 8 bytes, lcd_4bit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = lcd_print ⇒ lcd_putchar ⇒ lcd_write_data ⇒ wait_while_busy ⇒ lcd_read_status
</UL>
<BR>[Calls]<UL><LI><a href="#[c81530]">>></a> lcd_putchar
</UL>
<BR>[Called By]<UL><LI><a href="#[c82248]">>></a> main
</UL>
<P><STRONG><a name="[c7f7e0]"></a>USB_ResetCore</STRONG> (ARM, 56 bytes, Stack size 0 bytes, usbcore.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[c7cea8]">>></a> USB_Reset_Event
</UL>
<P><STRONG><a name="[c7f798]"></a>USB_SetupStage</STRONG> (ARM, 24 bytes, Stack size 8 bytes, usbcore.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = USB_SetupStage ⇒ USB_ReadEP
</UL>
<BR>[Calls]<UL><LI><a href="#[c7f168]">>></a> USB_ReadEP
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f630]">>></a> USB_EndPoint0
</UL>
<P><STRONG><a name="[c7f750]"></a>USB_DataInStage</STRONG> (ARM, 104 bytes, Stack size 8 bytes, usbcore.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = USB_DataInStage ⇒ USB_WriteEP
</UL>
<BR>[Calls]<UL><LI><a href="#[c7efb8]">>></a> USB_WriteEP
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f5a0]">>></a> USB_GetStatus
<LI><a href="#[c7f5e8]">>></a> USB_GetDescriptor
<LI><a href="#[c7f630]">>></a> USB_EndPoint0
</UL>
<P><STRONG><a name="[c7f708]"></a>USB_DataOutStage</STRONG> (ARM, 68 bytes, Stack size 8 bytes, usbcore.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = USB_DataOutStage ⇒ USB_ReadEP
</UL>
<BR>[Calls]<UL><LI><a href="#[c7f168]">>></a> USB_ReadEP
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f630]">>></a> USB_EndPoint0
</UL>
<P><STRONG><a name="[c7f6c0]"></a>USB_StatusInStage</STRONG> (ARM, 28 bytes, Stack size 8 bytes, usbcore.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = USB_StatusInStage ⇒ USB_WriteEP
</UL>
<BR>[Calls]<UL><LI><a href="#[c7efb8]">>></a> USB_WriteEP
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f630]">>></a> USB_EndPoint0
</UL>
<P><STRONG><a name="[c7f678]"></a>USB_StatusOutStage</STRONG> (ARM, 24 bytes, Stack size 8 bytes, usbcore.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = USB_StatusOutStage ⇒ USB_ReadEP
</UL>
<BR>[Calls]<UL><LI><a href="#[c7f168]">>></a> USB_ReadEP
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f630]">>></a> USB_EndPoint0
</UL>
<P><STRONG><a name="[c7f630]"></a>USB_EndPoint0</STRONG> (ARM, 1268 bytes, Stack size 8 bytes, usbcore.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 60<LI>Call Chain = USB_EndPoint0 ⇒ USB_SetInterface ⇒ USB_ResetEP
</UL>
<BR>[Calls]<UL><LI><a href="#[c7f090]">>></a> USB_SetStallEP
<LI><a href="#[c7f0d8]">>></a> USB_SetAddress
<LI><a href="#[c7f240]">>></a> USB_DirCtrlEP
<LI><a href="#[c7f2d0]">>></a> USB_Configure_Event
<LI><a href="#[c7f3f0]">>></a> USB_ClrStallEP
<LI><a href="#[c7f438]">>></a> MSC_Reset
<LI><a href="#[c7f480]">>></a> MSC_GetMaxLUN
<LI><a href="#[c7f4c8]">>></a> USB_SetInterface
<LI><a href="#[c7f510]">>></a> USB_SetConfiguration
<LI><a href="#[c7f558]">>></a> USB_SetClrFeature
<LI><a href="#[c7f5a0]">>></a> USB_GetStatus
<LI><a href="#[c7f5e8]">>></a> USB_GetDescriptor
<LI><a href="#[c7f678]">>></a> USB_StatusOutStage
<LI><a href="#[c7f6c0]">>></a> USB_StatusInStage
<LI><a href="#[c7f708]">>></a> USB_DataOutStage
<LI><a href="#[c7f750]">>></a> USB_DataInStage
<LI><a href="#[c7f798]">>></a> USB_SetupStage
</UL>
<BR>[Address Reference Count : 1]<UL><LI> usbuser.o(.constdata)
</UL>
<P><STRONG><a name="[c7d1c0]"></a>EPAdr</STRONG> (ARM, 28 bytes, Stack size 0 bytes, usbhw.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c7efb8]">>></a> USB_WriteEP
<LI><a href="#[c7f090]">>></a> USB_SetStallEP
<LI><a href="#[c7f120]">>></a> USB_ResetEP
<LI><a href="#[c7f168]">>></a> USB_ReadEP
<LI><a href="#[c7f1b0]">>></a> USB_EnableEP
<LI><a href="#[c7f1f8]">>></a> USB_DisableEP
<LI><a href="#[c7f360]">>></a> USB_ConfigEP
<LI><a href="#[c7f3f0]">>></a> USB_ClrStallEP
</UL>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -