📄 i2c.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [D:\LPCARMWORK\I2c\I2C.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image D:\LPCARMWORK\I2c\I2C.axf</H1><HR>
<BR><P>#<CALLGRAPH># ARM Linker, RVCT3.0 [Build 951]: Last Updated: Mon Mar 12 22:22:32 2007
<BR><P>
<H3>Maximum Stack Usage = 624 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 -> _printf_post_padding<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[bcdc7c]">Reset_Handler</a>
<LI><a href="#[bcdafc]">__user_initial_stackheap</a>
<LI><a href="#[c076ac]">__ARM_call_via_r0</a>
<LI><a href="#[c076fc]">__call_via_r0</a>
<LI><a href="#[c075b0]">__ARM_call_via_r1</a>
<LI><a href="#[c07630]">__call_via_r1</a>
<LI><a href="#[c074e4]">__ARM_call_via_r2</a>
<LI><a href="#[c07534]">__call_via_r2</a>
<LI><a href="#[c073e8]">__ARM_call_via_r3</a>
<LI><a href="#[c07468]">__call_via_r3</a>
<LI><a href="#[c072ec]">__ARM_call_via_r4</a>
<LI><a href="#[c0736c]">__call_via_r4</a>
<LI><a href="#[c071f0]">__ARM_call_via_r5</a>
<LI><a href="#[c07270]">__call_via_r5</a>
<LI><a href="#[c070f4]">__ARM_call_via_r6</a>
<LI><a href="#[c07174]">__call_via_r6</a>
<LI><a href="#[c06ff8]">__ARM_call_via_r7</a>
<LI><a href="#[c07078]">__call_via_r7</a>
<LI><a href="#[10d94b4]">__fplib_config_pureend_doubles</a>
<LI><a href="#[bce248]">Undef_Handler</a>
<LI><a href="#[bce1d0]">SWI_Handler</a>
<LI><a href="#[bce154]">PAbt_Handler</a>
<LI><a href="#[bce0d8]">DAbt_Handler</a>
<LI><a href="#[bce060]">IRQ_Handler</a>
<LI><a href="#[bcdfe8]">FIQ_Handler</a>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3><UL>
<LI><a href="#[bce248]">Undef_Handler</a> -> <a href="#[bce248]">Undef_Handler</a><BR>
<LI><a href="#[bce1d0]">SWI_Handler</a> -> <a href="#[bce1d0]">SWI_Handler</a><BR>
<LI><a href="#[bce154]">PAbt_Handler</a> -> <a href="#[bce154]">PAbt_Handler</a><BR>
<LI><a href="#[bce0d8]">DAbt_Handler</a> -> <a href="#[bce0d8]">DAbt_Handler</a><BR>
<LI><a href="#[bce060]">IRQ_Handler</a> -> <a href="#[bce060]">IRQ_Handler</a><BR>
<LI><a href="#[bcdfe8]">FIQ_Handler</a> -> <a href="#[bcdfe8]">FIQ_Handler</a><BR>
</UL>
<BR>
<P><STRONG><a name="[bcdc7c]"></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="[c0c860]"></a>__main</STRONG> (ARM, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
<BR><BR>[Stack]<UL><LI>Max Depth = 72 + Unknown Stack Size
<LI>Call Chain = __main -> __rt_entry -> __rt_lib_init -> __cpp_initialize__aeabi_</UL>
<BR>[Calls]<UL><LI><a href="#[c0ab48]">>></a> __rt_entry
<LI><a href="#[c0c8b0]">>></a> __scatterload (Weak Reference)
</UL>
<P><STRONG><a name="[10def64]"></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="#[10dee98]"><<</a> __rt_lib_init (via Veneer)
</UL>
<P><STRONG><a name="[b26f58]"></a>IRQ_UART0</STRONG> (ARM, 28 bytes, Stack size 24 bytes, main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = IRQ_UART0</UL>
<BR>[Calls]<UL><LI><a href="#[b26adc]">>></a> UartObj::UartExec()
</UL>
<BR>[Address Reference Count : 1]<UL><LI> uart.o(.text)
</UL>
<P><STRONG><a name="[b26ee0]"></a>IRQ_I2C0</STRONG> (ARM, 28 bytes, Stack size 24 bytes, main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = IRQ_I2C0 -> I2cObj::Exec()</UL>
<BR>[Calls]<UL><LI><a href="#[b26d64]">>></a> I2cObj::Exec()
</UL>
<BR>[Address Reference Count : 1]<UL><LI> i2c.o(.text)
</UL>
<P><STRONG><a name="[b26e6c]"></a>main</STRONG> (ARM, 768 bytes, Stack size 312 bytes, main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 624 + Unknown Stack Size
<LI>Call Chain = main -> __0sprintf -> _printf_char_common -> __printf -> _printf_longlong_hex -> _printf_int_common -> _printf_post_padding</UL>
<BR>[Calls]<UL><LI><a href="#[b26b60]">>></a> UartObj::puts(const char*)
<LI><a href="#[b26be4]">>></a> UartObj::Wait()
<LI><a href="#[b26ce0]">>></a> I2cObj::ReadBlock(unsigned char, unsigned)
<LI><a href="#[b26de4]">>></a> I2cObj::WriteBlock(unsigned char, unsigned)
<LI><a href="#[c0d680]">>></a> __0sprintf (via Veneer)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> kernel.o(.text)
</UL>
<P><STRONG><a name="[bd1020]"></a>UartObj::Init()</STRONG> (ARM, 140 bytes, Stack size 0 bytes, uart.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b26a60]"><<</a> UartObj::UartObj()
</UL>
<P><STRONG><a name="[b26a60]"></a>UartObj::UartObj()</STRONG> (ARM, 28 bytes, Stack size 8 bytes, uart.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UartObj::UartObj()</UL>
<BR>[Calls]<UL><LI><a href="#[bd1020]">>></a> UartObj::Init()
</UL>
<BR>[Called By]<UL><LI><a href="#[b27ab0]"><<</a> __sti___8_main_cpp
</UL>
<P><STRONG><a name="[bd0fa4]"></a>UartObj::UartObj__sub_object()</STRONG> (ARM, 0 bytes, Stack size 8 bytes, uart.o(.text), UNUSED)
<P><STRONG><a name="[bd0f20]"></a>UartObj::putchar(unsigned char)</STRONG> (ARM, 60 bytes, Stack size 0 bytes, uart.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b26b60]"><<</a> UartObj::puts(const char*)
</UL>
<P><STRONG><a name="[b26b60]"></a>UartObj::puts(const char*)</STRONG> (ARM, 48 bytes, Stack size 12 bytes, uart.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = UartObj::puts(const char*)</UL>
<BR>[Calls]<UL><LI><a href="#[bd0f20]">>></a> UartObj::putchar(unsigned char)
</UL>
<BR>[Called By]<UL><LI><a href="#[b26e6c]"><<</a> main
</UL>
<P><STRONG><a name="[b26be4]"></a>UartObj::Wait()</STRONG> (ARM, 20 bytes, Stack size 0 bytes, uart.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b26e6c]"><<</a> main
</UL>
<P><STRONG><a name="[b26adc]"></a>UartObj::UartExec()</STRONG> (ARM, 304 bytes, Stack size 0 bytes, uart.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b26f58]"><<</a> IRQ_UART0
</UL>
<P><STRONG><a name="[bcdafc]"></a>__user_initial_stackheap</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c0a1e4]"><<</a> __user_setup_stackheap
</UL>
<P><STRONG><a name="[bcbe90]"></a>I2cObj::Stop()</STRONG> (ARM, 40 bytes, Stack size 0 bytes, i2c.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b26d64]"><<</a> I2cObj::Exec()
<LI><a href="#[bcbe0c]"><<</a> I2cObj::I2cInit()
</UL>
<P><STRONG><a name="[bcbe0c]"></a>I2cObj::I2cInit()</STRONG> (ARM, 168 bytes, Stack size 4 bytes, i2c.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = I2cObj::I2cInit()</UL>
<BR>[Calls]<UL><LI><a href="#[bcbe90]">>></a> I2cObj::Stop()
</UL>
<BR>[Called By]<UL><LI><a href="#[b26c64]"><<</a> I2cObj::I2cObj()
</UL>
<P><STRONG><a name="[b26c64]"></a>I2cObj::I2cObj()</STRONG> (ARM, 28 bytes, Stack size 8 bytes, i2c.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = I2cObj::I2cObj() -> I2cObj::I2cInit()</UL>
<BR>[Calls]<UL><LI><a href="#[bcbe0c]">>></a> I2cObj::I2cInit()
</UL>
<BR>[Called By]<UL><LI><a href="#[b27ab0]"><<</a> __sti___8_main_cpp
</UL>
<P><STRONG><a name="[bcbd90]"></a>I2cObj::I2cObj__sub_object()</STRONG> (ARM, 0 bytes, Stack size 8 bytes, i2c.o(.text), UNUSED)
<P><STRONG><a name="[bcbd10]"></a>I2cObj::Start()</STRONG> (ARM, 40 bytes, Stack size 0 bytes, i2c.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b26ce0]"><<</a> I2cObj::ReadBlock(unsigned char, unsigned)
<LI><a href="#[b26de4]"><<</a> I2cObj::WriteBlock(unsigned char, unsigned)
<LI><a href="#[bcbb04]"><<</a> I2cObj::WriteByte(unsigned char, unsigned char)
<LI><a href="#[bcbb88]"><<</a> I2cObj::ReadByte(unsigned char, unsigned char&)
</UL>
<P><STRONG><a name="[bcbc8c]"></a>I2cObj::REStart()</STRONG> (ARM, 48 bytes, Stack size 0 bytes, i2c.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b26d64]"><<</a> I2cObj::Exec()
</UL>
<P><STRONG><a name="[bcbc0c]"></a>I2cObj::Exit()</STRONG> (ARM, 36 bytes, Stack size 0 bytes, i2c.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b26d64]"><<</a> I2cObj::Exec()
</UL>
<P><STRONG><a name="[b26d64]"></a>I2cObj::Exec()</STRONG> (ARM, 728 bytes, Stack size 4 bytes, i2c.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = I2cObj::Exec()</UL>
<BR>[Calls]<UL><LI><a href="#[bcbc0c]">>></a> I2cObj::Exit()
<LI><a href="#[bcbc8c]">>></a> I2cObj::REStart()
<LI><a href="#[bcbe90]">>></a> I2cObj::Stop()
</UL>
<BR>[Called By]<UL><LI><a href="#[b26ee0]"><<</a> IRQ_I2C0
</UL>
<P><STRONG><a name="[bcbb88]"></a>I2cObj::ReadByte(unsigned char, unsigned char&)</STRONG> (ARM, 92 bytes, Stack size 12 bytes, i2c.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[bcbd10]">>></a> I2cObj::Start()
</UL>
<P><STRONG><a name="[bcbb04]"></a>I2cObj::WriteByte(unsigned char, unsigned char)</STRONG> (ARM, 116 bytes, Stack size 12 bytes, i2c.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[bcbd10]">>></a> I2cObj::Start()
</UL>
<P><STRONG><a name="[b26ce0]"></a>I2cObj::ReadBlock(unsigned char, unsigned)</STRONG> (ARM, 84 bytes, Stack size 12 bytes, i2c.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = I2cObj::ReadBlock(unsigned char, unsigned)</UL>
<BR>[Calls]<UL><LI><a href="#[bcbd10]">>></a> I2cObj::Start()
</UL>
<BR>[Called By]<UL><LI><a href="#[b26e6c]"><<</a> main
</UL>
<P><STRONG><a name="[b26de4]"></a>I2cObj::WriteBlock(unsigned char, unsigned)</STRONG> (ARM, 108 bytes, Stack size 12 bytes, i2c.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = I2cObj::WriteBlock(unsigned char, unsigned)</UL>
<BR>[Calls]<UL><LI><a href="#[bcbd10]">>></a> I2cObj::Start()
</UL>
<BR>[Called By]<UL><LI><a href="#[b26e6c]"><<</a> main
</UL>
<P><STRONG><a name="[c0ea40]"></a>_printf_pre_padding</STRONG> (Thumb, 48 bytes, Stack size 16 bytes, _printf_pad.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16 + Unknown Stack Size
<LI>Call Chain = _printf_pre_padding</UL>
<BR>[Calls]<UL><LI><a href="#[c074e4]">>></a> __ARM_call_via_r2
</UL>
<BR>[Called By]<UL><LI><a href="#[c089ac]"><<</a> _printf_int_common
</UL>
<P><STRONG><a name="[c0e9bc]"></a>_printf_post_padding</STRONG> (Thumb, 36 bytes, Stack size 16 bytes, _printf_pad.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16 + Unknown Stack Size
<LI>Call Chain = _printf_post_padding</UL>
<BR>[Calls]<UL><LI><a href="#[c074e4]">>></a> __ARM_call_via_r2
</UL>
<BR>[Called By]<UL><LI><a href="#[c089ac]"><<</a> _printf_int_common
</UL>
<P><STRONG><a name="[c0e30c]"></a>_printf_longlong_hex</STRONG> (Thumb, 182 bytes, Stack size 88 bytes, _printf_longlong_hex.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 144 + Unknown Stack Size
<LI>Call Chain = _printf_longlong_hex -> _printf_int_common -> _printf_post_padding</UL>
<BR>[Calls]<UL><LI><a href="#[c089ac]">>></a> _printf_int_common
<LI><a href="#[c0e204]">>></a> _printf_truncate_unsigned (Weak Reference)
</UL>
<BR>[Called By]<UL><LI><a href="#[c0611c]"><<</a> __printf
</UL>
<P><STRONG><a name="[c0dc14]"></a>_printf_int_dec</STRONG> (Thumb, 98 bytes, Stack size 72 bytes, _printf_dec.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 128 + Unknown Stack Size
<LI>Call Chain = _printf_int_dec -> _printf_int_common -> _printf_post_padding</UL>
<BR>[Calls]<UL><LI><a href="#[c07afc]">>></a> __rt_udiv10 (via Veneer)
<LI><a href="#[c089ac]">>></a> _printf_int_common
<LI><a href="#[c0db18]">>></a> _printf_truncate_signed (Weak Reference)
<LI><a href="#[c0e204]">>></a> _printf_truncate_unsigned (Weak Reference)
</UL>
<BR>[Called By]<UL><LI><a href="#[c0611c]"><<</a> __printf
</UL>
<P><STRONG><a name="[c0d680]"></a>__0sprintf</STRONG> (Thumb, 40 bytes, Stack size 32 bytes, __0sprintf.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 312 + Unknown Stack Size
<LI>Call Chain = __0sprintf -> _printf_char_common -> __printf -> _printf_longlong_hex -> _printf_int_common -> _printf_post_padding</UL>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -