完成flash对结构体的读写

This commit is contained in:
2025-07-25 09:09:18 +08:00
parent cc37b93f38
commit 484e828efe
18 changed files with 761 additions and 409 deletions

Binary file not shown.

View File

@@ -22,15 +22,33 @@ Dialog DLL: TCM.DLL V1.56.6.0
<h2>Project:</h2>
C:\Users\gxyos\Documents\ST30F103\Example\example.uvprojx
Project File Date: 07/23/2025
Project File Date: 07/25/2025
<h2>Output:</h2>
*** Using Compiler 'V6.23', folder: 'C:\Users\gxyos\AppData\Local\Keil_v5\ARM\ARMCLANG\Bin'
Build target 'Target_1'
Rebuild target 'Target_1'
APP/main.c(28): warning: while loop has empty body [-Wempty-body]
28 | while(1);
| ^
APP/main.c(28): note: put the semicolon on a separate line to silence this warning
1 warning generated.
compiling main.c...
compiling stm32f10x_flash.c...
compiling flash.c...
compiling misc.c...
compiling iic.c...
compiling stm32f10x_gpio.c...
compiling stm32f10x_i2c.c...
compiling stm32f10x_rcc.c...
compiling stm32f10x_spi.c...
compiling stm32f10x_usart.c...
compiling GPIO_STM32F10x.c...
compiling system_stm32f10x.c...
compiling stm32f10x_tim.c...
assembling startup_stm32f10x_md.s...
linking...
Program Size: Code=2758 RO-data=822 RW-data=0 ZI-data=2656
".\Objects\example.axf" - 0 Error(s), 0 Warning(s).
Program Size: Code=3744 RO-data=844 RW-data=0 ZI-data=2656
".\Objects\example.axf" - 0 Error(s), 1 Warning(s).
<h2>Software Packages used:</h2>
@@ -82,36 +100,36 @@ Package Vendor: Keil
Source file: Device/StdPeriph_Driver/src/stm32f10x_flash.c
* Component: Keil::Device:StdPeriph Drivers:Framework@3.6.0
Include file: Device/StdPeriph_Driver/templates/stm32f10x_it.h
Source file: Device/StdPeriph_Driver/src/misc.c
Source file: Device/StdPeriph_Driver/templates/stm32f10x_it.c
Source file: Device/StdPeriph_Driver/templates/stm32f10x_conf.h
Include file: Device/StdPeriph_Driver/inc/misc.h
Source file: Device/StdPeriph_Driver/templates/stm32f10x_conf.h
Include file: Device/StdPeriph_Driver/templates/stm32f10x_it.h
Source file: Device/StdPeriph_Driver/templates/stm32f10x_it.c
* Component: Keil::Device:StdPeriph Drivers:GPIO@3.6.0
Source file: Device/StdPeriph_Driver/src/stm32f10x_gpio.c
Include file: Device/StdPeriph_Driver/inc/stm32f10x_gpio.h
Source file: Device/StdPeriph_Driver/src/stm32f10x_gpio.c
* Component: Keil::Device:StdPeriph Drivers:I2C@3.6.0
Include file: Device/StdPeriph_Driver/inc/stm32f10x_i2c.h
Source file: Device/StdPeriph_Driver/src/stm32f10x_i2c.c
* Component: Keil::Device:StdPeriph Drivers:RCC@3.6.0
Include file: Device/StdPeriph_Driver/inc/stm32f10x_rcc.h
Source file: Device/StdPeriph_Driver/src/stm32f10x_rcc.c
Include file: Device/StdPeriph_Driver/inc/stm32f10x_rcc.h
* Component: Keil::Device:StdPeriph Drivers:SPI@3.6.0
Include file: Device/StdPeriph_Driver/inc/stm32f10x_spi.h
Source file: Device/StdPeriph_Driver/src/stm32f10x_spi.c
Include file: Device/StdPeriph_Driver/inc/stm32f10x_spi.h
* Component: Keil::Device:StdPeriph Drivers:TIM@3.6.0
Include file: Device/StdPeriph_Driver/inc/stm32f10x_tim.h
Source file: Device/StdPeriph_Driver/src/stm32f10x_tim.c
Include file: Device/StdPeriph_Driver/inc/stm32f10x_tim.h
* Component: Keil::Device:StdPeriph Drivers:USART@3.6.0
Include file: Device/StdPeriph_Driver/inc/stm32f10x_usart.h
Source file: Device/StdPeriph_Driver/src/stm32f10x_usart.c
Build Time Elapsed: 00:00:00
Include file: Device/StdPeriph_Driver/inc/stm32f10x_usart.h
Build Time Elapsed: 00:00:01
</pre>
</body>
</html>

View File

@@ -3,16 +3,16 @@
<title>Static Call Graph - [.\Objects\example.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\example.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6230001: Last Updated: Thu Jul 24 10:30:39 2025
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6230001: Last Updated: Fri Jul 25 09:04:20 2025
<BR><P>
<H3>Maximum Stack Usage = 136 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
<H3>Maximum Stack Usage = 164 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
__rt_entry_main &rArr; main &rArr; test &rArr; OLED_Init &rArr; OLED_Fill &rArr; OLED_WriteData &rArr; IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
__rt_entry_main &rArr; main &rArr; flash_Test &rArr; Flash_WriteStruct &rArr; FLASH_ProgramWord &rArr; FLASH_WaitForLastOperation &rArr; FLASH_GetBank1Status
<P>
<H3>
Functions with no stack information
</H3><UL>
<LI><a href="#[46]">__user_initial_stackheap</a>
<LI><a href="#[48]">__user_initial_stackheap</a>
</UL>
</UL>
<P>
@@ -107,86 +107,86 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
</UL>
<P><STRONG><a name="[5f]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[6c]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[60]"></a>__scatterload_loop</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[6d]"></a>__scatterload_loop</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[61]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, __scatter.o(!!handler_null), UNUSED)
<P><STRONG><a name="[6e]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, __scatter.o(!!handler_null), UNUSED)
<P><STRONG><a name="[62]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[6f]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[3d]"></a>__rt_lib_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_li
</UL>
<P><STRONG><a name="[63]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))
<P><STRONG><a name="[70]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))
<P><STRONG><a name="[64]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))
<P><STRONG><a name="[71]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))
<P><STRONG><a name="[65]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))
<P><STRONG><a name="[72]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))
<P><STRONG><a name="[66]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))
<P><STRONG><a name="[73]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))
<P><STRONG><a name="[67]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034))
<P><STRONG><a name="[74]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034))
<P><STRONG><a name="[68]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))
<P><STRONG><a name="[75]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))
<P><STRONG><a name="[69]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))
<P><STRONG><a name="[76]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))
<P><STRONG><a name="[6a]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))
<P><STRONG><a name="[77]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))
<P><STRONG><a name="[6b]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))
<P><STRONG><a name="[78]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))
<P><STRONG><a name="[6c]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))
<P><STRONG><a name="[79]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))
<P><STRONG><a name="[6d]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))
<P><STRONG><a name="[7a]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))
<P><STRONG><a name="[6e]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))
<P><STRONG><a name="[7b]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))
<P><STRONG><a name="[6f]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))
<P><STRONG><a name="[7c]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))
<P><STRONG><a name="[70]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))
<P><STRONG><a name="[7d]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))
<P><STRONG><a name="[71]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))
<P><STRONG><a name="[7e]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))
<P><STRONG><a name="[72]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006))
<P><STRONG><a name="[7f]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006))
<P><STRONG><a name="[73]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010))
<P><STRONG><a name="[80]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010))
<P><STRONG><a name="[74]"></a>__rt_lib_init_relocate_pie_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))
<P><STRONG><a name="[81]"></a>__rt_lib_init_relocate_pie_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))
<P><STRONG><a name="[75]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035))
<P><STRONG><a name="[82]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035))
<P><STRONG><a name="[76]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))
<P><STRONG><a name="[83]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))
<P><STRONG><a name="[77]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027))
<P><STRONG><a name="[84]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027))
<P><STRONG><a name="[78]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))
<P><STRONG><a name="[85]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))
<P><STRONG><a name="[42]"></a>__rt_lib_shutdown</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_ls
</UL>
<P><STRONG><a name="[79]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))
<P><STRONG><a name="[86]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))
<P><STRONG><a name="[7a]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007))
<P><STRONG><a name="[87]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007))
<P><STRONG><a name="[7b]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F))
<P><STRONG><a name="[88]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F))
<P><STRONG><a name="[7c]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010))
<P><STRONG><a name="[89]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010))
<P><STRONG><a name="[7d]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A))
<P><STRONG><a name="[8a]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A))
<P><STRONG><a name="[7e]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))
<P><STRONG><a name="[8b]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))
<P><STRONG><a name="[7f]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))
<P><STRONG><a name="[8c]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))
<P><STRONG><a name="[38]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
<LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2
</UL>
<P><STRONG><a name="[80]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))
<P><STRONG><a name="[8d]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))
<P><STRONG><a name="[3a]"></a>__rt_entry_sh</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
@@ -199,19 +199,19 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init
</UL>
<P><STRONG><a name="[81]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))
<P><STRONG><a name="[8e]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))
<P><STRONG><a name="[3e]"></a>__rt_entry_main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D))
<BR><BR>[Stack]<UL><LI>Max Depth = 136 + Unknown Stack Size
<LI>Call Chain = __rt_entry_main &rArr; main &rArr; test &rArr; OLED_Init &rArr; OLED_Fill &rArr; OLED_WriteData &rArr; IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
<BR><BR>[Stack]<UL><LI>Max Depth = 164 + Unknown Stack Size
<LI>Call Chain = __rt_entry_main &rArr; main &rArr; flash_Test &rArr; Flash_WriteStruct &rArr; FLASH_ProgramWord &rArr; FLASH_WaitForLastOperation &rArr; FLASH_GetBank1Status
</UL>
<BR>[Calls]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[82]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))
<P><STRONG><a name="[8f]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))
<P><STRONG><a name="[47]"></a>__rt_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
<P><STRONG><a name="[49]"></a>__rt_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
</UL>
@@ -219,7 +219,7 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_shutdown
</UL>
<P><STRONG><a name="[83]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))
<P><STRONG><a name="[90]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))
<P><STRONG><a name="[43]"></a>__rt_exit_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sys_exit
@@ -424,22 +424,42 @@ Global Symbols
<P><STRONG><a name="[a]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_md.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL>
<P><STRONG><a name="[46]"></a>__user_initial_stackheap</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32f10x_md.o(.text))
<P><STRONG><a name="[48]"></a>__user_initial_stackheap</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32f10x_md.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[84]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[4f]"></a>__aeabi_memcpy</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Flash_ReadStruct
</UL>
<P><STRONG><a name="[85]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[45]"></a>__rt_memcpy</STRONG> (Thumb, 138 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
</UL>
<P><STRONG><a name="[86]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[91]"></a>_memcpy_lastbytes</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_v6.o(.text), UNUSED)
<P><STRONG><a name="[92]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[93]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[94]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[46]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_memcpy
</UL>
<P><STRONG><a name="[95]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED)
<P><STRONG><a name="[96]"></a>__rt_memcpy_w</STRONG> (Thumb, 100 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED)
<P><STRONG><a name="[97]"></a>_memcpy_lastbytes_aligned</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_w.o(.text), UNUSED)
<P><STRONG><a name="[3b]"></a>__user_setup_stackheap</STRONG> (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = __user_setup_stackheap
</UL>
<BR>[Calls]<UL><LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_perproc_libspace
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_initial_stackheap
<BR>[Calls]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_perproc_libspace
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_initial_stackheap
</UL>
<BR>[Called By]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_sh
</UL>
@@ -448,239 +468,314 @@ Global Symbols
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = exit
</UL>
<BR>[Calls]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit
<BR>[Calls]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit
</UL>
<BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
</UL>
<P><STRONG><a name="[87]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[98]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[45]"></a>__user_perproc_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
<P><STRONG><a name="[47]"></a>__user_perproc_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[88]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[99]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[44]"></a>_sys_exit</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_exit
</UL>
<P><STRONG><a name="[89]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[9a]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[8a]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[9b]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[8b]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)
<P><STRONG><a name="[9c]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)
<P><STRONG><a name="[4a]"></a>GPIO_Init</STRONG> (Thumb, 390 bytes, Stack size 32 bytes, stm32f10x_gpio.o(.text.GPIO_Init))
<P><STRONG><a name="[52]"></a>FLASH_ClearFlag</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, stm32f10x_flash.o(.text.FLASH_ClearFlag))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = FLASH_ClearFlag
</UL>
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Flash_WriteStruct
</UL>
<P><STRONG><a name="[4a]"></a>FLASH_ErasePage</STRONG> (Thumb, 106 bytes, Stack size 24 bytes, stm32f10x_flash.o(.text.FLASH_ErasePage))
<BR><BR>[Stack]<UL><LI>Max Depth = 52<LI>Call Chain = FLASH_ErasePage &rArr; FLASH_WaitForLastOperation &rArr; FLASH_GetBank1Status
</UL>
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_WaitForLastOperation
</UL>
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Flash_WriteStruct
</UL>
<P><STRONG><a name="[4d]"></a>FLASH_GetBank1Status</STRONG> (Thumb, 104 bytes, Stack size 4 bytes, stm32f10x_flash.o(.text.FLASH_GetBank1Status))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = FLASH_GetBank1Status
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_WaitForLastOperation
</UL>
<P><STRONG><a name="[53]"></a>FLASH_Lock</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, stm32f10x_flash.o(.text.FLASH_Lock))
<BR><BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Flash_WriteStruct
</UL>
<P><STRONG><a name="[4c]"></a>FLASH_ProgramWord</STRONG> (Thumb, 160 bytes, Stack size 24 bytes, stm32f10x_flash.o(.text.FLASH_ProgramWord))
<BR><BR>[Stack]<UL><LI>Max Depth = 52<LI>Call Chain = FLASH_ProgramWord &rArr; FLASH_WaitForLastOperation &rArr; FLASH_GetBank1Status
</UL>
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_WaitForLastOperation
</UL>
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Flash_WriteStruct
</UL>
<P><STRONG><a name="[51]"></a>FLASH_Unlock</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, stm32f10x_flash.o(.text.FLASH_Unlock))
<BR><BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Flash_WriteStruct
</UL>
<P><STRONG><a name="[4b]"></a>FLASH_WaitForLastOperation</STRONG> (Thumb, 94 bytes, Stack size 24 bytes, stm32f10x_flash.o(.text.FLASH_WaitForLastOperation))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = FLASH_WaitForLastOperation &rArr; FLASH_GetBank1Status
</UL>
<BR>[Calls]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_GetBank1Status
</UL>
<BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_ProgramWord
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_ErasePage
</UL>
<P><STRONG><a name="[4e]"></a>Flash_ReadStruct</STRONG> (Thumb, 28 bytes, Stack size 24 bytes, flash.o(.text.Flash_ReadStruct))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = Flash_ReadStruct
</UL>
<BR>[Calls]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_Test
</UL>
<P><STRONG><a name="[50]"></a>Flash_WriteStruct</STRONG> (Thumb, 100 bytes, Stack size 24 bytes, flash.o(.text.Flash_WriteStruct))
<BR><BR>[Stack]<UL><LI>Max Depth = 76<LI>Call Chain = Flash_WriteStruct &rArr; FLASH_ProgramWord &rArr; FLASH_WaitForLastOperation &rArr; FLASH_GetBank1Status
</UL>
<BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_ProgramWord
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_Lock
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_ErasePage
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_ClearFlag
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_Unlock
</UL>
<BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_Test
</UL>
<P><STRONG><a name="[56]"></a>GPIO_Init</STRONG> (Thumb, 390 bytes, Stack size 32 bytes, stm32f10x_gpio.o(.text.GPIO_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = GPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_GPIO_Init
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_GPIO_Init
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[52]"></a>GPIO_ReadInputDataBit</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, stm32f10x_gpio.o(.text.GPIO_ReadInputDataBit))
<P><STRONG><a name="[5e]"></a>GPIO_ReadInputDataBit</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, stm32f10x_gpio.o(.text.GPIO_ReadInputDataBit))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = GPIO_ReadInputDataBit
</UL>
<BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
</UL>
<P><STRONG><a name="[4d]"></a>GPIO_ResetBits</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, stm32f10x_gpio.o(.text.GPIO_ResetBits))
<P><STRONG><a name="[59]"></a>GPIO_ResetBits</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, stm32f10x_gpio.o(.text.GPIO_ResetBits))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = GPIO_ResetBits
</UL>
<BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
<BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[4b]"></a>GPIO_SetBits</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, stm32f10x_gpio.o(.text.GPIO_SetBits))
<P><STRONG><a name="[57]"></a>GPIO_SetBits</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, stm32f10x_gpio.o(.text.GPIO_SetBits))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = GPIO_SetBits
</UL>
<BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_GPIO_Init
<BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_GPIO_Init
</UL>
<P><STRONG><a name="[4e]"></a>IIC_Delay</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, iic.o(.text.IIC_Delay))
<BR><BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
<P><STRONG><a name="[5a]"></a>IIC_Delay</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, iic.o(.text.IIC_Delay))
<BR><BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
</UL>
<P><STRONG><a name="[48]"></a>IIC_GPIO_Init</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, iic.o(.text.IIC_GPIO_Init))
<P><STRONG><a name="[54]"></a>IIC_GPIO_Init</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, iic.o(.text.IIC_GPIO_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = IIC_GPIO_Init &rArr; GPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_Init
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_APB2PeriphClockCmd
<BR>[Calls]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_Init
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_APB2PeriphClockCmd
</UL>
<BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
<BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
</UL>
<P><STRONG><a name="[4c]"></a>IIC_Send_Byte</STRONG> (Thumb, 134 bytes, Stack size 24 bytes, iic.o(.text.IIC_Send_Byte))
<P><STRONG><a name="[58]"></a>IIC_Send_Byte</STRONG> (Thumb, 134 bytes, Stack size 24 bytes, iic.o(.text.IIC_Send_Byte))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = IIC_Send_Byte &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Delay
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
<BR>[Calls]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Delay
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
</UL>
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
<BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
</UL>
<P><STRONG><a name="[4f]"></a>IIC_Start</STRONG> (Thumb, 68 bytes, Stack size 24 bytes, iic.o(.text.IIC_Start))
<P><STRONG><a name="[5b]"></a>IIC_Start</STRONG> (Thumb, 68 bytes, Stack size 24 bytes, iic.o(.text.IIC_Start))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = IIC_Start &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Delay
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
<BR>[Calls]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Delay
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
</UL>
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
<BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
</UL>
<P><STRONG><a name="[50]"></a>IIC_Stop</STRONG> (Thumb, 54 bytes, Stack size 16 bytes, iic.o(.text.IIC_Stop))
<P><STRONG><a name="[5c]"></a>IIC_Stop</STRONG> (Thumb, 54 bytes, Stack size 16 bytes, iic.o(.text.IIC_Stop))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = IIC_Stop &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Delay
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
<BR>[Calls]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Delay
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
</UL>
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
</UL>
<P><STRONG><a name="[51]"></a>IIC_Wait_Ack</STRONG> (Thumb, 134 bytes, Stack size 16 bytes, iic.o(.text.IIC_Wait_Ack))
<P><STRONG><a name="[5d]"></a>IIC_Wait_Ack</STRONG> (Thumb, 134 bytes, Stack size 16 bytes, iic.o(.text.IIC_Wait_Ack))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ReadInputDataBit
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Delay
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
<BR>[Calls]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ReadInputDataBit
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Delay
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_SetBits
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
</UL>
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
<BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
</UL>
<P><STRONG><a name="[53]"></a>OLED_Fill</STRONG> (Thumb, 110 bytes, Stack size 16 bytes, iic.o(.text.OLED_Fill))
<P><STRONG><a name="[5f]"></a>OLED_Fill</STRONG> (Thumb, 110 bytes, Stack size 16 bytes, iic.o(.text.OLED_Fill))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = OLED_Fill &rArr; OLED_WriteData &rArr; IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
<BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
</UL>
<BR>[Called By]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Init
<BR>[Called By]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Init
</UL>
<P><STRONG><a name="[56]"></a>OLED_Init</STRONG> (Thumb, 196 bytes, Stack size 24 bytes, iic.o(.text.OLED_Init))
<P><STRONG><a name="[62]"></a>OLED_Init</STRONG> (Thumb, 196 bytes, Stack size 24 bytes, iic.o(.text.OLED_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = OLED_Init &rArr; OLED_Fill &rArr; OLED_WriteData &rArr; IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Fill
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_ms_simple
<BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Fill
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_ms_simple
</UL>
<BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
<BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
</UL>
<P><STRONG><a name="[58]"></a>OLED_Refresh</STRONG> (Thumb, 124 bytes, Stack size 16 bytes, iic.o(.text.OLED_Refresh))
<P><STRONG><a name="[64]"></a>OLED_Refresh</STRONG> (Thumb, 124 bytes, Stack size 16 bytes, iic.o(.text.OLED_Refresh))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = OLED_Refresh &rArr; OLED_WriteData &rArr; IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
<BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteData
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_WriteCommand
</UL>
<BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
<BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
</UL>
<P><STRONG><a name="[5d]"></a>OLED_ShowChar</STRONG> (Thumb, 132 bytes, Stack size 8 bytes, iic.o(.text.OLED_ShowChar))
<P><STRONG><a name="[6a]"></a>OLED_ShowChar</STRONG> (Thumb, 132 bytes, Stack size 8 bytes, iic.o(.text.OLED_ShowChar))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = OLED_ShowChar
</UL>
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lcd_show_all_ascii_lowercase
<BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lcd_show_all_ascii_lowercase
</UL>
<P><STRONG><a name="[54]"></a>OLED_WriteCommand</STRONG> (Thumb, 52 bytes, Stack size 16 bytes, iic.o(.text.OLED_WriteCommand))
<P><STRONG><a name="[60]"></a>OLED_WriteCommand</STRONG> (Thumb, 52 bytes, Stack size 16 bytes, iic.o(.text.OLED_WriteCommand))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = OLED_WriteCommand &rArr; IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
<BR>[Calls]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
</UL>
<BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Refresh
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Init
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Fill
<BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Refresh
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Init
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Fill
</UL>
<P><STRONG><a name="[55]"></a>OLED_WriteData</STRONG> (Thumb, 52 bytes, Stack size 16 bytes, iic.o(.text.OLED_WriteData))
<P><STRONG><a name="[61]"></a>OLED_WriteData</STRONG> (Thumb, 52 bytes, Stack size 16 bytes, iic.o(.text.OLED_WriteData))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = OLED_WriteData &rArr; IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
<BR>[Calls]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Wait_Ack
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Send_Byte
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Stop
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_Start
</UL>
<BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Refresh
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Fill
<BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Refresh
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Fill
</UL>
<P><STRONG><a name="[49]"></a>RCC_APB2PeriphClockCmd</STRONG> (Thumb, 56 bytes, Stack size 8 bytes, stm32f10x_rcc.o(.text.RCC_APB2PeriphClockCmd))
<P><STRONG><a name="[55]"></a>RCC_APB2PeriphClockCmd</STRONG> (Thumb, 56 bytes, Stack size 8 bytes, stm32f10x_rcc.o(.text.RCC_APB2PeriphClockCmd))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = RCC_APB2PeriphClockCmd
</UL>
<BR>[Called By]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_GPIO_Init
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_GPIO_Init
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[35]"></a>SystemInit</STRONG> (Thumb, 102 bytes, Stack size 8 bytes, system_stm32f10x.o(.text.SystemInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = SystemInit &rArr; SetSysClock &rArr; SetSysClockTo72
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
<BR>[Calls]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(.text)
</UL>
<P><STRONG><a name="[57]"></a>delay_ms_simple</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, iic.o(.text.delay_ms_simple))
<P><STRONG><a name="[63]"></a>delay_ms_simple</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, iic.o(.text.delay_ms_simple))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = delay_ms_simple &rArr; delay_us_simple
</UL>
<BR>[Calls]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_simple
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_simple
</UL>
<BR>[Called By]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Init
<BR>[Called By]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Init
</UL>
<P><STRONG><a name="[5b]"></a>delay_us_simple</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, iic.o(.text.delay_us_simple))
<P><STRONG><a name="[67]"></a>delay_us_simple</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, iic.o(.text.delay_us_simple))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = delay_us_simple
</UL>
<BR>[Called By]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_ms_simple
<BR>[Called By]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_ms_simple
</UL>
<P><STRONG><a name="[5c]"></a>lcd_show_all_ascii_lowercase</STRONG> (Thumb, 140 bytes, Stack size 24 bytes, iic.o(.text.lcd_show_all_ascii_lowercase))
<P><STRONG><a name="[68]"></a>flash_Test</STRONG> (Thumb, 78 bytes, Stack size 56 bytes, flash.o(.text.flash_Test))
<BR><BR>[Stack]<UL><LI>Max Depth = 132<LI>Call Chain = flash_Test &rArr; Flash_WriteStruct &rArr; FLASH_ProgramWord &rArr; FLASH_WaitForLastOperation &rArr; FLASH_GetBank1Status
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Flash_ReadStruct
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Flash_WriteStruct
</UL>
<BR>[Called By]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[69]"></a>lcd_show_all_ascii_lowercase</STRONG> (Thumb, 140 bytes, Stack size 24 bytes, iic.o(.text.lcd_show_all_ascii_lowercase))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = lcd_show_all_ascii_lowercase &rArr; OLED_ShowChar
</UL>
<BR>[Calls]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_ShowChar
<BR>[Calls]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_ShowChar
</UL>
<BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
<BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
</UL>
<P><STRONG><a name="[3f]"></a>main</STRONG> (Thumb, 72 bytes, Stack size 32 bytes, main.o(.text.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = main &rArr; test &rArr; OLED_Init &rArr; OLED_Fill &rArr; OLED_WriteData &rArr; IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
<P><STRONG><a name="[3f]"></a>main</STRONG> (Thumb, 76 bytes, Stack size 32 bytes, main.o(.text.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 164<LI>Call Chain = main &rArr; flash_Test &rArr; Flash_WriteStruct &rArr; FLASH_ProgramWord &rArr; FLASH_WaitForLastOperation &rArr; FLASH_GetBank1Status
</UL>
<BR>[Calls]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_Init
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_APB2PeriphClockCmd
<BR>[Calls]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_Test
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;test
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_ResetBits
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_Init
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_APB2PeriphClockCmd
</UL>
<BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
</UL>
<P><STRONG><a name="[5e]"></a>test</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, iic.o(.text.test))
<P><STRONG><a name="[6b]"></a>test</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, iic.o(.text.test))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = test &rArr; OLED_Init &rArr; OLED_Fill &rArr; OLED_WriteData &rArr; IIC_Wait_Ack &rArr; IIC_Stop &rArr; GPIO_SetBits
</UL>
<BR>[Calls]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lcd_show_all_ascii_lowercase
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Refresh
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Init
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_GPIO_Init
<BR>[Calls]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lcd_show_all_ascii_lowercase
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Refresh
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;OLED_Init
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IIC_GPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@@ -688,18 +783,18 @@ Global Symbols
<H3>
Local Symbols
</H3>
<P><STRONG><a name="[59]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(.text.SetSysClock))
<P><STRONG><a name="[65]"></a>SetSysClock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(.text.SetSysClock))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = SetSysClock &rArr; SetSysClockTo72
</UL>
<BR>[Calls]<UL><LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClockTo72
<BR>[Calls]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClockTo72
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemInit
</UL>
<P><STRONG><a name="[5a]"></a>SetSysClockTo72</STRONG> (Thumb, 290 bytes, Stack size 16 bytes, system_stm32f10x.o(.text.SetSysClockTo72))
<P><STRONG><a name="[66]"></a>SetSysClockTo72</STRONG> (Thumb, 290 bytes, Stack size 16 bytes, system_stm32f10x.o(.text.SetSysClockTo72))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = SetSysClockTo72
</UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
<BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SetSysClock
</UL>
<P>
<H3>

View File

@@ -1,6 +1,7 @@
--cpu Cortex-M3
".\objects\main.o"
".\objects\iic.o"
".\objects\flash.o"
".\objects\misc.o"
".\objects\stm32f10x_flash.o"
".\objects\stm32f10x_gpio.o"

View File

@@ -1,6 +1,6 @@
Dependencies for Project 'example', Target 'Target_1': (DO NOT MODIFY !)
CompilerVersion: 6230000::V6.23::ARMCLANG
F (.\APP\main.c)(0x6880A23D)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
F (.\APP\main.c)(0x6882D7B4)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
@@ -15,7 +15,8 @@ I (C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPer
-IC:/Users/gxyos/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include
-IC:/Users/gxyos/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/StdPeriph_Driver/inc
-IC:/Users/gxyos/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/RTE_Driver
-D__UVISION_VERSION="542" -DSTM32F10X_MD -D_RTE_
@@ -30,6 +31,21 @@ I (C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPer
I (C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_i2c.h)(0x61AD795E)
I (C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x61AD795E)
I (C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_spi.h)(0x61AD795E)
I (C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_tim.h)(0x61AD795E)
I (C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_usart.h)(0x61AD795E)
I (C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\misc.h)(0x61AD795E)
I (DEV\iic.h)(0x6880A153)
I (DEV\flash.h)(0x6882D7B5)
F (.\DEV\iic.c)(0x6882D813)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-4 -O0 -ffunction-sections -Wall -Wextra -Wno-packed -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ./DEV
-I./RTE/Device/STM32F103C8
-I./RTE/_Target_1
-IC:/Users/gxyos/AppData/Local/Arm/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include
-IC:/Users/gxyos/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/Include

14
Objects/flash.d Normal file
View File

@@ -0,0 +1,14 @@
./objects/flash.o: DEV\flash.c DEV\flash.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\stm32f10x.h \
RTE\_Target_1\RTE_Components.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm3.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include\system_stm32f10x.h \
RTE\Device\STM32F103C8\stm32f10x_conf.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_flash.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_gpio.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_i2c.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_rcc.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_spi.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_tim.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_usart.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\misc.h

BIN
Objects/flash.o Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -12,4 +12,4 @@
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_tim.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\stm32f10x_usart.h \
C:\Users\gxyos\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc\misc.h \
DEV\iic.h
DEV\iic.h DEV\flash.h

Binary file not shown.