📄 basickeyboard.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html><head>
<title>Static Call Graph - [E:\ads和FFT-ICE开发\FFT-RM9200-BasicSPIKeyboard\compil\BasicKeyboard_Data\Debug\BasicKeyboard.axf]</title>
</head>
<body><HR>
<H1>Static Call Graph for image E:\ads和FFT-ICE开发\FFT-RM9200-BasicSPIKeyboard\compil\BasicKeyboard_Data\Debug\BasicKeyboard.axf</H1><HR>
<BR><P><STRONG>Maximum Stack Usage = 284 bytes<P>
Call chain for Maximum Stack Depth:<BR></STRONG>
main -> AT91F_PrintKeyBoardKey -> _sprintf -> __vfprintf -> _printf_display -> __16_ll_udiv10<BR><STRONG>
</STRONG><HR><P><STRONG><a name="[c45a0d4]"></a>__ENTRY</STRONG> (ARM, 0 bytes, Stack size 0 bytes, cstartup_ads.o(reset))
<BR><BR>[Calls]<UL><LI><a href="#[c45b298]">>></a> InitReset
</UL><P><STRONG><a name="[c513e68]"></a>__main</STRONG> (ARM, 0 bytes, Stack size 0 bytes, cstartup_ads.o(reset), UNUSED)
<P><STRONG><a name="[c513dfc]"></a>_main</STRONG> (ARM, 0 bytes, Stack size 0 bytes, cstartup_ads.o(reset), UNUSED)
<P><STRONG><a name="[c3fd798]"></a>AT91F_DBGU_Printk</STRONG> (ARM, 68 bytes, Stack size 8 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c3fd720]">>></a> AT91F_US_TxReady
<LI><a href="#[c3fd6a8]">>></a> AT91F_US_PutChar
</UL><BR>[Called By]<UL><LI><a href="#[c3fd62c]"><<</a> AT91F_SpuriousHandler
<LI><a href="#[c3fd5b8]"><<</a> AT91F_DataAbort
<LI><a href="#[c3fd540]"><<</a> AT91F_FetchAbort
<LI><a href="#[c3fd4d0]"><<</a> AT91F_Undef
<LI><a href="#[c3fd458]"><<</a> AT91F_UndefHandler
<LI><a href="#[c3fd3e0]"><<</a> AT91F_LowLevelInit
<LI><a href="#[c514548]"><<</a> AT91F_PrintMouseKey
<LI><a href="#[c51445c]"><<</a> AT91F_PrintKeyBoardKey
<LI><a href="#[c5143f0]"><<</a> main
</UL><P><STRONG><a name="[c3fd62c]"></a>AT91F_SpuriousHandler</STRONG> (ARM, 60 bytes, Stack size 8 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c3fd798]">>></a> AT91F_DBGU_Printk
</UL><BR>[Address Reference Count : 1]<UL><LI> init.o(.text)
</UL><P><STRONG><a name="[c3fd5b8]"></a>AT91F_DataAbort</STRONG> (ARM, 48 bytes, Stack size 8 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c3fd798]">>></a> AT91F_DBGU_Printk
</UL><BR>[Address Reference Count : 1]<UL><LI> init.o(.text)
</UL><P><STRONG><a name="[c3fd540]"></a>AT91F_FetchAbort</STRONG> (ARM, 52 bytes, Stack size 8 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c3fd798]">>></a> AT91F_DBGU_Printk
</UL><BR>[Address Reference Count : 1]<UL><LI> init.o(.text)
</UL><P><STRONG><a name="[c3fd4d0]"></a>AT91F_Undef</STRONG> (ARM, 44 bytes, Stack size 8 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c3fd798]">>></a> AT91F_DBGU_Printk
</UL><BR>[Address Reference Count : 1]<UL><LI> init.o(.text)
</UL><P><STRONG><a name="[c3fd458]"></a>AT91F_UndefHandler</STRONG> (ARM, 20 bytes, Stack size 8 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c3fd798]">>></a> AT91F_DBGU_Printk
</UL><BR>[Address Reference Count : 1]<UL><LI> init.o(.text)
</UL><P><STRONG><a name="[c3fd3e0]"></a>AT91F_LowLevelInit</STRONG> (ARM, 260 bytes, Stack size 16 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c3fd36c]">>></a> AT91F_AIC_Open
<LI><a href="#[c3fd2f0]">>></a> AT91F_AIC_AcknowledgeIt
<LI><a href="#[c3fd26c]">>></a> AT91F_AIC_SetExceptionVector
<LI><a href="#[c3fd1f4]">>></a> AT91F_DBGU_CfgPIO
<LI><a href="#[c3fd17c]">>></a> AT91F_US_Configure
<LI><a href="#[c3fd104]">>></a> AT91F_US_EnableTx
<LI><a href="#[c3fd798]">>></a> AT91F_DBGU_Printk
</UL><BR>[Address Reference Count : 1]<UL><LI> cstartup_ads.o(reset)
</UL><P><STRONG><a name="[c5152c4]"></a>AT91F_CfgSPIForPs2</STRONG> (ARM, 68 bytes, Stack size 8 bytes, main.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c515250]">>></a> AT91F_SPI_Reset
<LI><a href="#[c5151d8]">>></a> AT91F_SPI_CfgMode
<LI><a href="#[c515164]">>></a> AT91F_SPI_CfgCs
<LI><a href="#[c5150ec]">>></a> AT91F_SPI_Enable
<LI><a href="#[c3fca74]">>></a> AT91F_PDC_EnableTx
<LI><a href="#[c3fcaec]">>></a> AT91F_PDC_EnableRx
</UL><BR>[Called By]<UL><LI><a href="#[c514cf4]"><<</a> AT91F_InitPS2Ctrl
</UL><P><STRONG><a name="[c514fd0]"></a>AT91F_KEYDETECT_HANDLER</STRONG> (ARM, 36 bytes, Stack size 8 bytes, main.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c514f54]">>></a> AT91F_PIO_ClearOutput
</UL><BR>[Address Reference Count : 1]<UL><LI> asm_isr.o(itHandler)
</UL><P><STRONG><a name="[c514ed4]"></a>AT91F_FlushPs2Controller</STRONG> (ARM, 44 bytes, Stack size 0 bytes, main.o(.text))
<BR>[Called By]<UL><LI><a href="#[c514cf4]"><<</a> AT91F_InitPS2Ctrl
</UL><P><STRONG><a name="[c514e5c]"></a>AT91F_PS2_HANDLER</STRONG> (ARM, 168 bytes, Stack size 8 bytes, main.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c514f54]">>></a> AT91F_PIO_ClearOutput
<LI><a href="#[c514de4]">>></a> AT91F_PIO_SetOutput
<LI><a href="#[c514d6c]">>></a> AT91F_SPI_DisableIt
</UL><BR>[Address Reference Count : 1]<UL><LI> asm_isr.o(itHandler)
</UL><P><STRONG><a name="[c514cf4]"></a>AT91F_InitPS2Ctrl</STRONG> (ARM, 148 bytes, Stack size 8 bytes, main.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c514c7c]">>></a> AT91F_SPI_CfgPIO
<LI><a href="#[c514c04]">>></a> AT91F_SPI_CfgPMC
<LI><a href="#[c5152c4]">>></a> AT91F_CfgSPIForPs2
<LI><a href="#[c514b8c]">>></a> AT91F_PIO_CfgOutput
<LI><a href="#[c514de4]">>></a> AT91F_PIO_SetOutput
<LI><a href="#[c3fce2c]">>></a> AT91F_PIO_CfgPeriph
<LI><a href="#[c514ed4]">>></a> AT91F_FlushPs2Controller
<LI><a href="#[c3fcea4]">>></a> AT91F_AIC_ConfigureIt
<LI><a href="#[c5149f8]">>></a> AT91F_AIC_EnableIt
</UL><BR>[Called By]<UL><LI><a href="#[c5143f0]"><<</a> main
</UL><P><STRONG><a name="[c514904]"></a>AT91F_OpenPs2Ctrl</STRONG> (ARM, 80 bytes, Stack size 16 bytes, main.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c51488c]">>></a> AT91F_OpenKeyBoard
<LI><a href="#[c514818]">>></a> AT91F_OpenMouse
</UL><BR>[Called By]<UL><LI><a href="#[c5143f0]"><<</a> main
</UL><P><STRONG><a name="[c5147a4]"></a>AT91F_ReadPs2</STRONG> (ARM, 84 bytes, Stack size 16 bytes, main.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c51472c]">>></a> AT91F_PDC_SendFrame
<LI><a href="#[c5146b0]">>></a> AT91F_PDC_ReceiveFrame
<LI><a href="#[c514638]">>></a> AT91F_SPI_EnableIt
</UL><BR>[Called By]<UL><LI><a href="#[c5143f0]"><<</a> main
</UL><P><STRONG><a name="[c5145c0]"></a>AT91F_ST_HANDLER</STRONG> (ARM, 36 bytes, Stack size 0 bytes, main.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> asm_isr.o(itHandler)
</UL><P><STRONG><a name="[c514548]"></a>AT91F_PrintMouseKey</STRONG> (ARM, 488 bytes, Stack size 8 bytes, main.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c5144d8]">>></a> _sprintf (via Veneer)
<LI><a href="#[c3fd798]">>></a> AT91F_DBGU_Printk
</UL><BR>[Called By]<UL><LI><a href="#[c5143f0]"><<</a> main
</UL><P><STRONG><a name="[c51445c]"></a>AT91F_PrintKeyBoardKey</STRONG> (ARM, 64 bytes, Stack size 8 bytes, main.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c5144d8]">>></a> _sprintf (via Veneer)
<LI><a href="#[c3fd798]">>></a> AT91F_DBGU_Printk
</UL><BR>[Called By]<UL><LI><a href="#[c5143f0]"><<</a> main
</UL><P><STRONG><a name="[c5143f0]"></a>main</STRONG> (ARM, 500 bytes, Stack size 16 bytes, main.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c3fd798]">>></a> AT91F_DBGU_Printk
<LI><a href="#[c514370]">>></a> AT91F_ST_SetPeriodInterval
<LI><a href="#[c5142f8]">>></a> AT91F_ST_EnableIt
<LI><a href="#[c3fcea4]">>></a> AT91F_AIC_ConfigureIt
<LI><a href="#[c5149f8]">>></a> AT91F_AIC_EnableIt
<LI><a href="#[c514cf4]">>></a> AT91F_InitPS2Ctrl
<LI><a href="#[c514904]">>></a> AT91F_OpenPs2Ctrl
<LI><a href="#[c5147a4]">>></a> AT91F_ReadPs2
<LI><a href="#[c51445c]">>></a> AT91F_PrintKeyBoardKey
<LI><a href="#[c514548]">>></a> AT91F_PrintMouseKey
</UL><BR>[Address Reference Count : 1]<UL><LI> cstartup_ads.o(reset)
</UL><P><STRONG><a name="[c55cf00]"></a>AT91F_ReadOneKey</STRONG> (ARM, 96 bytes, Stack size 0 bytes, keyboard.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> keyboard.o(.text)
</UL><P><STRONG><a name="[c55ce88]"></a>AT91F_IsKeyPressed</STRONG> (ARM, 12 bytes, Stack size 0 bytes, keyboard.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> keyboard.o(.text)
</UL><P><STRONG><a name="[c55ce0c]"></a>AT91F_FillKeybBuffer</STRONG> (ARM, 116 bytes, Stack size 0 bytes, keyboard.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> keyboard.o(.text)
</UL><P><STRONG><a name="[c51488c]"></a>AT91F_OpenKeyBoard</STRONG> (ARM, 60 bytes, Stack size 0 bytes, keyboard.o(.text))
<BR>[Called By]<UL><LI><a href="#[c514904]"><<</a> AT91F_OpenPs2Ctrl
</UL><P><STRONG><a name="[c55cd98]"></a>AT91F_ReadMouse</STRONG> (ARM, 96 bytes, Stack size 0 bytes, keyboard.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> keyboard.o(.text)
</UL><P><STRONG><a name="[c55cd20]"></a>AT91F_IsMouseMove</STRONG> (ARM, 12 bytes, Stack size 0 bytes, keyboard.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> keyboard.o(.text)
</UL><P><STRONG><a name="[c55cca8]"></a>AT91F_UpdateMouse</STRONG> (ARM, 80 bytes, Stack size 0 bytes, keyboard.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> keyboard.o(.text)
</UL><P><STRONG><a name="[c514818]"></a>AT91F_OpenMouse</STRONG> (ARM, 60 bytes, Stack size 0 bytes, keyboard.o(.text))
<BR>[Called By]<UL><LI><a href="#[c514904]"><<</a> AT91F_OpenPs2Ctrl
</UL><P><STRONG><a name="[c5144d8]"></a>_sprintf</STRONG> (Thumb, 60 bytes, Stack size 96 bytes, _sprintf.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c557278]">>></a> __vfprintf
<LI><a href="#[c557354]">>></a> _sputc
</UL><BR>[Called By]<UL><LI><a href="#[c514548]"><<</a> AT91F_PrintMouseKey (via Veneer)
<LI><a href="#[c51445c]"><<</a> AT91F_PrintKeyBoardKey (via Veneer)
</UL><P><STRONG><a name="[c556c2c]"></a>__16__rt_udiv</STRONG> (Thumb, 196 bytes, Stack size 0 bytes, rt_udiv.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c556ca0]">>></a> __rt_div0 (via BX)
</UL><P><STRONG><a name="[c3fc98c]"></a>__rt_udiv</STRONG> (ARM, 0 bytes, Stack size 0 bytes, rt_udiv.o(.text))
<BR>[Called By]<UL><LI><a href="#[c3fc9fc]"><<</a> AT91F_US_Baudrate
</UL><P><STRONG><a name="[c557278]"></a>__vfprintf</STRONG> (Thumb, 1428 bytes, Stack size 72 bytes, __vfpntf.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[c556768]">>></a> __call_via_r2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -