usb_start_keil.htm

来自「基于easyarm2200的USB HID类的多媒体键盘」· HTM 代码 · 共 1,000 行 · 第 1/4 页

HTM
1,000
字号
<!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>#&#060CALLGRAPH&#062# ARM Linker, RVCT3.1 [Build 934]: Last Updated: Sun Aug 31 21:09:59 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 &rArr; __rt_entry &rArr; main &rArr; control_handler &rArr; get_status &rArr; single_transmit &rArr; D12_write_Endpoint
<P>
<H3>
Functions with no stack information
</H3><UL>
 <LI><a href="#[c7f360]">__user_initial_stackheap</a>
 <LI><a href="#[c7f318]">__rt_div0</a>
 <LI><a href="#[c7f630]">Undefined</a>
 <LI><a href="#[c7f5e8]">SoftwareInterrupt</a>
 <LI><a href="#[c7f5a0]">PrefetchAbort</a>
 <LI><a href="#[c7f558]">DataAbort</a>
 <LI><a href="#[c7f510]">FIQ_Handler</a>
 <LI><a href="#[c7f4c8]">ResetInit</a>
</UL>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[c7f630]">Undefined</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c7f630]">Undefined</a><BR>
 <LI><a href="#[c7f5e8]">SoftwareInterrupt</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c7f5e8]">SoftwareInterrupt</a><BR>
 <LI><a href="#[c7f5a0]">PrefetchAbort</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c7f5a0]">PrefetchAbort</a><BR>
 <LI><a href="#[c7f558]">DataAbort</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c7f558]">DataAbort</a><BR>
 <LI><a href="#[c7f318]">__rt_div0</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c7f318]">__rt_div0</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
 <LI><a href="#[c7f4c8]">ResetInit</a>
 <LI><a href="#[c7f630]">Undefined</a>
 <LI><a href="#[c7f5e8]">SoftwareInterrupt</a>
 <LI><a href="#[c7f5a0]">PrefetchAbort</a>
 <LI><a href="#[c7f558]">DataAbort</a>
 <LI><a href="#[c7f510]">FIQ_Handler</a>
 <LI><a href="#[c77458]">__ARM_get_argv</a>
 <LI><a href="#[c7e440]">IRQ_I2C</a>
 <LI><a href="#[c78430]">__I_use_semihosting</a>
 <LI><a href="#[c81f50]">get_status</a>
 <LI><a href="#[c81f08]">clear_feature</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c81ec0]">set_feature</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c81e78]">set_address</a>
 <LI><a href="#[c81e30]">get_descriptor</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c81de8]">get_configuration</a>
 <LI><a href="#[c81da0]">set_configuration</a>
 <LI><a href="#[c81d58]">get_interface</a>
 <LI><a href="#[c81d10]">set_interface</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c81c80]">get_report</a>
 <LI><a href="#[c81cc8]">get_idle</a>
 <LI><a href="#[c81c38]">get_protocol</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c81ba8]">set_report</a>
 <LI><a href="#[c81bf0]">set_idle</a>
 <LI><a href="#[c81b60]">set_protocol</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
 <LI><a href="#[c820b8]">reserved</a>
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[c7f360]"></a>__user_initial_stackheap</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(vectors))
<BR><BR>[Called By]<UL><LI><a href="#[c78278]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>

<P><STRONG><a name="[c7f318]"></a>__rt_div0</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(vectors), UNUSED, KEPT)
<BR><BR>[Calls]<UL><LI><a href="#[c7f318]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_div0
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f318]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_div0
</UL>

<P><STRONG><a name="[c7a878]"></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 &rArr; __rt_entry &rArr; main &rArr; control_handler &rArr; get_status &rArr; single_transmit &rArr; D12_write_Endpoint
</UL>
<BR>[Calls]<UL><LI><a href="#[c74f00]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
<LI><a href="#[c7a5c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f4c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ResetInit
</UL>

<P><STRONG><a name="[c74f00]"></a>__scatterload</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
<BR><BR>[Called By]<UL><LI><a href="#[c7a878]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
</UL>

