From 0e275a0c18bbc325acc9e9d7583585a1692d839f Mon Sep 17 00:00:00 2001 From: kevin Date: Thu, 21 Apr 2022 17:18:30 +0800 Subject: [PATCH] Signed-off-by: kevin --- f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.c | 55 ++ f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.h | 26 + f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c | 37 +- f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.h | 3 +- f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c | 28 +- f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h | 2 + .../MDK-ARM/f103c8t6_KEIL.uvguix.kevin | 75 +- .../MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.axf | Bin 582196 -> 581004 bytes .../f103c8t6_KEIL/f103c8t6_KEIL.build_log.htm | 16 +- .../MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.hex | 852 +++++++++--------- .../MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.htm | 338 ++++--- .../MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map | 641 +++++++------ .../f103c8t6_KEIL_f103c8t6_KEIL.dep | 16 +- f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.crf | Bin 566744 -> 567418 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.d | 1 + f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.o | Bin 629968 -> 631112 bytes .../MDK-ARM/f103c8t6_KEIL/mymain.crf | Bin 564986 -> 565704 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.d | 1 + f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.o | Bin 626200 -> 627348 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/oled.crf | Bin 566569 -> 567159 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/oled.o | Bin 646204 -> 648024 bytes 21 files changed, 1112 insertions(+), 979 deletions(-) create mode 100644 f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.c create mode 100644 f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.h diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.c b/f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.c new file mode 100644 index 0000000..51abf17 --- /dev/null +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.c @@ -0,0 +1,55 @@ +#include "encode.h" + +void GEI_BUTTON_CODE(button *bt) +{ + #define t 500 //????(ms) + bt->code=0; + if(HAL_GPIO_ReadPin(bt->GPIOx,bt->GPIO_Pin)==0) + { + if(bt->lock==0) + { + if(HAL_GetTick()time+t)//?????????? + { + bt->times++; + bt->time=HAL_GetTick(); + bt->lock=1; + + }else + { + bt->times=1; //?????? + bt->time=HAL_GetTick(); + bt->lock=1; + } + + } + if(bt->lock==1) + { + if(HAL_GetTick()>bt->time+t)//??????t ms + { + bt->code=255; + bt->times=255; + } //???? + } + + } + + if(HAL_GPIO_ReadPin(bt->GPIOx,bt->GPIO_Pin)==1) + { + if(bt->lock==1) + { + if(bt->code==255) + { + + }else + { + bt->code=bt->times; + } + bt->lock=0; + } + + } + + + +} + diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.h b/f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.h new file mode 100644 index 0000000..f7e4934 --- /dev/null +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/encode.h @@ -0,0 +1,26 @@ +#ifndef ENCODER_H_ +#define ENCODER_H_ + +#include "main.h" + + + +typedef struct button +{ + uint16_t code; + uint8_t lock; + uint32_t time; + uint16_t times; + GPIO_TypeDef *GPIOx; + uint16_t GPIO_Pin; +} button; + +typedef struct +{ + int code; + uint8_t move_flag:1; +} encoder; + +void GEI_BUTTON_CODE(button *bt); + +#endif /* ENCODER_H_ */ diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c b/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c index c345c31..373e95b 100644 --- a/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c @@ -5,7 +5,7 @@ * Author: wuwen */ #include "mymain.h" -#include "hread_interface.h" + #define morse_t1 150 #define morse_t2 (morse_t1*3) @@ -166,8 +166,12 @@ char getmorsecode(uint8_t len,uint8_t code) return 0; } + +button B1; + void mymain() { + int mode=0; uint32_t run_tick=0; char str[16]; uint16_t fps=0,fps_=0; @@ -175,24 +179,35 @@ void mymain() OLED_Init(); HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);//启动n通道的pwm - MUTE(0); + MUTE(1); //add_a_note(1000,50,1000); + + while(1) { - OLED_Str(0,0,16,"hello",1); + switch(mode) + { + case 0: + //启动跳转模式 + //用于读取系统配置后跳转到其他程序 - OLED_AL(10,20,10,21,1); + mode=1; + break; + case 1: + //主界面 + fps_++; + sprintf(str,"FPS:%d",fps); + OLED_Str(0,56,8,str,1); + break; + case 2: + //菜单界面 + break; - OLED_AL(20,50,20,49,1); + } + - OLED_AL(20,50,30,50,1); - OLED_AL(50,30,30,30,1); - - fps_++; - sprintf(str,"FPS:%d",fps); - OLED_Str(0,56,8,str,1); OLED_Cache_to_hardware();//刷新屏幕 buzzer_play_server(); diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.h b/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.h index 0f0c962..a0d0570 100644 --- a/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.h +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.h @@ -11,7 +11,8 @@ #include "main.h" #include "oled.h" #include "buzzer.h" - +#include "encode.h" +#include "hread_interface.h" struct morsecode { uint8_t len; diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c b/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c index 0af8e3f..0547b4f 100644 --- a/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c @@ -138,10 +138,10 @@ void OLED_Cache_to_hardware() if(b==0){b=1;OLED_Set_Pos(x,y);} OLED_WrDat(OLED_buff[y][x]); OLED_speedup[y][x]=OLED_buff[y][x]; - OLED_buff[y][x]=0x00; + }else {b=0;} - + OLED_buff[y][x]=0x00; } } } @@ -1033,10 +1033,15 @@ void OLED_VL(unsigned char x,unsigned char y,unsigned char size,unsigned char do void OLED_AL(int sx,int sy,int ex,int ey,unsigned char dot_type) { - int dx,dy; + int dx,dy,absx,absy; + //计算差 dx=ex-sx; dy=ey-sy; + //取绝对值 就是轴长 + absx=dx<0?0-dx:dx; + absy=dy<0?0-dy:dy; + if(dx==0) { @@ -1046,7 +1051,7 @@ void OLED_AL(int sx,int sy,int ex,int ey,unsigned char dot_type) { OLED_set_dot(sx,y,dot_type); } - } + }else if(dy<0) { for(int y=ey;y End_x){int i1 = Start_x; Start_x = End_x; End_x=i1;} + if(Start_y > End_y){int i1 = Start_y; Start_y = End_y; End_y=i1;} + for(; Start_x < End_x ; Start_x++) + { + for(int y2 = Start_y ; y2 < End_y ; y2++) + { + OLED_set_dot(Start_x, y2, type); + } + } +} diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h b/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h index 835a27f..926d8df 100644 --- a/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h @@ -28,4 +28,6 @@ void OLED_Ascii(unsigned char x,unsigned char y,unsigned char size,char chr,unsi void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char type); void OLED_AL(int sx,int sy,int ex,int ey,unsigned char dot_type); + +void OLED_square(int Start_x, int Start_y, int End_x, int End_y, char type); #endif /* OLED_H_ */ diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvguix.kevin b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvguix.kevin index 3b97d34..48a1f53 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvguix.kevin +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvguix.kevin @@ -101,17 +101,17 @@ -1 - 150 - 2151 - 3176 - 675 + 461 + 1932 + 2957 + 986 0 - 596 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000004000000020000000100000052433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6D796D61696E2E6300000000086D796D61696E2E6300000000C5D4F200FFFFFFFF52433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C62757A7A65722E63000000000862757A7A65722E6300000000FFDC7800FFFFFFFF50433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6F6C65642E6300000000066F6C65642E6300000000BECEA100FFFFFFFF50433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6F6C65642E6800000000066F6C65642E6800000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000000406000066000000D60C000095030000 + 920 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000007000000000000000100000052433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6D796D61696E2E6300000000086D796D61696E2E6300000000C5D4F200FFFFFFFF52433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C62757A7A65722E63000000000862757A7A65722E6300000000FFDC7800FFFFFFFF50433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6F6C65642E6300000000066F6C65642E6300000000BECEA100FFFFFFFF50433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6F6C65642E6800000000066F6C65642E6800000000F0A0A100FFFFFFFF52433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C656E636F64652E630000000008656E636F64652E6300000000BCA8E100FFFFFFFF52433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C656E636F64652E680000000008656E636F64652E68000000009CC1B600FFFFFFFF52433A5C55736572735C6B6576696E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6D796D61696E2E6800000000086D796D61696E2E6800000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000000406000066000000D60C000095030000 @@ -134,7 +134,7 @@ 16 - AE00000066000000F1030000CA000000 + 040600006600000047090000CA000000 @@ -530,7 +530,7 @@ 0 16 - 030000009903000053050000CD030000 + 03000000990300007D070000CD030000 16 @@ -1150,7 +1150,7 @@ 0 16 - 0300000066000000A70000002D020000 + 0300000066000000A700000065030000 16 @@ -1170,7 +1170,7 @@ 0 16 - 030000009903000053050000CD030000 + 03000000990300007D070000CD030000 16 @@ -1190,7 +1190,7 @@ 0 16 - 030000009903000053050000CD030000 + 03000000990300007D070000CD030000 16 @@ -1250,7 +1250,7 @@ 0 16 - 030000009903000053050000CD030000 + 03000000990300007D070000CD030000 16 @@ -1270,7 +1270,7 @@ 0 16 - 030000009903000053050000CD030000 + 03000000990300007D070000CD030000 16 @@ -1799,7 +1799,7 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFAE000000B3000000F1030000B7000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000AE00000066000000F1030000CA000000AE0000004F000000F1030000B30000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF430300004F000000470300006B010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000004703000066000000F103000082010000470300004F000000F10300006B01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFAA0000004F000000AE0000007E030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000AA0000005D020000000000004F000000AA0000007E0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000005A010000F10300005E01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000000000000075010000F1030000EA010000000000005E010000F1030000D301000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFF90100005E010000FD010000D301000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000007E0300008007000082030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000006102000056050000C5020000000000008203000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFAE000000B3000000F1030000B7000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000040600006600000047090000CA000000AE0000004F000000F1030000B30000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF430300004F000000470300006B010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000009D080000660000004709000082010000470300004F000000F10300006B01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFAA0000004F000000AE0000007E030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000056050000660000000006000095030000000000004F000000AA0000007E0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000005A010000F10300005E01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000560500007501000047090000EA010000000000005E010000F1030000D301000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFF90100005E010000FD010000D301000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000007E0300008007000082030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000005605000099030000D60C0000FD030000000000008203000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 @@ -1862,19 +1862,19 @@ 0 100 - 2 + 0 .\MYDEIVERS\mymain.c - 20 - 156 - 191 + 2 + 149 + 185 1 0 .\MYDEIVERS\buzzer.c - 6 + 8 49 75 1 @@ -1883,18 +1883,45 @@ .\MYDEIVERS\oled.c - 12 - 1046 - 1078 + 27 + 106 + 144 1 0 ./MYDEIVERS/oled.h - 37 + 16 1 - 30 + 32 + 1 + + 0 + + + C:\Users\kevin\Desktop\morse_code_trainer\f103c8t6_keil\MDK-ARM\MYDEIVERS\encode.c + 32 + 1 + 3 + 0 + + 0 + + + MYDEIVERS\encode.h + 0 + 1 + 25 + 0 + + 0 + + + ./MYDEIVERS/mymain.h + 16 + 1 + 14 1 0 diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.axf b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.axf index 707ef9e09d0ea509d6d568a5f2efd6db8eeaa260..50f7c615fca8790ab9f0696ccda2142b9c4ef47a 100644 GIT binary patch delta 15726 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: *** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' Build target 'f103c8t6_KEIL' -compiling oled.c... +compiling mymain.c... MYDEIVERS\oled.h(22): warning: #1295-D: Deprecated declaration OLED_Cache_to_hardware - give arg types void OLED_Cache_to_hardware(); -MYDEIVERS\oled.c: 1 warning, 0 errors +MYDEIVERS\buzzer.h(16): warning: #1295-D: Deprecated declaration buzzer_play_server - give arg types + char buzzer_play_server(); +MYDEIVERS\mymain.h(23): warning: #1295-D: Deprecated declaration mymain - give arg types + void mymain(); +MYDEIVERS\mymain.c(182): warning: #188-D: enumerated type mixed with another type + MUTE(1); +MYDEIVERS\mymain.c(200): warning: #223-D: function "sprintf" declared implicitly + sprintf(str,"FPS:%d",fps); +MYDEIVERS\mymain.c: 5 warnings, 0 errors linking... -Program Size: Code=9328 RO-data=3712 RW-data=28 ZI-data=3836 +Program Size: Code=9140 RO-data=3712 RW-data=28 ZI-data=3836 FromELF: creating hex file... -"f103c8t6_KEIL\f103c8t6_KEIL.axf" - 0 Error(s), 1 Warning(s). +"f103c8t6_KEIL\f103c8t6_KEIL.axf" - 0 Error(s), 5 Warning(s).

Software Packages used:

diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.hex b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.hex index c32ce27..773a2c5 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.hex +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.hex @@ -1,8 +1,8 @@ :020000040800F2 :10000000180F0020910100088319000889150008C5 -:1000100081190008E9040008BB1F00080000000067 -:10002000000000000000000000000000131D000898 -:10003000EB04000800000000111D0008151D000859 +:1000100081190008E9040008371F000800000000EB +:100020000000000000000000000000008F1C00081D +:10003000EB040008000000008D1C0008911C000863 :10004000AB010008AB010008AB010008AB010008E0 :10005000AB010008AB010008AB010008AB010008D0 :10006000AB010008AB010008AB010008AB010008C0 @@ -10,23 +10,23 @@ :10008000AB010008AB010008AB010008AB010008A0 :10009000AB010008AB010008AB010008AB01000890 :1000A000AB010008AB010008AB010008AB01000880 -:1000B000791D0008AB010008AB010008AB01000886 +:1000B000F51C0008AB010008AB010008AB0100080B :1000C000AB010008AB010008AB010008AB01000860 :1000D000AB010008AB010008AB010008AB01000850 :1000E000AB010008AB010008AB01000800F002F80A :1000F00000F03FF80AA090E8000C82448344AAF183 :100100000107DA4501D100F034F8AFF2090EBAE880 :100110000F0013F0010F18BFFB1A43F0010318473B -:10012000B0310000D0310000103A24BF78C878C147 +:10012000F430000014310000103A24BF78C878C1C0 :10013000FAD8520724BF30C830C144BF04680C60ED :10014000704700000023002400250026103A28BF35 :1001500078C1FBD8520728BF30C148BF0B60704739 :10016000642900F0A580002070471FB51FBD10B5A1 -:1001700010BD00F084F91146FFF7F7FF01F06AFFA8 +:1001700010BD00F084F91146FFF7F7FF01F028FFEA :1001800000F0A2F903B4FFF7F2FF03BC00F0A6F9F8 :100190000948804709480047FEE7FEE7FEE7FEE71B :1001A000FEE7FEE7FEE7FEE7FEE7FEE70448054957 -:1001B000054A064B70470000771D0008ED00000857 +:1001B000054A064B70470000F31C0008ED000008DC :1001C00018090020180F0020180B0020180B002021 :1001D00070B50446051F00F0D1F80068002C14BF6C :1001E000446870BD002C18BFAC423CBF2046646818 @@ -175,7 +175,7 @@ :100AD00070470000F0B40E4B1B680C46C3F30223B2 :100AE000C3F10705042D00D90425191D072901D2DA :100AF000002300E0DB1E012606FA05F1491E214015 -:100B000099409E40761E16403143F0BC01F056BA23 +:100B000099409E40761E16403143F0BC01F014BA65 :100B10000CED00E0064900F0070208684FF6FF03FD :100B2000184040EA0220034A104308607047000062 :100B30000CED00E00000FA052DE9F0470F46050036 @@ -196,10 +196,10 @@ :100C200006D56068296920F4605040EAC100606020 :100C300000F028F86168084AC1F30311515CC8400C :100C40000649086006480068FFF7F8FE0020C2E782 -:100C500000200240001002405C2500080C0000202B +:100C50000020024000100240A02400080C000020E8 :100C6000040000200448054900684968044AC1F3AB :100C70000221515CC84070470C0000200010024067 -:100C80006C25000812A185B00FC98DE80F0014A0D3 +:100C8000B024000812A185B00FC98DE80F0014A090 :100C9000144A006804905168134801F00C03042BB7 :100CA00010D0082B0ED1C1F38343C9031DF80300F4 :100CB0000AD5516804AAC1F34041515C0A4A504325 @@ -257,7 +257,7 @@ :100FF00001D00120EAE70020E8E7000000100240ED :1010000000004242800442420C0000200070004078 :1010100010B5401EB0F1807F01D3012010BD4FF00C -:10102000E02460610F21601700F0C8FF0020A0617C +:10102000E02460610F21601700F086FF0020A061BE :1010300007202061002010BD7047704770B590F800 :101040003C20012A26D0012480F83C40022280F86E :101050003D2003685A689D6822F070060A68324392 @@ -267,7 +267,7 @@ :10109000084670BD022070BD002C014000040040D5 :1010A0000008004010B5040003D094F83D0010B1D2 :1010B00007E0012010BD002084F83C00204600F02D -:1010C0001FF8022084F83D00211D206800F05AFE20 +:1010C0001FF8022084F83D00211D206800F018FE62 :1010D000012084F8460084F83E0084F83F0084F83C :1010E000400084F8410084F8420084F8430084F80A :1010F000440084F8450084F83D00002010BD000045 @@ -281,12 +281,12 @@ :101170003BD148E0022070BD302844D0402834D113 :1011800039E0602828D0702806D0B0F5805F2CD0D8 :10119000B0F5005F29D10AE0CB68D1E901212068D0 -:1011A00000F033FE2068816841F0770109E0CB68E8 -:1011B000D1E90121206800F028FE2068816841F40F -:1011C0008041816011E0CA684968206800F0D2FE61 +:1011A00000F0F1FD2068816841F0770109E0CB682B +:1011B000D1E90121206800F0E6FD2068816841F452 +:1011C0008041816011E0CA684968206800F090FEA3 :1011D0005021206807E016E0CA684968206800F0DE -:1011E000DAFE6021206800F01AFE84F83D500020ED -:1011F00084F83C0070BDCA684968206800F0BAFEF7 +:1011E00098FE6021206800F0D8FD84F83D50002072 +:1011F00084F83C0070BDCA684968206800F078FE39 :1012000040212068EFE7226801461046EBE770476F :1012100070B50446006801694FF00005C9438907AD :1012200015D4C168C943890711D4E91E01610120A1 @@ -317,20 +317,20 @@ :1013B0009DF805B000BD000000100240000801408B :1013C000704770B5044690F83C000D4601280AD0DD :1013D000012084F83C0042B1042A18D0082A2AD0FF -:1013E0000C2A4DD139E0022070BD206800F020FDAC +:1013E0000C2A4DD139E0022070BD206800F0DEFCEF :1013F0002068816941F0080181612068816921F0DC :1014000004018161206881692A69114311E0206823 -:1014100000F036FD2068816941F400618161206837 +:1014100000F0F4FC2068816941F40061816120687A :10142000816921F480618161206881692A6941EACA -:101430000221816124E0206800F04EFD2068C1692E +:101430000221816124E0206800F00CFD2068C16970 :1014400041F00801C1612068C16921F00401C16156 -:101450002068C1692A69114311E0206800F068FD25 +:101450002068C1692A69114311E0206800F026FD67 :101460002068C16941F40061C1612068C16921F44B :101470008061C1612068C1692A6941EA0221C161B4 :10148000002084F83C0070BD10B5040003D094F82F :101490003D0010B107E0012010BD002084F83C00A1 :1014A000204600F01EF8022084F83D00211D20682F -:1014B00000F068FC012084F8460084F83E0084F8BF +:1014B00000F026FC012084F8460084F83E0084F801 :1014C0003F0084F8400084F8410084F8420084F82A :1014D000430084F8440084F8450084F83D0000206F :1014E00010BD70477047000010B50446022249B194 @@ -338,7 +338,7 @@ :10150000012010BD94F83E000128F9D184F83E2056 :101510000FE094F83F000128F2D184F83F2008E062 :1015200094F840000128EBD184F8402001E084F8D1 -:1015300041200122206800F05BFC0F4920688842AE +:1015300041200122206800F019FC0F4920688842F0 :1015400003D1426C42F4004242642068884208D0D1 :10155000B0F1804F05D00949884202D0084988423D :1015600004D1816801F00701062903D0016841F028 @@ -407,414 +407,402 @@ :1019500075FB08B172B6FEE76020CDE90004029481 :101960000822694605480494FFF72BFD08B172B6BA :10197000FEE70248FFF700FD0EB010BD700000202A -:10198000FEE7FEE72DE9F0470C460546DDF820A00E -:1019900098469146571BA3EB040605D0002E1BD199 -:1019A000002F25DD4E461FE0002E09DD474605E0ED -:1019B000F9B2E8B2524600F08DF97F1EA742F7DC7B -:1019C000002E09DA464605E0F1B2E8B2524600F0D0 -:1019D00081F9761CA642F7DBBDE8F087E1B2F0B2F0 -:1019E000524600F077F9761EAE42F7DC002FF3DAAC -:1019F0004E4605E0E1B2F0B2524600F06BF9761CBB -:101A0000AE42F7DBE8E700003CB5A3F12005059CFA -:101A10005E2D26D8082A0DD00C2A15D0102A20D1E8 -:101A2000104A02EB0312A2F50072CDE90024102344 -:101A3000082214E00C4A02EBC302A2F58072CDE941 -:101A40000024082305220AE003EB4302074B03EBC3 -:101A50008202A2F5C072CDE900240C23062200F018 -:101A600096F83CBDE02C0008742500086C2800089E -:101A70002DE9F047DFF860904FF00008454609F582 -:101A8000806A2946002000F0D4F800240AEBC5172C -:101A900009EBC516395D305D884210D0B8F1000FF2 -:101AA00005D14FF001082946204600F0C2F8305D0C -:101AB00000F008F9305D38550020305501E04FF056 -:101AC0000008641CE4B2802CE4D36D1CEDB2082D38 -:101AD000D7D3BDE8F0870000B800002010B5AE20D5 -:101AE00000F0E8F8D52000F0E5F8502000F0E2F82A -:101AF000A82000F0DFF83F2000F0DCF8D32000F051 -:101B0000D9F8002000F0D6F8402000F0D3F88D205E -:101B100000F0D0F8142000F0CDF8202000F0CAF832 -:101B2000022000F0C7F8A12000F0C4F8C02000F0A7 -:101B3000C1F8D92000F0BEF8F12000F0BBF8DB209E -:101B400000F0B8F8302000F0B5F8A42000F0B2F8AA -:101B5000A62000F0AFF8AF2000F0ACF8BDE81040D0 -:101B60000020AFF3008070B5064600242146002017 -:101B700000F05FF80025304600F0A4F86D1CEDB2CF -:101B8000802DF8D3641CE4B2082CEFD370BD2DE98E -:101B9000FF4F0026DDE90DBA994690463746354697 -:101BA00043E000243AE01BF807008021F14008429E -:101BB00025D0BAF1060F1DD2DFE80AF0030B0B03A4 -:101BC0000313019800222844C1B200982044C0B2F7 -:101BD0000EE0019801222844C1B200982044C0B20E -:101BE00006E0019802222844C1B200982044C0B205 -:101BF00000F070F8761CF6B2082E0BD00CE05FEA0D -:101C00000A00DED00128DCD00228F3D0BAF1040F9C -:101C1000F0D1DEE700267F1C641CE4B24445C2D349 -:101C20000EB100267F1C6D1CEDB24D45B9D3BDE849 -:101C3000FF8F10B50446C1F1B700C0B200F03AF80A -:101C4000102040EA141000F035F804F00F00BDE851 -:101C5000104000F02FB82DE9F8430546DDF820903C -:101C60001F4690460E461046082A04D00C2804D081 -:101C7000102A1AD103E0062417E0072415E00824EF -:101C800013E02819802806D306EB0800C6B2402EC0 -:101C900000D300260025424631462846CDF8009064 -:101CA000FFF7B2FE2819C5B27F1C3B78002BE8D1A4 -:101CB000BDE8F88301B56A46012300217820FFF7CB -:101CC0009BFD08BD01B56A46012340217820FFF73E -:101CD00093FD08BD10B5802816D2402914D2CC0837 -:101CE00001F007018023CB40084901EBC414215CBB -:101CF00022B1012A04D0022A05D103E0994302E06F -:101D0000194300E05940215410BD0000B8000020E4 -:101D100070477047FEF778BE30B58FB0282168460F -:101D2000FEF702FB14210AA8FEF7FEFA01210804BF -:101D3000CDE900100024029402250491CDE907505A -:101D40004FF4E01009906846FEF7D2FF08B172B672 -:101D5000FEE70F20CDE90A054FF48060CDE90C4085 -:101D600002210AA80E94FEF7E7FE002801D072B601 -:101D7000FEE70FB030BD70470148FFF749BA0000D9 -:101D800070000020F0B50268164B174C174D4FF04D -:101D90008047984205D0B84203D0A04201D0A84263 -:101DA00003D122F070064A683243984205D0B84207 -:101DB00003D0A04201D0A84203D122F44074CA68E3 -:101DC00022434C6922F08002224302608A68C26288 -:101DD0000A688262984201D1096901630121416167 -:101DE000F0BD0000002C014000040040000800404D -:101DF00010B501F01F030121046A99408C4304626D -:101E0000016A9A401143016210BD10B5846842EA2C -:101E1000032224F47F440A432243826010BD826877 -:101E200022F070020A4342F007018160704700000F -:101E300030B5026A22F001020262026A43688469D4 -:101E400024F073050C682C4322F002058A682A43AB -:101E50000A4DA8420BD122F00805CA6823F440734A -:101E60002A434D6922F004021D438B692B434360D2 -:101E7000846149684163026230BD0000002C01406A -:101E800030B5026A22F010020262026A4368846975 -:101E90000D6824F4E64444EA05248D6822F020020B -:101EA00042EA05120B4DA8420ED1CD6822F0800205 -:101EB00042EA05124D6923F4406343EA85038D69C4 -:101EC00022F0400243EA85034360846149688163EC -:101ED000026230BD002C014030B5026A22F48072EB -:101EE0000262036A4268C46923F4007324F0730534 -:101EF0000C682C438D6843EA05230C4DA8420ED193 -:101F0000CD6823F4006343EA05234D6922F440526F -:101F100042EA05128D6923F4806342EA05124260A9 -:101F2000C4614968C163036230BD0000002C0140F8 -:101F300030B5026A22F480520262046A4268C369C0 -:101F40000D6823F4E64343EA05238D6824F4005426 -:101F500044EA0534064DA84204D14D6922F480427A -:101F600042EA85124260C36149680164046230BD7F -:101F7000002C014010B5036A046A24F001040462D5 -:101F8000846924F0F00444EA021423F00A020A43AC -:101F90008461026210BD10B5036A23F0100303626E -:101FA0008369046A23F4704343EA023224F0A003F5 -:101FB00043EA01118261016210BDFEE70907090EC3 -:101FC000002804DB00F1E02080F80014704700F0E6 -:101FD0000F0000F1E02080F8141D704710B5124C7E -:101FE000A06810B1207828B110E00021084600F068 -:101FF000B9F817E001202070FEF776FBA2689188FF -:10200000084460609178108800F0ACF820780128CE -:1020100008D1FEF769FB6168884203D9002020706F -:1020200000F004F8207810BD1000002010B5084C16 -:10203000A06800280AD0816821B1A160BDE81040E5 -:10204000FEF7C6B8FEF7C4F80020A06010BD00007F -:1020500010000020FEF7E0FCFFF75EFEFFF7DAFB62 -:102060000D480C494FF4804201600C494160002149 -:102070008160C0E9031241618161C1610162FEF7C3 -:1020800039FB08B172B6FEE7FFF732FC00F008F842 -:10209000FEE70000005400401C000020A086010064 -:1020A00086B0002637463446FFF718FD082126483B -:1020B000FFF71AFA002208212448FEF70FFB01253A -:1020C000002123A3102208460095FFF7C4FD0A2231 -:1020D0001523142110460095FFF754FC14223123D8 -:1020E000322110460095FFF74DFC32231E2219467F -:1020F00014200095FFF746FC1E231A46194632208D -:102100000095FFF73FFC641CA4B23A4612A101A857 -:10211000FEF786F801AB0822382100200095FFF772 -:102120009AFDFFF7A5FCFFF759FFFEF7DDFAB04275 -:10213000C6D94FF400410A4806F57A76FEF7C6FA8A -:1021400027460024BCE70000700000200008014082 -:1021500068656C6C6F0000004650533A25640000BF -:10216000000C01402DE9F0410D4E0546B6FBF5F09F -:102170007705401EF862084600F010F9094900F0A2 -:1021800013F80446B6FBF5F0401E00F0EFF82146C8 -:1021900000F018F900F0CAF8F863BDE8F08100001B -:1021A00000A24A040000C8424FF47F0C1CEAD0127F -:1021B0001EBF1CEAD11392EA0C0F93EA0C0F00F039 -:1021C000858090EA010F48BF42F4807240F4000C11 -:1021D00041F400002CF07F4120F07F4000B58142A7 -:1021E000A2EB03020FF2081CACEB504EC0F1000052 -:1021F0009EF800E04FEA4E0E00FB0EFC38BF49008F -:102200004FEA2C1C02F5FA020CFB0EF34FEACE1E2D -:102210004FEA112C4FEAC1210EEB635E42EB2242E2 -:102220000EFB0CFC4FEA1C5300FB03114FEA112C70 -:102230004FEA01310EFB0CFC4FEADC4C00FB0C11A9 -:10224000C14228BF09184CEB03335DF804EB10EBD7 -:10225000410143EBC250B2F57C0F38BF704729D51E -:1022600012F0F00F1CBF00F1C04000F000407047BA -:10227000008182838485868788898B8C8D8E8F915F -:102280009293959697999A9C9D9FA0A2A3A5A7A883 -:10229000AAACAEB0B2B3B5B7B9BCBEC0C2C5C7C9AF -:1022A000CCCED1D4D7D9DCDFE2E6E9ECF0F3F7FA13 -:1022B000FE0000004FEA400C0CF1807CBCF17E4F28 -:1022C00028BF7047B0F1C04000F043B990EA010F59 -:1022D0000CEAD11348BF42F48072624538BF6345AF -:1022E00007D213F47F0F16D080EA010000F00040FF -:1022F000704710B500F0E7F8097EFC3E00F005B825 -:1023000080EA010000F00040704780EA010000F020 -:10231000004000F01EB912F47F0F04BF024870475E -:1023200080EA010000F015B90000C07FC10DD1F1B5 -:102330009E0206DB4FEA002343F0004323FA02F03B -:102340007047004207D54FEA4001B1F1FE4F02D27B -:102350004FF00000704710B500F0B5F849922480A6 -:10236000002070476FEA20007047000010F0004125 -:1023700048BF4042B0FA80F310FA03F2C3F19D0364 -:102380000BD051EAC35101EB1220530638BF7047FE -:1023900000F1010008BF20F001007047B0FA80F39F -:1023A00010FA03F2C3F19D030AD0D90501EB122004 -:1023B000530638BF704700F1010008BF20F001004C -:1023C000704700004FF47F0C1CEAD0121EBF1CEABD -:1023D000D11392EA0C0F93EA0C0F00F0478090EAB9 -:1023E000010F48BF42F480724FF0004C4CEA0020CD -:1023F0004CEA012102EB0302A0FB0113A2F500024B -:10240000002918BF43F001035B0028BF4FEA3303E4 -:1024100042EB22425FEA132C4CEBC2502EBFBCEBC6 -:10242000436FB2F57C0F70474FEA036CBCF1004F6D -:1024300008BF20F00100B2F57C0F38BF70470BD504 -:1024400082F0FF0212F5803FC8BF704700F1C04024 -:10245000D8BF00F00040704700F5000C5FEA4C0C5C -:1024600048BF7047B0F1C04000F073B890EA010F68 -:102470000CEAD11348BF42F48072624538BF63450D -:1024800004D280EA010000F00040704710B500F06F -:102490001AF800BF8900013E00F007B800F009B843 -:1024A0005FEA410C5FEA1C6C08D080EA010000F092 -:1024B00050B85FEA400C5FEA1C6CF6D14FF0004068 -:1024C000A0F5800070470EF1020E2EF0030E5EF8AC -:1024D000044B244204D44FEA4102B2F17F4F11D899 -:1024E0004FEA4003B3F17F4F0CD80ED14FEAD07CB6 -:1024F000B2F17F4F0CEB4C0C0CF1020C08BF4CEB13 -:10250000D17C04E04FF0080C01E04FEAD17C0CEBE9 -:102510004C0324FA03F404F00704B4F1040C06D2CB -:102520000EEB840CBDE810404CF0010C6047DFE876 -:102530000CF0070802024FF00040A0F5800010BD2B -:102540000846420018BFD2F1807288BF00F00040F8 -:1025500010BDFF2141EAD050C005704700000000C7 -:102560000000000001020304060708090000000043 -:1025700001020304000000000000000020202020D1 -:102580002000200050505000000000005050F85033 -:10259000F85050002078C07028F02000C0C81020EB -:1025A0004098180040A0A040A8906800302040004B -:1025B000000000001020404040201000402010107B -:1025C0001020400020A8702070A82000202020F8B3 -:1025D000202020000000000060408000000000F883 -:1025E00000000000000000000060600000081020F3 -:1025F00040800000708898A8C88870002060202063 -:1026000020207000708808304080F800F8081030F2 -:102610000888700010305090F8101000F880F00812 -:1026200008887000384080F088887000F808102012 -:102630004040400070888870888870007088887872 -:102640000810E00000606000606000000060600052 -:102650006060800010204080402010000000F800E2 -:10266000F800000040201008102040007088102062 -:10267000200020007088B8A8B88078002050888892 -:10268000F8888800F08888F08888F000708880805A -:1026900080887000F08888888888F000F88080F052 -:1026A0008080F800F88080F08080800070888080D2 -:1026B000B8887800888888F888888800702020206A -:1026C0002020700038101010109060008890A0C07A -:1026D000A0908800808080808080F80088D8A8A89A -:1026E000888888008888C8A8988888007088888822 -:1026F00088887000F08888F08080800070888888E2 -:10270000A8906800F08888F0A09088007088807099 -:1027100008887000F82020202020200088888888E1 -:10272000888870008888888888502000888888A8D1 -:10273000A8D8880088885020508888008888502031 -:1027400020202000F80810204080F800F0C0C0C011 -:10275000C0C0F00000804020100800007818181851 -:10276000181878002070A82020202000002040F8B1 -:102770004020000020100800000000000000E010D1 -:10278000709068008080B0C888C8B0000000708871 -:102790008080700008086898889868000000708839 -:1027A000F0807000304840F04040400000007088E9 -:1027B000887808F08080B0C88888880020000020D1 -:1027C000202020001000003010101060808090A0A9 -:1027D000C0A098006020202020207000000050A899 -:1027E000A8A8A8000000B048484848000000708829 -:1027F000888870000000F08888F080800000788869 -:10280000887808080000B048404040000000788008 -:102810007008F0004040F8404048300000009090C0 -:102820009090680000008888885020000000A8A8C8 -:10283000A8A8500000008850205088000000888818 -:10284000986808F00000F8102040F8002040408010 -:1028500040402000202020002020200020101008D0 -:1028600010102000000040A8100000000000000030 -:102870000000000000000000001010101010000008 -:1028800010000000006C484800000000000000003C -:10289000001414287C287C28505000000010384078 -:1028A0004038487010100000002050200C700814B0 -:1028B00008000000000000182020544834000000E8 -:1028C00000101010100000000000000000080810A8 -:1028D0001010101010080800002020101010101008 -:1028E0001020200000107C102828000000000000AC -:1028F0000000101010FC101010000000000000007C -:10290000000000181030200000000000007C0000D3 -:102910000000000000000000000000303000000057 -:10292000000404080810102020400000003844442F -:1029300044444444380000000030101010101010BF -:102940007C00000000384404081020447C00000093 -:10295000003844041804044438000000000C141427 -:1029600024447C040C000000003C20203804044473 -:1029700038000000001C2040784444443800000027 -:10298000007C44040808081010000000003844448B -:10299000384444443800000000384444443C0408AF -:1029A00070000000000000303000003030000000F7 -:1029B00000000018180000183020000000000C1063 -:1029C000608060100C000000000000007C007C00B3 -:1029D000000000000000C02018041820C000000003 -:1029E0000000182404081000300000003844444C53 -:1029F00054544C40443800000030102828287C44AF -:102A0000EC00000000F8444478444444F80000001E -:102A1000003C4440404040443800000000F048443E -:102A200044444448F000000000FC445070504044CE -:102A3000FC000000007C20283828202070000000C6 -:102A4000003C4440404C44443800000000EC444406 -:102A50007C444444EC000000007C10101010101066 -:102A60007C000000003C080808484848300000008E -:102A700000EC444850704844E400000000702020FE -:102A8000202024247C00000000EC6C6C545444444E -:102A9000EC00000000EC64645454544CEC00000062 -:102AA000003844444444444438000000007824245E -:102AB000243820207000000000384444444444443A -:102AC000381C000000F8444444784844E00000000A -:102AD00000344C40380404645800000000FC90109E -:102AE000101010103800000000EC444444444444EA -:102AF0003800000000EC4444282828101000000092 -:102B000000EC4444545454542800000000C44428A9 -:102B100010102844C400000000EC442828101010B5 -:102B200038000000007C4408101020447C000000A5 -:102B300000382020202020202020380000402020A5 -:102B400020101008080800000038080808080808C5 -:102B500008083800001010284400000000000000A1 -:102B60000000000000000000000000FC0010080051 -:102B7000000000000000000000000038443C444415 -:102B80003C00000000C0405864444444F800000089 -:102B90000000003C4440404438000000000C043475 -:102BA0004C4444443C00000000000038447C404059 -:102BB0003C000000001C207C202020207C00000025 -:102BC000000000344C4444443C04380000C04058E9 -:102BD00064444444EC000000001000701010101019 -:102BE0007C00000000100078080808080808700041 -:102BF00000C0405C48705048DC00000000301010FD -:102C0000101010107C000000000000E854545454D0 -:102C1000FC000000000000D864444444EC000000C4 -:102C2000000000384444444438000000000000D84C -:102C3000644444447840E000000000344C44444480 -:102C40003C040C000000006C302020207C000000C0 -:102C50000000003C44380444780000000000207C60 -:102C6000202020201C000000000000CC4444444CE4 -:102C700034000000000000EC44442828100000004C -:102C8000000000EC4454545428000000000000CC24 -:102C900048303048CC000000000000EC44242818E4 -:102CA000101078000000007C481020447C000000D8 -:102CB0000008101010102010101008000010101044 -:102CC000101010101010000000201010101008102C -:102CD0001010200000000000002458000000000038 -:102CE00000000000000000000000000000000000E4 -:102CF000000000183C3C3C18181800181800000090 -:102D00000066666666240000000000000000000007 -:102D1000000000006C6CFE6C6C6CFE6C6C000000C3 -:102D20001818187CC6C2C07C0686C67C181800001D -:102D30000000000000C2C60C183060C6860000000B -:102D4000000000386C6C3876DCCCCCCC760000000F -:102D50000030303030600000000000000000000053 -:102D60000000000C18303030303030180C000000FB -:102D700000000030180C0C0C0C0C0C18300000007B -:102D8000000000000000663CFF3C66000000000000 -:102D900000000000000018187E1818000000000055 -:102DA00000000000000000000000181818300000AB -:102DB0000000000000000000FE0000000000000015 -:102DC00000000000000000000000001818000000D3 -:102DD000000000000002060C183060C080000000F7 -:102DE0000000007CC6C6CED6D6E6C6C67C00000073 -:102DF0000000001838781818181818187E000000FD -:102E00000000007CC6060C183060C0C6FE00000042 -:102E10000000007CC606063C060606C67C000000D4 -:102E20000000000C1C3C6CCCFE0C0C0C1E000000C6 -:102E3000000000FEC0C0C0FC0E0606C67C000000FC -:102E40000000003860C0C0FCC6C6C6C67C000000DA -:102E5000000000FEC606060C1830303030000000BE -:102E60000000007CC6C6C67CC6C6C6C67C00000084 -:102E70000000007CC6C6C67E0606060C7800000070 -:102E800000000000001818000000181800000000E2 -:102E900000000000001818000000181830000000A2 -:102EA00000000000060C18306030180C060000000E -:102EB00000000000000000FE0000FE000000000016 -:102EC000000000006030180C060C18306000000094 -:102ED0000000007CC6C60C18181800181800000066 -:102EE000000000007CC6C6DEDEDEDCC07C00000028 -:102EF00000000010386CC6C6FEC6C6C6C60000007C -:102F0000000000FC6666667C66666666FC00000083 -:102F10000000003C66C2C0C0C0C0C2663C000000E9 -:102F2000000000F86C6666666666666CF800000075 -:102F3000000000FE6662687868606266FE0000005D -:102F4000000000FE6662687868606060F000000063 -:102F50000000003C66C2C0C0DEC6C6663A00000083 -:102F6000000000C6C6C6C6FEC6C6C6C6C60000006D -:102F70000000003C18181818181818183C00000019 -:102F80000000001E0C0C0C0C0CCCCCCC780000000B -:102F9000000000E6666C6C78786C6666E6000000FF -:102FA000000000F06060606060606266FE0000002B -:102FB000000000C6EEFEFED6C6C6C6C6C6000000AD -:102FC000000000C6E6F6FEDECEC6C6C6C60000009D -:102FD000000000386CC6C6C6C6C6C66C3800000005 -:102FE000000000FC6666667C60606060F0000000C7 -:102FF0000000007CC6C6C6C6C6C6D6DE7C0C0E0067 -:10300000000000FC6666667C6C666666E600000092 -:103010000000007CC6C660380C06C6C67C000000F6 -:103020000000007E7E5A1818181818183C0000007E -:10303000000000C6C6C6C6C6C6C6C6C67C0000001E -:10304000000000C6C6C6C6C6C6C66C381000000062 -:10305000000000C6C6C6C6C6D6D6FE6C6C00000010 -:10306000000000C6C66C6C38386C6CC6C600000028 -:10307000000000666666663C181818183C000000E0 -:10308000000000FEC6860C183060C2C6FE000000BC -:103090000000003C30303030303030303C00000038 -:1030A0000000000080C0E070381C0E060200000026 -:1030B0000000003C0C0C0C0C0C0C0C0C3C00000038 -:1030C0001038386CC600000000000000000000004E -:1030D0000000000000000000000000000000FF00F1 -:1030E0003030301800000000000000000000000038 -:1030F000000000000000780C7CCCCCCC76000000F6 -:10310000000000E06060786C66666666DC000000C7 -:103110000000000000007CC6C0C0C0C67C000000EB -:103120000000001C0C0C3C6CCCCCCCCC760000001D -:103130000000000000007CC6FEC0C0C67C0000008D -:10314000000000386C6460F060606060F0000000B7 -:1031500000000000000076CCCCCCCCCC7C0CCC7831 -:10316000000000E060606C7666666666E60000005F -:103170000000001818003818181818183C00000033 -:103180000000000606000E06060606060666663CF9 -:10319000000000E06060666C78786C66E600000015 -:1031A0000000003818181818181818183C000000EB -:1031B000000000000000ECFED6D6D6D6D6000000F7 -:1031C000000000000000DC666666666666000000BF -:1031D0000000000000007CC6C6C6C6C67C00000019 -:1031E000000000000000DC66666666667C6060F0D9 -:1031F00000000000000076CCCCCCCCCC7C0C0C1EAB -:10320000000000000000DC7662606060F0000000FA -:103210000000000000007CC660380CC67C00000086 -:10322000000000103030FC30303030361C00000020 -:10323000000000000000CCCCCCCCCCCC7600000050 -:1032400000000000000066666666663C180000002C -:10325000000000000000C6C6C6D6D6FE6C00000006 -:10326000000000000000C66C3838386CC600000052 -:10327000000000000000C6C6C6C6C6C67E060CF822 -:10328000000000000000FECC183060C6FE00000008 -:103290000000000E18181870181818180E000000FA -:1032A0000000001818181800181818181800000046 -:1032B000000000701818180E181818187000000078 -:1032C00000000076DC0000000000000000000000AC -:1032D000F0320008000000201C0000002801000857 -:1032E0000C3300081C000020FC0E00004401000804 -:1032F0000100000010000000000000000024F400A5 -:0C330000000000000000000000000000C1 +:10198000FEE7FEE73CB5A3F12005059C5E2D26D8B9 +:10199000082A0DD00C2A15D0102A20D1104A02EBAB +:1019A0000312A2F50072CDE900241023082214E0EE +:1019B0000C4A02EBC302A2F58072CDE90024082391 +:1019C00005220AE003EB4302074B03EB8202A2F578 +:1019D000C072CDE900240C23062200F096F83CBD2D +:1019E000242C0008B8240008B02700082DE9F05F77 +:1019F0004FF00008DFF85CA04546C146AAF5806BB1 +:101A00002946002000F0D3F800240AEBC5170BEBA1 +:101A1000C516395D305D88420ED0B8F1000F05D192 +:101A20004FF001082946204600F0C1F8305D00F073 +:101A300007F9305D385501E04FF0000806F80490D2 +:101A4000641CE4B2802CE4D36D1CEDB2082DD7D316 +:101A5000BDE8F09FB804002010B5AE2000F0E8F813 +:101A6000D52000F0E5F8502000F0E2F8A82000F0C2 +:101A7000DFF83F2000F0DCF8D32000F0D9F8002098 +:101A800000F0D6F8402000F0D3F88D2000F0D0F818 +:101A9000142000F0CDF8202000F0CAF8022000F059 +:101AA000C7F8A12000F0C4F8C02000F0C1F8D92088 +:101AB00000F0BEF8F12000F0BBF8DB2000F0B8F831 +:101AC000302000F0B5F8A42000F0B2F8A62000F015 +:101AD000AFF8AF2000F0ACF8BDE810400020AFF345 +:101AE000008070B5064600242146002000F05FF813 +:101AF0000025304600F0A4F86D1CEDB2802DF8D31F +:101B0000641CE4B2082CEFD370BD2DE9FF4F002612 +:101B1000DDE90DBA994690463746354643E0002444 +:101B20003AE01BF807008021F140084225D0BAF1C5 +:101B3000060F1DD2DFE80AF0030B0B030313019815 +:101B400000222844C1B200982044C0B20EE001989F +:101B500001222844C1B200982044C0B206E0019896 +:101B600002222844C1B200982044C0B200F070F8AC +:101B7000761CF6B2082E0BD00CE05FEA0A00DED02D +:101B80000128DCD00228F3D0BAF1040FF0D1DEE74F +:101B900000267F1C641CE4B24445C2D30EB100266B +:101BA0007F1C6D1CEDB24D45B9D3BDE8FF8F10B55C +:101BB0000446C1F1B700C0B200F03AF8102040EA84 +:101BC000141000F035F804F00F00BDE8104000F0EC +:101BD0002FB82DE9F8430546DDF820901F469046C2 +:101BE0000E461046082A04D00C2804D0102A1AD118 +:101BF00003E0062417E0072415E0082413E0281961 +:101C0000802806D306EB0800C6B2402E00D300267B +:101C10000025424631462846CDF80090FFF7B2FE37 +:101C20002819C5B27F1C3B78002BE8D1BDE8F883AA +:101C300001B56A46012300217820FFF7DDFD08BDCC +:101C400001B56A46012340217820FFF7D5FD08BD84 +:101C500010B5802816D2402914D2CC0801F0070113 +:101C60008023CB40084901EBC414215C22B1012A36 +:101C700004D0022A05D103E0994302E0194300E0B1 +:101C80005940215410BD0000B80000207047704733 +:101C9000FEF7BABE30B58FB028216846FEF744FB88 +:101CA00014210AA8FEF740FB01210804CDE9001029 +:101CB0000024029402250491CDE907504FF4E0106E +:101CC00009906846FFF714F808B172B6FEE70F20D6 +:101CD000CDE90A054FF48060CDE90C4002210AA845 +:101CE0000E94FEF729FF002801D072B6FEE70FB070 +:101CF00030BD70470148FFF78BBA0000700000202C +:101D0000F0B50268164B174C174D4FF080479842BC +:101D100005D0B84203D0A04201D0A84203D122F09E +:101D200070064A683243984205D0B84203D0A042B8 +:101D300001D0A84203D122F44074CA6822434C69FE +:101D400022F08002224302608A68C2620A688262CC +:101D5000984201D10969016301214161F0BD000090 +:101D6000002C0140000400400008004010B501F0C4 +:101D70001F030121046A99408C430462016A9A405E +:101D80001143016210BD10B5846842EA032224F4B5 +:101D90007F440A432243826010BD826822F07002B1 +:101DA0000A4342F0070181607047000030B5026AC3 +:101DB00022F001020262026A4368846924F073051A +:101DC0000C682C4322F002058A682A430A4DA84277 +:101DD0000BD122F00805CA6823F440732A434D69E9 +:101DE00022F004021D438B692B43436084614968E0 +:101DF0004163026230BD0000002C014030B5026A30 +:101E000022F010020262026A436884690D6824F4B9 +:101E1000E64444EA05248D6822F0200242EA0512D5 +:101E20000B4DA8420ED1CD6822F0800242EA051285 +:101E30004D6923F4406343EA85038D6922F0400233 +:101E400043EA85034360846149688163026230BD6F +:101E5000002C014030B5026A22F480720262036AEB +:101E60004268C46923F4007324F073050C682C43A2 +:101E70008D6843EA05230C4DA8420ED1CD6823F4AA +:101E8000006343EA05234D6922F4405242EA0512F9 +:101E90008D6923F4806342EA05124260C461496897 +:101EA000C163036230BD0000002C014030B5026AFE +:101EB00022F480520262046A4268C3690D6823F406 +:101EC000E64343EA05238D6824F4005444EA0534CC +:101ED000064DA84204D14D6922F4804242EA85129F +:101EE0004260C36149680164046230BD002C014056 +:101EF00010B5036A046A24F001040462846924F0C2 +:101F0000F00444EA021423F00A020A4384610262E4 +:101F100010BD10B5036A23F0100303628369046ADD +:101F200023F4704343EA023224F0A00343EA011190 +:101F30008261016210BDFEE70907090E002804DB7B +:101F400000F1E02080F80014704700F00F0000F16D +:101F5000E02080F8141D704710B5124CA06810B135 +:101F6000207828B110E00021084600F09DF817E025 +:101F700001202070FEF7B8FBA268918808446060D9 +:101F80009178108800F090F82078012808D1FEF7A9 +:101F9000ABFB6168884203D90020207000F004F890 +:101FA000207810BD1000002010B5084CA068002853 +:101FB0000AD0816821B1A160BDE81040FEF708B9E0 +:101FC000FEF706F90020A06010BD00001000002000 +:101FD000FEF722FDFFF75EFEFFF71CFC0D480C49E3 +:101FE0004FF4804201600C49416000218160C0E9EA +:101FF000031241618161C1610162FEF77BFB08B19F +:1020000072B6FEE7FFF774FC00F008F8FEE7000088 +:10201000005400401C000020A086010086B000276C +:102020003D463E463C46FFF717FD08211948FFF79D +:102030005BFA012208211848FEF750FBDFF85CA08C +:102040004FF001084FF4004917B1012F11D101E001 +:1020500001270EE0641CA4B2324611A101A8FEF7CC +:10206000DFF801AB082238210020CDF80080FFF70F +:10207000B0FDFFF7BBFCFFF76FFFFEF735FBA84293 +:10208000E2D94946504605F57A75FEF71FFB26460C +:102090000024D9E77000002000080140000C014036 +:1020A0004650533A256400002DE9F0410D4E054697 +:1020B000B6FBF5F07705401EF862084600F010F90F +:1020C000094900F013F80446B6FBF5F0401E00F095 +:1020D000EFF8214600F018F900F0CAF8F863BDE8FF +:1020E000F081000000A24A040000C8424FF47F0CB7 +:1020F0001CEAD0121EBF1CEAD11392EA0C0F93EA1D +:102100000C0F00F0858090EA010F48BF42F4807206 +:1021100040F4000C41F400002CF07F4120F07F409F +:1021200000B58142A2EB03020FF2081CACEB504E4B +:10213000C0F100009EF800E04FEA4E0E00FB0EFCDE +:1021400038BF49004FEA2C1C02F5FA020CFB0EF3D3 +:102150004FEACE1E4FEA112C4FEAC1210EEB635E0F +:1021600042EB22420EFB0CFC4FEA1C5300FB031116 +:102170004FEA112C4FEA01310EFB0CFC4FEADC4C0C +:1021800000FB0C11C14228BF09184CEB03335DF86A +:1021900004EB10EB410143EBC250B2F57C0F38BFAA +:1021A000704729D512F0F00F1CBF00F1C04000F0BD +:1021B00000407047008182838485868788898B8C64 +:1021C0008D8E8F919293959697999A9C9D9FA0A2A0 +:1021D000A3A5A7A8AAACAEB0B2B3B5B7B9BCBEC0F0 +:1021E000C2C5C7C9CCCED1D4D7D9DCDFE2E6E9EC91 +:1021F000F0F3F7FAFE0000004FEA400C0CF1807C8F +:10220000BCF17E4F28BF7047B0F1C04000F043B929 +:1022100090EA010F0CEAD11348BF42F48072624584 +:1022200038BF634507D213F47F0F16D080EA010050 +:1022300000F00040704710B500F0E7F8097EFC3E62 +:1022400000F005B880EA010000F00040704780EA25 +:10225000010000F0004000F01EB912F47F0F04BF2F +:102260000248704780EA010000F015B90000C07F05 +:10227000C10DD1F19E0206DB4FEA002343F000437B +:1022800023FA02F07047004207D54FEA4001B1F14E +:10229000FE4F02D24FF00000704710B500F0B5F8C5 +:1022A00049922480002070476FEA200070470000A8 +:1022B00010F0004148BF4042B0FA80F310FA03F238 +:1022C000C3F19D030BD051EAC35101EB1220530619 +:1022D00038BF704700F1010008BF20F001007047CF +:1022E000B0FA80F310FA03F2C3F19D030AD0D905C6 +:1022F00001EB1220530638BF704700F1010008BF00 +:1023000020F00100704700004FF47F0C1CEAD0124F +:102310001EBF1CEAD11392EA0C0F93EA0C0F00F0D7 +:10232000478090EA010F48BF42F480724FF0004CA2 +:102330004CEA00204CEA012102EB0302A0FB01134E +:10234000A2F50002002918BF43F001035B0028BF7B +:102350004FEA330342EB22425FEA132C4CEBC250AC +:102360002EBFBCEB436FB2F57C0F70474FEA036C96 +:10237000BCF1004F08BF20F00100B2F57C0F38BF60 +:1023800070470BD582F0FF0212F5803FC8BF70473F +:1023900000F1C040D8BF00F00040704700F5000CCD +:1023A0005FEA4C0C48BF7047B0F1C04000F073B812 +:1023B00090EA010F0CEAD11348BF42F480726245E3 +:1023C00038BF634504D280EA010000F00040704746 +:1023D00010B500F01AF800BF8900013E00F007B800 +:1023E00000F009B85FEA410C5FEA1C6C08D080EA93 +:1023F000010000F050B85FEA400C5FEA1C6CF6D1B7 +:102400004FF00040A0F5800070470EF1020E2EF054 +:10241000030E5EF8044B244204D44FEA4102B2F1A9 +:102420007F4F11D84FEA4003B3F17F4F0CD80ED144 +:102430004FEAD07CB2F17F4F0CEB4C0C0CF1020C4C +:1024400008BF4CEBD17C04E04FF0080C01E04FEAF0 +:10245000D17C0CEB4C0324FA03F404F00704B4F130 +:10246000040C06D20EEB840CBDE810404CF0010CBD +:102470006047DFE80CF0070802024FF00040A0F5CB +:10248000800010BD0846420018BFD2F1807288BF9C +:1024900000F0004010BDFF2141EAD050C005704758 +:1024A0000000000000000000010203040607080904 +:1024B0000000000001020304000000000000000012 +:1024C000202020202000200050505000000000005C +:1024D0005050F850F85050002078C07028F020007C +:1024E000C0C810204098180040A0A040A8906800E4 +:1024F000302040000000000010204040402010002C +:10250000402010101020400020A8702070A820004B +:10251000202020F8202020000000000060408000E3 +:10252000000000F8000000000000000000606000F3 +:102530000008102040800000708898A8C8887000AB +:102540002060202020207000708808304080F80033 +:10255000F80810300888700010305090F810100003 +:10256000F880F00808887000384080F08888700093 +:10257000F8081020404040007088887088887000FB +:10258000708888780810E0000060600060600000DB +:1025900000606000606080001020408040201000DB +:1025A0000000F800F8000000402010081020400053 +:1025B00070881020200020007088B8A8B8807800AB +:1025C00020508888F8888800F08888F08888F00093 +:1025D0007088808080887000F08888888888F00003 +:1025E000F88080F08080F800F88080F080808000A3 +:1025F00070888080B8887800888888F88888880003 +:1026000070202020202070003810101010906000E2 +:102610008890A0C0A0908800808080808080F80092 +:1026200088D8A8A8888888008888C8A8988888003A +:102630007088888888887000F08888F080808000A2 +:1026400070888888A8906800F08888F0A09088003A +:102650007088807008887000F820202020202000DA +:1026600088888888888870008888888888502000B2 +:10267000888888A8A8D88800888850205088880032 +:102680008888502020202000F80810204080F80082 +:10269000F0C0C0C0C0C0F0000080402010080000A2 +:1026A00078181818181878002070A820202020000A +:1026B000002040F84020000020100800000000002A +:1026C0000000E010709068008080B0C888C8B0003A +:1026D00000007088808070000808689888986800FA +:1026E00000007088F0807000304840F040404000AA +:1026F00000007088887808F08080B0C888888800DA +:102700002000002020202000100000301010106059 +:10271000808090A0C0A09800602020202020700021 +:10272000000050A8A8A8A8000000B04848484800E9 +:1027300000007088888870000000F08888F0808031 +:1027400000007888887808080000B04840404000C1 +:10275000000078807008F0004040F84040483000A9 +:1027600000009090909068000000888888502000B9 +:102770000000A8A8A8A85000000088502050880099 +:1027800000008888986808F00000F8102040F800E1 +:1027900020404080404020002020200020202000B9 +:1027A0002010100810102000000040A810000000A9 +:1027B00000000000000000000000000000101010E9 +:1027C0001010000010000000006C484800000000DD +:1027D00000000000001414287C287C2850500000C1 +:1027E0000010384040384870101000000020502081 +:1027F0000C70081408000000000000182020544845 +:102800003400000000101010100000000000000054 +:1028100000080810101010101008080000202010E8 +:10282000101010101020200000107C10282800002C +:10283000000000000000101010FC1010100000003C +:102840000000000000000018103020000000000010 +:10285000007C0000000000000000000000000030CC +:102860003000000000040408081010202040000080 +:102870000038444444444444380000000030101000 +:10288000101010107C000000003844040810204490 +:102890007C000000003844041804044438000000A0 +:1028A000000C141424447C040C000000003C202084 +:1028B0003804044438000000001C2040784444449C +:1028C00038000000007C44040808081010000000D4 +:1028D000003844443844444438000000003844443C +:1028E000443C04087000000000000030300000305C +:1028F0003000000000000018180000183020000010 +:1029000000000C10608060100C000000000000004F +:102910007C007C00000000000000C020180418208B +:10292000C00000000000182404081000300000005F +:102930003844444C54544C40443800000030102873 +:1029400028287C44EC00000000F8444478444444C7 +:10295000F8000000003C4440404040443800000083 +:1029600000F0484444444448F000000000FC445057 +:1029700070504044FC000000007C202838282020B3 +:1029800070000000003C4440404C444438000000CB +:1029900000EC44447C444444EC000000007C1010F3 +:1029A000101010107C000000003C0808084848483F +:1029B0003000000000EC444850704844E40000003F +:1029C00000702020202024247C00000000EC6C6C8F +:1029D00054544444EC00000000EC64645454544CDF +:1029E000EC000000003844444444444438000000F3 +:1029F000007824242438202070000000003844444B +:102A000044444444381C000000F84444447848449A +:102A1000E000000000344C4038040464580000001A +:102A200000FC9010101010103800000000EC44441E +:102A3000444444443800000000EC44442828281052 +:102A40001000000000EC444454545454280000008A +:102A500000C4442810102844C400000000EC44289E +:102A60002810101038000000007C4408101020448A +:102A70007C0000000038202020202020202038006A +:102A80000040202020101008080800000038080826 +:102A90000808080808083800001010284400000042 +:102AA000000000000000000000000000000000FC2A +:102AB00000100800000000000000000000000038C6 +:102AC000443C44443C00000000C04058644444443A +:102AD000F80000000000003C444040443800000082 +:102AE000000C04344C4444443C0000000000003816 +:102AF000447C40403C000000001C207C2020202022 +:102B00007C000000000000344C4444443C04380085 +:102B100000C0405864444444EC00000000100070C1 +:102B2000101010107C000000001000780808080841 +:102B30000808700000C0405C48705048DC0000008D +:102B400000301010101010107C000000000000E891 +:102B500054545454FC000000000000D86444444421 +:102B6000EC000000000000384444444438000000F9 +:102B7000000000D8644444447840E0000000003481 +:102B80004C4444443C040C000000006C30202020E5 +:102B90007C0000000000003C443804447800000041 +:102BA0000000207C202020201C000000000000CC21 +:102BB0004444444C34000000000000EC4444282805 +:102BC00010000000000000EC4454545428000000A1 +:102BD000000000CC48303048CC000000000000EC81 +:102BE00044242818101078000000007C481020446D +:102BF0007C000000000810101010201010100800B9 +:102C000000101010101010101010000000201010F4 +:102C100010100810101020000000000000245800C0 +:102C200000000000000000000000000000000000A4 +:102C300000000000000000183C3C3C181818001868 +:102C400018000000006666666624000000000000B0 +:102C500000000000000000006C6CFE6C6C6CFE6CF0 +:102C60006C0000001818187CC6C2C07C0686C67CA2 +:102C7000181800000000000000C2C60C183060C622 +:102C800086000000000000386C6C3876DCCCCCCCC0 +:102C9000760000000030303030600000000000009E +:102CA000000000000000000C1830303030303018C8 +:102CB0000C00000000000030180C0C0C0C0C0C1860 +:102CC00030000000000000000000663CFF3C660091 +:102CD0000000000000000000000018187E18180016 +:102CE00000000000000000000000000000001818B4 +:102CF000183000000000000000000000FE0000008E +:102D000000000000000000000000000000000018AB +:102D100018000000000000000002060C183060C01F +:102D2000800000000000007CC6C6CED6D6E6C6C62F +:102D30007C000000000000183878181818181818BF +:102D40007E0000000000007CC6060C183060C0C683 +:102D5000FE0000000000007CC606063C060606C613 +:102D60007C0000000000000C1C3C6CCCFE0C0C0C29 +:102D70001E000000000000FEC0C0C0FC0E0606C61B +:102D80007C0000000000003860C0C0FCC6C6C6C69B +:102D90007C000000000000FEC606060C1830303033 +:102DA000300000000000007CC6C6C67CC6C6C6C691 +:102DB0007C0000000000007CC6C6C67E0606060C2D +:102DC000780000000000000000181800000018182B +:102DD0000000000000000000001818000000181893 +:102DE0003000000000000000060C18306030180CA5 +:102DF0000600000000000000000000FE0000FE00D1 +:102E000000000000000000006030180C060C1830B4 +:102E1000600000000000007CC6C60C1818180018DE +:102E200018000000000000007CC6C6DEDEDEDCC04C +:102E30007C00000000000010386CC6C6FEC6C6C686 +:102E4000C6000000000000FC6666667C666666667A +:102E5000FC0000000000003C66C2C0C0C0C0C266EA +:102E60003C000000000000F86C6666666666666CF2 +:102E7000F8000000000000FE666268786860626624 +:102E8000FE000000000000FE666268786860606016 +:102E9000F00000000000003C66C2C0C0DEC6C6668E +:102EA0003A000000000000C6C6C6C6FEC6C6C6C6BA +:102EB000C60000000000003C181818181818181850 +:102EC0003C0000000000001E0C0C0C0C0CCCCCCC08 +:102ED00078000000000000E6666C6C78786C66662E +:102EE000E6000000000000F0606060606060626604 +:102EF000FE000000000000C6EEFEFED6C6C6C6C636 +:102F0000C6000000000000C6E6F6FEDECEC6C6C65D +:102F1000C6000000000000386CC6C6C6C6C6C66C37 +:102F200038000000000000FC6666667C606060603F +:102F3000F00000000000007CC6C6C6C6C6C6D6DECD +:102F40007C0C0E00000000FC6666667C6C666666A3 +:102F5000E60000000000007CC6C660380C06C6C64D +:102F60007C0000000000007E7E5A181818181818FF +:102F70003C000000000000C6C6C6C6C6C6C6C6C61F +:102F80007C000000000000C6C6C6C6C6C6C66C38B7 +:102F900010000000000000C6C6C6C6C6D6D6FE6C2D +:102FA0006C000000000000C6C66C6C38386C6CC643 +:102FB000C6000000000000666666663C1818181817 +:102FC0003C000000000000FEC6860C183060C2C63F +:102FD000FE0000000000003C303030303030303037 +:102FE0003C0000000000000080C0E070381C0E06AD +:102FF000020000000000003C0C0C0C0C0C0C0C0C33 +:103000003C0000001038386CC600000000000000D2 +:1030100000000000000000000000000000000000B0 +:103020000000FF00303030180000000000000000F9 +:1030300000000000000000000000780C7CCCCCCC2C +:1030400076000000000000E06060786C66666666EE +:10305000DC0000000000000000007CC6C0C0C0C64C +:103060007C0000000000001C0C0C3C6CCCCCCCCCD8 +:10307000760000000000000000007CC6FEC0C0C654 +:103080007C000000000000386C6460F060606060EC +:10309000F000000000000000000076CCCCCCCCCCCE +:1030A0007C0CCC78000000E060606C76666666663A +:1030B000E60000000000001818003818181818184A +:1030C0003C0000000000000606000E06060606068C +:1030D0000666663C000000E06060666C78786C66AE +:1030E000E600000000000038181818181818181802 +:1030F0003C000000000000000000ECFED6D6D6D652 +:10310000D6000000000000000000DC66666666660F +:10311000660000000000000000007CC6C6C6C6C6EF +:103120007C000000000000000000DC666666666649 +:103130007C6060F000000000000076CCCCCCCCCCF1 +:103140007C0C0C1E000000000000DC7662606060F9 +:10315000F00000000000000000007CC660380CC6D3 +:103160007C000000000000103030FC303030303681 +:103170001C000000000000000000CCCCCCCCCCCC6B +:103180007600000000000000000066666666663C8F +:1031900018000000000000000000C6C6C6D6D6FE1B +:1031A0006C000000000000000000C66C3838386C6D +:1031B000C6000000000000000000C6C6C6C6C6C6A5 +:1031C0007E060CF8000000000000FECC183060C63F +:1031D000FE0000000000000E1818187018181818CB +:1031E0000E00000000000018181818001818181811 +:1031F00018000000000000701818180E1818181891 +:103200007000000000000076DC00000000000000FC +:103210000000000034320008000000201C00000004 +:1032200028010008503200081C000020FC0E00009D +:103230004401000801000000100000000000000030 +:103240000024F40000000000000000000000000066 :04000005080000ED02 :00000001FF diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.htm b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.htm index c15b030..a083239 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.htm +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.htm @@ -3,9 +3,9 @@ Static Call Graph - [f103c8t6_KEIL\f103c8t6_KEIL.axf]

Static Call Graph for image f103c8t6_KEIL\f103c8t6_KEIL.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Wed Apr 20 18:39:59 2022 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Thu Apr 21 16:08:22 2022

-

Maximum Stack Usage = 224 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

+

Maximum Stack Usage = 232 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

__rt_entry_main ⇒ main ⇒ mymain ⇒ OLED_Cache_to_hardware ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout

@@ -104,9 +104,9 @@ Global Symbols

[Calls]

  • >>   __rt_entry
-

__scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) +

__scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) -

__scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) +

__scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

__scatterload_copy (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)

[Calls]

  • >>   __scatterload_copy @@ -114,7 +114,7 @@ Global Symbols
    [Called By]
    • >>   __scatterload_copy
    -

    __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED) +

    __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)

    _printf_d (Thumb, 0 bytes, Stack size unknown bytes, _printf_d.o(.ARM.Collect$$_printf_percent$$00000009))

    [Stack]

    • Max Depth = 56 + Unknown Stack Size @@ -127,80 +127,80 @@ Global Symbols

      [Called By]
      • >>   __printf
      -

      _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017)) +

      _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017))

      __rt_lib_init (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))

      [Called By]

      • >>   __rt_entry_li
      -

      __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) +

      __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) -

      __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C)) +

      __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C)) -

      __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) +

      __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) -

      __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) +

      __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) -

      __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) +

      __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) -

      __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) +

      __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) -

      __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002)) +

      __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002)) -

      __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) +

      __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) -

      __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) +

      __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) -

      __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A)) +

      __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A)) -

      __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011)) +

      __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011)) -

      __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) +

      __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) -

      __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) +

      __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) -

      __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) +

      __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) -

      __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) +

      __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) -

      __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) +

      __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) -

      __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) +

      __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) -

      __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033)) +

      __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033)) -

      __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) +

      __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) -

      __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) +

      __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) -

      __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C)) +

      __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))

      __rt_lib_shutdown (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))

      [Called By]

      • >>   __rt_exit_ls
      -

      __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) +

      __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) -

      __rt_lib_shutdown_fini_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) +

      __rt_lib_shutdown_fini_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) -

      __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000009)) +

      __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000009)) -

      __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000011)) +

      __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000011)) -

      __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000012)) +

      __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000012)) -

      __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)) +

      __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)) -

      __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000006)) +

      __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000006)) -

      __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E)) +

      __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E))

      __rt_entry (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))

      [Called By]

      • >>   __scatterload_rt2
      • >>   __main
      -

      __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002)) +

      __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))

      __rt_entry_sh (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))

      [Stack]

      • Max Depth = 8 + Unknown Stack Size @@ -213,17 +213,17 @@ Global Symbols

        [Calls]
        • >>   __rt_lib_init
        -

        __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009)) +

        __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))

        __rt_entry_main (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D)) -

        [Stack]

        • Max Depth = 224 + Unknown Stack Size +

          [Stack]
          • Max Depth = 232 + Unknown Stack Size
          • Call Chain = __rt_entry_main ⇒ main ⇒ mymain ⇒ OLED_Cache_to_hardware ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout

          [Calls]
          • >>   main
          • >>   exit
          -

          __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C)) +

          __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))

          __rt_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))

          [Called By]

          • >>   exit @@ -233,7 +233,7 @@ Global Symbols

            [Calls]
            • >>   __rt_lib_shutdown
            -

            __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002)) +

            __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))

            __rt_exit_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))

            [Calls]

            • >>   _sys_exit @@ -381,7 +381,7 @@ Global Symbols

            [Calls]
            • >>   __rt_heap_descriptor
            -
            [Called By]
            • >>   delhead +
              [Called By]
              • >>   delhead

              __2sprintf (Thumb, 34 bytes, Stack size 32 bytes, noretval__2sprintf.o(.text)) @@ -391,7 +391,7 @@ Global Symbols
              [Calls]

              • >>   _sputc
              • >>   _printf_char_common
              -
              [Called By]
              • >>   mymain +
                [Called By]
                • >>   mymain

                __printf (Thumb, 104 bytes, Stack size 24 bytes, __printf.o(.text)) @@ -414,17 +414,17 @@ Global Symbols

                __aeabi_memclr4 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text))

                [Stack]

                • Max Depth = 4
                • Call Chain = __aeabi_memclr4
                -
                [Called By]
                • >>   SystemClock_Config +
                  [Called By]
                  • >>   SystemClock_Config
                  • >>   MX_TIM2_Init
                  -

                  __aeabi_memclr8 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) +

                  __aeabi_memclr8 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) -

                  __rt_memclr_w (Thumb, 78 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) +

                  __rt_memclr_w (Thumb, 78 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) -

                  _memset_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED) +

                  _memset_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED) -

                  __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) +

                  __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)

                  __rt_heap_escrow (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) @@ -454,19 +454,19 @@ Global Symbols


                [Address Reference Count : 1]
                • noretval__2sprintf.o(.text)
                -

                __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) +

                __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

                __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))

                [Called By]

                • >>   __user_setup_stackheap
                -

                __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) +

                __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) -

                __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) +

                __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) -

                __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) +

                __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) -

                __semihosting_library_function (Thumb, 0 bytes, Stack size 8 bytes, indicate_semi.o(.text), UNUSED) +

                __semihosting_library_function (Thumb, 0 bytes, Stack size 8 bytes, indicate_semi.o(.text), UNUSED)

                __user_setup_stackheap (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))

                [Stack]

                • Max Depth = 8 + Unknown Stack Size @@ -509,12 +509,12 @@ Global Symbols
                • >>   MX_GPIO_Init
                -

                HAL_GPIO_TogglePin (Thumb, 16 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_TogglePin)) -

                [Called By]

                • >>   mymain +

                  HAL_GPIO_TogglePin (Thumb, 16 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_TogglePin)) +

                  [Called By]

                  • >>   mymain

                  HAL_GPIO_WritePin (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin)) -

                  [Called By]

                  • >>   mymain +

                    [Called By]
                    • >>   mymain
                    • >>   MX_GPIO_Init
                    @@ -524,17 +524,17 @@ Global Symbols
                  • >>   I2C_WaitOnMasterAddressFlagUntilTimeout
                  • >>   I2C_WaitOnFlagUntilTimeout
                  • >>   I2C_WaitOnBTFFlagUntilTimeout -
                  • >>   mymain +
                  • >>   mymain
                  • >>   HAL_RCC_OscConfig
                  • >>   HAL_RCC_ClockConfig -
                  • >>   buzzer_play_server +
                  • >>   buzzer_play_server

                  HAL_I2C_Init (Thumb, 376 bytes, Stack size 16 bytes, stm32f1xx_hal_i2c.o(i.HAL_I2C_Init))

                  [Stack]

                  • Max Depth = 88
                  • Call Chain = HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init
                  -
                  [Calls]
                  • >>   HAL_RCC_GetPCLK1Freq -
                  • >>   HAL_I2C_MspInit +
                    [Calls]
                    • >>   HAL_I2C_MspInit +
                    • >>   HAL_RCC_GetPCLK1Freq

                    [Called By]
                    • >>   main
                    @@ -542,11 +542,11 @@ Global Symbols

                    HAL_I2C_Mem_Write (Thumb, 294 bytes, Stack size 64 bytes, stm32f1xx_hal_i2c.o(i.HAL_I2C_Mem_Write))

                    [Stack]

                    • Max Depth = 128
                    • Call Chain = HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout
                    -
                    [Calls]
                    • >>   HAL_GetTick -
                    • >>   I2C_WaitOnTXEFlagUntilTimeout +
                      [Calls]
                      • >>   I2C_WaitOnTXEFlagUntilTimeout
                      • >>   I2C_WaitOnFlagUntilTimeout
                      • >>   I2C_WaitOnBTFFlagUntilTimeout
                      • >>   I2C_RequestMemoryWrite +
                      • >>   HAL_GetTick

                      [Called By]
                      • >>   IIC_SAND_DATE
                      @@ -559,7 +559,7 @@ Global Symbols
                      [Called By]
                      • >>   HAL_I2C_Init
                      -

                      HAL_IncTick (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(i.HAL_IncTick)) +

                      HAL_IncTick (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(i.HAL_IncTick))

                      [Called By]

                      • >>   SysTick_Handler
                      @@ -609,11 +609,11 @@ Global Symbols

                      HAL_RCC_ClockConfig (Thumb, 280 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig))

                      [Stack]

                      • Max Depth = 64
                      • Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority
                      -
                      [Calls]
                      • >>   HAL_GetTick -
                      • >>   HAL_RCC_GetSysClockFreq +
                        [Calls]
                        • >>   HAL_RCC_GetSysClockFreq
                        • >>   HAL_InitTick +
                        • >>   HAL_GetTick
                        -
                        [Called By]
                        • >>   SystemClock_Config +
                          [Called By]
                          • >>   SystemClock_Config

                          HAL_RCC_GetPCLK1Freq (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)) @@ -631,7 +631,7 @@ Global Symbols


                        [Calls]
                        • >>   HAL_GetTick
                        -
                        [Called By]
                        • >>   SystemClock_Config +
                          [Called By]
                          • >>   SystemClock_Config

                          HAL_SYSTICK_Config (Thumb, 40 bytes, Stack size 8 bytes, stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config)) @@ -692,13 +692,13 @@ Global Symbols

                          HAL_TIM_IRQHandler (Thumb, 358 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_IRQHandler))

                          [Stack]

                          • Max Depth = 16
                          • Call Chain = HAL_TIM_IRQHandler
                          -
                          [Calls]
                          • >>   HAL_TIM_PeriodElapsedCallback -
                          • >>   HAL_TIM_PWM_PulseFinishedCallback -
                          • >>   HAL_TIM_OC_DelayElapsedCallback +
                            [Calls]
                            • >>   HAL_TIM_OC_DelayElapsedCallback
                            • >>   HAL_TIM_IC_CaptureCallback
                            • >>   HAL_TIMEx_CommutCallback
                            • >>   HAL_TIMEx_BreakCallback
                            • >>   HAL_TIM_TriggerCallback +
                            • >>   HAL_TIM_PeriodElapsedCallback +
                            • >>   HAL_TIM_PWM_PulseFinishedCallback

                            [Called By]
                            • >>   TIM2_IRQHandler
                            @@ -729,8 +729,8 @@ Global Symbols

                            HAL_TIM_PWM_Init (Thumb, 90 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_Init))

                            [Stack]

                            • Max Depth = 28
                            • Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig
                            -
                            [Calls]
                            • >>   HAL_TIM_PWM_MspInit -
                            • >>   TIM_Base_SetConfig +
                              [Calls]
                              • >>   TIM_Base_SetConfig +
                              • >>   HAL_TIM_PWM_MspInit

                              [Called By]
                              • >>   MX_TIM2_Init
                              @@ -748,7 +748,7 @@ Global Symbols

                            [Calls]
                            • >>   TIM_CCxChannelCmd
                            -
                            [Called By]
                            • >>   mymain +
                              [Called By]
                              • >>   mymain

                              HAL_TIM_PeriodElapsedCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PeriodElapsedCallback)) @@ -771,8 +771,8 @@ Global Symbols


                            [Calls]
                            • >>   HAL_I2C_Mem_Write
                            -
                            [Called By]
                            • >>   OLED_WrDat -
                            • >>   OLED_WrCmd +
                              [Called By]
                              • >>   OLED_WrDat +
                              • >>   OLED_WrCmd

                              MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.MemManage_Handler)) @@ -789,92 +789,83 @@ Global Symbols


                            [Address Reference Count : 1]
                            • startup_stm32f103xb.o(RESET)
                            -

                            OLED_AL (Thumb, 130 bytes, Stack size 32 bytes, oled.o(i.OLED_AL)) -

                            [Stack]

                            • Max Depth = 40
                            • Call Chain = OLED_AL ⇒ OLED_set_dot -
                            -
                            [Calls]
                            • >>   OLED_set_dot -
                            -
                            [Called By]
                            • >>   mymain -
                            - -

                            OLED_Ascii (Thumb, 92 bytes, Stack size 20 bytes, oled.o(i.OLED_Ascii)) +

                            OLED_Ascii (Thumb, 92 bytes, Stack size 20 bytes, oled.o(i.OLED_Ascii))

                            [Stack]

                            • Max Depth = 80
                            • Call Chain = OLED_Ascii ⇒ OLED_Pix ⇒ OLED_set_dot
                            -
                            [Calls]
                            • >>   OLED_Pix +
                              [Calls]
                              • >>   OLED_Pix
                              -
                              [Called By]
                              • >>   OLED_Str +
                                [Called By]
                                • >>   OLED_Str
                                -

                                OLED_Cache_to_hardware (Thumb, 102 bytes, Stack size 32 bytes, oled.o(i.OLED_Cache_to_hardware)) -

                                [Stack]

                                • Max Depth = 200
                                • Call Chain = OLED_Cache_to_hardware ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout +

                                  OLED_Cache_to_hardware (Thumb, 104 bytes, Stack size 40 bytes, oled.o(i.OLED_Cache_to_hardware)) +

                                  [Stack]

                                  • Max Depth = 208
                                  • Call Chain = OLED_Cache_to_hardware ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout
                                  -
                                  [Calls]
                                  • >>   OLED_WrDat -
                                  • >>   OLED_Set_Pos +
                                    [Calls]
                                    • >>   OLED_WrDat +
                                    • >>   OLED_Set_Pos
                                    -
                                    [Called By]
                                    • >>   mymain +
                                      [Called By]
                                      • >>   mymain
                                      -

                                      OLED_Init (Thumb, 138 bytes, Stack size 8 bytes, oled.o(i.OLED_Init)) +

                                      OLED_Init (Thumb, 138 bytes, Stack size 8 bytes, oled.o(i.OLED_Init))

                                      [Stack]

                                      • Max Depth = 168
                                      • Call Chain = OLED_Init ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout
                                      -
                                      [Calls]
                                      • >>   OLED_WrCmd +
                                        [Calls]
                                        • >>   OLED_WrCmd
                                        -
                                        [Called By]
                                        • >>   mymain +
                                          [Called By]
                                          • >>   mymain
                                          -

                                          OLED_Init_Display_Buffer (Thumb, 40 bytes, Stack size 16 bytes, oled.o(i.OLED_Init_Display_Buffer), UNUSED) -

                                          [Calls]

                                          • >>   OLED_WrDat -
                                          • >>   OLED_Set_Pos +

                                            OLED_Init_Display_Buffer (Thumb, 40 bytes, Stack size 16 bytes, oled.o(i.OLED_Init_Display_Buffer), UNUSED) +

                                            [Calls]

                                            • >>   OLED_WrDat +
                                            • >>   OLED_Set_Pos
                                            -

                                            OLED_Pix (Thumb, 164 bytes, Stack size 52 bytes, oled.o(i.OLED_Pix)) +

                                            OLED_Pix (Thumb, 164 bytes, Stack size 52 bytes, oled.o(i.OLED_Pix))

                                            [Stack]

                                            • Max Depth = 60
                                            • Call Chain = OLED_Pix ⇒ OLED_set_dot
                                            -
                                            [Calls]
                                            • >>   OLED_set_dot +
                                              [Calls]
                                              • >>   OLED_set_dot
                                              -
                                              [Called By]
                                              • >>   OLED_Ascii +
                                                [Called By]
                                                • >>   OLED_Ascii
                                                -

                                                OLED_Set_Pos (Thumb, 36 bytes, Stack size 8 bytes, oled.o(i.OLED_Set_Pos)) +

                                                OLED_Set_Pos (Thumb, 36 bytes, Stack size 8 bytes, oled.o(i.OLED_Set_Pos))

                                                [Stack]

                                                • Max Depth = 168
                                                • Call Chain = OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout
                                                -
                                                [Calls]
                                                • >>   OLED_WrCmd +
                                                  [Calls]
                                                  • >>   OLED_WrCmd
                                                  -
                                                  [Called By]
                                                  • >>   OLED_Init_Display_Buffer -
                                                  • >>   OLED_Cache_to_hardware +
                                                    [Called By]
                                                    • >>   OLED_Init_Display_Buffer +
                                                    • >>   OLED_Cache_to_hardware
                                                    -

                                                    OLED_Str (Thumb, 94 bytes, Stack size 32 bytes, oled.o(i.OLED_Str)) +

                                                    OLED_Str (Thumb, 94 bytes, Stack size 32 bytes, oled.o(i.OLED_Str))

                                                    [Stack]

                                                    • Max Depth = 112
                                                    • Call Chain = OLED_Str ⇒ OLED_Ascii ⇒ OLED_Pix ⇒ OLED_set_dot
                                                    -
                                                    [Calls]
                                                    • >>   OLED_Ascii +
                                                      [Calls]
                                                      • >>   OLED_Ascii
                                                      -
                                                      [Called By]
                                                      • >>   mymain +
                                                        [Called By]
                                                        • >>   mymain
                                                        -

                                                        OLED_WrCmd (Thumb, 16 bytes, Stack size 8 bytes, oled.o(i.OLED_WrCmd)) +

                                                        OLED_WrCmd (Thumb, 16 bytes, Stack size 8 bytes, oled.o(i.OLED_WrCmd))

                                                        [Stack]

                                                        • Max Depth = 160
                                                        • Call Chain = OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout

                                                        [Calls]
                                                        • >>   IIC_SAND_DATE
                                                        -
                                                        [Called By]
                                                        • >>   OLED_Set_Pos -
                                                        • >>   OLED_Init +
                                                          [Called By]
                                                          • >>   OLED_Set_Pos +
                                                          • >>   OLED_Init
                                                          -

                                                          OLED_WrDat (Thumb, 16 bytes, Stack size 8 bytes, oled.o(i.OLED_WrDat)) +

                                                          OLED_WrDat (Thumb, 16 bytes, Stack size 8 bytes, oled.o(i.OLED_WrDat))

                                                          [Stack]

                                                          • Max Depth = 160
                                                          • Call Chain = OLED_WrDat ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout

                                                          [Calls]
                                                          • >>   IIC_SAND_DATE
                                                          -
                                                          [Called By]
                                                          • >>   OLED_Init_Display_Buffer -
                                                          • >>   OLED_Cache_to_hardware +
                                                            [Called By]
                                                            • >>   OLED_Init_Display_Buffer +
                                                            • >>   OLED_Cache_to_hardware
                                                            -

                                                            OLED_set_dot (Thumb, 54 bytes, Stack size 8 bytes, oled.o(i.OLED_set_dot)) +

                                                            OLED_set_dot (Thumb, 54 bytes, Stack size 8 bytes, oled.o(i.OLED_set_dot))

                                                            [Stack]

                                                            • Max Depth = 8
                                                            • Call Chain = OLED_set_dot
                                                            -
                                                            [Called By]
                                                            • >>   OLED_Pix -
                                                            • >>   OLED_AL +
                                                              [Called By]
                                                              • >>   OLED_Pix

                                                              PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.PendSV_Handler)) @@ -884,11 +875,11 @@ Global Symbols
                                                              [Address Reference Count : 1]

                                                              • startup_stm32f103xb.o(RESET)

                                                              SysTick_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.SysTick_Handler)) -

                                                              [Calls]

                                                              • >>   HAL_IncTick +

                                                                [Calls]
                                                                • >>   HAL_IncTick

                                                                [Address Reference Count : 1]
                                                                • startup_stm32f103xb.o(RESET)
                                                                -

                                                                SystemClock_Config (Thumb, 94 bytes, Stack size 72 bytes, main.o(i.SystemClock_Config)) +

                                                                SystemClock_Config (Thumb, 94 bytes, Stack size 72 bytes, main.o(i.SystemClock_Config))

                                                                [Stack]

                                                                • Max Depth = 136
                                                                • Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority

                                                                [Calls]
                                                                • >>   HAL_RCC_OscConfig @@ -940,121 +931,120 @@ Global Symbols

                                                                [Address Reference Count : 1]
                                                                • startup_stm32f103xb.o(RESET)
                                                                -

                                                                buzzer_play_server (Thumb, 76 bytes, Stack size 8 bytes, buzzer.o(i.buzzer_play_server)) +

                                                                buzzer_play_server (Thumb, 76 bytes, Stack size 8 bytes, buzzer.o(i.buzzer_play_server))

                                                                [Stack]

                                                                • Max Depth = 48
                                                                • Call Chain = buzzer_play_server ⇒ play_ones ⇒ __aeabi_fmul

                                                                [Calls]
                                                                • >>   HAL_GetTick -
                                                                • >>   play_ones -
                                                                • >>   delhead +
                                                                • >>   play_ones +
                                                                • >>   delhead
                                                                -
                                                                [Called By]
                                                                • >>   mymain +
                                                                  [Called By]
                                                                  • >>   mymain
                                                                  -

                                                                  delhead (Thumb, 34 bytes, Stack size 8 bytes, buzzer.o(i.delhead)) +

                                                                  delhead (Thumb, 34 bytes, Stack size 8 bytes, buzzer.o(i.delhead))

                                                                  [Stack]

                                                                  • Max Depth = 24
                                                                  • Call Chain = delhead ⇒ free

                                                                  [Calls]
                                                                  • >>   free
                                                                  -
                                                                  [Called By]
                                                                  • >>   buzzer_play_server +
                                                                    [Called By]
                                                                    • >>   buzzer_play_server

                                                                    main (Thumb, 62 bytes, Stack size 0 bytes, main.o(i.main)) -

                                                                    [Stack]

                                                                    • Max Depth = 224 + Unknown Stack Size +

                                                                      [Stack]
                                                                      • Max Depth = 232 + Unknown Stack Size
                                                                      • Call Chain = main ⇒ mymain ⇒ OLED_Cache_to_hardware ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout
                                                                      -
                                                                      [Calls]
                                                                      • >>   mymain +
                                                                        [Calls]
                                                                        • >>   mymain
                                                                        • >>   HAL_Init
                                                                        • >>   HAL_I2C_Init -
                                                                        • >>   SystemClock_Config +
                                                                        • >>   SystemClock_Config
                                                                        • >>   MX_TIM2_Init
                                                                        • >>   MX_GPIO_Init

                                                                        [Called By]
                                                                        • >>   __rt_entry_main
                                                                        -

                                                                        mymain (Thumb, 166 bytes, Stack size 24 bytes, mymain.o(i.mymain)) -

                                                                        [Stack]

                                                                        • Max Depth = 224 + Unknown Stack Size +

                                                                          mymain (Thumb, 120 bytes, Stack size 24 bytes, mymain.o(i.mymain)) +

                                                                          [Stack]

                                                                          • Max Depth = 232 + Unknown Stack Size
                                                                          • Call Chain = mymain ⇒ OLED_Cache_to_hardware ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout
                                                                          -
                                                                          [Calls]
                                                                          • >>   HAL_GetTick -
                                                                          • >>   HAL_GPIO_WritePin -
                                                                          • >>   HAL_GPIO_TogglePin +
                                                                            [Calls]
                                                                            • >>   HAL_GPIO_WritePin +
                                                                            • >>   HAL_GPIO_TogglePin +
                                                                            • >>   HAL_GetTick
                                                                            • >>   HAL_TIM_PWM_Start
                                                                            • >>   __2sprintf -
                                                                            • >>   buzzer_play_server -
                                                                            • >>   OLED_Str -
                                                                            • >>   OLED_Init -
                                                                            • >>   OLED_Cache_to_hardware -
                                                                            • >>   OLED_AL +
                                                                            • >>   buzzer_play_server +
                                                                            • >>   OLED_Str +
                                                                            • >>   OLED_Init +
                                                                            • >>   OLED_Cache_to_hardware

                                                                            [Called By]
                                                                            • >>   main
                                                                            -

                                                                            play_ones (Thumb, 58 bytes, Stack size 24 bytes, buzzer.o(i.play_ones)) +

                                                                            play_ones (Thumb, 58 bytes, Stack size 24 bytes, buzzer.o(i.play_ones))

                                                                            [Stack]

                                                                            • Max Depth = 40
                                                                            • Call Chain = play_ones ⇒ __aeabi_fmul
                                                                            -
                                                                            [Calls]
                                                                            • >>   __aeabi_fmul -
                                                                            • >>   __aeabi_ui2f -
                                                                            • >>   __aeabi_i2f -
                                                                            • >>   __aeabi_f2uiz -
                                                                            • >>   __aeabi_fdiv +
                                                                              [Calls]
                                                                              • >>   __aeabi_fmul +
                                                                              • >>   __aeabi_ui2f +
                                                                              • >>   __aeabi_i2f +
                                                                              • >>   __aeabi_f2uiz +
                                                                              • >>   __aeabi_fdiv
                                                                              -
                                                                              [Called By]
                                                                              • >>   buzzer_play_server +
                                                                                [Called By]
                                                                                • >>   buzzer_play_server
                                                                                -

                                                                                __aeabi_fdiv (Thumb, 0 bytes, Stack size 16 bytes, fdiv.o(x$fpl$fdiv)) +

                                                                                __aeabi_fdiv (Thumb, 0 bytes, Stack size 16 bytes, fdiv.o(x$fpl$fdiv))

                                                                                [Stack]

                                                                                • Max Depth = 16
                                                                                • Call Chain = __aeabi_fdiv
                                                                                -
                                                                                [Called By]
                                                                                • >>   play_ones +
                                                                                  [Called By]
                                                                                  • >>   play_ones
                                                                                  -

                                                                                  _fdiv (Thumb, 384 bytes, Stack size 16 bytes, fdiv.o(x$fpl$fdiv), UNUSED) -

                                                                                  [Calls]

                                                                                  • >>   __fpl_fretinf -
                                                                                  • >>   __fpl_fnaninf +

                                                                                    _fdiv (Thumb, 384 bytes, Stack size 16 bytes, fdiv.o(x$fpl$fdiv), UNUSED) +

                                                                                    [Calls]

                                                                                    • >>   __fpl_fretinf +
                                                                                    • >>   __fpl_fnaninf
                                                                                    -

                                                                                    __aeabi_f2uiz (Thumb, 0 bytes, Stack size 16 bytes, ffixu.o(x$fpl$ffixu)) +

                                                                                    __aeabi_f2uiz (Thumb, 0 bytes, Stack size 16 bytes, ffixu.o(x$fpl$ffixu))

                                                                                    [Stack]

                                                                                    • Max Depth = 16
                                                                                    • Call Chain = __aeabi_f2uiz
                                                                                    -
                                                                                    [Called By]
                                                                                    • >>   play_ones +
                                                                                      [Called By]
                                                                                      • >>   play_ones
                                                                                      -

                                                                                      _ffixu (Thumb, 62 bytes, Stack size 16 bytes, ffixu.o(x$fpl$ffixu), UNUSED) -

                                                                                      [Calls]

                                                                                      • >>   __fpl_fnaninf +

                                                                                        _ffixu (Thumb, 62 bytes, Stack size 16 bytes, ffixu.o(x$fpl$ffixu), UNUSED) +

                                                                                        [Calls]

                                                                                        • >>   __fpl_fnaninf
                                                                                        -

                                                                                        __aeabi_i2f (Thumb, 0 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$fflt)) -

                                                                                        [Called By]

                                                                                        • >>   play_ones +

                                                                                          __aeabi_i2f (Thumb, 0 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$fflt)) +

                                                                                          [Called By]

                                                                                          • >>   play_ones
                                                                                          -

                                                                                          _fflt (Thumb, 48 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$fflt), UNUSED) +

                                                                                          _fflt (Thumb, 48 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$fflt), UNUSED) -

                                                                                          __aeabi_ui2f (Thumb, 0 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$ffltu)) -

                                                                                          [Called By]

                                                                                          • >>   play_ones +

                                                                                            __aeabi_ui2f (Thumb, 0 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$ffltu)) +

                                                                                            [Called By]

                                                                                            • >>   play_ones
                                                                                            -

                                                                                            _ffltu (Thumb, 38 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$ffltu), UNUSED) +

                                                                                            _ffltu (Thumb, 38 bytes, Stack size 0 bytes, fflt_clz.o(x$fpl$ffltu), UNUSED) -

                                                                                            __aeabi_fmul (Thumb, 0 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul)) +

                                                                                            __aeabi_fmul (Thumb, 0 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul))

                                                                                            [Stack]

                                                                                            • Max Depth = 16
                                                                                            • Call Chain = __aeabi_fmul
                                                                                            -
                                                                                            [Called By]
                                                                                            • >>   play_ones +
                                                                                              [Called By]
                                                                                              • >>   play_ones
                                                                                              -

                                                                                              _fmul (Thumb, 258 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul), UNUSED) -

                                                                                              [Calls]

                                                                                              • >>   __fpl_fretinf -
                                                                                              • >>   __fpl_fnaninf +

                                                                                                _fmul (Thumb, 258 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul), UNUSED) +

                                                                                                [Calls]

                                                                                                • >>   __fpl_fretinf +
                                                                                                • >>   __fpl_fnaninf
                                                                                                -

                                                                                                __fpl_fnaninf (Thumb, 140 bytes, Stack size 8 bytes, fnaninf.o(x$fpl$fnaninf), UNUSED) -

                                                                                                [Called By]

                                                                                                • >>   _fmul -
                                                                                                • >>   _ffixu -
                                                                                                • >>   _fdiv +

                                                                                                  __fpl_fnaninf (Thumb, 140 bytes, Stack size 8 bytes, fnaninf.o(x$fpl$fnaninf), UNUSED) +

                                                                                                  [Called By]

                                                                                                  • >>   _fmul +
                                                                                                  • >>   _ffixu +
                                                                                                  • >>   _fdiv
                                                                                                  -

                                                                                                  __fpl_fretinf (Thumb, 10 bytes, Stack size 0 bytes, fretinf.o(x$fpl$fretinf), UNUSED) -

                                                                                                  [Called By]

                                                                                                  • >>   _fmul -
                                                                                                  • >>   _fdiv +

                                                                                                    __fpl_fretinf (Thumb, 10 bytes, Stack size 0 bytes, fretinf.o(x$fpl$fretinf), UNUSED) +

                                                                                                    [Called By]

                                                                                                    • >>   _fmul +
                                                                                                    • >>   _fdiv

                                                                                                    @@ -1101,8 +1091,8 @@ Local Symbols

                                                                                                    I2C_WaitOnBTFFlagUntilTimeout (Thumb, 76 bytes, Stack size 16 bytes, stm32f1xx_hal_i2c.o(i.I2C_WaitOnBTFFlagUntilTimeout))

                                                                                                    [Stack]

                                                                                                    • Max Depth = 16
                                                                                                    • Call Chain = I2C_WaitOnBTFFlagUntilTimeout
                                                                                                    -
                                                                                                    [Calls]
                                                                                                    • >>   HAL_GetTick -
                                                                                                    • >>   I2C_IsAcknowledgeFailed +
                                                                                                      [Calls]
                                                                                                      • >>   I2C_IsAcknowledgeFailed +
                                                                                                      • >>   HAL_GetTick

                                                                                                      [Called By]
                                                                                                      • >>   HAL_I2C_Mem_Write
                                                                                                      @@ -1127,8 +1117,8 @@ Local Symbols

                                                                                                      I2C_WaitOnTXEFlagUntilTimeout (Thumb, 76 bytes, Stack size 16 bytes, stm32f1xx_hal_i2c.o(i.I2C_WaitOnTXEFlagUntilTimeout))

                                                                                                      [Stack]

                                                                                                      • Max Depth = 16
                                                                                                      • Call Chain = I2C_WaitOnTXEFlagUntilTimeout
                                                                                                      -
                                                                                                      [Calls]
                                                                                                      • >>   HAL_GetTick -
                                                                                                      • >>   I2C_IsAcknowledgeFailed +
                                                                                                        [Calls]
                                                                                                        • >>   I2C_IsAcknowledgeFailed +
                                                                                                        • >>   HAL_GetTick

                                                                                                        [Called By]
                                                                                                        • >>   HAL_I2C_Mem_Write
                                                                                                        • >>   I2C_RequestMemoryWrite diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map index 310cf4c..47e2b90 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map @@ -495,9 +495,8 @@ Section Cross References mymain.o(i.mymain) refers to oled.o(i.OLED_Init) for OLED_Init mymain.o(i.mymain) refers to stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_Start) for HAL_TIM_PWM_Start mymain.o(i.mymain) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin - mymain.o(i.mymain) refers to oled.o(i.OLED_Str) for OLED_Str - mymain.o(i.mymain) refers to oled.o(i.OLED_AL) for OLED_AL mymain.o(i.mymain) refers to noretval__2sprintf.o(.text) for __2sprintf + mymain.o(i.mymain) refers to oled.o(i.OLED_Str) for OLED_Str mymain.o(i.mymain) refers to oled.o(i.OLED_Cache_to_hardware) for OLED_Cache_to_hardware mymain.o(i.mymain) refers to buzzer.o(i.buzzer_play_server) for buzzer_play_server mymain.o(i.mymain) refers to stm32f1xx_hal.o(i.HAL_GetTick) for HAL_GetTick @@ -523,6 +522,7 @@ Section Cross References oled.o(i.OLED_WrCmd) refers to hread_interface.o(i.IIC_SAND_DATE) for IIC_SAND_DATE oled.o(i.OLED_WrDat) refers to hread_interface.o(i.IIC_SAND_DATE) for IIC_SAND_DATE oled.o(i.OLED_set_dot) refers to oled.o(.bss) for .bss + oled.o(i.OLED_square) refers to oled.o(i.OLED_set_dot) for OLED_set_dot buzzer.o(i.add_a_note) refers to h1_alloc.o(.text) for malloc buzzer.o(i.add_a_note) refers to buzzer.o(.data) for .data buzzer.o(i.buzzer_play_server) refers to buzzer.o(i.play_ones) for play_ones @@ -1168,20 +1168,23 @@ Removing Unused input sections from the image. Removing mymain.o(.revsh_text), (4 bytes). Removing mymain.o(.rrx_text), (6 bytes). Removing mymain.o(i.getmorsecode), (52 bytes). + Removing mymain.o(.bss), (20 bytes). Removing mymain.o(.constdata), (114 bytes). Removing mymain.o(.constdata), (150 bytes). Removing oled.o(.rev16_text), (4 bytes). Removing oled.o(.revsh_text), (4 bytes). Removing oled.o(.rrx_text), (6 bytes). + Removing oled.o(i.OLED_AL), (114 bytes). Removing oled.o(i.OLED_HL), (2 bytes). Removing oled.o(i.OLED_Setting_luminance), (44 bytes). Removing oled.o(i.OLED_VL), (2 bytes). + Removing oled.o(i.OLED_square), (66 bytes). Removing buzzer.o(.rev16_text), (4 bytes). Removing buzzer.o(.revsh_text), (4 bytes). Removing buzzer.o(.rrx_text), (6 bytes). Removing buzzer.o(i.add_a_note), (56 bytes). -397 unused section(s) (total 34034 bytes) removed from the image. +400 unused section(s) (total 34234 bytes) removed from the image. ============================================================================== @@ -1210,99 +1213,99 @@ Image Symbol Table ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c 0x00000000 Number 0 stm32f1xx_hal_tim.o ABSOLUTE ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c 0x00000000 Number 0 stm32f1xx_hal_tim_ex.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.o ABSOLUTE ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE ../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE ../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_heap_descriptor.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_heap_descriptor_intlibspace.o ABSOLUTE ../clib/angel/rt.s 0x00000000 Number 0 rt_raise.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_heap_descriptor_intlibspace.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_heap_descriptor.o ABSOLUTE ../clib/angel/scatter.s 0x00000000 Number 0 __scatter.o ABSOLUTE ../clib/angel/startup.s 0x00000000 Number 0 __main.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 mutex_dummy.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE ../clib/angel/sys.s 0x00000000 Number 0 sys_stackheap_outer.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 mutex_dummy.o ABSOLUTE ../clib/angel/sys.s 0x00000000 Number 0 libspace.o ABSOLUTE ../clib/angel/sysapp.c 0x00000000 Number 0 sys_exit.o ABSOLUTE ../clib/angel/sysapp.c 0x00000000 Number 0 sys_wrch.o ABSOLUTE ../clib/angel/sysapp.c 0x00000000 Number 0 sys_command.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 _get_argv.o ABSOLUTE ../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 _get_argv.o ABSOLUTE ../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_alloc_mt.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_init.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_init_mt.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_alloc.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_free_mt.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_extend.o ABSOLUTE ../clib/heap1.c 0x00000000 Number 0 h1_extend_mt.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_free.o ABSOLUTE ../clib/heap1.c 0x00000000 Number 0 h1_final.o ABSOLUTE ../clib/heap1.c 0x00000000 Number 0 h1_final_mt.o ABSOLUTE + ../clib/heap1.c 0x00000000 Number 0 h1_extend.o ABSOLUTE + ../clib/heap1.c 0x00000000 Number 0 h1_init.o ABSOLUTE + ../clib/heap1.c 0x00000000 Number 0 h1_free.o ABSOLUTE + ../clib/heap1.c 0x00000000 Number 0 h1_init_mt.o ABSOLUTE + ../clib/heap1.c 0x00000000 Number 0 h1_alloc_mt.o ABSOLUTE + ../clib/heap1.c 0x00000000 Number 0 h1_free_mt.o ABSOLUTE + ../clib/heap1.c 0x00000000 Number 0 h1_alloc.o ABSOLUTE ../clib/heap2.c 0x00000000 Number 0 heap2.o ABSOLUTE ../clib/heap2.c 0x00000000 Number 0 heap2mt.o ABSOLUTE ../clib/heap2.c 0x00000000 Number 0 fdtree.o ABSOLUTE + ../clib/heapalloc.c 0x00000000 Number 0 hguard.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 malloc.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc2.o ABSOLUTE + ../clib/heapalloc.c 0x00000000 Number 0 free.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 term_alloc.o ABSOLUTE + ../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc2.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc1.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc1.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 hrguard.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 hguard.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 heapstubs.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 init_alloc.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 free.o ABSOLUTE + ../clib/heapalloc.c 0x00000000 Number 0 heapstubs.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc2.o ABSOLUTE - ../clib/heapaux.c 0x00000000 Number 0 heapauxa.o ABSOLUTE ../clib/heapaux.c 0x00000000 Number 0 heapauxi.o ABSOLUTE + ../clib/heapaux.c 0x00000000 Number 0 heapauxa.o ABSOLUTE ../clib/libinit.s 0x00000000 Number 0 libinit.o ABSOLUTE ../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE ../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE ../clib/longlong.s 0x00000000 Number 0 llushr.o ABSOLUTE - ../clib/memcpset.s 0x00000000 Number 0 rt_memcpy_w.o ABSOLUTE ../clib/memcpset.s 0x00000000 Number 0 rt_memclr_w.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE + ../clib/memcpset.s 0x00000000 Number 0 rt_memcpy_w.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __2sprintf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_intcommon.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 noretval__2sprintf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_dec.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf_flags.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf_ss.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char_common.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 noretval__2sprintf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf_flags_wp.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf_ss_wp.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 _sputc.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_char_common.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_intcommon.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_dec.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_d.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent_end.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE ../clib/signal.s 0x00000000 Number 0 defsig.o ABSOLUTE ../clib/stdlib.c 0x00000000 Number 0 exit.o ABSOLUTE ../fplib/dfixu.s 0x00000000 Number 0 dfixu.o ABSOLUTE @@ -1473,59 +1476,58 @@ Image Symbol Table MX_TIM2_Init 0x080018f1 Thumb Code 140 main.o(i.MX_TIM2_Init) i.MemManage_Handler 0x08001980 Section 0 stm32f1xx_it.o(i.MemManage_Handler) i.NMI_Handler 0x08001982 Section 0 stm32f1xx_it.o(i.NMI_Handler) - i.OLED_AL 0x08001984 Section 0 oled.o(i.OLED_AL) - i.OLED_Ascii 0x08001a08 Section 0 oled.o(i.OLED_Ascii) - i.OLED_Cache_to_hardware 0x08001a70 Section 0 oled.o(i.OLED_Cache_to_hardware) - i.OLED_Init 0x08001adc Section 0 oled.o(i.OLED_Init) - i.OLED_Init_Display_Buffer 0x08001b66 Section 0 oled.o(i.OLED_Init_Display_Buffer) - i.OLED_Pix 0x08001b8e Section 0 oled.o(i.OLED_Pix) - i.OLED_Set_Pos 0x08001c32 Section 0 oled.o(i.OLED_Set_Pos) - i.OLED_Str 0x08001c56 Section 0 oled.o(i.OLED_Str) - i.OLED_WrCmd 0x08001cb4 Section 0 oled.o(i.OLED_WrCmd) - i.OLED_WrDat 0x08001cc4 Section 0 oled.o(i.OLED_WrDat) - i.OLED_set_dot 0x08001cd4 Section 0 oled.o(i.OLED_set_dot) - i.PendSV_Handler 0x08001d10 Section 0 stm32f1xx_it.o(i.PendSV_Handler) - i.SVC_Handler 0x08001d12 Section 0 stm32f1xx_it.o(i.SVC_Handler) - i.SysTick_Handler 0x08001d14 Section 0 stm32f1xx_it.o(i.SysTick_Handler) - i.SystemClock_Config 0x08001d18 Section 0 main.o(i.SystemClock_Config) - i.SystemInit 0x08001d76 Section 0 system_stm32f1xx.o(i.SystemInit) - i.TIM2_IRQHandler 0x08001d78 Section 0 stm32f1xx_it.o(i.TIM2_IRQHandler) - i.TIM_Base_SetConfig 0x08001d84 Section 0 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) - i.TIM_CCxChannelCmd 0x08001df0 Section 0 stm32f1xx_hal_tim.o(i.TIM_CCxChannelCmd) - i.TIM_ETR_SetConfig 0x08001e0a Section 0 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) - i.TIM_ITRx_SetConfig 0x08001e1e Section 0 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) - TIM_ITRx_SetConfig 0x08001e1f Thumb Code 16 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) - i.TIM_OC1_SetConfig 0x08001e30 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig) - TIM_OC1_SetConfig 0x08001e31 Thumb Code 74 stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig) - i.TIM_OC2_SetConfig 0x08001e80 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig) - i.TIM_OC3_SetConfig 0x08001ed8 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig) - TIM_OC3_SetConfig 0x08001ed9 Thumb Code 82 stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig) - i.TIM_OC4_SetConfig 0x08001f30 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig) - TIM_OC4_SetConfig 0x08001f31 Thumb Code 64 stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig) - i.TIM_TI1_ConfigInputStage 0x08001f74 Section 0 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) - TIM_TI1_ConfigInputStage 0x08001f75 Thumb Code 34 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) - i.TIM_TI2_ConfigInputStage 0x08001f96 Section 0 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) - TIM_TI2_ConfigInputStage 0x08001f97 Thumb Code 36 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) - i.UsageFault_Handler 0x08001fba Section 0 stm32f1xx_it.o(i.UsageFault_Handler) - i.__NVIC_SetPriority 0x08001fbc Section 0 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) - __NVIC_SetPriority 0x08001fbd Thumb Code 32 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) - i.buzzer_play_server 0x08001fdc Section 0 buzzer.o(i.buzzer_play_server) - i.delhead 0x0800202c Section 0 buzzer.o(i.delhead) - i.main 0x08002054 Section 0 main.o(i.main) - i.mymain 0x080020a0 Section 0 mymain.o(i.mymain) - i.play_ones 0x08002164 Section 0 buzzer.o(i.play_ones) - x$fpl$fdiv 0x080021a8 Section 388 fdiv.o(x$fpl$fdiv) - _fdiv1 0x080021a9 Thumb Code 0 fdiv.o(x$fpl$fdiv) - x$fpl$ffixu 0x0800232c Section 62 ffixu.o(x$fpl$ffixu) - x$fpl$fflt 0x0800236c Section 48 fflt_clz.o(x$fpl$fflt) - x$fpl$ffltu 0x0800239c Section 38 fflt_clz.o(x$fpl$ffltu) - x$fpl$fmul 0x080023c4 Section 258 fmul.o(x$fpl$fmul) - x$fpl$fnaninf 0x080024c6 Section 140 fnaninf.o(x$fpl$fnaninf) - x$fpl$fretinf 0x08002552 Section 10 fretinf.o(x$fpl$fretinf) - .constdata 0x0800255c Section 16 system_stm32f1xx.o(.constdata) - x$fpl$usenofp 0x0800255c Section 0 usenofp.o(x$fpl$usenofp) - .constdata 0x0800256c Section 8 system_stm32f1xx.o(.constdata) - .constdata 0x08002574 Section 3420 oled.o(.constdata) + i.OLED_Ascii 0x08001984 Section 0 oled.o(i.OLED_Ascii) + i.OLED_Cache_to_hardware 0x080019ec Section 0 oled.o(i.OLED_Cache_to_hardware) + i.OLED_Init 0x08001a58 Section 0 oled.o(i.OLED_Init) + i.OLED_Init_Display_Buffer 0x08001ae2 Section 0 oled.o(i.OLED_Init_Display_Buffer) + i.OLED_Pix 0x08001b0a Section 0 oled.o(i.OLED_Pix) + i.OLED_Set_Pos 0x08001bae Section 0 oled.o(i.OLED_Set_Pos) + i.OLED_Str 0x08001bd2 Section 0 oled.o(i.OLED_Str) + i.OLED_WrCmd 0x08001c30 Section 0 oled.o(i.OLED_WrCmd) + i.OLED_WrDat 0x08001c40 Section 0 oled.o(i.OLED_WrDat) + i.OLED_set_dot 0x08001c50 Section 0 oled.o(i.OLED_set_dot) + i.PendSV_Handler 0x08001c8c Section 0 stm32f1xx_it.o(i.PendSV_Handler) + i.SVC_Handler 0x08001c8e Section 0 stm32f1xx_it.o(i.SVC_Handler) + i.SysTick_Handler 0x08001c90 Section 0 stm32f1xx_it.o(i.SysTick_Handler) + i.SystemClock_Config 0x08001c94 Section 0 main.o(i.SystemClock_Config) + i.SystemInit 0x08001cf2 Section 0 system_stm32f1xx.o(i.SystemInit) + i.TIM2_IRQHandler 0x08001cf4 Section 0 stm32f1xx_it.o(i.TIM2_IRQHandler) + i.TIM_Base_SetConfig 0x08001d00 Section 0 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) + i.TIM_CCxChannelCmd 0x08001d6c Section 0 stm32f1xx_hal_tim.o(i.TIM_CCxChannelCmd) + i.TIM_ETR_SetConfig 0x08001d86 Section 0 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) + i.TIM_ITRx_SetConfig 0x08001d9a Section 0 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) + TIM_ITRx_SetConfig 0x08001d9b Thumb Code 16 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) + i.TIM_OC1_SetConfig 0x08001dac Section 0 stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig) + TIM_OC1_SetConfig 0x08001dad Thumb Code 74 stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig) + i.TIM_OC2_SetConfig 0x08001dfc Section 0 stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig) + i.TIM_OC3_SetConfig 0x08001e54 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig) + TIM_OC3_SetConfig 0x08001e55 Thumb Code 82 stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig) + i.TIM_OC4_SetConfig 0x08001eac Section 0 stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig) + TIM_OC4_SetConfig 0x08001ead Thumb Code 64 stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig) + i.TIM_TI1_ConfigInputStage 0x08001ef0 Section 0 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) + TIM_TI1_ConfigInputStage 0x08001ef1 Thumb Code 34 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) + i.TIM_TI2_ConfigInputStage 0x08001f12 Section 0 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) + TIM_TI2_ConfigInputStage 0x08001f13 Thumb Code 36 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) + i.UsageFault_Handler 0x08001f36 Section 0 stm32f1xx_it.o(i.UsageFault_Handler) + i.__NVIC_SetPriority 0x08001f38 Section 0 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) + __NVIC_SetPriority 0x08001f39 Thumb Code 32 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) + i.buzzer_play_server 0x08001f58 Section 0 buzzer.o(i.buzzer_play_server) + i.delhead 0x08001fa8 Section 0 buzzer.o(i.delhead) + i.main 0x08001fd0 Section 0 main.o(i.main) + i.mymain 0x0800201c Section 0 mymain.o(i.mymain) + i.play_ones 0x080020a8 Section 0 buzzer.o(i.play_ones) + x$fpl$fdiv 0x080020ec Section 388 fdiv.o(x$fpl$fdiv) + _fdiv1 0x080020ed Thumb Code 0 fdiv.o(x$fpl$fdiv) + x$fpl$ffixu 0x08002270 Section 62 ffixu.o(x$fpl$ffixu) + x$fpl$fflt 0x080022b0 Section 48 fflt_clz.o(x$fpl$fflt) + x$fpl$ffltu 0x080022e0 Section 38 fflt_clz.o(x$fpl$ffltu) + x$fpl$fmul 0x08002308 Section 258 fmul.o(x$fpl$fmul) + x$fpl$fnaninf 0x0800240a Section 140 fnaninf.o(x$fpl$fnaninf) + x$fpl$fretinf 0x08002496 Section 10 fretinf.o(x$fpl$fretinf) + .constdata 0x080024a0 Section 16 system_stm32f1xx.o(.constdata) + x$fpl$usenofp 0x080024a0 Section 0 usenofp.o(x$fpl$usenofp) + .constdata 0x080024b0 Section 8 system_stm32f1xx.o(.constdata) + .constdata 0x080024b8 Section 3420 oled.o(.constdata) .data 0x20000000 Section 12 stm32f1xx_hal.o(.data) .data 0x2000000c Section 4 system_stm32f1xx.o(.data) .data 0x20000010 Section 12 buzzer.o(.data) @@ -1744,53 +1746,52 @@ Image Symbol Table IIC_SAND_DATE 0x080017f9 Thumb Code 22 hread_interface.o(i.IIC_SAND_DATE) MemManage_Handler 0x08001981 Thumb Code 2 stm32f1xx_it.o(i.MemManage_Handler) NMI_Handler 0x08001983 Thumb Code 2 stm32f1xx_it.o(i.NMI_Handler) - OLED_AL 0x08001985 Thumb Code 130 oled.o(i.OLED_AL) - OLED_Ascii 0x08001a09 Thumb Code 92 oled.o(i.OLED_Ascii) - OLED_Cache_to_hardware 0x08001a71 Thumb Code 102 oled.o(i.OLED_Cache_to_hardware) - OLED_Init 0x08001add Thumb Code 138 oled.o(i.OLED_Init) - OLED_Init_Display_Buffer 0x08001b67 Thumb Code 40 oled.o(i.OLED_Init_Display_Buffer) - OLED_Pix 0x08001b8f Thumb Code 164 oled.o(i.OLED_Pix) - OLED_Set_Pos 0x08001c33 Thumb Code 36 oled.o(i.OLED_Set_Pos) - OLED_Str 0x08001c57 Thumb Code 94 oled.o(i.OLED_Str) - OLED_WrCmd 0x08001cb5 Thumb Code 16 oled.o(i.OLED_WrCmd) - OLED_WrDat 0x08001cc5 Thumb Code 16 oled.o(i.OLED_WrDat) - OLED_set_dot 0x08001cd5 Thumb Code 54 oled.o(i.OLED_set_dot) - PendSV_Handler 0x08001d11 Thumb Code 2 stm32f1xx_it.o(i.PendSV_Handler) - SVC_Handler 0x08001d13 Thumb Code 2 stm32f1xx_it.o(i.SVC_Handler) - SysTick_Handler 0x08001d15 Thumb Code 4 stm32f1xx_it.o(i.SysTick_Handler) - SystemClock_Config 0x08001d19 Thumb Code 94 main.o(i.SystemClock_Config) - SystemInit 0x08001d77 Thumb Code 2 system_stm32f1xx.o(i.SystemInit) - TIM2_IRQHandler 0x08001d79 Thumb Code 6 stm32f1xx_it.o(i.TIM2_IRQHandler) - TIM_Base_SetConfig 0x08001d85 Thumb Code 94 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) - TIM_CCxChannelCmd 0x08001df1 Thumb Code 26 stm32f1xx_hal_tim.o(i.TIM_CCxChannelCmd) - TIM_ETR_SetConfig 0x08001e0b Thumb Code 20 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) - TIM_OC2_SetConfig 0x08001e81 Thumb Code 84 stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig) - UsageFault_Handler 0x08001fbb Thumb Code 2 stm32f1xx_it.o(i.UsageFault_Handler) - buzzer_play_server 0x08001fdd Thumb Code 76 buzzer.o(i.buzzer_play_server) - delhead 0x0800202d Thumb Code 34 buzzer.o(i.delhead) - main 0x08002055 Thumb Code 62 main.o(i.main) - mymain 0x080020a1 Thumb Code 166 mymain.o(i.mymain) - play_ones 0x08002165 Thumb Code 58 buzzer.o(i.play_ones) - __aeabi_fdiv 0x080021a9 Thumb Code 0 fdiv.o(x$fpl$fdiv) - _fdiv 0x080021a9 Thumb Code 384 fdiv.o(x$fpl$fdiv) - __aeabi_f2uiz 0x0800232d Thumb Code 0 ffixu.o(x$fpl$ffixu) - _ffixu 0x0800232d Thumb Code 62 ffixu.o(x$fpl$ffixu) - __aeabi_i2f 0x0800236d Thumb Code 0 fflt_clz.o(x$fpl$fflt) - _fflt 0x0800236d Thumb Code 48 fflt_clz.o(x$fpl$fflt) - __aeabi_ui2f 0x0800239d Thumb Code 0 fflt_clz.o(x$fpl$ffltu) - _ffltu 0x0800239d Thumb Code 38 fflt_clz.o(x$fpl$ffltu) - __aeabi_fmul 0x080023c5 Thumb Code 0 fmul.o(x$fpl$fmul) - _fmul 0x080023c5 Thumb Code 258 fmul.o(x$fpl$fmul) - __fpl_fnaninf 0x080024c7 Thumb Code 140 fnaninf.o(x$fpl$fnaninf) - __fpl_fretinf 0x08002553 Thumb Code 10 fretinf.o(x$fpl$fretinf) - AHBPrescTable 0x0800255c Data 16 system_stm32f1xx.o(.constdata) - __I$use$fp 0x0800255c Number 0 usenofp.o(x$fpl$usenofp) - APBPrescTable 0x0800256c Data 8 system_stm32f1xx.o(.constdata) - asc2_0805 0x08002574 Data 760 oled.o(.constdata) - asc2_1206 0x0800286c Data 1140 oled.o(.constdata) - asc2_1608 0x08002ce0 Data 1520 oled.o(.constdata) - Region$$Table$$Base 0x080032d0 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x080032f0 Number 0 anon$$obj.o(Region$$Table) + OLED_Ascii 0x08001985 Thumb Code 92 oled.o(i.OLED_Ascii) + OLED_Cache_to_hardware 0x080019ed Thumb Code 104 oled.o(i.OLED_Cache_to_hardware) + OLED_Init 0x08001a59 Thumb Code 138 oled.o(i.OLED_Init) + OLED_Init_Display_Buffer 0x08001ae3 Thumb Code 40 oled.o(i.OLED_Init_Display_Buffer) + OLED_Pix 0x08001b0b Thumb Code 164 oled.o(i.OLED_Pix) + OLED_Set_Pos 0x08001baf Thumb Code 36 oled.o(i.OLED_Set_Pos) + OLED_Str 0x08001bd3 Thumb Code 94 oled.o(i.OLED_Str) + OLED_WrCmd 0x08001c31 Thumb Code 16 oled.o(i.OLED_WrCmd) + OLED_WrDat 0x08001c41 Thumb Code 16 oled.o(i.OLED_WrDat) + OLED_set_dot 0x08001c51 Thumb Code 54 oled.o(i.OLED_set_dot) + PendSV_Handler 0x08001c8d Thumb Code 2 stm32f1xx_it.o(i.PendSV_Handler) + SVC_Handler 0x08001c8f Thumb Code 2 stm32f1xx_it.o(i.SVC_Handler) + SysTick_Handler 0x08001c91 Thumb Code 4 stm32f1xx_it.o(i.SysTick_Handler) + SystemClock_Config 0x08001c95 Thumb Code 94 main.o(i.SystemClock_Config) + SystemInit 0x08001cf3 Thumb Code 2 system_stm32f1xx.o(i.SystemInit) + TIM2_IRQHandler 0x08001cf5 Thumb Code 6 stm32f1xx_it.o(i.TIM2_IRQHandler) + TIM_Base_SetConfig 0x08001d01 Thumb Code 94 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) + TIM_CCxChannelCmd 0x08001d6d Thumb Code 26 stm32f1xx_hal_tim.o(i.TIM_CCxChannelCmd) + TIM_ETR_SetConfig 0x08001d87 Thumb Code 20 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) + TIM_OC2_SetConfig 0x08001dfd Thumb Code 84 stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig) + UsageFault_Handler 0x08001f37 Thumb Code 2 stm32f1xx_it.o(i.UsageFault_Handler) + buzzer_play_server 0x08001f59 Thumb Code 76 buzzer.o(i.buzzer_play_server) + delhead 0x08001fa9 Thumb Code 34 buzzer.o(i.delhead) + main 0x08001fd1 Thumb Code 62 main.o(i.main) + mymain 0x0800201d Thumb Code 120 mymain.o(i.mymain) + play_ones 0x080020a9 Thumb Code 58 buzzer.o(i.play_ones) + __aeabi_fdiv 0x080020ed Thumb Code 0 fdiv.o(x$fpl$fdiv) + _fdiv 0x080020ed Thumb Code 384 fdiv.o(x$fpl$fdiv) + __aeabi_f2uiz 0x08002271 Thumb Code 0 ffixu.o(x$fpl$ffixu) + _ffixu 0x08002271 Thumb Code 62 ffixu.o(x$fpl$ffixu) + __aeabi_i2f 0x080022b1 Thumb Code 0 fflt_clz.o(x$fpl$fflt) + _fflt 0x080022b1 Thumb Code 48 fflt_clz.o(x$fpl$fflt) + __aeabi_ui2f 0x080022e1 Thumb Code 0 fflt_clz.o(x$fpl$ffltu) + _ffltu 0x080022e1 Thumb Code 38 fflt_clz.o(x$fpl$ffltu) + __aeabi_fmul 0x08002309 Thumb Code 0 fmul.o(x$fpl$fmul) + _fmul 0x08002309 Thumb Code 258 fmul.o(x$fpl$fmul) + __fpl_fnaninf 0x0800240b Thumb Code 140 fnaninf.o(x$fpl$fnaninf) + __fpl_fretinf 0x08002497 Thumb Code 10 fretinf.o(x$fpl$fretinf) + AHBPrescTable 0x080024a0 Data 16 system_stm32f1xx.o(.constdata) + __I$use$fp 0x080024a0 Number 0 usenofp.o(x$fpl$usenofp) + APBPrescTable 0x080024b0 Data 8 system_stm32f1xx.o(.constdata) + asc2_0805 0x080024b8 Data 760 oled.o(.constdata) + asc2_1206 0x080027b0 Data 1140 oled.o(.constdata) + asc2_1608 0x08002c24 Data 1520 oled.o(.constdata) + Region$$Table$$Base 0x08003214 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x08003234 Number 0 anon$$obj.o(Region$$Table) uwTickFreq 0x20000000 Data 1 stm32f1xx_hal.o(.data) uwTickPrio 0x20000004 Data 4 stm32f1xx_hal.o(.data) uwTick 0x20000008 Data 4 stm32f1xx_hal.o(.data) @@ -1811,202 +1812,200 @@ Memory Map of the image Image Entry point : 0x080000ed - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000330c, Max: 0x00010000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00003250, Max: 0x00010000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000032f0, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00003234, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x08000000 0x08000000 0x000000ec Data RO 3 RESET startup_stm32f103xb.o - 0x080000ec 0x080000ec 0x00000008 Code RO 3077 * !!!main c_w.l(__main.o) - 0x080000f4 0x080000f4 0x00000034 Code RO 3328 !!!scatter c_w.l(__scatter.o) - 0x08000128 0x08000128 0x0000001a Code RO 3330 !!handler_copy c_w.l(__scatter_copy.o) + 0x080000ec 0x080000ec 0x00000008 Code RO 3090 * !!!main c_w.l(__main.o) + 0x080000f4 0x080000f4 0x00000034 Code RO 3341 !!!scatter c_w.l(__scatter.o) + 0x08000128 0x08000128 0x0000001a Code RO 3343 !!handler_copy c_w.l(__scatter_copy.o) 0x08000142 0x08000142 0x00000002 PAD - 0x08000144 0x08000144 0x0000001c Code RO 3332 !!handler_zi c_w.l(__scatter_zi.o) - 0x08000160 0x08000160 0x00000000 Code RO 3072 .ARM.Collect$$_printf_percent$$00000000 c_w.l(_printf_percent.o) - 0x08000160 0x08000160 0x00000006 Code RO 3071 .ARM.Collect$$_printf_percent$$00000009 c_w.l(_printf_d.o) - 0x08000166 0x08000166 0x00000004 Code RO 3141 .ARM.Collect$$_printf_percent$$00000017 c_w.l(_printf_percent_end.o) - 0x0800016a 0x0800016a 0x00000002 Code RO 3265 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3147 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3149 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3152 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3154 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3156 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3159 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3161 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3163 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3165 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3167 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3169 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3171 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3173 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3175 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3177 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3179 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3183 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3185 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3187 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000000 Code RO 3189 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) - 0x0800016c 0x0800016c 0x00000002 Code RO 3190 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) - 0x0800016e 0x0800016e 0x00000002 Code RO 3325 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) - 0x08000170 0x08000170 0x00000000 Code RO 3279 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) - 0x08000170 0x08000170 0x00000000 Code RO 3281 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) - 0x08000170 0x08000170 0x00000000 Code RO 3283 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) - 0x08000170 0x08000170 0x00000000 Code RO 3286 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) - 0x08000170 0x08000170 0x00000000 Code RO 3289 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) - 0x08000170 0x08000170 0x00000000 Code RO 3291 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) - 0x08000170 0x08000170 0x00000000 Code RO 3294 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) - 0x08000170 0x08000170 0x00000002 Code RO 3295 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) - 0x08000172 0x08000172 0x00000000 Code RO 3109 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) - 0x08000172 0x08000172 0x00000000 Code RO 3206 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) - 0x08000172 0x08000172 0x00000006 Code RO 3218 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) - 0x08000178 0x08000178 0x00000000 Code RO 3208 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) - 0x08000178 0x08000178 0x00000004 Code RO 3209 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) - 0x0800017c 0x0800017c 0x00000000 Code RO 3211 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) - 0x0800017c 0x0800017c 0x00000008 Code RO 3212 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) - 0x08000184 0x08000184 0x00000002 Code RO 3268 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) - 0x08000186 0x08000186 0x00000000 Code RO 3299 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) - 0x08000186 0x08000186 0x00000004 Code RO 3300 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) - 0x0800018a 0x0800018a 0x00000006 Code RO 3301 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) + 0x08000144 0x08000144 0x0000001c Code RO 3345 !!handler_zi c_w.l(__scatter_zi.o) + 0x08000160 0x08000160 0x00000000 Code RO 3085 .ARM.Collect$$_printf_percent$$00000000 c_w.l(_printf_percent.o) + 0x08000160 0x08000160 0x00000006 Code RO 3084 .ARM.Collect$$_printf_percent$$00000009 c_w.l(_printf_d.o) + 0x08000166 0x08000166 0x00000004 Code RO 3154 .ARM.Collect$$_printf_percent$$00000017 c_w.l(_printf_percent_end.o) + 0x0800016a 0x0800016a 0x00000002 Code RO 3278 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3160 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3162 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3165 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3167 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3169 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3172 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3174 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3176 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3178 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3180 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3182 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3184 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3186 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3188 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3190 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3192 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3196 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3198 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3200 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000000 Code RO 3202 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) + 0x0800016c 0x0800016c 0x00000002 Code RO 3203 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) + 0x0800016e 0x0800016e 0x00000002 Code RO 3338 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) + 0x08000170 0x08000170 0x00000000 Code RO 3292 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) + 0x08000170 0x08000170 0x00000000 Code RO 3294 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) + 0x08000170 0x08000170 0x00000000 Code RO 3296 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) + 0x08000170 0x08000170 0x00000000 Code RO 3299 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) + 0x08000170 0x08000170 0x00000000 Code RO 3302 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) + 0x08000170 0x08000170 0x00000000 Code RO 3304 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) + 0x08000170 0x08000170 0x00000000 Code RO 3307 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) + 0x08000170 0x08000170 0x00000002 Code RO 3308 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) + 0x08000172 0x08000172 0x00000000 Code RO 3122 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) + 0x08000172 0x08000172 0x00000000 Code RO 3219 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) + 0x08000172 0x08000172 0x00000006 Code RO 3231 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) + 0x08000178 0x08000178 0x00000000 Code RO 3221 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) + 0x08000178 0x08000178 0x00000004 Code RO 3222 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) + 0x0800017c 0x0800017c 0x00000000 Code RO 3224 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) + 0x0800017c 0x0800017c 0x00000008 Code RO 3225 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) + 0x08000184 0x08000184 0x00000002 Code RO 3281 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) + 0x08000186 0x08000186 0x00000000 Code RO 3312 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) + 0x08000186 0x08000186 0x00000004 Code RO 3313 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) + 0x0800018a 0x0800018a 0x00000006 Code RO 3314 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) 0x08000190 0x08000190 0x00000040 Code RO 4 .text startup_stm32f103xb.o - 0x080001d0 0x080001d0 0x0000004e Code RO 2985 .text c_w.l(h1_free.o) + 0x080001d0 0x080001d0 0x0000004e Code RO 2998 .text c_w.l(h1_free.o) 0x0800021e 0x0800021e 0x00000002 PAD - 0x08000220 0x08000220 0x00000028 Code RO 3045 .text c_w.l(noretval__2sprintf.o) - 0x08000248 0x08000248 0x00000068 Code RO 3047 .text c_w.l(__printf.o) - 0x080002b0 0x080002b0 0x00000078 Code RO 3049 .text c_w.l(_printf_dec.o) - 0x08000328 0x08000328 0x0000004e Code RO 3073 .text c_w.l(rt_memclr_w.o) - 0x08000376 0x08000376 0x00000006 Code RO 3075 .text c_w.l(heapauxi.o) - 0x0800037c 0x0800037c 0x00000008 Code RO 3113 .text c_w.l(rt_heap_descriptor_intlibspace.o) - 0x08000384 0x08000384 0x000000b2 Code RO 3135 .text c_w.l(_printf_intcommon.o) + 0x08000220 0x08000220 0x00000028 Code RO 3058 .text c_w.l(noretval__2sprintf.o) + 0x08000248 0x08000248 0x00000068 Code RO 3060 .text c_w.l(__printf.o) + 0x080002b0 0x080002b0 0x00000078 Code RO 3062 .text c_w.l(_printf_dec.o) + 0x08000328 0x08000328 0x0000004e Code RO 3086 .text c_w.l(rt_memclr_w.o) + 0x08000376 0x08000376 0x00000006 Code RO 3088 .text c_w.l(heapauxi.o) + 0x0800037c 0x0800037c 0x00000008 Code RO 3126 .text c_w.l(rt_heap_descriptor_intlibspace.o) + 0x08000384 0x08000384 0x000000b2 Code RO 3148 .text c_w.l(_printf_intcommon.o) 0x08000436 0x08000436 0x00000002 PAD - 0x08000438 0x08000438 0x00000030 Code RO 3137 .text c_w.l(_printf_char_common.o) - 0x08000468 0x08000468 0x0000000a Code RO 3139 .text c_w.l(_sputc.o) + 0x08000438 0x08000438 0x00000030 Code RO 3150 .text c_w.l(_printf_char_common.o) + 0x08000468 0x08000468 0x0000000a Code RO 3152 .text c_w.l(_sputc.o) 0x08000472 0x08000472 0x00000002 PAD - 0x08000474 0x08000474 0x00000008 Code RO 3202 .text c_w.l(libspace.o) - 0x0800047c 0x0800047c 0x00000002 Code RO 3241 .text c_w.l(use_no_semi.o) - 0x0800047e 0x0800047e 0x00000000 Code RO 3243 .text c_w.l(indicate_semi.o) - 0x0800047e 0x0800047e 0x0000004a Code RO 3244 .text c_w.l(sys_stackheap_outer.o) - 0x080004c8 0x080004c8 0x00000012 Code RO 3250 .text c_w.l(exit.o) + 0x08000474 0x08000474 0x00000008 Code RO 3215 .text c_w.l(libspace.o) + 0x0800047c 0x0800047c 0x00000002 Code RO 3254 .text c_w.l(use_no_semi.o) + 0x0800047e 0x0800047e 0x00000000 Code RO 3256 .text c_w.l(indicate_semi.o) + 0x0800047e 0x0800047e 0x0000004a Code RO 3257 .text c_w.l(sys_stackheap_outer.o) + 0x080004c8 0x080004c8 0x00000012 Code RO 3263 .text c_w.l(exit.o) 0x080004da 0x080004da 0x00000002 PAD - 0x080004dc 0x080004dc 0x0000000c Code RO 3266 .text c_w.l(sys_exit.o) - 0x080004e8 0x080004e8 0x00000002 Code RO 162 i.BusFault_Handler stm32f1xx_it.o - 0x080004ea 0x080004ea 0x00000002 Code RO 163 i.DebugMon_Handler stm32f1xx_it.o - 0x080004ec 0x080004ec 0x000001e0 Code RO 1081 i.HAL_GPIO_Init stm32f1xx_hal_gpio.o - 0x080006cc 0x080006cc 0x00000010 Code RO 1084 i.HAL_GPIO_TogglePin stm32f1xx_hal_gpio.o - 0x080006dc 0x080006dc 0x0000000a Code RO 1085 i.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o + 0x080004dc 0x080004dc 0x0000000c Code RO 3279 .text c_w.l(sys_exit.o) + 0x080004e8 0x080004e8 0x00000002 Code RO 165 i.BusFault_Handler stm32f1xx_it.o + 0x080004ea 0x080004ea 0x00000002 Code RO 166 i.DebugMon_Handler stm32f1xx_it.o + 0x080004ec 0x080004ec 0x000001e0 Code RO 1084 i.HAL_GPIO_Init stm32f1xx_hal_gpio.o + 0x080006cc 0x080006cc 0x00000010 Code RO 1087 i.HAL_GPIO_TogglePin stm32f1xx_hal_gpio.o + 0x080006dc 0x080006dc 0x0000000a Code RO 1088 i.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o 0x080006e6 0x080006e6 0x00000002 PAD - 0x080006e8 0x080006e8 0x0000000c Code RO 777 i.HAL_GetTick stm32f1xx_hal.o - 0x080006f4 0x080006f4 0x00000188 Code RO 345 i.HAL_I2C_Init stm32f1xx_hal_i2c.o - 0x0800087c 0x0800087c 0x00000130 Code RO 366 i.HAL_I2C_Mem_Write stm32f1xx_hal_i2c.o - 0x080009ac 0x080009ac 0x0000005c Code RO 245 i.HAL_I2C_MspInit stm32f1xx_hal_msp.o - 0x08000a08 0x08000a08 0x00000010 Code RO 783 i.HAL_IncTick stm32f1xx_hal.o - 0x08000a18 0x08000a18 0x00000024 Code RO 784 i.HAL_Init stm32f1xx_hal.o - 0x08000a3c 0x08000a3c 0x00000040 Code RO 785 i.HAL_InitTick stm32f1xx_hal.o - 0x08000a7c 0x08000a7c 0x0000003c Code RO 246 i.HAL_MspInit stm32f1xx_hal_msp.o - 0x08000ab8 0x08000ab8 0x0000001a Code RO 1241 i.HAL_NVIC_EnableIRQ stm32f1xx_hal_cortex.o + 0x080006e8 0x080006e8 0x0000000c Code RO 780 i.HAL_GetTick stm32f1xx_hal.o + 0x080006f4 0x080006f4 0x00000188 Code RO 348 i.HAL_I2C_Init stm32f1xx_hal_i2c.o + 0x0800087c 0x0800087c 0x00000130 Code RO 369 i.HAL_I2C_Mem_Write stm32f1xx_hal_i2c.o + 0x080009ac 0x080009ac 0x0000005c Code RO 248 i.HAL_I2C_MspInit stm32f1xx_hal_msp.o + 0x08000a08 0x08000a08 0x00000010 Code RO 786 i.HAL_IncTick stm32f1xx_hal.o + 0x08000a18 0x08000a18 0x00000024 Code RO 787 i.HAL_Init stm32f1xx_hal.o + 0x08000a3c 0x08000a3c 0x00000040 Code RO 788 i.HAL_InitTick stm32f1xx_hal.o + 0x08000a7c 0x08000a7c 0x0000003c Code RO 249 i.HAL_MspInit stm32f1xx_hal_msp.o + 0x08000ab8 0x08000ab8 0x0000001a Code RO 1244 i.HAL_NVIC_EnableIRQ stm32f1xx_hal_cortex.o 0x08000ad2 0x08000ad2 0x00000002 PAD - 0x08000ad4 0x08000ad4 0x00000040 Code RO 1247 i.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o - 0x08000b14 0x08000b14 0x00000024 Code RO 1248 i.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o - 0x08000b38 0x08000b38 0x0000012c Code RO 941 i.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o - 0x08000c64 0x08000c64 0x00000020 Code RO 948 i.HAL_RCC_GetPCLK1Freq stm32f1xx_hal_rcc.o - 0x08000c84 0x08000c84 0x0000006c Code RO 950 i.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o - 0x08000cf0 0x08000cf0 0x00000320 Code RO 953 i.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o - 0x08001010 0x08001010 0x00000028 Code RO 1252 i.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o - 0x08001038 0x08001038 0x00000002 Code RO 2447 i.HAL_TIMEx_BreakCallback stm32f1xx_hal_tim_ex.o - 0x0800103a 0x0800103a 0x00000002 Code RO 2448 i.HAL_TIMEx_CommutCallback stm32f1xx_hal_tim_ex.o - 0x0800103c 0x0800103c 0x00000068 Code RO 2466 i.HAL_TIMEx_MasterConfigSynchronization stm32f1xx_hal_tim_ex.o - 0x080010a4 0x080010a4 0x0000005a Code RO 1743 i.HAL_TIM_Base_Init stm32f1xx_hal_tim.o + 0x08000ad4 0x08000ad4 0x00000040 Code RO 1250 i.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o + 0x08000b14 0x08000b14 0x00000024 Code RO 1251 i.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o + 0x08000b38 0x08000b38 0x0000012c Code RO 944 i.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o + 0x08000c64 0x08000c64 0x00000020 Code RO 951 i.HAL_RCC_GetPCLK1Freq stm32f1xx_hal_rcc.o + 0x08000c84 0x08000c84 0x0000006c Code RO 953 i.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o + 0x08000cf0 0x08000cf0 0x00000320 Code RO 956 i.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o + 0x08001010 0x08001010 0x00000028 Code RO 1255 i.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o + 0x08001038 0x08001038 0x00000002 Code RO 2450 i.HAL_TIMEx_BreakCallback stm32f1xx_hal_tim_ex.o + 0x0800103a 0x0800103a 0x00000002 Code RO 2451 i.HAL_TIMEx_CommutCallback stm32f1xx_hal_tim_ex.o + 0x0800103c 0x0800103c 0x00000068 Code RO 2469 i.HAL_TIMEx_MasterConfigSynchronization stm32f1xx_hal_tim_ex.o + 0x080010a4 0x080010a4 0x0000005a Code RO 1746 i.HAL_TIM_Base_Init stm32f1xx_hal_tim.o 0x080010fe 0x080010fe 0x00000002 PAD - 0x08001100 0x08001100 0x00000038 Code RO 248 i.HAL_TIM_Base_MspInit stm32f1xx_hal_msp.o - 0x08001138 0x08001138 0x000000d6 Code RO 1752 i.HAL_TIM_ConfigClockSource stm32f1xx_hal_tim.o - 0x0800120e 0x0800120e 0x00000002 Code RO 1777 i.HAL_TIM_IC_CaptureCallback stm32f1xx_hal_tim.o - 0x08001210 0x08001210 0x00000166 Code RO 1791 i.HAL_TIM_IRQHandler stm32f1xx_hal_tim.o + 0x08001100 0x08001100 0x00000038 Code RO 251 i.HAL_TIM_Base_MspInit stm32f1xx_hal_msp.o + 0x08001138 0x08001138 0x000000d6 Code RO 1755 i.HAL_TIM_ConfigClockSource stm32f1xx_hal_tim.o + 0x0800120e 0x0800120e 0x00000002 Code RO 1780 i.HAL_TIM_IC_CaptureCallback stm32f1xx_hal_tim.o + 0x08001210 0x08001210 0x00000166 Code RO 1794 i.HAL_TIM_IRQHandler stm32f1xx_hal_tim.o 0x08001376 0x08001376 0x00000002 PAD - 0x08001378 0x08001378 0x00000048 Code RO 249 i.HAL_TIM_MspPostInit stm32f1xx_hal_msp.o - 0x080013c0 0x080013c0 0x00000002 Code RO 1794 i.HAL_TIM_OC_DelayElapsedCallback stm32f1xx_hal_tim.o - 0x080013c2 0x080013c2 0x000000c6 Code RO 1815 i.HAL_TIM_PWM_ConfigChannel stm32f1xx_hal_tim.o - 0x08001488 0x08001488 0x0000005a Code RO 1818 i.HAL_TIM_PWM_Init stm32f1xx_hal_tim.o - 0x080014e2 0x080014e2 0x00000002 Code RO 1820 i.HAL_TIM_PWM_MspInit stm32f1xx_hal_tim.o - 0x080014e4 0x080014e4 0x00000002 Code RO 1821 i.HAL_TIM_PWM_PulseFinishedCallback stm32f1xx_hal_tim.o + 0x08001378 0x08001378 0x00000048 Code RO 252 i.HAL_TIM_MspPostInit stm32f1xx_hal_msp.o + 0x080013c0 0x080013c0 0x00000002 Code RO 1797 i.HAL_TIM_OC_DelayElapsedCallback stm32f1xx_hal_tim.o + 0x080013c2 0x080013c2 0x000000c6 Code RO 1818 i.HAL_TIM_PWM_ConfigChannel stm32f1xx_hal_tim.o + 0x08001488 0x08001488 0x0000005a Code RO 1821 i.HAL_TIM_PWM_Init stm32f1xx_hal_tim.o + 0x080014e2 0x080014e2 0x00000002 Code RO 1823 i.HAL_TIM_PWM_MspInit stm32f1xx_hal_tim.o + 0x080014e4 0x080014e4 0x00000002 Code RO 1824 i.HAL_TIM_PWM_PulseFinishedCallback stm32f1xx_hal_tim.o 0x080014e6 0x080014e6 0x00000002 PAD - 0x080014e8 0x080014e8 0x0000009c Code RO 1823 i.HAL_TIM_PWM_Start stm32f1xx_hal_tim.o - 0x08001584 0x08001584 0x00000002 Code RO 1829 i.HAL_TIM_PeriodElapsedCallback stm32f1xx_hal_tim.o - 0x08001586 0x08001586 0x00000002 Code RO 1834 i.HAL_TIM_TriggerCallback stm32f1xx_hal_tim.o - 0x08001588 0x08001588 0x00000002 Code RO 164 i.HardFault_Handler stm32f1xx_it.o - 0x0800158a 0x0800158a 0x0000002e Code RO 387 i.I2C_IsAcknowledgeFailed stm32f1xx_hal_i2c.o - 0x080015b8 0x080015b8 0x000000a8 Code RO 398 i.I2C_RequestMemoryWrite stm32f1xx_hal_i2c.o - 0x08001660 0x08001660 0x0000004c Code RO 402 i.I2C_WaitOnBTFFlagUntilTimeout stm32f1xx_hal_i2c.o - 0x080016ac 0x080016ac 0x00000068 Code RO 403 i.I2C_WaitOnFlagUntilTimeout stm32f1xx_hal_i2c.o - 0x08001714 0x08001714 0x00000096 Code RO 404 i.I2C_WaitOnMasterAddressFlagUntilTimeout stm32f1xx_hal_i2c.o - 0x080017aa 0x080017aa 0x0000004c Code RO 406 i.I2C_WaitOnTXEFlagUntilTimeout stm32f1xx_hal_i2c.o + 0x080014e8 0x080014e8 0x0000009c Code RO 1826 i.HAL_TIM_PWM_Start stm32f1xx_hal_tim.o + 0x08001584 0x08001584 0x00000002 Code RO 1832 i.HAL_TIM_PeriodElapsedCallback stm32f1xx_hal_tim.o + 0x08001586 0x08001586 0x00000002 Code RO 1837 i.HAL_TIM_TriggerCallback stm32f1xx_hal_tim.o + 0x08001588 0x08001588 0x00000002 Code RO 167 i.HardFault_Handler stm32f1xx_it.o + 0x0800158a 0x0800158a 0x0000002e Code RO 390 i.I2C_IsAcknowledgeFailed stm32f1xx_hal_i2c.o + 0x080015b8 0x080015b8 0x000000a8 Code RO 401 i.I2C_RequestMemoryWrite stm32f1xx_hal_i2c.o + 0x08001660 0x08001660 0x0000004c Code RO 405 i.I2C_WaitOnBTFFlagUntilTimeout stm32f1xx_hal_i2c.o + 0x080016ac 0x080016ac 0x00000068 Code RO 406 i.I2C_WaitOnFlagUntilTimeout stm32f1xx_hal_i2c.o + 0x08001714 0x08001714 0x00000096 Code RO 407 i.I2C_WaitOnMasterAddressFlagUntilTimeout stm32f1xx_hal_i2c.o + 0x080017aa 0x080017aa 0x0000004c Code RO 409 i.I2C_WaitOnTXEFlagUntilTimeout stm32f1xx_hal_i2c.o 0x080017f6 0x080017f6 0x00000002 PAD - 0x080017f8 0x080017f8 0x0000001c Code RO 2753 i.IIC_SAND_DATE hread_interface.o + 0x080017f8 0x080017f8 0x0000001c Code RO 2756 i.IIC_SAND_DATE hread_interface.o 0x08001814 0x08001814 0x000000dc Code RO 14 i.MX_GPIO_Init main.o 0x080018f0 0x080018f0 0x00000090 Code RO 15 i.MX_TIM2_Init main.o - 0x08001980 0x08001980 0x00000002 Code RO 165 i.MemManage_Handler stm32f1xx_it.o - 0x08001982 0x08001982 0x00000002 Code RO 166 i.NMI_Handler stm32f1xx_it.o - 0x08001984 0x08001984 0x00000082 Code RO 2829 i.OLED_AL oled.o - 0x08001a06 0x08001a06 0x00000002 PAD - 0x08001a08 0x08001a08 0x00000068 Code RO 2830 i.OLED_Ascii oled.o - 0x08001a70 0x08001a70 0x0000006c Code RO 2831 i.OLED_Cache_to_hardware oled.o - 0x08001adc 0x08001adc 0x0000008a Code RO 2833 i.OLED_Init oled.o - 0x08001b66 0x08001b66 0x00000028 Code RO 2834 i.OLED_Init_Display_Buffer oled.o - 0x08001b8e 0x08001b8e 0x000000a4 Code RO 2835 i.OLED_Pix oled.o - 0x08001c32 0x08001c32 0x00000024 Code RO 2836 i.OLED_Set_Pos oled.o - 0x08001c56 0x08001c56 0x0000005e Code RO 2838 i.OLED_Str oled.o - 0x08001cb4 0x08001cb4 0x00000010 Code RO 2840 i.OLED_WrCmd oled.o - 0x08001cc4 0x08001cc4 0x00000010 Code RO 2841 i.OLED_WrDat oled.o - 0x08001cd4 0x08001cd4 0x0000003c Code RO 2842 i.OLED_set_dot oled.o - 0x08001d10 0x08001d10 0x00000002 Code RO 167 i.PendSV_Handler stm32f1xx_it.o - 0x08001d12 0x08001d12 0x00000002 Code RO 168 i.SVC_Handler stm32f1xx_it.o - 0x08001d14 0x08001d14 0x00000004 Code RO 169 i.SysTick_Handler stm32f1xx_it.o - 0x08001d18 0x08001d18 0x0000005e Code RO 16 i.SystemClock_Config main.o - 0x08001d76 0x08001d76 0x00000002 Code RO 2715 i.SystemInit system_stm32f1xx.o - 0x08001d78 0x08001d78 0x0000000c Code RO 170 i.TIM2_IRQHandler stm32f1xx_it.o - 0x08001d84 0x08001d84 0x0000006c Code RO 1836 i.TIM_Base_SetConfig stm32f1xx_hal_tim.o - 0x08001df0 0x08001df0 0x0000001a Code RO 1837 i.TIM_CCxChannelCmd stm32f1xx_hal_tim.o - 0x08001e0a 0x08001e0a 0x00000014 Code RO 1847 i.TIM_ETR_SetConfig stm32f1xx_hal_tim.o - 0x08001e1e 0x08001e1e 0x00000010 Code RO 1848 i.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o - 0x08001e2e 0x08001e2e 0x00000002 PAD - 0x08001e30 0x08001e30 0x00000050 Code RO 1849 i.TIM_OC1_SetConfig stm32f1xx_hal_tim.o - 0x08001e80 0x08001e80 0x00000058 Code RO 1850 i.TIM_OC2_SetConfig stm32f1xx_hal_tim.o - 0x08001ed8 0x08001ed8 0x00000058 Code RO 1851 i.TIM_OC3_SetConfig stm32f1xx_hal_tim.o - 0x08001f30 0x08001f30 0x00000044 Code RO 1852 i.TIM_OC4_SetConfig stm32f1xx_hal_tim.o - 0x08001f74 0x08001f74 0x00000022 Code RO 1854 i.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o - 0x08001f96 0x08001f96 0x00000024 Code RO 1856 i.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o - 0x08001fba 0x08001fba 0x00000002 Code RO 171 i.UsageFault_Handler stm32f1xx_it.o - 0x08001fbc 0x08001fbc 0x00000020 Code RO 1254 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o - 0x08001fdc 0x08001fdc 0x00000050 Code RO 2936 i.buzzer_play_server buzzer.o - 0x0800202c 0x0800202c 0x00000028 Code RO 2937 i.delhead buzzer.o - 0x08002054 0x08002054 0x0000004c Code RO 17 i.main main.o - 0x080020a0 0x080020a0 0x000000c4 Code RO 2787 i.mymain mymain.o - 0x08002164 0x08002164 0x00000044 Code RO 2938 i.play_ones buzzer.o - 0x080021a8 0x080021a8 0x00000184 Code RO 3092 x$fpl$fdiv fz_ws.l(fdiv.o) - 0x0800232c 0x0800232c 0x0000003e Code RO 3095 x$fpl$ffixu fz_ws.l(ffixu.o) - 0x0800236a 0x0800236a 0x00000002 PAD - 0x0800236c 0x0800236c 0x00000030 Code RO 3100 x$fpl$fflt fz_ws.l(fflt_clz.o) - 0x0800239c 0x0800239c 0x00000026 Code RO 3099 x$fpl$ffltu fz_ws.l(fflt_clz.o) - 0x080023c2 0x080023c2 0x00000002 PAD - 0x080023c4 0x080023c4 0x00000102 Code RO 3105 x$fpl$fmul fz_ws.l(fmul.o) - 0x080024c6 0x080024c6 0x0000008c Code RO 3195 x$fpl$fnaninf fz_ws.l(fnaninf.o) - 0x08002552 0x08002552 0x0000000a Code RO 3197 x$fpl$fretinf fz_ws.l(fretinf.o) - 0x0800255c 0x0800255c 0x00000000 Code RO 3199 x$fpl$usenofp fz_ws.l(usenofp.o) - 0x0800255c 0x0800255c 0x00000010 Data RO 2716 .constdata system_stm32f1xx.o - 0x0800256c 0x0800256c 0x00000008 Data RO 2717 .constdata system_stm32f1xx.o - 0x08002574 0x08002574 0x00000d5c Data RO 2844 .constdata oled.o - 0x080032d0 0x080032d0 0x00000020 Data RO 3326 Region$$Table anon$$obj.o + 0x08001980 0x08001980 0x00000002 Code RO 168 i.MemManage_Handler stm32f1xx_it.o + 0x08001982 0x08001982 0x00000002 Code RO 169 i.NMI_Handler stm32f1xx_it.o + 0x08001984 0x08001984 0x00000068 Code RO 2837 i.OLED_Ascii oled.o + 0x080019ec 0x080019ec 0x0000006c Code RO 2838 i.OLED_Cache_to_hardware oled.o + 0x08001a58 0x08001a58 0x0000008a Code RO 2840 i.OLED_Init oled.o + 0x08001ae2 0x08001ae2 0x00000028 Code RO 2841 i.OLED_Init_Display_Buffer oled.o + 0x08001b0a 0x08001b0a 0x000000a4 Code RO 2842 i.OLED_Pix oled.o + 0x08001bae 0x08001bae 0x00000024 Code RO 2843 i.OLED_Set_Pos oled.o + 0x08001bd2 0x08001bd2 0x0000005e Code RO 2845 i.OLED_Str oled.o + 0x08001c30 0x08001c30 0x00000010 Code RO 2847 i.OLED_WrCmd oled.o + 0x08001c40 0x08001c40 0x00000010 Code RO 2848 i.OLED_WrDat oled.o + 0x08001c50 0x08001c50 0x0000003c Code RO 2849 i.OLED_set_dot oled.o + 0x08001c8c 0x08001c8c 0x00000002 Code RO 170 i.PendSV_Handler stm32f1xx_it.o + 0x08001c8e 0x08001c8e 0x00000002 Code RO 171 i.SVC_Handler stm32f1xx_it.o + 0x08001c90 0x08001c90 0x00000004 Code RO 172 i.SysTick_Handler stm32f1xx_it.o + 0x08001c94 0x08001c94 0x0000005e Code RO 16 i.SystemClock_Config main.o + 0x08001cf2 0x08001cf2 0x00000002 Code RO 2718 i.SystemInit system_stm32f1xx.o + 0x08001cf4 0x08001cf4 0x0000000c Code RO 173 i.TIM2_IRQHandler stm32f1xx_it.o + 0x08001d00 0x08001d00 0x0000006c Code RO 1839 i.TIM_Base_SetConfig stm32f1xx_hal_tim.o + 0x08001d6c 0x08001d6c 0x0000001a Code RO 1840 i.TIM_CCxChannelCmd stm32f1xx_hal_tim.o + 0x08001d86 0x08001d86 0x00000014 Code RO 1850 i.TIM_ETR_SetConfig stm32f1xx_hal_tim.o + 0x08001d9a 0x08001d9a 0x00000010 Code RO 1851 i.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o + 0x08001daa 0x08001daa 0x00000002 PAD + 0x08001dac 0x08001dac 0x00000050 Code RO 1852 i.TIM_OC1_SetConfig stm32f1xx_hal_tim.o + 0x08001dfc 0x08001dfc 0x00000058 Code RO 1853 i.TIM_OC2_SetConfig stm32f1xx_hal_tim.o + 0x08001e54 0x08001e54 0x00000058 Code RO 1854 i.TIM_OC3_SetConfig stm32f1xx_hal_tim.o + 0x08001eac 0x08001eac 0x00000044 Code RO 1855 i.TIM_OC4_SetConfig stm32f1xx_hal_tim.o + 0x08001ef0 0x08001ef0 0x00000022 Code RO 1857 i.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o + 0x08001f12 0x08001f12 0x00000024 Code RO 1859 i.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o + 0x08001f36 0x08001f36 0x00000002 Code RO 174 i.UsageFault_Handler stm32f1xx_it.o + 0x08001f38 0x08001f38 0x00000020 Code RO 1257 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o + 0x08001f58 0x08001f58 0x00000050 Code RO 2949 i.buzzer_play_server buzzer.o + 0x08001fa8 0x08001fa8 0x00000028 Code RO 2950 i.delhead buzzer.o + 0x08001fd0 0x08001fd0 0x0000004c Code RO 17 i.main main.o + 0x0800201c 0x0800201c 0x0000008c Code RO 2790 i.mymain mymain.o + 0x080020a8 0x080020a8 0x00000044 Code RO 2951 i.play_ones buzzer.o + 0x080020ec 0x080020ec 0x00000184 Code RO 3105 x$fpl$fdiv fz_ws.l(fdiv.o) + 0x08002270 0x08002270 0x0000003e Code RO 3108 x$fpl$ffixu fz_ws.l(ffixu.o) + 0x080022ae 0x080022ae 0x00000002 PAD + 0x080022b0 0x080022b0 0x00000030 Code RO 3113 x$fpl$fflt fz_ws.l(fflt_clz.o) + 0x080022e0 0x080022e0 0x00000026 Code RO 3112 x$fpl$ffltu fz_ws.l(fflt_clz.o) + 0x08002306 0x08002306 0x00000002 PAD + 0x08002308 0x08002308 0x00000102 Code RO 3118 x$fpl$fmul fz_ws.l(fmul.o) + 0x0800240a 0x0800240a 0x0000008c Code RO 3208 x$fpl$fnaninf fz_ws.l(fnaninf.o) + 0x08002496 0x08002496 0x0000000a Code RO 3210 x$fpl$fretinf fz_ws.l(fretinf.o) + 0x080024a0 0x080024a0 0x00000000 Code RO 3212 x$fpl$usenofp fz_ws.l(usenofp.o) + 0x080024a0 0x080024a0 0x00000010 Data RO 2719 .constdata system_stm32f1xx.o + 0x080024b0 0x080024b0 0x00000008 Data RO 2720 .constdata system_stm32f1xx.o + 0x080024b8 0x080024b8 0x00000d5c Data RO 2852 .constdata oled.o + 0x08003214 0x08003214 0x00000020 Data RO 3339 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080032f0, Size: 0x00000f18, Max: 0x00005000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08003234, Size: 0x00000f18, Max: 0x00005000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x080032f0 0x0000000c Data RW 791 .data stm32f1xx_hal.o - 0x2000000c 0x080032fc 0x00000004 Data RW 2718 .data system_stm32f1xx.o - 0x20000010 0x08003300 0x0000000c Data RW 2939 .data buzzer.o + 0x20000000 0x08003234 0x0000000c Data RW 794 .data stm32f1xx_hal.o + 0x2000000c 0x08003240 0x00000004 Data RW 2721 .data system_stm32f1xx.o + 0x20000010 0x08003244 0x0000000c Data RW 2952 .data buzzer.o 0x2000001c - 0x0000009c Zero RW 18 .bss main.o - 0x200000b8 - 0x00000800 Zero RW 2843 .bss oled.o - 0x200008b8 - 0x00000060 Zero RW 3203 .bss c_w.l(libspace.o) + 0x200000b8 - 0x00000800 Zero RW 2851 .bss oled.o + 0x200008b8 - 0x00000060 Zero RW 3216 .bss c_w.l(libspace.o) 0x20000918 - 0x00000200 Zero RW 2 HEAP startup_stm32f103xb.o 0x20000b18 - 0x00000400 Zero RW 1 STACK startup_stm32f103xb.o @@ -2021,8 +2020,8 @@ Image component sizes 188 20 0 12 0 1839 buzzer.o 28 6 0 0 0 920 hread_interface.o 534 32 0 0 156 427886 main.o - 196 30 0 0 0 1029 mymain.o - 906 30 3420 0 2048 8454 oled.o + 140 20 0 0 0 1029 mymain.o + 776 28 3420 0 2048 7444 oled.o 64 26 236 0 1536 816 startup_stm32f103xb.o 128 24 0 12 0 5325 stm32f1xx_hal.o 198 14 0 0 0 28959 stm32f1xx_hal_cortex.o @@ -2036,9 +2035,9 @@ Image component sizes 2 0 24 4 0 1131 system_stm32f1xx.o ---------------------------------------------------------------------- - 7424 436 3712 28 3740 519084 Object Totals + 7236 424 3712 28 3740 518074 Object Totals 0 0 32 0 0 0 (incl. Generated) - 16 0 0 0 0 0 (incl. Padding) + 14 0 0 0 0 0 (incl. Padding) ---------------------------------------------------------------------- @@ -2105,15 +2104,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 9328 572 3712 28 3836 515808 Grand Totals - 9328 572 3712 28 3836 515808 ELF Image Totals - 9328 572 3712 28 0 0 ROM Totals + 9140 560 3712 28 3836 514850 Grand Totals + 9140 560 3712 28 3836 514850 ELF Image Totals + 9140 560 3712 28 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 13040 ( 12.73kB) + Total RO Size (Code + RO Data) 12852 ( 12.55kB) Total RW Size (RW Data + ZI Data) 3864 ( 3.77kB) - Total ROM Size (Code + RO Data + RW Data) 13068 ( 12.76kB) + Total ROM Size (Code + RO Data + RW Data) 12880 ( 12.58kB) ============================================================================== diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL_f103c8t6_KEIL.dep b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL_f103c8t6_KEIL.dep index 16a033d..9449bef 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL_f103c8t6_KEIL.dep +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL_f103c8t6_KEIL.dep @@ -30,10 +30,11 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x625E1C31) -I (./MYDEIVERS/mymain.h)(0x625E1C31) -I (./MYDEIVERS/oled.h)(0x625FE0FC) +I (./MYDEIVERS/mymain.h)(0x62610F7B) +I (./MYDEIVERS/oled.h)(0x6260F46E) I (./MYDEIVERS/hread_interface.h)(0x625E1C31) I (./MYDEIVERS/buzzer.h)(0x625E1C31) +I (./MYDEIVERS/encode.h)(0x62611064) F (../Core/Src/stm32f1xx_it.c)(0x625E1C31)(--c99 -c --cpu Cortex-M3 -D__EVAL -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ./MYDEIVERS -I.\RTE\_f103c8t6_KEIL -IC:\Users\kevin\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\kevin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include -D__UVISION_VERSION="536" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o f103c8t6_keil\stm32f1xx_it.o --omf_browse f103c8t6_keil\stm32f1xx_it.crf --depend f103c8t6_keil\stm32f1xx_it.d) I (../Core/Inc/main.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x625E1C31) @@ -543,8 +544,8 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x625E1C31) -F (.\MYDEIVERS\mymain.c)(0x625FE282)(--c99 -c --cpu Cortex-M3 -D__EVAL -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ./MYDEIVERS -I.\RTE\_f103c8t6_KEIL -IC:\Users\kevin\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\kevin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include -D__UVISION_VERSION="536" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o f103c8t6_keil\mymain.o --omf_browse f103c8t6_keil\mymain.crf --depend f103c8t6_keil\mymain.d) -I (MYDEIVERS\mymain.h)(0x625E1C31) +F (.\MYDEIVERS\mymain.c)(0x626110F4)(--c99 -c --cpu Cortex-M3 -D__EVAL -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ./MYDEIVERS -I.\RTE\_f103c8t6_KEIL -IC:\Users\kevin\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\kevin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include -D__UVISION_VERSION="536" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o f103c8t6_keil\mymain.o --omf_browse f103c8t6_keil\mymain.crf --depend f103c8t6_keil\mymain.d) +I (MYDEIVERS\mymain.h)(0x62610F7B) I (../Core/Inc/main.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x625E1C31) I (../Core/Inc/stm32f1xx_hal_conf.h)(0x625E1C31) @@ -573,11 +574,12 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x625E1C31) -I (MYDEIVERS\oled.h)(0x625FE0FC) +I (MYDEIVERS\oled.h)(0x6260F46E) I (MYDEIVERS\hread_interface.h)(0x625E1C31) I (MYDEIVERS\buzzer.h)(0x625E1C31) -F (.\MYDEIVERS\oled.c)(0x625FE2FC)(--c99 -c --cpu Cortex-M3 -D__EVAL -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ./MYDEIVERS -I.\RTE\_f103c8t6_KEIL -IC:\Users\kevin\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\kevin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include -D__UVISION_VERSION="536" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o f103c8t6_keil\oled.o --omf_browse f103c8t6_keil\oled.crf --depend f103c8t6_keil\oled.d) -I (MYDEIVERS\oled.h)(0x625FE0FC) +I (MYDEIVERS\encode.h)(0x62611064) +F (.\MYDEIVERS\oled.c)(0x6260F6F9)(--c99 -c --cpu Cortex-M3 -D__EVAL -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ./MYDEIVERS -I.\RTE\_f103c8t6_KEIL -IC:\Users\kevin\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\kevin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Device\Include -D__UVISION_VERSION="536" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o f103c8t6_keil\oled.o --omf_browse f103c8t6_keil\oled.crf --depend f103c8t6_keil\oled.d) +I (MYDEIVERS\oled.h)(0x6260F46E) I (../Core/Inc/main.h)(0x625E1C31) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x625E1C31) I (../Core/Inc/stm32f1xx_hal_conf.h)(0x625E1C31) diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.crf b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.crf index c223b7b1adffa0654539f29bb558bcb303c48eaf..e4941829fae1e97c3cd48e859fa7054ab75d8123 100644 GIT binary patch delta 5477 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 T9aBlYu5H1|EvuCXVZ`(Q(}iD! delta 4808 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 diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.d b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.d index 4befe30..797fe18 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.d +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.d @@ -32,3 +32,4 @@ f103c8t6_keil\main.o: ./MYDEIVERS/mymain.h f103c8t6_keil\main.o: ./MYDEIVERS/oled.h f103c8t6_keil\main.o: ./MYDEIVERS/hread_interface.h f103c8t6_keil\main.o: ./MYDEIVERS/buzzer.h +f103c8t6_keil\main.o: ./MYDEIVERS/encode.h diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.o b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.o index e4641f76c2486035fb4e28b2b7d93808b161b183..76ca342e836446d360222e15c15376ed1d6bcbd9 100644 GIT binary patch delta 18835 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 diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.d b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.d index d4e69f0..a4b96a8 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.d +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.d @@ -32,3 +32,4 @@ f103c8t6_keil\mymain.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex f103c8t6_keil\mymain.o: MYDEIVERS\oled.h f103c8t6_keil\mymain.o: MYDEIVERS\hread_interface.h f103c8t6_keil\mymain.o: MYDEIVERS\buzzer.h +f103c8t6_keil\mymain.o: MYDEIVERS\encode.h diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.o b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.o index 5b0682b3ac2320edeecf917dad99c6118e59de3b..b58934db4e714b6dd42612db9e23b25bbe7a5743 100644 GIT binary patch delta 19245 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 Zp)fQ!pp=)hGcVU@w^f)l!{C83`7bn|Uts_M diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/oled.crf b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/oled.crf index d3a2bcd4d646cb059e006053de32a7b67dfbacad..dba36a191159c3255cfc04303c94b256fcdebfc8 100644 GIT binary patch delta 2309 zcmZuzdr%cs96o37W%r;2A{qi2ztGV^uQJkKHKwH^qu7+$=s45F;DGr$YJ$d1r;Fi? zqhgXYtz(#ilcfTpsF;?o@C6EGX?V8~ANWWiGxL>T-=0N8>CXJle82B}zvu2UY^;pA zQyt@}4P;E?j9Mi7^h{5tg}y#e%YgK$AEvSG7|$tLF9TC&WhARzJVc+)E`%C-{1~>Q zEmMP?_-=dG%kH!#ZfH#$zNIa5L%YoP&AQS02fad=5caY*$bghd>6t7N@$DHei!k3# z(g*weUGW%gWsz)q++`g}FWaWx0Y};T$V;B4ysWsb&m!qO_H%d*oXSPgHFXg4JmH5u zMR?;`)Z*ME9cGm0CJFyoKGvMRM!Xb}FS0nTw~tc$D7TLq9DU1otr5|DxWT@boU-^7 z%V6Iq^d8Vgg(d@SQYZ~*vqGs>XI7*T9TD`VHH;OT{x8L=0gYB1VDwrsz*k`fvJy$b zM4|4FtRS{UQWs#2y7ELTgq2DPCyGZS%Xk(qgm|lBBHdFV-Xk4 z2=O9_X(^7`P;FOqFHXIA2omg2ZVaDbbz(bxl46NwWbu!2Q?8tNJ{W~}N%9bRIC)$& zkgrCXZzaVM#c_&rowszhThd@!fT%q-prO2n^*sAd(mbNY+-{ds4lI{zRIPKW)3te4 zF#BH8d`FPOHNO?sgYA{HkQ17<8`fwA*CMfA~xUv;Bf_C+mECtBsD>QTjwj_RXg4-o#(=x}gx``H{>C@pA*KMkYI4{|MOw40vih<= zCFQ6VG+K!)%6tHy!-`;Ku)TsWhxCRc%@rEufqi7FfY-t{Im&!2^)E-cQfMA{Hytle zX#LRO-x9-+8fdj}*>h)uy(KXosSyi=&t>y1MGt59o`{`>1S+^1SNH!n=qTp; q*SSIR&F~&bM5*#6@S5>)!$X@bh9r$g#%U zXc-D$S{bX#Vif@fU;+Uk*c_{5@ssv{&&b3nH99&YV}ADhe64fd%oR0}7@;O6lL*vk zxhyTGAV(at=cLOduG3L&p(hOvSJmCAI%*fE%Lgay&_)QoVO6D7849?KjXD0QMmt>zeTgYTm(XPl_h9M3!pMjufLZAI}m zPni_RNAY&e_cKp2IDt}~@nVN&{G_0`6vg}@KFd+H)03wVPo)Vk_|glL=~ZWps1IwN z#=NwIK0v0y3ue(g3~tmMVh$09OirOH*nFiql{u9-)$Dhq*rj<6uRvFmOZX{DbP~na znwK+|k-IK&Ik1`xJ|T&_q!D(;ie}BlenB}IJx<(2v0L-|#8}o{*x(8Pud~NKUacNh ztBGE7ri;Dyt!nj97?I`NBlc5oaQ;EfZRi~8>O%gIegdV;$0c2Y$@dzJ`7{hV zfKEwgop^Crqs3KCs3ueshf^C)Xt8^~P}71(KwCZfbSq4cXug8_Ymzn~I_gJ%OZo)S z4}SEIq_tS6&5!=YtaTQhbdvDvS-4qEPFRLzj%)r4HYnvSmdSON+3n00Kic)1)g!?o z&=YnaX!vc^wrk#JxvxifGr~*Jy--iyrMho&%2y9qbk#`^r~PO@x?GHMcoYsl-Q^I4 z2l-iZJEomOeZLhp_%g_#Wxj<}ho8EDg?pj)SzfjnR=@a}(@-w}=&6SKtFLzZ3J+Lj z8CLA{Rn%<9if1&R!nh82bpj6HjvlmVm17C~N#UCouLpHJwhrv9$JT=V=CL(kT^_3d z>(;zdu?5!SF$s3gV?nU<9t(h7@R*4edNr?7%pWUa8>j?ofqF%^!$@EB(-n|502_gA zK%=6YxUp}fd8nxz>ZQAS8u5PpzItcKkV_+G{I0p&TfyM9@U8)N0(-)WE+YMhpRP~_ zuZR2@u*FR)x{hI&H5OxUxedy6Z`cI&PmNXCTX!Q=T(tt~fW~d?-B$}0D`Y{vqH!&| R7Xzky+RV-X{*?(z{vS_w1U3Kw diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/oled.o b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/oled.o index e3aa050d1718a6d3d3ecdc31f330d62ff8fb35bd..e9657523aec7422e47586d6ea5ba293171f278df 100644 GIT binary patch delta 27583 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 DG)ZP~ delta 26141 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 AApigX