WXK
2025-01-03 9e88186e5fd87b0dd99faebcc4d72409efcb7c7c
dualboots_Gai_youhua_anbang_tag/keil/customboot/Objects/customboot.htm
@@ -3,9 +3,9 @@
<title>Static Call Graph - [.\Objects\customboot.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\customboot.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6140002: Last Updated: Fri Nov  1 15:32:37 2024
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6140002: Last Updated: Fri Jan  3 14:24:28 2025
<BR><P>
<H3>Maximum Stack Usage =        352 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
<H3>Maximum Stack Usage =        488 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main &rArr; Main_Menu &rArr; SerialDownload &rArr; Ymodem_Receive &rArr; flash_write_nbytes &rArr; flash_wait_done &rArr; flash_write_cmd &rArr; sys_timer_get
<P>
@@ -69,7 +69,7 @@
<P><STRONG><a name="[27]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_mk800x.o(.text.start_main_asm)
</UL>
<P><STRONG><a name="[6c]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry4.o(.ARM.Collect$$$$00000003))
<P><STRONG><a name="[6d]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry4.o(.ARM.Collect$$$$00000003))
<P><STRONG><a name="[29]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@@ -79,15 +79,15 @@
<BR><BR>[Called By]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[6d]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[6e]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[6e]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[6f]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[6f]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[70]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[70]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[71]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[71]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[72]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[2f]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_uidiv
@@ -114,7 +114,9 @@
<BR><BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Ymodem_Receive
</UL>
<P><STRONG><a name="[72]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[69]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[2d]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -508,7 +510,7 @@
<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dual_timer_open
</UL>
<P><STRONG><a name="[6b]"></a>clock_get_frequency</STRONG> (Thumb, 272 bytes, Stack size 8 bytes, mk_clock.o(.text.clock_get_frequency))
<P><STRONG><a name="[6c]"></a>clock_get_frequency</STRONG> (Thumb, 272 bytes, Stack size 8 bytes, mk_clock.o(.text.clock_get_frequency))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = clock_get_frequency
</UL>
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sys_timer_open
@@ -561,7 +563,7 @@
<LI><a href="#[25]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_dma_callback
</UL>
<P><STRONG><a name="[69]"></a>dual_timer_get</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, mk_dual_timer.o(.text.dual_timer_get))
<P><STRONG><a name="[6a]"></a>dual_timer_get</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, mk_dual_timer.o(.text.dual_timer_get))
<BR><BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sys_timer_get
</UL>
@@ -573,7 +575,7 @@
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sys_timer_open
</UL>
<P><STRONG><a name="[6a]"></a>dual_timer_start</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, mk_dual_timer.o(.text.dual_timer_start))
<P><STRONG><a name="[6b]"></a>dual_timer_start</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, mk_dual_timer.o(.text.dual_timer_start))
<BR><BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sys_timer_open
</UL>
@@ -674,7 +676,8 @@
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_wait_done
<LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidiv
</UL>
<BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Ymodem_Receive
<BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Ymodem_Receive
<LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Main_Menu
</UL>
@@ -691,14 +694,15 @@
<BR><BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;board_pins_config
</UL>
<P><STRONG><a name="[24]"></a>main</STRONG> (Thumb, 536 bytes, Stack size 48 bytes, customboot.o(.text.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 352<LI>Call Chain = main &rArr; Main_Menu &rArr; SerialDownload &rArr; Ymodem_Receive &rArr; flash_write_nbytes &rArr; flash_wait_done &rArr; flash_write_cmd &rArr; sys_timer_get
<P><STRONG><a name="[24]"></a>main</STRONG> (Thumb, 856 bytes, Stack size 184 bytes, customboot.o(.text.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 488<LI>Call Chain = main &rArr; Main_Menu &rArr; SerialDownload &rArr; Ymodem_Receive &rArr; flash_write_nbytes &rArr; flash_wait_done &rArr; flash_write_cmd &rArr; sys_timer_get
</UL>
<BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;aesDecrypt
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;aesDecInit
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_open
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Serial_PutString
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Serial0_PutString
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_nbytes
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_read
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_open
@@ -708,6 +712,7 @@
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calib_chip
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gpio_open
<LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy8
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;board_pins_config
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;board_configure
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;board_clock_run
@@ -742,7 +747,7 @@
<P><STRONG><a name="[5c]"></a>sys_timer_get</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, mk_misc.o(.text.sys_timer_get))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = sys_timer_get
</UL>
<BR>[Calls]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dual_timer_get
<BR>[Calls]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dual_timer_get
</UL>
<BR>[Called By]<UL><LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_nbytes
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write
@@ -760,8 +765,8 @@
<P><STRONG><a name="[50]"></a>sys_timer_open</STRONG> (Thumb, 80 bytes, Stack size 40 bytes, mk_misc.o(.text.sys_timer_open))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = sys_timer_open &rArr; dual_timer_open
</UL>
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;clock_get_frequency
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dual_timer_start
<BR>[Calls]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;clock_get_frequency
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dual_timer_start
<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dual_timer_open
</UL>
<BR>[Called By]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;board_clock_run