📄 portlcd_debug.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [.\Obj\portlcd_debug.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Obj\portlcd_debug.axf</H1><HR>
<BR><P>#<CALLGRAPH># ARM Linker, RVCT3.0 [Build 947]: Last Updated: Thu Sep 13 17:12:09 2007
<BR><P>
<H3>Maximum Stack Usage = 64 bytes + Unknown(Functions without stacksize,Cycles,Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
__main -> __rt_entry -> __rt_lib_init -> _fp_init<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[c02158]">Reset_Handler</a>
<LI><a href="#[1053f4c]">__scatterload</a>
<LI><a href="#[1053e7c]">__scatterload_rt2</a>
<LI><a href="#[1053ecc]">__scatterload_null</a>
<LI><a href="#[1053838]">__scatterload_copy</a>
<LI><a href="#[1053288]">__scatterload_zeroinit</a>
<LI><a href="#[c01fd8]">__user_initial_stackheap</a>
<LI><a href="#[c00b64]">SoftwareInterrupt</a>
<LI><a href="#[c00aec]">IntEnable</a>
<LI><a href="#[c00a74]">IntDisable</a>
<LI><a href="#[1061338]">__fplib_config_pureend_doubles</a>
<LI><a href="#[c02724]">Undef_Handler</a>
<LI><a href="#[c026ac]">SWI_Handler</a>
<LI><a href="#[c02630]">PAbt_Handler</a>
<LI><a href="#[c025b4]">DAbt_Handler</a>
<LI><a href="#[c0253c]">IRQ_Handler</a>
<LI><a href="#[c024c4]">FIQ_Handler</a>
<LI><a href="#[c00d4c]">IRQDisable</a>
<LI><a href="#[c00cd4]">IRQEnable</a>
<LI><a href="#[c00c5c]">FIQDisable</a>
<LI><a href="#[c00be4]">FIQEnable</a>
<LI><a href="#[c18460]">__arm_div4</a>
<LI><a href="#[c183e8]">__arm_div8</a>
<LI><a href="#[c1836c]">__arm_div_large</a>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3><UL>
<LI><a href="#[c02724]">Undef_Handler</a> -> <a href="#[c02724]">Undef_Handler</a><BR>
<LI><a href="#[c026ac]">SWI_Handler</a> -> <a href="#[c026ac]">SWI_Handler</a><BR>
<LI><a href="#[c02630]">PAbt_Handler</a> -> <a href="#[c02630]">PAbt_Handler</a><BR>
<LI><a href="#[c025b4]">DAbt_Handler</a> -> <a href="#[c025b4]">DAbt_Handler</a><BR>
<LI><a href="#[c0253c]">IRQ_Handler</a> -> <a href="#[c0253c]">IRQ_Handler</a><BR>
<LI><a href="#[c024c4]">FIQ_Handler</a> -> <a href="#[c024c4]">FIQ_Handler</a><BR>
</UL>
<BR>
<P><STRONG><a name="[c02158]"></a>Reset_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(RESET))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = Reset_Handler -> TargetResetInit</UL>
<BR>[Calls]<UL><LI><a href="#[b44bfc]">>></a> TargetResetInit
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup.o(RESET)
</UL>
<P><STRONG><a name="[c15afc]"></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="#[10312b8]">>></a> __rt_entry
<LI><a href="#[1053f4c]">>></a> __scatterload
</UL>
<P><STRONG><a name="[1053f4c]"></a>__scatterload</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
<BR><BR>[Called By]<UL><LI><a href="#[c15afc]"><<</a> __main
</UL>
<P><STRONG><a name="[1053e7c]"></a>__scatterload_rt2</STRONG> (ARM, 48 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[10312b8]">>></a> __rt_entry
</UL>
<P><STRONG><a name="[1053ecc]"></a>__scatterload_null</STRONG> (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[1053838]"></a>__scatterload_copy</STRONG> (ARM, 40 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[1053838]">>></a> __scatterload_copy
</UL>
<BR>[Called By]<UL><LI><a href="#[1053838]"><<</a> __scatterload_copy
</UL>
<P><STRONG><a name="[1053288]"></a>__scatterload_zeroinit</STRONG> (ARM, 44 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[1028fac]"></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="#[1028ee0]"><<</a> __rt_lib_init (via Veneer)
</UL>
<P><STRONG><a name="[b478a4]"></a>init_VIC</STRONG> (ARM, 88 bytes, Stack size 0 bytes, irq.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b44bfc]"><<</a> TargetResetInit
</UL>
<P><STRONG><a name="[b4782c]"></a>install_irq</STRONG> (ARM, 92 bytes, Stack size 8 bytes, irq.o(.text), UNUSED)
<P><STRONG><a name="[b44d70]"></a>TargetInit</STRONG> (ARM, 4 bytes, Stack size 0 bytes, target.o(.text), UNUSED)
<P><STRONG><a name="[b44cf4]"></a>GPIOResetInit</STRONG> (ARM, 120 bytes, Stack size 0 bytes, target.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b44bfc]"><<</a> TargetResetInit
</UL>
<P><STRONG><a name="[b44c78]"></a>ConfigurePLL</STRONG> (ARM, 304 bytes, Stack size 0 bytes, target.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b44bfc]"><<</a> TargetResetInit
</UL>
<P><STRONG><a name="[b44bfc]"></a>TargetResetInit</STRONG> (ARM, 92 bytes, Stack size 8 bytes, target.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = TargetResetInit</UL>
<BR>[Calls]<UL><LI><a href="#[b44c78]">>></a> ConfigurePLL
<LI><a href="#[b44cf4]">>></a> GPIOResetInit
<LI><a href="#[b478a4]">>></a> init_VIC
</UL>
<BR>[Called By]<UL><LI><a href="#[c02158]"><<</a> Reset_Handler
</UL>
<P><STRONG><a name="[b41cdc]"></a>delay</STRONG> (ARM, 20 bytes, Stack size 0 bytes, portlcd.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b4181c]"><<</a> LCD_init
<LI><a href="#[b41b6c]"><<</a> lcd_read_stat
<LI><a href="#[b41c60]"><<</a> lcd_write_4bit
</UL>
<P><STRONG><a name="[b41c60]"></a>lcd_write_4bit</STRONG> (ARM, 92 bytes, Stack size 4 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = lcd_write_4bit</UL>
<BR>[Calls]<UL><LI><a href="#[b41cdc]">>></a> delay
</UL>
<BR>[Called By]<UL><LI><a href="#[b4181c]"><<</a> LCD_init
<LI><a href="#[b41be8]"><<</a> lcd_write
</UL>
<P><STRONG><a name="[b41be8]"></a>lcd_write</STRONG> (ARM, 32 bytes, Stack size 8 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = lcd_write -> lcd_write_4bit</UL>
<BR>[Calls]<UL><LI><a href="#[b41c60]">>></a> lcd_write_4bit
</UL>
<BR>[Called By]<UL><LI><a href="#[b419f8]"><<</a> lcd_write_data
<LI><a href="#[b41a74]"><<</a> lcd_write_cmd
</UL>
<P><STRONG><a name="[b41b6c]"></a>lcd_read_stat</STRONG> (ARM, 168 bytes, Stack size 4 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = lcd_read_stat</UL>
<BR>[Calls]<UL><LI><a href="#[b41cdc]">>></a> delay
</UL>
<BR>[Called By]<UL><LI><a href="#[b41af0]"><<</a> lcd_wait_busy
</UL>
<P><STRONG><a name="[b41af0]"></a>lcd_wait_busy</STRONG> (ARM, 32 bytes, Stack size 8 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = lcd_wait_busy -> lcd_read_stat</UL>
<BR>[Calls]<UL><LI><a href="#[b41b6c]">>></a> lcd_read_stat
</UL>
<BR>[Called By]<UL><LI><a href="#[b419f8]"><<</a> lcd_write_data
<LI><a href="#[b41a74]"><<</a> lcd_write_cmd
</UL>
<P><STRONG><a name="[b41a74]"></a>lcd_write_cmd</STRONG> (ARM, 40 bytes, Stack size 8 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = lcd_write_cmd -> lcd_wait_busy -> lcd_read_stat</UL>
<BR>[Calls]<UL><LI><a href="#[b41af0]">>></a> lcd_wait_busy
<LI><a href="#[b41be8]">>></a> lcd_write
</UL>
<BR>[Called By]<UL><LI><a href="#[b416b8]"><<</a> LCD_putc
<LI><a href="#[b41730]"><<</a> LCD_on
<LI><a href="#[b417a4]"><<</a> LCD_cur_off
<LI><a href="#[b4181c]"><<</a> LCD_init
<LI><a href="#[b41894]"><<</a> LCD_load
<LI><a href="#[b4190c]"><<</a> LCD_cls
<LI><a href="#[b41980]"><<</a> LCD_gotoxy
</UL>
<P><STRONG><a name="[b419f8]"></a>lcd_write_data</STRONG> (ARM, 40 bytes, Stack size 8 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = lcd_write_data -> lcd_wait_busy -> lcd_read_stat</UL>
<BR>[Calls]<UL><LI><a href="#[b41af0]">>></a> lcd_wait_busy
<LI><a href="#[b41be8]">>></a> lcd_write
</UL>
<BR>[Called By]<UL><LI><a href="#[b416b8]"><<</a> LCD_putc
<LI><a href="#[b41894]"><<</a> LCD_load
</UL>
<P><STRONG><a name="[b41980]"></a>LCD_gotoxy</STRONG> (ARM, 68 bytes, Stack size 16 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = LCD_gotoxy -> lcd_write_cmd -> lcd_wait_busy -> lcd_read_stat</UL>
<BR>[Calls]<UL><LI><a href="#[b41a74]">>></a> lcd_write_cmd
</UL>
<BR>[Called By]<UL><LI><a href="#[b4190c]"><<</a> LCD_cls
<LI><a href="#[c04664]"><<</a> main
</UL>
<P><STRONG><a name="[b4190c]"></a>LCD_cls</STRONG> (ARM, 32 bytes, Stack size 4 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = LCD_cls -> LCD_gotoxy -> lcd_write_cmd -> lcd_wait_busy -> lcd_read_stat</UL>
<BR>[Calls]<UL><LI><a href="#[b41980]">>></a> LCD_gotoxy
<LI><a href="#[b41a74]">>></a> lcd_write_cmd
</UL>
<BR>[Called By]<UL><LI><a href="#[b4181c]"><<</a> LCD_init
<LI><a href="#[c04664]"><<</a> main
</UL>
<P><STRONG><a name="[b41894]"></a>LCD_load</STRONG> (ARM, 60 bytes, Stack size 16 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = LCD_load -> lcd_write_data -> lcd_wait_busy -> lcd_read_stat</UL>
<BR>[Calls]<UL><LI><a href="#[b419f8]">>></a> lcd_write_data
<LI><a href="#[b41a74]">>></a> lcd_write_cmd
</UL>
<BR>[Called By]<UL><LI><a href="#[b4181c]"><<</a> LCD_init
</UL>
<P><STRONG><a name="[b4181c]"></a>LCD_init</STRONG> (ARM, 140 bytes, Stack size 4 bytes, portlcd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 44<LI>Call Chain = LCD_init -> LCD_cls -> LCD_gotoxy -> lcd_write_cmd -> lcd_wait_busy -> lcd_read_stat</UL>
<BR>[Calls]<UL><LI><a href="#[b41894]">>></a> LCD_load
<LI><a href="#[b4190c]">>></a> LCD_cls
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -