📄 usb_start_keil.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [.\Obj\usb_start_keil.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Obj\usb_start_keil.axf</H1><HR>
<BR><P>#<CALLGRAPH># ARM Linker, RVCT3.1 [Build 939]: Last Updated: Sun Sep 07 01:19:52 2008
<BR><P>
<H3>Maximum Stack Usage = 92 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
__main ⇒ __rt_entry ⇒ main ⇒ control_handler ⇒ get_status ⇒ single_transmit ⇒ D12_write_Endpoint
<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[b7f360]">__user_initial_stackheap</a>
<LI><a href="#[b7f318]">__rt_div0</a>
<LI><a href="#[b7f630]">Undefined</a>
<LI><a href="#[b7f5e8]">SoftwareInterrupt</a>
<LI><a href="#[b7f5a0]">PrefetchAbort</a>
<LI><a href="#[b7f558]">DataAbort</a>
<LI><a href="#[b7f510]">FIQ_Handler</a>
<LI><a href="#[b7f4c8]">ResetInit</a>
</UL>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[b7f630]">Undefined</a> ⇒ <a href="#[b7f630]">Undefined</a><BR>
<LI><a href="#[b7f5e8]">SoftwareInterrupt</a> ⇒ <a href="#[b7f5e8]">SoftwareInterrupt</a><BR>
<LI><a href="#[b7f5a0]">PrefetchAbort</a> ⇒ <a href="#[b7f5a0]">PrefetchAbort</a><BR>
<LI><a href="#[b7f558]">DataAbort</a> ⇒ <a href="#[b7f558]">DataAbort</a><BR>
<LI><a href="#[b7f318]">__rt_div0</a> ⇒ <a href="#[b7f318]">__rt_div0</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
<LI><a href="#[b7f4c8]">ResetInit</a>
<LI><a href="#[b7f630]">Undefined</a>
<LI><a href="#[b7f5e8]">SoftwareInterrupt</a>
<LI><a href="#[b7f5a0]">PrefetchAbort</a>
<LI><a href="#[b7f558]">DataAbort</a>
<LI><a href="#[b7f510]">FIQ_Handler</a>
<LI><a href="#[b77458]">__ARM_get_argv</a>
<LI><a href="#[b7e440]">IRQ_I2C</a>
<LI><a href="#[b78430]">__I_use_semihosting</a>
<LI><a href="#[b81f50]">get_status</a>
<LI><a href="#[b81f08]">clear_feature</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b81ec0]">set_feature</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b81e78]">set_address</a>
<LI><a href="#[b81e30]">get_descriptor</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b81de8]">get_configuration</a>
<LI><a href="#[b81da0]">set_configuration</a>
<LI><a href="#[b81d58]">get_interface</a>
<LI><a href="#[b81d10]">set_interface</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b81c80]">get_report</a>
<LI><a href="#[b81cc8]">get_idle</a>
<LI><a href="#[b81c38]">get_protocol</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b81ba8]">set_report</a>
<LI><a href="#[b81bf0]">set_idle</a>
<LI><a href="#[b81b60]">set_protocol</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
<LI><a href="#[b820b8]">reserved</a>
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[b7f360]"></a>__user_initial_stackheap</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(vectors))
<BR><BR>[Called By]<UL><LI><a href="#[b78278]">>></a> __user_setup_stackheap
</UL>
<P><STRONG><a name="[b7f318]"></a>__rt_div0</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(vectors), UNUSED, KEPT)
<BR><BR>[Calls]<UL><LI><a href="#[b7f318]">>></a> __rt_div0
</UL>
<BR>[Called By]<UL><LI><a href="#[b7f318]">>></a> __rt_div0
</UL>
<P><STRONG><a name="[b7a878]"></a>__main</STRONG> (ARM, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
<BR><BR>[Stack]<UL><LI>Max Depth = 92 + Unknown Stack Size
<LI>Call Chain = __main ⇒ __rt_entry ⇒ main ⇒ control_handler ⇒ get_status ⇒ single_transmit ⇒ D12_write_Endpoint
</UL>
<BR>[Calls]<UL><LI><a href="#[b73e38]">>></a> __scatterload
<LI><a href="#[b7a5c8]">>></a> __rt_entry
</UL>
<BR>[Called By]<UL><LI><a href="#[b7f4c8]">>></a> ResetInit
</UL>
<P><STRONG><a name="[b73e38]"></a>__scatterload</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
<BR><BR>[Called By]<UL><LI><a href="#[b7a878]">>></a> __main
</UL>
<P><STRONG><a name="[b73df0]"></a>__scatterload_rt2</STRONG> (ARM, 52 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[b7a5c8]">>></a> __rt_entry
</UL>
<P><STRONG><a name="[b73da8]"></a>__scatterload_null</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[10345b0]"></a>__scatterload_copy</STRONG> (ARM, 40 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[10345b0]">>></a> __scatterload_copy
</UL>
<BR>[Called By]<UL><LI><a href="#[10345b0]">>></a> __scatterload_copy
</UL>
<P><STRONG><a name="[1034448]"></a>__scatterload_zeroinit</STRONG> (ARM, 44 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[b79370]"></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="#[b792e0]">>></a> __rt_lib_init
</UL>
<P><STRONG><a name="[b82778]"></a>DISABLE</STRONG> (ARM, 20 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b809d8]">>></a> main
<LI><a href="#[b818d8]">>></a> D12_EINT0
<LI><a href="#[b81da0]">>></a> set_configuration
<LI><a href="#[b81ec0]">>></a> set_feature
<LI><a href="#[b81f08]">>></a> clear_feature
<LI><a href="#[b81f98]">>></a> code_transmit
</UL>
<P><STRONG><a name="[b82730]"></a>ENABLE</STRONG> (ARM, 4 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b809d8]">>></a> main
<LI><a href="#[b818d8]">>></a> D12_EINT0
<LI><a href="#[b81da0]">>></a> set_configuration
<LI><a href="#[b81ec0]">>></a> set_feature
<LI><a href="#[b81f08]">>></a> clear_feature
<LI><a href="#[b81f98]">>></a> code_transmit
</UL>
<P><STRONG><a name="[b826e8]"></a>D12_set_addr_en</STRONG> (ARM, 36 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b81e78]">>></a> set_address
<LI><a href="#[b82148]">>></a> USB_init
</UL>
<P><STRONG><a name="[b826a0]"></a>D12_set_endpoint_en</STRONG> (ARM, 52 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b82028]">>></a> init_config
<LI><a href="#[b82070]">>></a> init_unconfig
<LI><a href="#[b82148]">>></a> USB_init
</UL>
<P><STRONG><a name="[b82658]"></a>D12_set_mode</STRONG> (ARM, 28 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b82190]">>></a> USB_reconnect
<LI><a href="#[b821d8]">>></a> USB_connect
<LI><a href="#[b82220]">>></a> USB_disconnect
</UL>
<P><STRONG><a name="[b82610]"></a>D12_set_DMA</STRONG> (ARM, 24 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)
<P><STRONG><a name="[b825c8]"></a>D12_read_interrupt_reg</STRONG> (ARM, 36 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[b818d8]">>></a> D12_EINT0
</UL>
<P><STRONG><a name="[b82580]"></a>D12_Endpoint_select</STRONG> (ARM, 28 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b81f50]">>></a> get_status
<LI><a href="#[b822b0]">>></a> D12_write_Endpoint
<LI><a href="#[b822f8]">>></a> D12_read_Endpoint
</UL>
<P><STRONG><a name="[b82538]"></a>D12_read_Endpoint_status</STRONG> (ARM, 28 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[b81968]">>></a> main_rxdone
<LI><a href="#[b822f8]">>></a> D12_read_Endpoint
</UL>
<P><STRONG><a name="[b824f0]"></a>D12_read_last_status_reg</STRONG> (ARM, 28 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[b81968]">>></a> main_rxdone
<LI><a href="#[b819b0]">>></a> main_txdone
<LI><a href="#[b819f8]">>></a> ep1_rxdone
<LI><a href="#[b81a40]">>></a> ep1_txdone
<LI><a href="#[b81a88]">>></a> ep0_txdone
<LI><a href="#[b81ad0]">>></a> ep0_rxdone
</UL>
<P><STRONG><a name="[b824a8]"></a>D12_set_Endpoint_status</STRONG> (ARM, 24 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b81ad0]">>></a> ep0_rxdone
<LI><a href="#[b81ec0]">>></a> set_feature
<LI><a href="#[b81f08]">>></a> clear_feature
<LI><a href="#[b82100]">>></a> stall_ep0
</UL>
<P><STRONG><a name="[b82460]"></a>D12_clear_buff</STRONG> (ARM, 16 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)
<P><STRONG><a name="[b82418]"></a>D12_read_buff</STRONG> (ARM, 96 bytes, Stack size 4 bytes, d12.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[b822f8]">>></a> D12_read_Endpoint
</UL>
<P><STRONG><a name="[b823d0]"></a>D12_write_buff</STRONG> (ARM, 84 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b822b0]">>></a> D12_write_Endpoint
</UL>
<P><STRONG><a name="[b82388]"></a>D12_resend_enable</STRONG> (ARM, 16 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)
<P><STRONG><a name="[b82340]"></a>D12_read_current_frame_cnt</STRONG> (ARM, 40 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)
<P><STRONG><a name="[b822f8]"></a>D12_read_Endpoint</STRONG> (ARM, 120 bytes, Stack size 20 bytes, d12.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[b82418]">>></a> D12_read_buff
<LI><a href="#[b82538]">>></a> D12_read_Endpoint_status
<LI><a href="#[b82580]">>></a> D12_Endpoint_select
</UL>
<BR>[Called By]<UL><LI><a href="#[b81968]">>></a> main_rxdone
<LI><a href="#[b819f8]">>></a> ep1_rxdone
<LI><a href="#[b81ad0]">>></a> ep0_rxdone
</UL>
<P><STRONG><a name="[b822b0]"></a>D12_write_Endpoint</STRONG> (ARM, 40 bytes, Stack size 16 bytes, d12.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = D12_write_Endpoint
</UL>
<BR>[Calls]<UL><LI><a href="#[b823d0]">>></a> D12_write_buff
<LI><a href="#[b82580]">>></a> D12_Endpoint_select
</UL>
<BR>[Called By]<UL><LI><a href="#[b80a20]">>></a> scan_key
<LI><a href="#[b81a88]">>></a> ep0_txdone
<LI><a href="#[b81f98]">>></a> code_transmit
<LI><a href="#[b81fe0]">>></a> single_transmit
</UL>
<P><STRONG><a name="[b82268]"></a>D12_ack_Endpoint</STRONG> (ARM, 44 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[b81ad0]">>></a> ep0_rxdone
</UL>
<P><STRONG><a name="[b82220]"></a>USB_disconnect</STRONG> (ARM, 20 bytes, Stack size 4 bytes, d12.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[b82658]">>></a> D12_set_mode
</UL>
<P><STRONG><a name="[b821d8]"></a>USB_connect</STRONG> (ARM, 20 bytes, Stack size 4 bytes, d12.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[b82658]">>></a> D12_set_mode
</UL>
<P><STRONG><a name="[b82190]"></a>USB_reconnect</STRONG> (ARM, 40 bytes, Stack size 8 bytes, d12.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = USB_reconnect
</UL>
<BR>[Calls]<UL><LI><a href="#[b81800]">>></a> DelayNS
<LI><a href="#[b82658]">>></a> D12_set_mode
</UL>
<BR>[Called By]<UL><LI><a href="#[b81848]">>></a> D12_init
</UL>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -