📄 rtx_ex1.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [.\Obj\RTX_ex1.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Obj\RTX_ex1.axf</H1><HR>
<BR><P>#<CALLGRAPH># ARM Linker, RVCT3.1 [Build 942]: Last Updated: Mon Mar 30 11:30:32 2009
<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>
task1 ⇒ os_tsk_create0 ⇒ os_dispatch ⇒ os_put_prio
<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[b41330]">Reset_Handler</a>
<LI><a href="#[b39578]">os_sys_manager_ret</a>
<LI><a href="#[b394e8]">os_switch_tasks_ret</a>
<LI><a href="#[b415b8]">Undef_Handler</a>
<LI><a href="#[b41570]">PAbt_Handler</a>
<LI><a href="#[b41528]">DAbt_Handler</a>
<LI><a href="#[b414e0]">IRQ_Handler</a>
<LI><a href="#[b41498]">FIQ_Handler</a>
<LI><a href="#[b3ab58]">Switch_task</a>
</UL>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[b41d98]">os_idle_demon</a> ⇒ <a href="#[b41d98]">os_idle_demon</a><BR>
<LI><a href="#[b41d08]">os_stk_overflow</a> ⇒ <a href="#[b41d08]">os_stk_overflow</a><BR>
<LI><a href="#[b415b8]">Undef_Handler</a> ⇒ <a href="#[b415b8]">Undef_Handler</a><BR>
<LI><a href="#[b41570]">PAbt_Handler</a> ⇒ <a href="#[b41570]">PAbt_Handler</a><BR>
<LI><a href="#[b41528]">DAbt_Handler</a> ⇒ <a href="#[b41528]">DAbt_Handler</a><BR>
<LI><a href="#[b414e0]">IRQ_Handler</a> ⇒ <a href="#[b414e0]">IRQ_Handler</a><BR>
<LI><a href="#[b41498]">FIQ_Handler</a> ⇒ <a href="#[b41498]">FIQ_Handler</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
<LI><a href="#[b41330]">Reset_Handler</a>
<LI><a href="#[b415b8]">Undef_Handler</a>
<LI><a href="#[b39530]">SWI_Handler</a>
<LI><a href="#[b41570]">PAbt_Handler</a>
<LI><a href="#[b41528]">DAbt_Handler</a>
<LI><a href="#[b414e0]">IRQ_Handler</a>
<LI><a href="#[b41498]">FIQ_Handler</a>
<LI><a href="#[f8b030]">__main</a>
<LI><a href="#[b43058]">main</a>
<LI><a href="#[b3f010]">os_sys_init1</a>
<LI><a href="#[b41ba0]">os_irq_ack_lock</a>
<LI><a href="#[b37250]">os_sys_manager</a>
<LI><a href="#[b41b10]">tsk_unlock</a>
<LI><a href="#[b3ab58]">Switch_task</a>
<LI><a href="#[b430e8]">task2</a>
<LI><a href="#[b430a0]">task1</a>
<LI><a href="#[b423c8]">os_def_interrupt</a>
<LI><a href="#[b395c0]">os_clock_interrupt</a>
<LI><a href="#[b38e70]">__SWI_0</a>
<LI><a href="#[f909d0]">__SWI_1</a>
<LI><a href="#[f90988]">__SWI_2</a>
<LI><a href="#[b38e28]">__SWI_3</a>
<LI><a href="#[b38de0]">__SWI_4</a>
<LI><a href="#[b38d08]">__SWI_5</a>
<LI><a href="#[b38cc0]">__SWI_6</a>
<LI><a href="#[b38c78]">__SWI_7</a>
<LI><a href="#[b41d98]">os_idle_demon</a>
<LI><a href="#[b3efc8]">os_tsk_create0</a>
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[b41330]"></a>Reset_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, startup.o(RESET))
<P><STRONG><a name="[f8b030]"></a>__main</STRONG> (ARM, 8 bytes, Stack size 0 bytes, entry.o($$startup$$))
<BR><BR>[Calls]<UL><LI><a href="#[f8ab80]">>></a> __init (via Veneer)
</UL>
<P><STRONG><a name="[f8abc8]"></a>__call_main</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, init.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[f8ab80]">>></a> __init
</UL>
<P><STRONG><a name="[f8ab80]"></a>__init</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[f8a688]">>></a> __ARM_call_via_r3
<LI><a href="#[f8abc8]">>></a> __call_main
</UL>
<BR>[Called By]<UL><LI><a href="#[f8b030]">>></a> __main (via Veneer)
</UL>
<P><STRONG><a name="[f8ab38]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[f89f08]"></a>__scatterload_copy</STRONG> (ARM, 24 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[f89f08]">>></a> __scatterload_copy
</UL>
<BR>[Called By]<UL><LI><a href="#[f89f08]">>></a> __scatterload_copy
</UL>
<P><STRONG><a name="[f89ec0]"></a>__scatterload_null</STRONG> (ARM, 4 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[f89e78]"></a>__scatterload_zeroinit</STRONG> (ARM, 24 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[b39698]"></a>os_set_env</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[b3f010]">>></a> os_sys_init1
</UL>
<P><STRONG><a name="[b39650]"></a>os_sys_init0</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[b43058]">>></a> main
</UL>
<P><STRONG><a name="[b39608]"></a>os_sys_run</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[b3f010]">>></a> os_sys_init1
</UL>
<P><STRONG><a name="[b395c0]"></a>os_clock_interrupt</STRONG> (ARM, 128 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
<BR>[Address Reference Count : 1]<UL><LI> rtx_config.o(.text)
</UL>
<P><STRONG><a name="[b39578]"></a>os_sys_manager_ret</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_hal.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[b37250]">>></a> os_sys_manager
</UL>
<P><STRONG><a name="[b39530]"></a>SWI_Handler</STRONG> (ARM, 184 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
<BR>[Address Reference Count : 1]<UL><LI> startup.o(RESET)
</UL>
<P><STRONG><a name="[b394e8]"></a>os_switch_tasks_ret</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_hal.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[b38e70]">>></a> __SWI_0
</UL>
<P><STRONG><a name="[b430e8]"></a>task2</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, rtx_ex1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = task2 ⇒ os_evt_set ⇒ os_dispatch ⇒ os_put_prio
</UL>
<BR>[Calls]<UL><LI><a href="#[b3b2d8]">>></a> os_evt_wait
<LI><a href="#[b3b320]">>></a> os_evt_set
<LI><a href="#[b3ccf8]">>></a> os_dly_wait
</UL>
<BR>[Address Reference Count : 1]<UL><LI> rtx_ex1.o(.text)
</UL>
<P><STRONG><a name="[b430a0]"></a>task1</STRONG> (Thumb, 50 bytes, Stack size 0 bytes, rtx_ex1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = task1 ⇒ os_tsk_create0 ⇒ os_dispatch ⇒ os_put_prio
</UL>
<BR>[Calls]<UL><LI><a href="#[b3b2d8]">>></a> os_evt_wait
<LI><a href="#[b3b320]">>></a> os_evt_set
<LI><a href="#[b3ccf8]">>></a> os_dly_wait
<LI><a href="#[b3ee60]">>></a> os_tsk_self
<LI><a href="#[b3efc8]">>></a> os_tsk_create0
</UL>
<BR>[Address Reference Count : 1]<UL><LI> rtx_ex1.o(.text)
</UL>
<P><STRONG><a name="[b43058]"></a>main</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, rtx_ex1.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = main
</UL>
<BR>[Calls]<UL><LI><a href="#[b39650]">>></a> os_sys_init0
</UL>
<BR>[Address Reference Count : 1]<UL><LI> init.o(.text)
</UL>
<P><STRONG><a name="[b41d98]"></a>os_idle_demon</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, rtx_config.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[b41d98]">>></a> os_idle_demon
</UL>
<BR>[Called By]<UL><LI><a href="#[b3f010]">>></a> os_sys_init1
<LI><a href="#[b41d98]">>></a> os_idle_demon
</UL>
<BR>[Address Reference Count : 1]<UL><LI> rt_task.o(i.os_sys_init1)
</UL>
<P><STRONG><a name="[b41d50]"></a>os_tmr_call</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, rtx_config.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[f8ba80]">>></a> os_tmr_tick
</UL>
<P><STRONG><a name="[b41d08]"></a>os_stk_overflow</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, rtx_config.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[b41d08]">>></a> os_stk_overflow
</UL>
<BR>[Called By]<UL><LI><a href="#[b38e70]">>></a> __SWI_0
<LI><a href="#[b41d08]">>></a> os_stk_overflow
</UL>
<P><STRONG><a name="[b41cc0]"></a>os_tmr_init</STRONG> (Thumb, 34 bytes, Stack size 0 bytes, rtx_config.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b3f010]">>></a> os_sys_init1
</UL>
<P><STRONG><a name="[b41c78]"></a>os_tmr_force_irq</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, rtx_config.o(.text), UNUSED)
<P><STRONG><a name="[b41c30]"></a>os_tmr_inspect_cnt</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, rtx_config.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b37250]">>></a> os_sys_manager
</UL>
<P><STRONG><a name="[b41be8]"></a>os_tmr_inspect_ovf</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, rtx_config.o(.text), UNUSED)
<P><STRONG><a name="[b41ba0]"></a>os_irq_ack_lock</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, rtx_config.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> rt_hal.o(.emb_text)
</UL>
<P><STRONG><a name="[b41b58]"></a>tsk_lock</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, rtx_config.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b3b2d8]">>></a> os_evt_wait
<LI><a href="#[b3b320]">>></a> os_evt_set
<LI><a href="#[b3ccf8]">>></a> os_dly_wait
<LI><a href="#[b3efc8]">>></a> os_tsk_create0
<LI><a href="#[b3f010]">>></a> os_sys_init1
</UL>
<P><STRONG><a name="[b41b10]"></a>tsk_unlock</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, rtx_config.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b38e70]">>></a> __SWI_0
<LI><a href="#[b3b2d8]">>></a> os_evt_wait
<LI><a href="#[b3b320]">>></a> os_evt_set
<LI><a href="#[b3ccf8]">>></a> os_dly_wait
<LI><a href="#[b3efc8]">>></a> os_tsk_create0
</UL>
<BR>[Address Reference Count : 1]<UL><LI> rt_hal.o(.emb_text)
</UL>
<P><STRONG><a name="[f8a838]"></a>__ARM_call_via_r0</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a7f0]"></a>__call_via_r0</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a7a8]"></a>__ARM_call_via_r1</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a760]"></a>__call_via_r1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a718]"></a>__ARM_call_via_r2</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a6d0]"></a>__call_via_r2</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a688]"></a>__ARM_call_via_r3</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[f8ab80]">>></a> __init
</UL>
<P><STRONG><a name="[f8a640]"></a>__call_via_r3</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a5f8]"></a>__ARM_call_via_r4</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a5b0]"></a>__call_via_r4</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a568]"></a>__ARM_call_via_r5</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a520]"></a>__call_via_r5</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a4d8]"></a>__ARM_call_via_r6</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a490]"></a>__call_via_r6</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a448]"></a>__ARM_call_via_r7</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[f8a400]"></a>__call_via_r7</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)
<P><STRONG><a name="[b38e70]"></a>__SWI_0</STRONG> (Thumb, 68 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_0))
<BR><BR>[Calls]<UL><LI><a href="#[b38c30]">>></a> rt_post_taskswitch (Weak Reference)
<LI><a href="#[b394e8]">>></a> os_switch_tasks_ret
<LI><a href="#[b41b10]">>></a> tsk_unlock
<LI><a href="#[b41d08]">>></a> os_stk_overflow
</UL>
<BR>[Address Reference Count : 1]<UL><LI> SWI_Table.o(SWI_TABLE)
</UL>
<P><STRONG><a name="[f909d0]"></a>__SWI_1</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, rt_membox.o(i.__SWI_1))
<BR>[Address Reference Count : 1]<UL><LI> SWI_Table.o(SWI_TABLE)
</UL>
<P><STRONG><a name="[f90988]"></a>__SWI_2</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, rt_membox.o(i.__SWI_2))
<BR>[Address Reference Count : 1]<UL><LI> SWI_Table.o(SWI_TABLE)
</UL>
<P><STRONG><a name="[b38e28]"></a>__SWI_3</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_3))
<BR>[Address Reference Count : 1]<UL><LI> SWI_Table.o(SWI_TABLE)
</UL>
<P><STRONG><a name="[b38de0]"></a>__SWI_4</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_4))
<BR>[Address Reference Count : 1]<UL><LI> SWI_Table.o(SWI_TABLE)
</UL>
<P><STRONG><a name="[b38d08]"></a>__SWI_5</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_5))
<BR>[Address Reference Count : 1]<UL><LI> SWI_Table.o(SWI_TABLE)
</UL>
<P><STRONG><a name="[b38cc0]"></a>__SWI_6</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_6))
<BR>[Address Reference Count : 1]<UL><LI> SWI_Table.o(SWI_TABLE)
</UL>
<P><STRONG><a name="[b38c78]"></a>__SWI_7</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_7))
<BR>[Address Reference Count : 1]<UL><LI> SWI_Table.o(SWI_TABLE)
</UL>
<P><STRONG><a name="[f908f8]"></a>_init_box</STRONG> (Thumb, 74 bytes, Stack size 4 bytes, rt_membox.o(i._init_box))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = _init_box
</UL>
<BR>[Called By]<UL><LI><a href="#[b3f010]">>></a> os_sys_init1
</UL>
<P><STRONG><a name="[b3f0a0]"></a>os_block</STRONG> (Thumb, 58 bytes, Stack size 16 bytes, rt_task.o(i.os_block))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = os_block ⇒ os_put_dly
</UL>
<BR>[Calls]<UL><LI><a href="#[b34c70]">>></a> os_put_dly
<LI><a href="#[b34d90]">>></a> os_get_first
</UL>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -