TJ-WW03-H03/Boot_N_V2.1.3/1.Boot_N_V2.1.1/Objects/Boot_openblt.htm

741 lines
44 KiB
HTML
Raw Permalink Normal View History

2024-07-29 10:32:25 +08:00
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [.\Objects\Boot_openblt.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\Boot_openblt.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Fri Jul 26 16:00:55 2024
<BR><P>
<H3>Maximum Stack Usage = 168 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main &rArr; BootTask &rArr; ComTask &rArr; XcpPacketReceived &rArr; NvmDone &rArr; FlashWriteChecksum &rArr; FlashWrite &rArr; FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[1]">NMI_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[1]">NMI_Handler</a><BR>
<LI><a href="#[2]">HardFault_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[2]">HardFault_Handler</a><BR>
<LI><a href="#[3]">SVC_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[3]">SVC_Handler</a><BR>
<LI><a href="#[4]">PendSV_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[4]">PendSV_Handler</a><BR>
<LI><a href="#[12]">ADC1_COMP_IRQHandler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[12]">ADC1_COMP_IRQHandler</a><BR>
<LI><a href="#[29]">AssertFailure</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[29]">AssertFailure</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
<LI><a href="#[12]">ADC1_COMP_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[f]">DMA1_Channel1_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[10]">DMA1_Channel2_3_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[11]">DMA1_Channel4_5_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[b]">EXTI0_1_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[c]">EXTI2_3_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[d]">EXTI4_15_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[9]">FLASH_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[20]">FLEX_CAN_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[e]">HWDIV_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[2]">HardFault_Handler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[1a]">I2C1_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[8]">MIPI_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[1]">NMI_Handler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[7]">PVD_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[4]">PendSV_Handler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[a]">RCC_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[0]">Reset_Handler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[1b]">SPI1_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[1c]">SPI2_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[3]">SVC_Handler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[5]">SysTick_Handler</a> from timer.o(i.SysTick_Handler) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[22]">SystemInit</a> from system_mm32f0140.o(i.SystemInit) referenced from startup_mm32f0140_keil.o(.text)
<LI><a href="#[17]">TIM14_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[18]">TIM16_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[19]">TIM17_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[13]">TIM1_BRK_UP_TRG_COM_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[14]">TIM1_CC_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[15]">TIM2_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[16]">TIM3_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[1d]">UART1_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[1e]">UART2_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[1f]">UART3_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[6]">WWDG_IRQHandler</a> from startup_mm32f0140_keil.o(.text) referenced from startup_mm32f0140_keil.o(RESET)
<LI><a href="#[23]">__main</a> from entry.o(.ARM.Collect$$$$00000000) referenced from startup_mm32f0140_keil.o(.text)
<LI><a href="#[21]">main</a> from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[23]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(.text)
</UL>
<P><STRONG><a name="[68]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[24]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[25]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[28]"></a>__main_after_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Called By]<UL><LI><a href="#[25]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[69]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[6a]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[6b]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[26]"></a>__rt_lib_shutdown_fini</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
<BR><BR>[Calls]<UL><LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__arm_fini_ (Weak Reference)
</UL>
<P><STRONG><a name="[6c]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[6d]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011))
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[1]"></a>NMI_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NMI_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NMI_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[2]"></a>HardFault_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HardFault_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HardFault_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[3]"></a>SVC_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SVC_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SVC_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[4]"></a>PendSV_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PendSV_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PendSV_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[12]"></a>ADC1_COMP_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[12]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ADC1_COMP_IRQHandler
</UL>
<BR>[Called By]<UL><LI><a href="#[12]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ADC1_COMP_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[f]"></a>DMA1_Channel1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[10]"></a>DMA1_Channel2_3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[11]"></a>DMA1_Channel4_5_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[b]"></a>EXTI0_1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[c]"></a>EXTI2_3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[d]"></a>EXTI4_15_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[9]"></a>FLASH_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[20]"></a>FLEX_CAN_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[e]"></a>HWDIV_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[1a]"></a>I2C1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[8]"></a>MIPI_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[7]"></a>PVD_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[a]"></a>RCC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[1b]"></a>SPI1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[1c]"></a>SPI2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[17]"></a>TIM14_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[18]"></a>TIM16_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[19]"></a>TIM17_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[13]"></a>TIM1_BRK_UP_TRG_COM_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[14]"></a>TIM1_CC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[15]"></a>TIM2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[16]"></a>TIM3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[1d]"></a>UART1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[1e]"></a>UART2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[1f]"></a>UART3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[6]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_mm32f0140_keil.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[6e]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[64]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[22]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemInit
<LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rs232Init
</UL>
<P><STRONG><a name="[25]"></a>__scatterload</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main_after_scatterload
</UL>
<BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[6f]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[29]"></a>AssertFailure</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, asserts.o(i.AssertFailure))
<BR><BR>[Stack]<UL><LI>Max Depth = 16 + In Cycle
<LI>Call Chain = AssertFailure &rArr; AssertFailure (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
<LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AssertFailure
</UL>
<BR>[Called By]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rs232TransmitPacket
<LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AssertFailure
</UL>
<P><STRONG><a name="[2b]"></a>BackDoorCheck</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, backdoor.o(i.BackDoorCheck))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = BackDoorCheck &rArr; CpuStartUserProgram &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TimerGet
<LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComIsConnected
</UL>
<BR>[Called By]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootTask
</UL>
<P><STRONG><a name="[2f]"></a>BackDoorInit</STRONG> (Thumb, 56 bytes, Stack size 8 bytes, backdoor.o(i.BackDoorInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = BackDoorInit &rArr; CpuStartUserProgram &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TimerGet
<LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComIsConnected
</UL>
<BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootInit
</UL>
<P><STRONG><a name="[30]"></a>BootInit</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, boot.o(i.BootInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = BootInit &rArr; BackDoorInit &rArr; CpuStartUserProgram &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TimerInit
<LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmInit
<LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuInit
<LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopInit
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComInit
<LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BackDoorInit
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[36]"></a>BootTask</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, boot.o(i.BootTask))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = BootTask &rArr; ComTask &rArr; XcpPacketReceived &rArr; NvmDone &rArr; FlashWriteChecksum &rArr; FlashWrite &rArr; FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TimerUpdate
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComTask
<LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BackDoorCheck
<LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[48]"></a>ComFree</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, com.o(i.ComFree))
<BR><BR>[Called By]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
</UL>
<P><STRONG><a name="[66]"></a>ComGetActiveInterfaceMaxRxLen</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, com.o(i.ComGetActiveInterfaceMaxRxLen))
<BR><BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
</UL>
<P><STRONG><a name="[67]"></a>ComGetActiveInterfaceMaxTxLen</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, com.o(i.ComGetActiveInterfaceMaxTxLen))
<BR><BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
</UL>
<P><STRONG><a name="[35]"></a>ComInit</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, com.o(i.ComInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = ComInit &rArr; Rs232Init &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpInit
<LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rs232Init
</UL>
<BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootInit
</UL>
<P><STRONG><a name="[2c]"></a>ComIsConnected</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, com.o(i.ComIsConnected))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ComIsConnected
</UL>
<BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpIsConnected
</UL>
<BR>[Called By]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BackDoorInit
<LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BackDoorCheck
</UL>
<P><STRONG><a name="[38]"></a>ComTask</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, com.o(i.ComTask))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = ComTask &rArr; XcpPacketReceived &rArr; NvmDone &rArr; FlashWriteChecksum &rArr; FlashWrite &rArr; FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
<LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rs232ReceivePacket
</UL>
<BR>[Called By]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootTask
</UL>
<P><STRONG><a name="[3e]"></a>ComTransmitPacket</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, com.o(i.ComTransmitPacket))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = ComTransmitPacket &rArr; Rs232TransmitPacket &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketTransmitted
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rs232TransmitPacket
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
</UL>
<P><STRONG><a name="[32]"></a>CopInit</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, cop.o(i.CopInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = CopInit &rArr; CopInitHook
</UL>
<BR>[Calls]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopInitHook
</UL>
<BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootInit
</UL>
<P><STRONG><a name="[41]"></a>CopInitHook</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, hooks.o(i.CopInitHook))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = CopInitHook
</UL>
<BR>[Calls]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LedBlinkInit
</UL>
<BR>[Called By]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopInit
</UL>
<P><STRONG><a name="[2a]"></a>CopService</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, cop.o(i.CopService))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopServiceHook
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rs232TransmitPacket
<LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
<LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AssertFailure
<LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootTask
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashErase
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteBlock
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashGetSector
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashAddToBlock
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuMemCopy
</UL>
<P><STRONG><a name="[43]"></a>CopServiceHook</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, hooks.o(i.CopServiceHook))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LedBlinkTask
</UL>
<BR>[Called By]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
</UL>
<P><STRONG><a name="[31]"></a>CpuInit</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, cpu.o(i.CpuInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = CpuInit
</UL>
<BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuIrqDisable
</UL>
<BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootInit
</UL>
<P><STRONG><a name="[45]"></a>CpuIrqDisable</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, cpu_comp.o(i.CpuIrqDisable))
<BR><BR>[Called By]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuInit
</UL>
<P><STRONG><a name="[4d]"></a>CpuIrqEnable</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, cpu_comp.o(i.CpuIrqEnable))
<BR><BR>[Called By]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
</UL>
<P><STRONG><a name="[46]"></a>CpuMemCopy</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, cpu.o(i.CpuMemCopy))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = CpuMemCopy &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
<LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rs232ReceivePacket
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashSwitchBlock
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashAddToBlock
</UL>
<P><STRONG><a name="[2e]"></a>CpuStartUserProgram</STRONG> (Thumb, 100 bytes, Stack size 16 bytes, cpu.o(i.CpuStartUserProgram))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = CpuStartUserProgram &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EXTI_MemoryRemapConfig
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_APB2PeriphClockCmd
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComFree
<LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TimerReset
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmVerifyChecksum
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmGetUserProgBaseAddress
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuIrqEnable
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
<LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BackDoorInit
<LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BackDoorCheck
</UL>
<P><STRONG><a name="[4c]"></a>EXTI_MemoryRemapConfig</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, hal_exti.o(i.EXTI_MemoryRemapConfig))
<BR><BR>[Called By]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
</UL>
<P><STRONG><a name="[4e]"></a>FLASH_ErasePage</STRONG> (Thumb, 30 bytes, Stack size 4 bytes, hal_flash.o(i.FLASH_ErasePage))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = FLASH_ErasePage &rArr; FLASH_WaitForLastOperation
</UL>
<BR>[Calls]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_WaitForLastOperation
</UL>
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashErase
</UL>
<P><STRONG><a name="[58]"></a>FLASH_Lock</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, hal_flash.o(i.FLASH_Lock))
<BR><BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashErase
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteBlock
</UL>
<P><STRONG><a name="[50]"></a>FLASH_ProgramWord</STRONG> (Thumb, 46 bytes, Stack size 20 bytes, hal_flash.o(i.FLASH_ProgramWord))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = FLASH_ProgramWord &rArr; FLASH_WaitForLastOperation
</UL>
<BR>[Calls]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_WaitForLastOperation
</UL>
<BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteBlock
</UL>
<P><STRONG><a name="[57]"></a>FLASH_Unlock</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, hal_flash.o(i.FLASH_Unlock))
<BR><BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashErase
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteBlock
</UL>
<P><STRONG><a name="[4f]"></a>FLASH_WaitForLastOperation</STRONG> (Thumb, 76 bytes, Stack size 4 bytes, hal_flash.o(i.FLASH_WaitForLastOperation))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = FLASH_WaitForLastOperation
</UL>
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_ProgramWord
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_ErasePage
</UL>
<P><STRONG><a name="[54]"></a>FlashDone</STRONG> (Thumb, 42 bytes, Stack size 8 bytes, flash.o(i.FlashDone))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = FlashDone &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteBlock
</UL>
<BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmDone
</UL>
<P><STRONG><a name="[55]"></a>FlashErase</STRONG> (Thumb, 274 bytes, Stack size 24 bytes, flash.o(i.FlashErase))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = FlashErase &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_Unlock
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_Lock
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_ErasePage
<LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashGetSector
</UL>
<BR>[Called By]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmErase
</UL>
<P><STRONG><a name="[60]"></a>FlashGetUserProgBaseAddress</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, flash.o(i.FlashGetUserProgBaseAddress))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmGetUserProgBaseAddress
</UL>
<P><STRONG><a name="[61]"></a>FlashInit</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, flash.o(i.FlashInit))
<BR><BR>[Called By]<UL><LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmInit
</UL>
<P><STRONG><a name="[62]"></a>FlashVerifyChecksum</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, flash.o(i.FlashVerifyChecksum))
<BR><BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmVerifyChecksum
</UL>
<P><STRONG><a name="[59]"></a>FlashWrite</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, flash.o(i.FlashWrite))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = FlashWrite &rArr; FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashGetSector
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashAddToBlock
</UL>
<BR>[Called By]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteChecksum
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmWrite
</UL>
<P><STRONG><a name="[5a]"></a>FlashWriteChecksum</STRONG> (Thumb, 62 bytes, Stack size 8 bytes, flash.o(i.FlashWriteChecksum))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = FlashWriteChecksum &rArr; FlashWrite &rArr; FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWrite
</UL>
<BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmDone
</UL>
<P><STRONG><a name="[5d]"></a>GPIO_PinAFConfig</STRONG> (Thumb, 34 bytes, Stack size 4 bytes, hal_gpio.o(i.GPIO_PinAFConfig))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = GPIO_PinAFConfig
</UL>
<BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;InitSystem
</UL>
<P><STRONG><a name="[5b]"></a>InitSystem</STRONG> (Thumb, 88 bytes, Stack size 8 bytes, main.o(i.InitSystem))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = InitSystem &rArr; GPIO_PinAFConfig
</UL>
<BR>[Calls]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_AHBPeriphClockCmd
<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_PinAFConfig
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[42]"></a>LedBlinkInit</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, led.o(i.LedBlinkInit))
<BR><BR>[Called By]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopInitHook
</UL>
<P><STRONG><a name="[44]"></a>LedBlinkTask</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, led.o(i.LedBlinkTask))
<BR><BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopServiceHook
</UL>
<P><STRONG><a name="[5e]"></a>NvmDone</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, nvm.o(i.NvmDone))
<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = NvmDone &rArr; FlashWriteChecksum &rArr; FlashWrite &rArr; FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteChecksum
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashDone
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
</UL>
<P><STRONG><a name="[5f]"></a>NvmErase</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, nvm.o(i.NvmErase))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = NvmErase &rArr; FlashErase &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashErase
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
</UL>
<P><STRONG><a name="[4b]"></a>NvmGetUserProgBaseAddress</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, nvm.o(i.NvmGetUserProgBaseAddress))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = NvmGetUserProgBaseAddress
</UL>
<BR>[Calls]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashGetUserProgBaseAddress
</UL>
<BR>[Called By]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
</UL>
<P><STRONG><a name="[34]"></a>NvmInit</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, nvm.o(i.NvmInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = NvmInit
</UL>
<BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashInit
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootInit
</UL>
<P><STRONG><a name="[47]"></a>NvmVerifyChecksum</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, nvm.o(i.NvmVerifyChecksum))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = NvmVerifyChecksum
</UL>
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashVerifyChecksum
</UL>
<BR>[Called By]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
</UL>
<P><STRONG><a name="[63]"></a>NvmWrite</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, nvm.o(i.NvmWrite))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = NvmWrite &rArr; FlashWrite &rArr; FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWrite
</UL>
<BR>[Called By]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XcpPacketReceived
</UL>
<P><STRONG><a name="[5c]"></a>RCC_AHBPeriphClockCmd</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, hal_rcc.o(i.RCC_AHBPeriphClockCmd))
<BR><BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;InitSystem
</UL>
<P><STRONG><a name="[4a]"></a>RCC_APB2PeriphClockCmd</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, hal_rcc.o(i.RCC_APB2PeriphClockCmd))
<BR><BR>[Called By]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
</UL>
<P><STRONG><a name="[3a]"></a>Rs232Init</STRONG> (Thumb, 94 bytes, Stack size 16 bytes, rs232.o(i.Rs232Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = Rs232Init &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComInit
</UL>
<P><STRONG><a name="[3c]"></a>Rs232ReceivePacket</STRONG> (Thumb, 130 bytes, Stack size 32 bytes, rs232.o(i.Rs232ReceivePacket))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = Rs232ReceivePacket &rArr; CpuMemCopy &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TimerGet
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuMemCopy
</UL>
<BR>[Called By]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComTask
</UL>
<P><STRONG><a name="[3f]"></a>Rs232TransmitPacket</STRONG> (Thumb, 114 bytes, Stack size 32 bytes, rs232.o(i.Rs232TransmitPacket))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = Rs232TransmitPacket &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TimerGet
<LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
<LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AssertFailure
</UL>
<BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComTransmitPacket
</UL>
<P><STRONG><a name="[5]"></a>SysTick_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, timer.o(i.SysTick_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(RESET)
</UL>
<P><STRONG><a name="[22]"></a>SystemInit</STRONG> (Thumb, 398 bytes, Stack size 48 bytes, system_mm32f0140.o(i.SystemInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 60<LI>Call Chain = SystemInit &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DELAY_xUs
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_mm32f0140_keil.o(.text)
</UL>
<P><STRONG><a name="[2d]"></a>TimerGet</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, timer.o(i.TimerGet))
<BR><BR>[Called By]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rs232TransmitPacket
<LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Rs232ReceivePacket
<LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BackDoorInit
<LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BackDoorCheck
</UL>
<P><STRONG><a name="[33]"></a>TimerInit</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, timer.o(i.TimerInit))
<BR><BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootInit
</UL>
<P><STRONG><a name="[49]"></a>TimerReset</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, timer.o(i.TimerReset))
<BR><BR>[Called By]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
</UL>
<P><STRONG><a name="[37]"></a>TimerUpdate</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, timer.o(i.TimerUpdate))
<BR><BR>[Called By]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootTask
</UL>
<P><STRONG><a name="[39]"></a>XcpInit</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, xcp.o(i.XcpInit))
<BR><BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComInit
</UL>
<P><STRONG><a name="[3b]"></a>XcpIsConnected</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, xcp.o(i.XcpIsConnected))
<BR><BR>[Called By]<UL><LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComIsConnected
</UL>
<P><STRONG><a name="[3d]"></a>XcpPacketReceived</STRONG> (Thumb, 596 bytes, Stack size 24 bytes, xcp.o(i.XcpPacketReceived))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = XcpPacketReceived &rArr; NvmDone &rArr; FlashWriteChecksum &rArr; FlashWrite &rArr; FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComTransmitPacket
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComGetActiveInterfaceMaxTxLen
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComGetActiveInterfaceMaxRxLen
<LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmInit
<LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuStartUserProgram
<LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmWrite
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmErase
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NvmDone
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuMemCopy
</UL>
<BR>[Called By]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComTask
</UL>
<P><STRONG><a name="[40]"></a>XcpPacketTransmitted</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, xcp.o(i.XcpPacketTransmitted))
<BR><BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ComTransmitPacket
</UL>
<P><STRONG><a name="[70]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[71]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[72]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[21]"></a>main</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = main &rArr; BootTask &rArr; ComTask &rArr; XcpPacketReceived &rArr; NvmDone &rArr; FlashWriteChecksum &rArr; FlashWrite &rArr; FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootTask
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BootInit
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;InitSystem
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL><P>
<H3>
Local Symbols
</H3>
<P><STRONG><a name="[65]"></a>DELAY_xUs</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, system_mm32f0140.o(i.DELAY_xUs))
<BR><BR>[Called By]<UL><LI><a href="#[22]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemInit
</UL>
<P><STRONG><a name="[51]"></a>FlashAddToBlock</STRONG> (Thumb, 190 bytes, Stack size 24 bytes, flash.o(i.FlashAddToBlock))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = FlashAddToBlock &rArr; FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteBlock
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashSwitchBlock
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuMemCopy
</UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWrite
</UL>
<P><STRONG><a name="[56]"></a>FlashGetSector</STRONG> (Thumb, 56 bytes, Stack size 16 bytes, flash.o(i.FlashGetSector))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
</UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWrite
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashErase
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteBlock
</UL>
<P><STRONG><a name="[52]"></a>FlashSwitchBlock</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, flash.o(i.FlashSwitchBlock))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = FlashSwitchBlock &rArr; FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashWriteBlock
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CpuMemCopy
</UL>
<BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashAddToBlock
</UL>
<P><STRONG><a name="[53]"></a>FlashWriteBlock</STRONG> (Thumb, 82 bytes, Stack size 24 bytes, flash.o(i.FlashWriteBlock))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = FlashWriteBlock &rArr; FlashGetSector &rArr; CopService &rArr; CopServiceHook
</UL>
<BR>[Calls]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_Unlock
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_ProgramWord
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_Lock
<LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CopService
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashGetSector
</UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashDone
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashSwitchBlock
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FlashAddToBlock
</UL>
<P>
<H3>
Undefined Global Symbols
</H3>
<P><STRONG><a name="[27]"></a>__arm_fini_</STRONG> (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
<BR><BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_shutdown_fini
</UL>
<HR></body></html>