📄 can_ex1.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [.\obj\CAN_Ex1.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\obj\CAN_Ex1.axf</H1><HR>
<BR><P>#<CALLGRAPH># ARM Linker, RVCT3.1 [Build 914]: Last Updated: Fri Feb 01 22:01:42 2008
<BR><P>
<H3>Maximum Stack Usage = 112 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
task_send_CAN ⇒ CAN_send ⇒ CAN_push ⇒ os_mbx_send ⇒ os_dispatch ⇒ os_put_prio
<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[c7f828]">Reset_Handler</a>
<LI><a href="#[10f50b8]">os_clock_interrupt</a>
<LI><a href="#[10f5070]">os_set_env</a>
<LI><a href="#[10f4d00]">SWI_Handler</a>
<LI><a href="#[c7fab0]">Undef_Handler</a>
<LI><a href="#[c7fa68]">PAbt_Handler</a>
<LI><a href="#[c7fa20]">DAbt_Handler</a>
<LI><a href="#[c7f9d8]">IRQ_Handler</a>
<LI><a href="#[c7f990]">FIQ_Handler</a>
</UL>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[c7e7f8]">os_idle_demon</a> ⇒ <a href="#[c7e7f8]">os_idle_demon</a><BR>
<LI><a href="#[c7fab0]">Undef_Handler</a> ⇒ <a href="#[c7fab0]">Undef_Handler</a><BR>
<LI><a href="#[c7fa68]">PAbt_Handler</a> ⇒ <a href="#[c7fa68]">PAbt_Handler</a><BR>
<LI><a href="#[c7fa20]">DAbt_Handler</a> ⇒ <a href="#[c7fa20]">DAbt_Handler</a><BR>
<LI><a href="#[c7f9d8]">IRQ_Handler</a> ⇒ <a href="#[c7f9d8]">IRQ_Handler</a><BR>
<LI><a href="#[c7f990]">FIQ_Handler</a> ⇒ <a href="#[c7f990]">FIQ_Handler</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
<LI><a href="#[c7f828]">Reset_Handler</a>
<LI><a href="#[c7fab0]">Undef_Handler</a>
<LI><a href="#[10f4d00]">SWI_Handler</a>
<LI><a href="#[c7fa68]">PAbt_Handler</a>
<LI><a href="#[c7fa20]">DAbt_Handler</a>
<LI><a href="#[c7f9d8]">IRQ_Handler</a>
<LI><a href="#[c7f990]">FIQ_Handler</a>
<LI><a href="#[10f0288]">__main</a>
<LI><a href="#[c82a70]">task_send_CAN</a>
<LI><a href="#[c82ab8]">task_rece_CAN</a>
<LI><a href="#[c82b00]">task_disp</a>
<LI><a href="#[c82a28]">task_init</a>
<LI><a href="#[c807a8]">CAN_ISR</a>
<LI><a href="#[10f50b8]">os_clock_interrupt</a>
<LI><a href="#[c829e0]">main</a>
<LI><a href="#[c7e720]">os_clock_interrupt0</a>
<LI><a href="#[c7e378]">__SWI_0</a>
<LI><a href="#[10f6f80]">__SWI_1</a>
<LI><a href="#[10f6f38]">__SWI_2</a>
<LI><a href="#[10f5960]">__SWI_3</a>
<LI><a href="#[10f5918]">__SWI_4</a>
<LI><a href="#[10f5888]">__SWI_5</a>
<LI><a href="#[10f5840]">__SWI_6</a>
<LI><a href="#[10f57f8]">__SWI_7</a>
<LI><a href="#[10f4008]">os_clock_demon</a>
<LI><a href="#[c7e7f8]">os_idle_demon</a>
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[c7f828]"></a>Reset_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, lpc2300.o(RESET))
<BR>[Address Reference Count : 1]<UL><LI> lpc2300.o(RESET)
</UL>
<P><STRONG><a name="[10f0288]"></a>__main</STRONG> (ARM, 8 bytes, Stack size 0 bytes, entry.o($$startup$$))
<BR><BR>[Calls]<UL><LI><a href="#[10efba8]">>></a> __init (via Veneer)
</UL>
<P><STRONG><a name="[10efbf0]"></a>__call_main</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, init.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[10efba8]">>></a> __init
</UL>
<P><STRONG><a name="[c82c68]"></a>Hex_Str</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, can_ex1.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c82b48]">>></a> Out_Val
</UL>
<P><STRONG><a name="[c82c20]"></a>In_Init</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, can_ex1.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c829e0]">>></a> main
</UL>
<P><STRONG><a name="[c82bd8]"></a>In_Get</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, can_ex1.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c82a70]">>></a> task_send_CAN
</UL>
<P><STRONG><a name="[c82b90]"></a>Out_Init</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, can_ex1.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c829e0]">>></a> main
</UL>
<P><STRONG><a name="[c82b48]"></a>Out_Val</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, can_ex1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = Out_Val
</UL>
<BR>[Calls]<UL><LI><a href="#[c82c68]">>></a> Hex_Str
</UL>
<BR>[Called By]<UL><LI><a href="#[c82b00]">>></a> task_disp
</UL>
<P><STRONG><a name="[c82b00]"></a>task_disp</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, can_ex1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = task_disp ⇒ os_dly_wait ⇒ os_block ⇒ os_put_dly
</UL>
<BR>[Calls]<UL><LI><a href="#[c82b48]">>></a> Out_Val
<LI><a href="#[10f8100]">>></a> os_dly_wait
</UL>
<BR>[Address Reference Count : 1]<UL><LI> can_ex1.o(.text)
</UL>
<P><STRONG><a name="[c82ab8]"></a>task_rece_CAN</STRONG> (Thumb, 28 bytes, Stack size 24 bytes, can_ex1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = task_rece_CAN ⇒ CAN_receive ⇒ os_mbx_wait ⇒ os_dispatch ⇒ os_put_prio
</UL>
<BR>[Calls]<UL><LI><a href="#[c82950]">>></a> CAN_receive
</UL>
<BR>[Address Reference Count : 1]<UL><LI> can_ex1.o(.text)
</UL>
<P><STRONG><a name="[c82a70]"></a>task_send_CAN</STRONG> (Thumb, 92 bytes, Stack size 32 bytes, can_ex1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = task_send_CAN ⇒ CAN_send ⇒ CAN_push ⇒ os_mbx_send ⇒ os_dispatch ⇒ os_put_prio
</UL>
<BR>[Calls]<UL><LI><a href="#[c82878]">>></a> CAN_start
<LI><a href="#[c828c0]">>></a> CAN_send
<LI><a href="#[c82908]">>></a> CAN_rx_object
<LI><a href="#[c82998]">>></a> CAN_init
<LI><a href="#[c82bd8]">>></a> In_Get
<LI><a href="#[10f8100]">>></a> os_dly_wait
</UL>
<BR>[Address Reference Count : 1]<UL><LI> can_ex1.o(.text)
</UL>
<P><STRONG><a name="[c82a28]"></a>task_init</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, can_ex1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = task_init ⇒ os_tsk_create_user ⇒ os_dispatch ⇒ os_put_prio
</UL>
<BR>[Calls]<UL><LI><a href="#[c77278]">>></a> os_tsk_delete
<LI><a href="#[c77308]">>></a> os_tsk_create_user
</UL>
<BR>[Address Reference Count : 1]<UL><LI> can_ex1.o(.text)
</UL>
<P><STRONG><a name="[c829e0]"></a>main</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, can_ex1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 88 + Unknown Stack Size
<LI>Call Chain = main ⇒ os_sys_init_user ⇒ os_tsk_create_user ⇒ os_dispatch ⇒ os_put_prio
</UL>
<BR>[Calls]<UL><LI><a href="#[c77350]">>></a> os_sys_init_user
<LI><a href="#[c82b90]">>></a> Out_Init
<LI><a href="#[c82c20]">>></a> In_Init
</UL>
<BR>[Address Reference Count : 1]<UL><LI> init.o(.text)
</UL>
<P><STRONG><a name="[c82998]"></a>CAN_init</STRONG> (Thumb, 100 bytes, Stack size 16 bytes, rtx_can.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = CAN_init ⇒ CAN_hw_init ⇒ __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[c74f20]">>></a> os_sem_init
<LI><a href="#[c79bd8]">>></a> os_mbx_init
<LI><a href="#[c81710]">>></a> CAN_hw_setup
<LI><a href="#[c817e8]">>></a> CAN_hw_init
<LI><a href="#[10f6ea8]">>></a> _init_box
</UL>
<BR>[Called By]<UL><LI><a href="#[c82a70]">>></a> task_send_CAN
</UL>
<P><STRONG><a name="[c82878]"></a>CAN_start</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, rtx_can.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = CAN_start
</UL>
<BR>[Calls]<UL><LI><a href="#[c816c8]">>></a> CAN_hw_start
</UL>
<BR>[Called By]<UL><LI><a href="#[c82a70]">>></a> task_send_CAN
</UL>
<P><STRONG><a name="[c828c0]"></a>CAN_send</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, rtx_can.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = CAN_send ⇒ CAN_push ⇒ os_mbx_send ⇒ os_dispatch ⇒ os_put_prio
</UL>
<BR>[Calls]<UL><LI><a href="#[c81dd0]">>></a> CAN_push
</UL>
<BR>[Called By]<UL><LI><a href="#[c82a70]">>></a> task_send_CAN
</UL>
<P><STRONG><a name="[c818c0]"></a>CAN_request</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, rtx_can.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c81dd0]">>></a> CAN_push
</UL>
<P><STRONG><a name="[c81878]"></a>CAN_set</STRONG> (Thumb, 70 bytes, Stack size 32 bytes, rtx_can.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c74e90]">>></a> os_sem_send
<LI><a href="#[c81680]">>></a> CAN_hw_tx_empty
<LI><a href="#[c81758]">>></a> CAN_hw_set
<LI><a href="#[10f8100]">>></a> os_dly_wait
</UL>
<P><STRONG><a name="[c82950]"></a>CAN_receive</STRONG> (Thumb, 58 bytes, Stack size 16 bytes, rtx_can.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = CAN_receive ⇒ os_mbx_wait ⇒ os_dispatch ⇒ os_put_prio
</UL>
<BR>[Calls]<UL><LI><a href="#[c79b00]">>></a> os_mbx_wait
</UL>
<BR>[Called By]<UL><LI><a href="#[c82ab8]">>></a> task_rece_CAN
</UL>
<P><STRONG><a name="[c82908]"></a>CAN_rx_object</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, rtx_can.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = CAN_rx_object ⇒ CAN_hw_rx_object
</UL>
<BR>[Calls]<UL><LI><a href="#[c817a0]">>></a> CAN_hw_rx_object
</UL>
<BR>[Called By]<UL><LI><a href="#[c82a70]">>></a> task_send_CAN
</UL>
<P><STRONG><a name="[c81830]"></a>CAN_tx_object</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, rtx_can.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[c81638]">>></a> CAN_hw_tx_object
</UL>
<P><STRONG><a name="[c815f0]"></a>CAN_hw_wr</STRONG> (Thumb, 70 bytes, Stack size 0 bytes, can_hw.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c807a8]">>></a> CAN_ISR (via Veneer)
<LI><a href="#[c81dd0]">>></a> CAN_push
</UL>
<P><STRONG><a name="[c81710]"></a>CAN_hw_setup</STRONG> (Thumb, 96 bytes, Stack size 16 bytes, can_hw.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = CAN_hw_setup
</UL>
<BR>[Called By]<UL><LI><a href="#[c82998]">>></a> CAN_init
</UL>
<P><STRONG><a name="[c817e8]"></a>CAN_hw_init</STRONG> (Thumb, 84 bytes, Stack size 24 bytes, can_hw.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = CAN_hw_init ⇒ __aeabi_uidivmod
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -