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

📄 rc531.htm

📁 ARM7 SPI RC531驱动程序,数据手册
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [F:\arm_project\RC531\RC531.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image F:\arm_project\RC531\RC531.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, RVCT3.1 [Build 919]: Last Updated: Fri Dec 26 17:18:43 2008
<BR><P>
<H3>Maximum Stack Usage =        256 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main &rArr; Fine_Card &rArr; CascAnticoll &rArr; M500PiccCascAnticoll &rArr; M500PcdCmd &rArr; FlushFIFO &rArr; SetBitMask &rArr; ReadIO
<P>
<H3>
Functions with no stack information
</H3><UL>
 <LI><a href="#[c833b0]">Reset_Handler</a>
 <LI><a href="#[c833f8]">__user_initial_stackheap</a>
 <LI><a href="#[c83680]">Undef_Handler</a>
 <LI><a href="#[c83638]">SWI_Handler</a>
 <LI><a href="#[c835f0]">PAbt_Handler</a>
 <LI><a href="#[c835a8]">DAbt_Handler</a>
 <LI><a href="#[c83560]">IRQ_Handler</a>
 <LI><a href="#[c83518]">FIQ_Handler</a>
</UL>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[c83680]">Undef_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c83680]">Undef_Handler</a><BR>
 <LI><a href="#[c83638]">SWI_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c83638]">SWI_Handler</a><BR>
 <LI><a href="#[c835f0]">PAbt_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c835f0]">PAbt_Handler</a><BR>
 <LI><a href="#[c835a8]">DAbt_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c835a8]">DAbt_Handler</a><BR>
 <LI><a href="#[c83560]">IRQ_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c83560]">IRQ_Handler</a><BR>
 <LI><a href="#[c83518]">FIQ_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c83518]">FIQ_Handler</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
 <LI><a href="#[c833b0]">Reset_Handler</a>
 <LI><a href="#[c83680]">Undef_Handler</a>
 <LI><a href="#[c83638]">SWI_Handler</a>
 <LI><a href="#[c835f0]">PAbt_Handler</a>
 <LI><a href="#[c835a8]">DAbt_Handler</a>
 <LI><a href="#[c83560]">IRQ_Handler</a>
 <LI><a href="#[c83518]">FIQ_Handler</a>
 <LI><a href="#[c7c398]">__main</a>
 <LI><a href="#[c789e8]">__ARM_get_argv</a>
 <LI><a href="#[c829d8]">main</a>
 <LI><a href="#[c79750]">__I_use_semihosting</a>
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[c833b0]"></a>Reset_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(RESET))
<BR>[Address Reference Count : 1]<UL><LI> startup.o(RESET)
</UL>
<P><STRONG><a name="[c7c398]"></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 &rArr; __rt_entry &rArr; __rt_lib_init &rArr; _fp_init
</UL>
<BR>[Calls]<UL><LI><a href="#[c76280]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
<LI><a href="#[c7c0d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
</UL>

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

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

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

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

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

<P><STRONG><a name="[c7a6a0]"></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="#[c7a610]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init (via Veneer)
</UL>

<P><STRONG><a name="[c833f8]"></a>__user_initial_stackheap</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c7bab0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>

