📄 usb_main.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [E:\LPC2468\LPC24XX_KEIL代码包\22-USB_HOST\USB_MAIN\USB_MAIN.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image E:\LPC2468\LPC24XX_KEIL代码包\22-USB_HOST\USB_MAIN\USB_MAIN.axf</H1><HR>
<BR><P>#<CALLGRAPH># ARM Linker, RVCT3.0 [Build 951]: Last Updated: Fri Aug 01 11:22:11 2008
<BR><P>
<H3>Maximum Stack Usage = 68 bytes + Unknown(Functions without stacksize,Cycles,Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
__main -> __rt_entry -> __rt_lib_init -> _get_lc_ctype -> strcmp<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[b252e8]">Reset_Handler</a>
<LI><a href="#[be17bc]">__scatterload</a>
<LI><a href="#[be16ec]">__scatterload_rt2</a>
<LI><a href="#[be173c]">__scatterload_null</a>
<LI><a href="#[be1208]">__scatterload_copy</a>
<LI><a href="#[be0db8]">__scatterload_zeroinit</a>
<LI><a href="#[b250ec]">__user_initial_stackheap</a>
<LI><a href="#[105e9e8]">__ARM_call_via_r0</a>
<LI><a href="#[105ea68]">__call_via_r0</a>
<LI><a href="#[105e91c]">__ARM_call_via_r1</a>
<LI><a href="#[105e96c]">__call_via_r1</a>
<LI><a href="#[105e850]">__ARM_call_via_r2</a>
<LI><a href="#[105e8a0]">__call_via_r2</a>
<LI><a href="#[105e784]">__ARM_call_via_r3</a>
<LI><a href="#[105e7d4]">__call_via_r3</a>
<LI><a href="#[105e688]">__ARM_call_via_r4</a>
<LI><a href="#[105e708]">__call_via_r4</a>
<LI><a href="#[105e58c]">__ARM_call_via_r5</a>
<LI><a href="#[105e60c]">__call_via_r5</a>
<LI><a href="#[105e490]">__ARM_call_via_r6</a>
<LI><a href="#[105e510]">__call_via_r6</a>
<LI><a href="#[105e394]">__ARM_call_via_r7</a>
<LI><a href="#[105e414]">__call_via_r7</a>
<LI><a href="#[b23c58]">SoftwareInterrupt</a>
<LI><a href="#[b23be0]">IntEnable</a>
<LI><a href="#[b23b68]">IntDisable</a>
<LI><a href="#[1095878]">__fplib_config_pureend_doubles</a>
<LI><a href="#[108fc30]">__fpl_inf_scalbn</a>
<LI><a href="#[b258b4]">Undef_Handler</a>
<LI><a href="#[b2583c]">SWI_Handler</a>
<LI><a href="#[b257c0]">PAbt_Handler</a>
<LI><a href="#[b25744]">DAbt_Handler</a>
<LI><a href="#[b256cc]">IRQ_Handler</a>
<LI><a href="#[b25654]">FIQ_Handler</a>
<LI><a href="#[b23e40]">IRQDisable</a>
<LI><a href="#[b23dc8]">IRQEnable</a>
<LI><a href="#[b23d50]">FIQDisable</a>
<LI><a href="#[b23cd8]">FIQEnable</a>
<LI><a href="#[c13330]">__arm_div4</a>
<LI><a href="#[c132b8]">__arm_div8</a>
<LI><a href="#[c1323c]">__arm_div_large</a>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3><UL>
<LI><a href="#[b258b4]">Undef_Handler</a> -> <a href="#[b258b4]">Undef_Handler</a><BR>
<LI><a href="#[b2583c]">SWI_Handler</a> -> <a href="#[b2583c]">SWI_Handler</a><BR>
<LI><a href="#[b257c0]">PAbt_Handler</a> -> <a href="#[b257c0]">PAbt_Handler</a><BR>
<LI><a href="#[b25744]">DAbt_Handler</a> -> <a href="#[b25744]">DAbt_Handler</a><BR>
<LI><a href="#[b256cc]">IRQ_Handler</a> -> <a href="#[b256cc]">IRQ_Handler</a><BR>
<LI><a href="#[b25654]">FIQ_Handler</a> -> <a href="#[b25654]">FIQ_Handler</a><BR>
</UL>
<BR>
<P><STRONG><a name="[b252e8]"></a>Reset_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(RESET))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = Reset_Handler -> TargetResetInit</UL>
<BR>[Calls]<UL><LI><a href="#[b2526c]">>></a> TargetResetInit
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup.o(RESET)
</UL>
<P><STRONG><a name="[c0fb98]"></a>__main</STRONG> (ARM, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
<BR><BR>[Stack]<UL><LI>Max Depth = 68 + Unknown Stack Size
<LI>Call Chain = __main -> __rt_entry -> __rt_lib_init -> _get_lc_ctype -> strcmp</UL>
<BR>[Calls]<UL><LI><a href="#[be17bc]">>></a> __scatterload
<LI><a href="#[c0f1e8]">>></a> __rt_entry
</UL>
<P><STRONG><a name="[be17bc]"></a>__scatterload</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
<BR><BR>[Called By]<UL><LI><a href="#[c0fb98]"><<</a> __main
</UL>
<P><STRONG><a name="[be16ec]"></a>__scatterload_rt2</STRONG> (ARM, 48 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c0f1e8]">>></a> __rt_entry
</UL>
<P><STRONG><a name="[be173c]"></a>__scatterload_null</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[be1208]"></a>__scatterload_copy</STRONG> (ARM, 40 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[be1208]">>></a> __scatterload_copy
</UL>
<BR>[Called By]<UL><LI><a href="#[be1208]"><<</a> __scatterload_copy
</UL>
<P><STRONG><a name="[be0db8]"></a>__scatterload_zeroinit</STRONG> (ARM, 44 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[1061120]"></a>__ARM_argv_veneer</STRONG> (ARM, 16 bytes, Stack size 0 bytes, lib_init.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[1061054]"><<</a> __rt_lib_init (via Veneer)
</UL>
<P><STRONG><a name="[b27760]"></a>init_VIC</STRONG> (ARM, 88 bytes, Stack size 0 bytes, irq.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b2526c]"><<</a> TargetResetInit
</UL>
<P><STRONG><a name="[b276e8]"></a>install_irq</STRONG> (ARM, 92 bytes, Stack size 8 bytes, irq.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = install_irq</UL>
<BR>[Called By]<UL><LI><a href="#[baf224]"><<</a> UARTInit
<LI><a href="#[baf40c]"><<</a> main
<LI><a href="#[bb357c]"><<</a> init_timer
</UL>
<P><STRONG><a name="[b250ec]"></a>__user_initial_stackheap</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c0e868]"><<</a> __user_setup_stackheap
</UL>
<P><STRONG><a name="[b2265c]"></a>TargetInit</STRONG> (ARM, 4 bytes, Stack size 0 bytes, target.o(.text), UNUSED)
<P><STRONG><a name="[b225e0]"></a>GPIOResetInit</STRONG> (ARM, 120 bytes, Stack size 0 bytes, target.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b2526c]"><<</a> TargetResetInit
</UL>
<P><STRONG><a name="[b22564]"></a>ConfigurePLL</STRONG> (ARM, 308 bytes, Stack size 0 bytes, target.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b2526c]"><<</a> TargetResetInit
</UL>
<P><STRONG><a name="[b2526c]"></a>TargetResetInit</STRONG> (ARM, 84 bytes, Stack size 8 bytes, target.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = TargetResetInit</UL>
<BR>[Calls]<UL><LI><a href="#[b22564]">>></a> ConfigurePLL
<LI><a href="#[b225e0]">>></a> GPIOResetInit
<LI><a href="#[b27760]">>></a> init_VIC
</UL>
<BR>[Called By]<UL><LI><a href="#[b252e8]"><<</a> Reset_Handler
</UL>
<P><STRONG><a name="[bb385c]"></a>delayMs</STRONG> (ARM, 176 bytes, Stack size 0 bytes, timer.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[badc88]"><<</a> OHCIPortClose
<LI><a href="#[baf318]"><<</a> OHCIPortOpen
<LI><a href="#[baf394]"><<</a> OHCIInit
</UL>
<P><STRONG><a name="[bb37e0]"></a>Timer0Handler</STRONG> (ARM, 84 bytes, Stack size 8 bytes, timer.o(.text), UNUSED)
<P><STRONG><a name="[bb3764]"></a>Timer1Handler</STRONG> (ARM, 104 bytes, Stack size 8 bytes, timer.o(.text), UNUSED)
<P><STRONG><a name="[bb36e8]"></a>enable_timer</STRONG> (ARM, 40 bytes, Stack size 0 bytes, timer.o(.text), UNUSED)
<P><STRONG><a name="[bb366c]"></a>disable_timer</STRONG> (ARM, 40 bytes, Stack size 0 bytes, timer.o(.text), UNUSED)
<P><STRONG><a name="[bb35f4]"></a>reset_timer</STRONG> (ARM, 48 bytes, Stack size 0 bytes, timer.o(.text), UNUSED)
<P><STRONG><a name="[bb357c]"></a>init_timer</STRONG> (ARM, 184 bytes, Stack size 16 bytes, timer.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[b276e8]">>></a> install_irq
</UL>
<P><STRONG><a name="[baf40c]"></a>main</STRONG> (ARM, 212 bytes, Stack size 8 bytes, usb_main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32 + Unknown Stack Size
<LI>Call Chain = main -> USBHostInit</UL>
<BR>[Calls]<UL><LI><a href="#[b276e8]">>></a> install_irq
<LI><a href="#[baf0bc]">>></a> puts
<LI><a href="#[baf130]">>></a> USBHostInit
<LI><a href="#[baf224]">>></a> UARTInit
<LI><a href="#[baf29c]">>></a> OHCISetAddress
<LI><a href="#[baf318]">>></a> OHCIPortOpen
<LI><a href="#[baf394]">>></a> OHCIInit
</UL>
<BR>[Address Reference Count : 1]<UL><LI> kernel.o(.text)
</UL>
<P><STRONG><a name="[badd80]"></a>OHCIIntEnable</STRONG> (ARM, 40 bytes, Stack size 0 bytes, usbhost.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[baf1a8]"><<</a> USBHostHandler
<LI><a href="#[baf394]"><<</a> OHCIInit
</UL>
<P><STRONG><a name="[badd04]"></a>OHCIIntDisable</STRONG> (ARM, 40 bytes, Stack size 0 bytes, usbhost.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[baf1a8]"><<</a> USBHostHandler
<LI><a href="#[baf394]"><<</a> OHCIInit
</UL>
<P><STRONG><a name="[baf394]"></a>OHCIInit</STRONG> (ARM, 244 bytes, Stack size 8 bytes, usbhost.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = OHCIInit</UL>
<BR>[Calls]<UL><LI><a href="#[badd04]">>></a> OHCIIntDisable
<LI><a href="#[badd80]">>></a> OHCIIntEnable
<LI><a href="#[bb385c]">>></a> delayMs
</UL>
<BR>[Called By]<UL><LI><a href="#[baf1a8]"><<</a> USBHostHandler
<LI><a href="#[baf40c]"><<</a> main
</UL>
<P><STRONG><a name="[baf318]"></a>OHCIPortOpen</STRONG> (ARM, 208 bytes, Stack size 8 bytes, usbhost.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = OHCIPortOpen</UL>
<BR>[Calls]<UL><LI><a href="#[bb385c]">>></a> delayMs
</UL>
<BR>[Called By]<UL><LI><a href="#[baf40c]"><<</a> main
</UL>
<P><STRONG><a name="[badc88]"></a>OHCIPortClose</STRONG> (ARM, 212 bytes, Stack size 8 bytes, usbhost.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[bb385c]">>></a> delayMs
</UL>
<P><STRONG><a name="[baf29c]"></a>OHCISetAddress</STRONG> (ARM, 4 bytes, Stack size 0 bytes, usbhost.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[baf40c]"><<</a> main
</UL>
<P><STRONG><a name="[badc08]"></a>ISP1301_I2CRequest</STRONG> (ARM, 68 bytes, Stack size 0 bytes, usbhost.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[baf130]"><<</a> USBHostInit
</UL>
<P><STRONG><a name="[baf1a8]"></a>USBHostHandler</STRONG> (ARM, 500 bytes, Stack size 24 bytes, usbhost.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = USBHostHandler -> OHCIInit</UL>
<BR>[Calls]<UL><LI><a href="#[badd04]">>></a> OHCIIntDisable
<LI><a href="#[badd80]">>></a> OHCIIntEnable
<LI><a href="#[baf394]">>></a> OHCIInit
</UL>
<BR>[Address Reference Count : 1]<UL><LI> usb_main.o(.text)
</UL>
<P><STRONG><a name="[baf130]"></a>USBHostInit</STRONG> (ARM, 428 bytes, Stack size 24 bytes, usbhost.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = USBHostInit</UL>
<BR>[Calls]<UL><LI><a href="#[badc08]">>></a> ISP1301_I2CRequest
</UL>
<BR>[Called By]<UL><LI><a href="#[baf40c]"><<</a> main
</UL>
<P><STRONG><a name="[ba92a4]"></a>UART0Handler</STRONG> (ARM, 380 bytes, Stack size 24 bytes, printc.o(.text), UNUSED)
<P><STRONG><a name="[baf224]"></a>UARTInit</STRONG> (ARM, 148 bytes, Stack size 16 bytes, printc.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 24 + Unknown Stack Size
<LI>Call Chain = UARTInit -> install_irq</UL>
<BR>[Calls]<UL><LI><a href="#[b276e8]">>></a> install_irq
<LI><a href="#[c12f5c]">>></a> __aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[baf40c]"><<</a> main
</UL>
<P><STRONG><a name="[ba9228]"></a>UARTSendByte</STRONG> (ARM, 32 bytes, Stack size 0 bytes, printc.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[ba91b0]"><<</a> UARTSend
</UL>
<P><STRONG><a name="[ba91b0]"></a>UARTSend</STRONG> (ARM, 52 bytes, Stack size 4 bytes, printc.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = UARTSend</UL>
<BR>[Calls]<UL><LI><a href="#[ba9228]">>></a> UARTSendByte
</UL>
<BR>[Called By]<UL><LI><a href="#[ba90c8]"><<</a> printf
<LI><a href="#[ba913c]"><<</a> putch
<LI><a href="#[baf0bc]"><<</a> puts
</UL>
<P><STRONG><a name="[ba913c]"></a>putch</STRONG> (ARM, 20 bytes, Stack size 8 bytes, printc.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[ba91b0]">>></a> UARTSend
</UL>
<P><STRONG><a name="[baf0bc]"></a>puts</STRONG> (ARM, 24 bytes, Stack size 8 bytes, printc.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = puts -> UARTSend</UL>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -