📄 spiflash.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [F:\KEIL_ARM\SPIFlash\SPIFLASH.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image F:\KEIL_ARM\SPIFlash\SPIFLASH.axf</H1><HR>
<BR><P>#<CALLGRAPH># ARM Linker, RVCT3.0 [Build 942]: Last Updated: Mon Sep 11 20:44:27 2006
<BR><P>
<H3>Maximum Stack Usage = 312 bytes + Unknown(Functions without stacksize,Cycles,Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main -> __0sprintf -> _printf_char_common -> __printf -> _printf_longlong_hex -> _printf_int_common<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[b48474]">Reset_Handler</a>
<LI><a href="#[1021400]">__scatterload</a>
<LI><a href="#[1021330]">__scatterload_rt2</a>
<LI><a href="#[1021380]">__scatterload_null</a>
<LI><a href="#[1020afc]">__scatterload_copy</a>
<LI><a href="#[1020544]">__scatterload_zeroinit</a>
<LI><a href="#[b482f4]">__user_initial_stackheap</a>
<LI><a href="#[100514c]">__ARM_call_via_r0</a>
<LI><a href="#[10051cc]">__call_via_r0</a>
<LI><a href="#[1005080]">__ARM_call_via_r1</a>
<LI><a href="#[10050d0]">__call_via_r1</a>
<LI><a href="#[1004fb4]">__ARM_call_via_r2</a>
<LI><a href="#[1005004]">__call_via_r2</a>
<LI><a href="#[1004ee8]">__ARM_call_via_r3</a>
<LI><a href="#[1004f38]">__call_via_r3</a>
<LI><a href="#[1004dec]">__ARM_call_via_r4</a>
<LI><a href="#[1004e6c]">__call_via_r4</a>
<LI><a href="#[1004cf0]">__ARM_call_via_r5</a>
<LI><a href="#[1004d70]">__call_via_r5</a>
<LI><a href="#[1004bf4]">__ARM_call_via_r6</a>
<LI><a href="#[1004c74]">__call_via_r6</a>
<LI><a href="#[1004af8]">__ARM_call_via_r7</a>
<LI><a href="#[1004b78]">__call_via_r7</a>
<LI><a href="#[102f1d4]">__fplib_config_pureend_doubles</a>
<LI><a href="#[b48a64]">Undef_Handler</a>
<LI><a href="#[b489ec]">SWI_Handler</a>
<LI><a href="#[b48970]">PAbt_Handler</a>
<LI><a href="#[b488f4]">DAbt_Handler</a>
<LI><a href="#[b4887c]">IRQ_Handler</a>
<LI><a href="#[b48804]">FIQ_Handler</a>
<LI><a href="#[be9d7c]">__arm_div8</a>
<LI><a href="#[be9df4]">__arm_div4</a>
<LI><a href="#[be9d00]">__arm_div_large</a>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3><UL>
<LI><a href="#[b48a64]">Undef_Handler</a> -> <a href="#[b48a64]">Undef_Handler</a><BR>
<LI><a href="#[b489ec]">SWI_Handler</a> -> <a href="#[b489ec]">SWI_Handler</a><BR>
<LI><a href="#[b48970]">PAbt_Handler</a> -> <a href="#[b48970]">PAbt_Handler</a><BR>
<LI><a href="#[b488f4]">DAbt_Handler</a> -> <a href="#[b488f4]">DAbt_Handler</a><BR>
<LI><a href="#[b4887c]">IRQ_Handler</a> -> <a href="#[b4887c]">IRQ_Handler</a><BR>
<LI><a href="#[b48804]">FIQ_Handler</a> -> <a href="#[b48804]">FIQ_Handler</a><BR>
</UL>
<BR>
<P><STRONG><a name="[b48474]"></a>Reset_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, sam7.o(RESET))
<BR>[Address Reference Count : 1]<UL><LI> sam7.o(RESET)
</UL>
<P><STRONG><a name="[be7468]"></a>__main</STRONG> (ARM, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
<BR><BR>[Stack]<UL><LI>Max Depth = 64 + Unknown Stack Size
<LI>Call Chain = __main -> __rt_entry -> __rt_lib_init -> _fp_init</UL>
<BR>[Calls]<UL><LI><a href="#[be6958]">>></a> __rt_entry
<LI><a href="#[1021400]">>></a> __scatterload
</UL>
<P><STRONG><a name="[1021400]"></a>__scatterload</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
<BR><BR>[Called By]<UL><LI><a href="#[be7468]"><<</a> __main
</UL>
<P><STRONG><a name="[1021330]"></a>__scatterload_rt2</STRONG> (ARM, 48 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[be6958]">>></a> __rt_entry
</UL>
<P><STRONG><a name="[1021380]"></a>__scatterload_null</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[1020afc]"></a>__scatterload_copy</STRONG> (ARM, 40 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[1020afc]">>></a> __scatterload_copy
</UL>
<BR>[Called By]<UL><LI><a href="#[1020afc]"><<</a> __scatterload_copy
</UL>
<P><STRONG><a name="[1020544]"></a>__scatterload_zeroinit</STRONG> (ARM, 44 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[1007f60]"></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="#[1007e94]"><<</a> __rt_lib_init (via Veneer)
</UL>
<P><STRONG><a name="[b482f4]"></a>__user_initial_stackheap</STRONG> (ARM, 0 bytes, Stack size unknown bytes, sam7.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[be5e6c]"><<</a> __user_setup_stackheap
</UL>
<P><STRONG><a name="[b41b7c]"></a>Init_Debug</STRONG> (ARM, 344 bytes, Stack size 8 bytes, main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = Init_Debug</UL>
<BR>[Calls]<UL><LI><a href="#[be9818]">>></a> __aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[b41924]"><<</a> main
</UL>
<P><STRONG><a name="[b41afc]"></a>AT91F_DBGU_Printk</STRONG> (ARM, 64 bytes, Stack size 0 bytes, main.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b41924]"><<</a> main
</UL>
<P><STRONG><a name="[b41a84]"></a>system_int</STRONG> (ARM, 116 bytes, Stack size 32 bytes, main.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[be9818]">>></a> __aeabi_uidivmod
</UL>
<P><STRONG><a name="[b41a0c]"></a>init_timer</STRONG> (ARM, 44 bytes, Stack size 0 bytes, main.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b41924]"><<</a> main
</UL>
<P><STRONG><a name="[b41998]"></a>wait</STRONG> (ARM, 36 bytes, Stack size 0 bytes, main.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b41924]"><<</a> main
</UL>
<P><STRONG><a name="[b41924]"></a>main</STRONG> (ARM, 396 bytes, Stack size 16 bytes, main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 312 + Unknown Stack Size
<LI>Call Chain = main -> __0sprintf -> _printf_char_common -> __printf -> _printf_longlong_hex -> _printf_int_common</UL>
<BR>[Calls]<UL><LI><a href="#[b417a4]">>></a> WriteSPIflash
<LI><a href="#[b41820]">>></a> ReadSPIflash
<LI><a href="#[b4189c]">>></a> AT91F_CfgSPIForDataFlash
<LI><a href="#[b41998]">>></a> wait
<LI><a href="#[b41a0c]">>></a> init_timer
<LI><a href="#[b41afc]">>></a> AT91F_DBGU_Printk
<LI><a href="#[b41b7c]">>></a> Init_Debug
<LI><a href="#[bea568]">>></a> __0sprintf (via Veneer)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> kernel.o(.text)
</UL>
<P><STRONG><a name="[c0f3d8]"></a>AT91F_DataFlashGetStatus</STRONG> (ARM, 108 bytes, Stack size 4 bytes, dataflash.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = AT91F_DataFlashGetStatus</UL>
<BR>[Calls]<UL><LI><a href="#[c10730]">>></a> AT91F_SpiWrite
</UL>
<BR>[Called By]<UL><LI><a href="#[c0f030]"><<</a> AT91F_DataFlashWaitReady
</UL>
<P><STRONG><a name="[c0f354]"></a>AT91F_DataFlashHandler</STRONG> (ARM, 108 bytes, Stack size 0 bytes, dataflash.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c0f030]"><<</a> AT91F_DataFlashWaitReady
</UL>
<P><STRONG><a name="[c0f2cc]"></a>AT91F_DataFlashSendCommand</STRONG> (ARM, 244 bytes, Stack size 32 bytes, dataflash.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32 + Unknown Stack Size
<LI>Call Chain = AT91F_DataFlashSendCommand</UL>
<BR>[Calls]<UL><LI><a href="#[be9818]">>></a> __aeabi_uidivmod
<LI><a href="#[c10730]">>></a> AT91F_SpiWrite
</UL>
<BR>[Called By]<UL><LI><a href="#[c0f0b8]"><<</a> AT91F_DataFlashBufWR
<LI><a href="#[c0f13c]"><<</a> AT91F_DataFlashPagePgmBuf
<LI><a href="#[c0f1c4]"><<</a> AT91F_DataFlashPageRead
</UL>
<P><STRONG><a name="[c0f248]"></a>AT91F_DataFlashSendCom</STRONG> (ARM, 236 bytes, Stack size 24 bytes, dataflash.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[be9818]">>></a> __aeabi_uidivmod
<LI><a href="#[c10730]">>></a> AT91F_SpiWrite
</UL>
<BR>[Called By]<UL><LI><a href="#[c0ee30]"><<</a> AT91F_SPIflash_WR_BUffer
</UL>
<P><STRONG><a name="[c0f1c4]"></a>AT91F_DataFlashPageRead</STRONG> (ARM, 80 bytes, Stack size 24 bytes, dataflash.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 56 + Unknown Stack Size
<LI>Call Chain = AT91F_DataFlashPageRead -> AT91F_DataFlashSendCommand</UL>
<BR>[Calls]<UL><LI><a href="#[c0f2cc]">>></a> AT91F_DataFlashSendCommand
</UL>
<BR>[Called By]<UL><LI><a href="#[b41820]"><<</a> ReadSPIflash
</UL>
<P><STRONG><a name="[c0f13c]"></a>AT91F_DataFlashPagePgmBuf</STRONG> (ARM, 84 bytes, Stack size 24 bytes, dataflash.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 56 + Unknown Stack Size
<LI>Call Chain = AT91F_DataFlashPagePgmBuf -> AT91F_DataFlashSendCommand</UL>
<BR>[Calls]<UL><LI><a href="#[c0f2cc]">>></a> AT91F_DataFlashSendCommand
</UL>
<BR>[Called By]<UL><LI><a href="#[b417a4]"><<</a> WriteSPIflash
</UL>
<P><STRONG><a name="[c0f0b8]"></a>AT91F_DataFlashBufWR</STRONG> (ARM, 100 bytes, Stack size 24 bytes, dataflash.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c0f2cc]">>></a> AT91F_DataFlashSendCommand
</UL>
<BR>[Called By]<UL><LI><a href="#[c0ee30]"><<</a> AT91F_SPIflash_WR_BUffer
</UL>
<P><STRONG><a name="[c0f030]"></a>AT91F_DataFlashWaitReady</STRONG> (ARM, 188 bytes, Stack size 24 bytes, dataflash.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = AT91F_DataFlashWaitReady -> AT91F_DataFlashGetStatus</UL>
<BR>[Calls]<UL><LI><a href="#[c0f354]">>></a> AT91F_DataFlashHandler
<LI><a href="#[c0f3d8]">>></a> AT91F_DataFlashGetStatus
</UL>
<BR>[Called By]<UL><LI><a href="#[b417a4]"><<</a> WriteSPIflash
<LI><a href="#[b41820]"><<</a> ReadSPIflash
<LI><a href="#[c0ee30]"><<</a> AT91F_SPIflash_WR_BUffer
<LI><a href="#[c0eeb8]"><<</a> AT91F_Test_AT45DCB
<LI><a href="#[c0ef38]"><<</a> AT91F_Test_AT45DB
<LI><a href="#[c0efb8]"><<</a> AT91F_AT45D
</UL>
<P><STRONG><a name="[c0efb8]"></a>AT91F_AT45D</STRONG> (ARM, 48 bytes, Stack size 8 bytes, dataflash.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = AT91F_AT45D -> AT91F_DataFlashWaitReady -> AT91F_DataFlashGetStatus</UL>
<BR>[Calls]<UL><LI><a href="#[c0ecb0]">>></a> AT91F_SPI_CfgPCS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -