⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_fwu.htm

📁 LPC2148的USB口固件升级代码
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [.\OBJ\usb_fwu.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\OBJ\usb_fwu.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, RVCT3.1 [Build 919]: Last Updated: Sun May 04 09:31:56 2008
<BR><P>
<H3>Maximum Stack Usage =        148 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main &rArr; stream_rx &rArr; send_to_host &rArr; make_cmd &rArr; calc_crc
<P>
<H3>
Functions with no stack information
</H3><UL>
 <LI><a href="#[cb9af0]">reset</a>
 <LI><a href="#[cb9aa8]">Reset_Handler</a>
 <LI><a href="#[cb9a60]">__main</a>
 <LI><a href="#[cb9a18]">tn_startup_hardware_init</a>
 <LI><a href="#[cc25a0]">tn_arm_disable_interrupts</a>
 <LI><a href="#[cc2558]">tn_arm_enable_interrupts</a>
 <LI><a href="#[cc1118]">cpu_irq_isr</a>
 <LI><a href="#[cc1160]">cpu_fiq_isr</a>
 <LI><a href="#[cc2798]">cpu_save_sr</a>
 <LI><a href="#[cc27e0]">cpu_restore_sr</a>
 <LI><a href="#[cc2630]">iap_command</a>
 <LI><a href="#[cc25e8]">start_firmware</a>
 <LI><a href="#[cb9550]">start_low_side_firmware</a>
 <LI><a href="#[cb9d30]">undef_handler</a>
 <LI><a href="#[cb9ce8]">swi_handler</a>
 <LI><a href="#[cb9ca0]">pabort_handler</a>
 <LI><a href="#[cb9c58]">dabort_handler</a>
</UL>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[cc2798]">cpu_save_sr</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[cc2798]">cpu_save_sr</a><BR>
 <LI><a href="#[cb9d30]">undef_handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[cb9d30]">undef_handler</a><BR>
 <LI><a href="#[cb9ce8]">swi_handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[cb9ce8]">swi_handler</a><BR>
 <LI><a href="#[cb9ca0]">pabort_handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[cb9ca0]">pabort_handler</a><BR>
 <LI><a href="#[cb9c58]">dabort_handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[cb9c58]">dabort_handler</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
 <LI><a href="#[cb9aa8]">Reset_Handler</a>
 <LI><a href="#[cb9d30]">undef_handler</a>
 <LI><a href="#[cb9ce8]">swi_handler</a>
 <LI><a href="#[cb9ca0]">pabort_handler</a>
 <LI><a href="#[cb9c58]">dabort_handler</a>
 <LI><a href="#[cb9a18]">tn_startup_hardware_init</a>
 <LI><a href="#[cc1280]">main</a>
 <LI><a href="#[cc1118]">cpu_irq_isr</a>
 <LI><a href="#[cc1160]">cpu_fiq_isr</a>
 <LI><a href="#[cc0280]">tn_int_default_func</a>
 <LI><a href="#[cc0238]">tn_timer0_int_func</a>
 <LI><a href="#[cc01a8]">tn_usb_int_func</a>
 <LI><a href="#[cbf2d0]">cpu_irq_handler</a>
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[cb9af0]"></a>reset</STRONG> (ARM, 0 bytes, Stack size unknown bytes, fwu_startup_keil_rvc.o(RESET))

<P><STRONG><a name="[cb9aa8]"></a>Reset_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, fwu_startup_keil_rvc.o(RESET))
<BR>[Address Reference Count : 1]<UL><LI> fwu_startup_keil_rvc.o(RESET)
</UL>
<P><STRONG><a name="[cb9a60]"></a>__main</STRONG> (ARM, 0 bytes, Stack size unknown bytes, fwu_startup_keil_rvc.o(RESET), UNUSED, KEPT)

<P><STRONG><a name="[cc2a68]"></a>s_memset</STRONG> (ARM, 28 bytes, Stack size 0 bytes, fwu_utils.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[cbb388]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_usb_vendor_request_in
<LI><a href="#[cc1310]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;send_to_host
</UL>

<P><STRONG><a name="[cc2a20]"></a>s_memcpy</STRONG> (ARM, 100 bytes, Stack size 0 bytes, fwu_utils.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[cbb340]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_usb_vendor_request_out
<LI><a href="#[cbb388]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_usb_vendor_request_in
<LI><a href="#[cc12c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_rx
<LI><a href="#[cc1310]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;send_to_host
<LI><a href="#[cc1358]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_tx
<LI><a href="#[cc2990]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;make_cmd
</UL>

<P><STRONG><a name="[cc29d8]"></a>calc_crc</STRONG> (ARM, 60 bytes, Stack size 8 bytes, fwu_utils.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = calc_crc
</UL>
<BR>[Called By]<UL><LI><a href="#[cbb340]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_usb_vendor_request_out
<LI><a href="#[cbb388]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_usb_vendor_request_in
<LI><a href="#[cc12c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_rx
<LI><a href="#[cc28b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;do_switch_to_firmware
<LI><a href="#[cc2990]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;make_cmd
</UL>

<P><STRONG><a name="[cc2990]"></a>make_cmd</STRONG> (ARM, 52 bytes, Stack size 12 bytes, fwu_utils.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = make_cmd &rArr; calc_crc
</UL>
<BR>[Calls]<UL><LI><a href="#[cc29d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calc_crc
<LI><a href="#[cc2a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;s_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[cc1310]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;send_to_host
</UL>

<P><STRONG><a name="[cc2948]"></a>flash_write</STRONG> (ARM, 160 bytes, Stack size 40 bytes, fwu_utils.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48 + Unknown Stack Size
<LI>Call Chain = flash_write &rArr; get_sector_number
</UL>
<BR>[Calls]<UL><LI><a href="#[cc2630]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;iap_command
<LI><a href="#[cc2798]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_save_sr
<LI><a href="#[cc27e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_restore_sr
<LI><a href="#[cc2ee8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_sector_number
</UL>
<BR>[Called By]<UL><LI><a href="#[cc12c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_rx
</UL>

<P><STRONG><a name="[cc2900]"></a>flash_erase_sectors</STRONG> (ARM, 156 bytes, Stack size 32 bytes, fwu_utils.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 40 + Unknown Stack Size
<LI>Call Chain = flash_erase_sectors &rArr; get_sector_number
</UL>
<BR>[Calls]<UL><LI><a href="#[cc2630]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;iap_command
<LI><a href="#[cc2798]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_save_sr
<LI><a href="#[cc27e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_restore_sr
<LI><a href="#[cc2ee8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_sector_number
</UL>
<BR>[Called By]<UL><LI><a href="#[cc1280]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>

<P><STRONG><a name="[cc28b8]"></a>do_switch_to_firmware</STRONG> (ARM, 100 bytes, Stack size 8 bytes, fwu_utils.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16 + Unknown Stack Size
<LI>Call Chain = do_switch_to_firmware &rArr; calc_crc
</UL>
<BR>[Calls]<UL><LI><a href="#[cc25e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;start_firmware
<LI><a href="#[cc29d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calc_crc
</UL>
<BR>[Called By]<UL><LI><a href="#[cc1280]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[cc2870]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;switch_to_firmware
</UL>

<P><STRONG><a name="[cc2870]"></a>switch_to_firmware</STRONG> (ARM, 20 bytes, Stack size 8 bytes, fwu_utils.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 24 + Unknown Stack Size
<LI>Call Chain = switch_to_firmware &rArr; do_switch_to_firmware &rArr; calc_crc
</UL>
<BR>[Calls]<UL><LI><a href="#[cc2558]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_arm_enable_interrupts
<LI><a href="#[cc25a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_arm_disable_interrupts
<LI><a href="#[cc28b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;do_switch_to_firmware
</UL>
<BR>[Called By]<UL><LI><a href="#[cc12c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_rx
<LI><a href="#[cc1358]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_tx
</UL>

<P><STRONG><a name="[cc2828]"></a>set_state</STRONG> (ARM, 28 bytes, Stack size 8 bytes, fwu_utils.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = set_state
</UL>
<BR>[Calls]<UL><LI><a href="#[cc2798]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_save_sr
<LI><a href="#[cc27e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_restore_sr
</UL>
<BR>[Called By]<UL><LI><a href="#[cc1280]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[cc12c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_rx
<LI><a href="#[cc1358]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_tx
</UL>

<P><STRONG><a name="[cc1358]"></a>stream_tx</STRONG> (ARM, 236 bytes, Stack size 40 bytes, fwu.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 64 + Unknown Stack Size
<LI>Call Chain = stream_tx &rArr; switch_to_firmware &rArr; do_switch_to_firmware &rArr; calc_crc
</UL>
<BR>[Calls]<UL><LI><a href="#[cc0fb0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fwu_queue_tst
<LI><a href="#[cc0ff8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fwu_queue_put
<LI><a href="#[cc2828]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_state
<LI><a href="#[cc2870]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;switch_to_firmware
<LI><a href="#[cc2a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;s_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[cc1280]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>

<P><STRONG><a name="[cc1310]"></a>send_to_host</STRONG> (ARM, 88 bytes, Stack size 72 bytes, fwu.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 92 + Unknown Stack Size
<LI>Call Chain = send_to_host &rArr; make_cmd &rArr; calc_crc
</UL>
<BR>[Calls]<UL><LI><a href="#[cc0fb0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fwu_queue_tst
<LI><a href="#[cc0ff8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fwu_queue_put
<LI><a href="#[cc2990]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;make_cmd
<LI><a href="#[cc2a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;s_memcpy
<LI><a href="#[cc2a68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;s_memset
</UL>
<BR>[Called By]<UL><LI><a href="#[cc1280]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[cc12c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_rx
</UL>

<P><STRONG><a name="[cc12c8]"></a>stream_rx</STRONG> (ARM, 296 bytes, Stack size 32 bytes, fwu.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 124 + Unknown Stack Size
<LI>Call Chain = stream_rx &rArr; send_to_host &rArr; make_cmd &rArr; calc_crc
</UL>
<BR>[Calls]<UL><LI><a href="#[cc1040]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fwu_queue_get
<LI><a href="#[cc1310]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;send_to_host
<LI><a href="#[cc2828]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_state
<LI><a href="#[cc2870]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;switch_to_firmware
<LI><a href="#[cc2948]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write
<LI><a href="#[cc29d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calc_crc
<LI><a href="#[cc2a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;s_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[cc1280]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>

<P><STRONG><a name="[cc1280]"></a>main</STRONG> (ARM, 344 bytes, Stack size 24 bytes, fwu.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 148 + Unknown Stack Size
<LI>Call Chain = main &rArr; stream_rx &rArr; send_to_host &rArr; make_cmd &rArr; calc_crc
</UL>
<BR>[Calls]<UL><LI><a href="#[cc0f20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_usb_reset_data
<LI><a href="#[cc0f68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_usb_connect
<LI><a href="#[cc1088]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fwu_queue_create
<LI><a href="#[cc11f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_CRC32_Table
<LI><a href="#[cc1238]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HardwareInit
<LI><a href="#[cc12c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_rx
<LI><a href="#[cc1310]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;send_to_host
<LI><a href="#[cc1358]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;stream_tx
<LI><a href="#[cc2558]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_arm_enable_interrupts
<LI><a href="#[cc25a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tn_arm_disable_interrupts
<LI><a href="#[cc2828]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_state

⌨️ 快捷键说明

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