<P><STRONG><a name="[c82a68]"></a>DelayNS</STRONG> (ARM, 40 bytes, Stack size 0 bytes, main.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c829d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[c82a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysInit
</UL>

<P><STRONG><a name="[c82a20]"></a>SysInit</STRONG> (ARM, 136 bytes, Stack size 8 bytes, main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 88 + Unknown Stack Size
<LI>Call Chain = SysInit &rArr; Rc500Init &rArr; MfConfig &rArr; M500PcdConfig &rArr; M500PcdRfReset &rArr; ClearBitMask &rArr; ReadIO
</UL>
<BR>[Calls]<UL><LI><a href="#[c82750]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Uart1_Init
<LI><a href="#[c82798]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SpkOnTime
<LI><a href="#[c827e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI0Init
<LI><a href="#[c82870]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rc500Init
<LI><a href="#[c82900]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;InitSpk
<LI><a href="#[c82a68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DelayNS
</UL>
<BR>[Called By]<UL><LI><a href="#[c829d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>

<P><STRONG><a name="[c829d8]"></a>main</STRONG> (ARM, 256 bytes, Stack size 80 bytes, main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 256 + Unknown Stack Size
<LI>Call Chain = main &rArr; Fine_Card &rArr; CascAnticoll &rArr; M500PiccCascAnticoll &rArr; M500PcdCmd &rArr; FlushFIFO &rArr; SetBitMask &rArr; ReadIO
</UL>
<BR>[Calls]<UL><LI><a href="#[c82678]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WriteCard
<LI><a href="#[c826c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Uart1_SendStr
<LI><a href="#[c82708]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Uart1_SendByte
<LI><a href="#[c82798]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SpkOnTime
<LI><a href="#[c82828]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadCard
<LI><a href="#[c828b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PiccHalt
<LI><a href="#[c82948]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Fine_Card
<LI><a href="#[c82990]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DownloadPassWord2
<LI><a href="#[c82a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysInit
<LI><a href="#[c82a68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DelayNS
</UL>
<BR>[Address Reference Count : 1]<UL><LI> kernel.o(.text)
</UL>
<P><STRONG><a name="[c82798]"></a>SpkOnTime</STRONG> (ARM, 124 bytes, Stack size 0 bytes, spk.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c829d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[c82a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysInit
</UL>

<P><STRONG><a name="[c82900]"></a>InitSpk</STRONG> (ARM, 76 bytes, Stack size 0 bytes, spk.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c82a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysInit
</UL>

<P><STRONG><a name="[c813a0]"></a>UART1_Exception</STRONG> (ARM, 344 bytes, Stack size 20 bytes, uart1.o(.text), UNUSED)

<P><STRONG><a name="[c82708]"></a>Uart1_SendByte</STRONG> (ARM, 44 bytes, Stack size 0 bytes, uart1.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c829d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>

<P><STRONG><a name="[c826c0]"></a>Uart1_SendStr</STRONG> (ARM, 72 bytes, Stack size 0 bytes, uart1.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c829d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>

<P><STRONG><a name="[c81358]"></a>Uart1_ReadByte</STRONG> (ARM, 268 bytes, Stack size 8 bytes, uart1.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[c81310]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Uart1_ReadStr
</UL>

<P><STRONG><a name="[c81310]"></a>Uart1_ReadStr</STRONG> (ARM, 92 bytes, Stack size 20 bytes, uart1.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c81358]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Uart1_ReadByte
</UL>

<P><STRONG><a name="[c812c8]"></a>Uart1_CheckBuff</STRONG> (ARM, 12 bytes, Stack size 0 bytes, uart1.o(.text), UNUSED)

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

<P><STRONG><a name="[c82750]"></a>Uart1_Init</STRONG> (ARM, 356 bytes, Stack size 24 bytes, uart1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 24 + Unknown Stack Size
<LI>Call Chain = Uart1_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[c7d2d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[c82a20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysInit
</UL>

<P><STRONG><a name="[c803e0]"></a>delay_1ms</STRONG> (ARM, 40 bytes, Stack size 0 bytes, rc500.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c7fdf8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PiccAuthState
<LI><a href="#[c80038]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdRfReset
<LI><a href="#[c80080]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdReset
</UL>

<P><STRONG><a name="[c80398]"></a>delay_50us</STRONG> (ARM, 44 bytes, Stack size 0 bytes, rc500.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c7fff0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdConfig
<LI><a href="#[c80080]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdReset
</UL>

<P><STRONG><a name="[c80350]"></a>ReadRawIO</STRONG> (ARM, 92 bytes, Stack size 16 bytes, rc500.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c7f738]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_SendByte
<LI><a href="#[c7f780]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_RecByte
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f810]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Eint0
</UL>

<P><STRONG><a name="[c80308]"></a>WriteRawIO</STRONG> (ARM, 80 bytes, Stack size 16 bytes, rc500.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c7f738]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_SendByte
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f810]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Eint0
</UL>

<P><STRONG><a name="[c802c0]"></a>WriteIO</STRONG> (ARM, 136 bytes, Stack size 16 bytes, rc500.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = WriteIO
</UL>
<BR>[Calls]<UL><LI><a href="#[c7f738]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_SendByte
</UL>
<BR>[Called By]<UL><LI><a href="#[c7f810]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Eint0
<LI><a href="#[c7fa50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PiccCMD14443_4
<LI><a href="#[c7fb28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PiccRead
<LI><a href="#[c7fe40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PiccCascSelect
<LI><a href="#[c7fe88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PiccCascAnticoll
<LI><a href="#[c7fed0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PiccCommonRequest
<LI><a href="#[c7ff18]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdSetTmo
<LI><a href="#[c7ffa8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdMfOutSelect
<LI><a href="#[c7fff0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdConfig
<LI><a href="#[c80038]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdRfReset
<LI><a href="#[c800c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdCmd
<LI><a href="#[c80158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ClearBitMask
<LI><a href="#[c801a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetBitMask
<LI><a href="#[c828b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PiccHalt
</UL>

<P><STRONG><a name="[c80278]"></a>ReadIO</STRONG> (ARM, 148 bytes, Stack size 16 bytes, rc500.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = ReadIO
</UL>
<BR>[Calls]<UL><LI><a href="#[c7f738]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_SendByte
<LI><a href="#[c7f780]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_RecByte
</UL>
<BR>[Called By]<UL><LI><a href="#[c7fdf8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PiccAuthState
<LI><a href="#[c80080]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdReset
<LI><a href="#[c800c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdCmd
<LI><a href="#[c80158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ClearBitMask
<LI><a href="#[c801a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetBitMask
</UL>

<P><STRONG><a name="[c80230]"></a>RFRegWrite</STRONG> (ARM, 136 bytes, Stack size 16 bytes, rc500.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c7f738]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_SendByte
</UL>

<P><STRONG><a name="[c801e8]"></a>RFRegRead</STRONG> (ARM, 148 bytes, Stack size 16 bytes, rc500.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c7f738]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_SendByte
<LI><a href="#[c7f780]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_RecByte
</UL>

<P><STRONG><a name="[c801a0]"></a>SetBitMask</STRONG> (ARM, 52 bytes, Stack size 16 bytes, rc500.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = SetBitMask &rArr; ReadIO
</UL>
<BR>[Calls]<UL><LI><a href="#[c80278]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadIO
<LI><a href="#[c802c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WriteIO
</UL>
<BR>[Called By]<UL><LI><a href="#[c7fed0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PiccCommonRequest
<LI><a href="#[c80038]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdRfReset
<LI><a href="#[c800c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;M500PcdCmd
<LI><a href="#[c80110]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlushFIFO
</UL>

<P><STRONG><a name="[c80158]"></a>ClearBitMask</STRONG> (ARM, 52 bytes, Stack size 16 bytes, rc500.o(.text))

⌨️ 快捷键说明

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