<P><STRONG><a name="[c74eb8]"></a>__scatterload_rt2</STRONG> (ARM, 52 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c7a5c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
</UL>

<P><STRONG><a name="[c74e70]"></a>__scatterload_null</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

<P><STRONG><a name="[c74c30]"></a>__scatterload_copy</STRONG> (ARM, 40 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c74c30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
</UL>
<BR>[Called By]<UL><LI><a href="#[c74c30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
</UL>

<P><STRONG><a name="[c74ac8]"></a>__scatterload_zeroinit</STRONG> (ARM, 44 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)

<P><STRONG><a name="[c79370]"></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="#[c792e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init
</UL>

<P><STRONG><a name="[c82778]"></a>DISABLE</STRONG> (ARM, 20 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c809d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[c818d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_EINT0
<LI><a href="#[c81da0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_configuration
<LI><a href="#[c81ec0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_feature
<LI><a href="#[c81f08]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;clear_feature
<LI><a href="#[c81f98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;code_transmit
</UL>

<P><STRONG><a name="[c82730]"></a>ENABLE</STRONG> (ARM, 4 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c809d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[c818d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_EINT0
<LI><a href="#[c81da0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_configuration
<LI><a href="#[c81ec0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_feature
<LI><a href="#[c81f08]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;clear_feature
<LI><a href="#[c81f98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;code_transmit
</UL>

<P><STRONG><a name="[c826e8]"></a>D12_set_addr_en</STRONG> (ARM, 36 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c81e78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_address
<LI><a href="#[c82148]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USB_init
</UL>

<P><STRONG><a name="[c826a0]"></a>D12_set_endpoint_en</STRONG> (ARM, 52 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c82028]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;init_config
<LI><a href="#[c82070]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;init_unconfig
<LI><a href="#[c82148]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USB_init
</UL>

<P><STRONG><a name="[c82658]"></a>D12_set_mode</STRONG> (ARM, 28 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c82190]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USB_reconnect
<LI><a href="#[c821d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USB_connect
<LI><a href="#[c82220]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USB_disconnect
</UL>

<P><STRONG><a name="[c82610]"></a>D12_set_DMA</STRONG> (ARM, 24 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)

<P><STRONG><a name="[c825c8]"></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="#[c818d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_EINT0
</UL>

<P><STRONG><a name="[c82580]"></a>D12_Endpoint_select</STRONG> (ARM, 28 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c81f50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_status
<LI><a href="#[c822b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_write_Endpoint
<LI><a href="#[c822f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_read_Endpoint
</UL>

<P><STRONG><a name="[c82538]"></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="#[c81968]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main_rxdone
<LI><a href="#[c822f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_read_Endpoint
</UL>

<P><STRONG><a name="[c824f0]"></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="#[c81968]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main_rxdone
<LI><a href="#[c819b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main_txdone
<LI><a href="#[c819f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ep1_rxdone
<LI><a href="#[c81a40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ep1_txdone
<LI><a href="#[c81a88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ep0_txdone
<LI><a href="#[c81ad0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ep0_rxdone
</UL>

<P><STRONG><a name="[c824a8]"></a>D12_set_Endpoint_status</STRONG> (ARM, 24 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c81ad0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ep0_rxdone
<LI><a href="#[c81ec0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_feature
<LI><a href="#[c81f08]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;clear_feature
<LI><a href="#[c82100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stall_ep0
</UL>

<P><STRONG><a name="[c82460]"></a>D12_clear_buff</STRONG> (ARM, 16 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)

<P><STRONG><a name="[c82418]"></a>D12_read_buff</STRONG> (ARM, 96 bytes, Stack size 4 bytes, d12.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[c822f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_read_Endpoint
</UL>

<P><STRONG><a name="[c823d0]"></a>D12_write_buff</STRONG> (ARM, 84 bytes, Stack size 0 bytes, d12.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c822b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_write_Endpoint
</UL>

<P><STRONG><a name="[c82388]"></a>D12_resend_enable</STRONG> (ARM, 16 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)

<P><STRONG><a name="[c82340]"></a>D12_read_current_frame_cnt</STRONG> (ARM, 40 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)

<P><STRONG><a name="[c822f8]"></a>D12_read_Endpoint</STRONG> (ARM, 120 bytes, Stack size 20 bytes, d12.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c82418]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_read_buff
<LI><a href="#[c82538]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_read_Endpoint_status
<LI><a href="#[c82580]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_Endpoint_select
</UL>
<BR>[Called By]<UL><LI><a href="#[c81968]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main_rxdone
<LI><a href="#[c819f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ep1_rxdone
<LI><a href="#[c81ad0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ep0_rxdone
</UL>

<P><STRONG><a name="[c822b0]"></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="#[c823d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_write_buff
<LI><a href="#[c82580]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_Endpoint_select
</UL>
<BR>[Called By]<UL><LI><a href="#[c80a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;scan_key
<LI><a href="#[c81a88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ep0_txdone
<LI><a href="#[c81f98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;code_transmit
<LI><a href="#[c81fe0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;single_transmit
</UL>

<P><STRONG><a name="[c82268]"></a>D12_ack_Endpoint</STRONG> (ARM, 44 bytes, Stack size 0 bytes, d12.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[c81ad0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ep0_rxdone
</UL>

<P><STRONG><a name="[c82220]"></a>USB_disconnect</STRONG> (ARM, 20 bytes, Stack size 4 bytes, d12.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c82658]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_set_mode
</UL>

<P><STRONG><a name="[c821d8]"></a>USB_connect</STRONG> (ARM, 20 bytes, Stack size 4 bytes, d12.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c82658]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_set_mode
</UL>

<P><STRONG><a name="[c82190]"></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="#[c81800]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DelayNS
<LI><a href="#[c82658]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_set_mode
</UL>
<BR>[Called By]<UL><LI><a href="#[c81848]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;D12_init
</UL>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?