From 41c3c361cafae0e973bf5a2a2692fa461061b1b1 Mon Sep 17 00:00:00 2001 From: kevin Date: Fri, 15 Apr 2022 17:38:45 +0800 Subject: [PATCH] =?UTF-8?q?OLED=20=E9=A9=B1=E5=8A=A8=20Signed-off-by:=20ke?= =?UTF-8?q?vin=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.c | 1 + f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.h | 1 + .../MDK-ARM/MYDEIVERS/hread_interface.c | 4 +- .../MDK-ARM/MYDEIVERS/hread_interface.h | 5 +- f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c | 12 +- f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c | 205 +++--- f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h | 4 + .../MDK-ARM/f103c8t6_KEIL.uvguix.wuwen | 59 +- f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvoptx | 12 + f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvprojx | 5 + .../MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.axf | Bin 507760 -> 507992 bytes .../f103c8t6_KEIL/f103c8t6_KEIL.build_log.htm | 18 +- .../MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.hex | 593 ++++++++---------- .../MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.htm | 178 +++--- .../MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.lnp | 1 + .../MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map | 514 +++++++-------- .../f103c8t6_KEIL_f103c8t6_KEIL.dep | 21 +- f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/fonts.crf | Bin 0 -> 18 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/fonts.d | 1 + f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/fonts.o | Bin 0 -> 4812 bytes .../MDK-ARM/f103c8t6_KEIL/hread_interface.crf | Bin 527051 -> 527377 bytes .../MDK-ARM/f103c8t6_KEIL/hread_interface.o | Bin 587240 -> 587312 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.crf | Bin 528863 -> 529281 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.o | Bin 592500 -> 592568 bytes .../MDK-ARM/f103c8t6_KEIL/mymain.crf | Bin 527139 -> 527611 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.o | Bin 586956 -> 587184 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/oled.crf | Bin 528166 -> 528620 bytes f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/oled.o | Bin 599096 -> 600896 bytes 28 files changed, 834 insertions(+), 800 deletions(-) create mode 100644 f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.c create mode 100644 f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.h create mode 100644 f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/fonts.crf create mode 100644 f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/fonts.d create mode 100644 f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/fonts.o diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.c b/f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.c new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.c @@ -0,0 +1 @@ + diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.h b/f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.h new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/fonts.h @@ -0,0 +1 @@ + diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/hread_interface.c b/f103c8t6_keil/MDK-ARM/MYDEIVERS/hread_interface.c index ef77797..383efda 100644 --- a/f103c8t6_keil/MDK-ARM/MYDEIVERS/hread_interface.c +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/hread_interface.c @@ -7,12 +7,12 @@ #include "hread_interface.h" -void IIC_SAND_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG) +void IIC_SAND_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,uint8_t *DATAS,uint16_t LONG) { HAL_I2C_Mem_Write(&hi2c1,DEVICE_ADD,IN_DEVICE_ADD,I2C_MEMADD_SIZE_8BIT,DATAS,LONG,100); } -void IIC_READ_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG) +void IIC_READ_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,uint8_t *DATAS,uint16_t LONG) { HAL_I2C_Mem_Read(&hi2c1,DEVICE_ADD,IN_DEVICE_ADD,I2C_MEMADD_SIZE_8BIT,DATAS,LONG,100); } diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/hread_interface.h b/f103c8t6_keil/MDK-ARM/MYDEIVERS/hread_interface.h index 004011d..4c7edd1 100644 --- a/f103c8t6_keil/MDK-ARM/MYDEIVERS/hread_interface.h +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/hread_interface.h @@ -13,6 +13,9 @@ extern I2C_HandleTypeDef hi2c1; -#define RUNLED(x) HAL_GPIO_WritePin(run_led_GPIO_Port, run_led_Pin, x) +#define RUNLED(x) HAL_GPIO_WritePin(run_led_GPIO_Port, run_led_Pin, x) +#define RUNLED_TICK() HAL_GPIO_TogglePin(run_led_GPIO_Port, run_led_Pin) +void IIC_SAND_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,uint8_t *DATAS,uint16_t LONG); +void IIC_READ_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,uint8_t *DATAS,uint16_t LONG); #endif /* HREAD_INTERFACE_H_ */ diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c b/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c index ae05cab..837446c 100644 --- a/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/mymain.c @@ -12,11 +12,19 @@ void mymain() uint32_t run_tick=0; OLED_Init(); - OLED_ShowStr(0,0,"test"); + + + while(1) { - + OLED_Cache_to_hardware(); + if(HAL_GetTick()>run_tick) + { + run_tick+=500; + RUNLED_TICK(); + } + } } diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c b/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c index cd71a9e..94cacb3 100644 --- a/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.c @@ -8,6 +8,127 @@ #include "oled.h" +/* +通过IIC发送指令到OLED +*/ +void OLED_WrCmd(unsigned char IIC_Command) +{ + uint8_t *pData; + pData = &IIC_Command; + IIC_SAND_DATE(OLED_ADDRESS,0x00,pData,1); +} +/* +通过IIC发送数据到OLED +*/ +void OLED_WrDat(unsigned char IIC_Data) +{ + uint8_t *pData; + pData = &IIC_Data; + IIC_SAND_DATE(OLED_ADDRESS,0x40,pData,1); +} +/* +设置硬件内的光标 +*/ +void OLED_Set_Pos(unsigned char x, unsigned char y) +{ + OLED_WrCmd( 0xb0 + 7-y ); + OLED_WrCmd(((x&0xf0)>>4)|0x10); + OLED_WrCmd( (x&0x0f) |0x00); +} +/* +初始化硬件内存(显存) +*/ +void OLED_Init_Display_Buffer(char a) +{ + + for(unsigned char y = 0;y < Y_WIDTH_;y++) + { + OLED_Set_Pos(0,y); + for(unsigned char x = 0;x < X_WIDTH;x++) + { + + OLED_WrDat(a); + //HAL_Delay(1); + } + } + + +} +/* +设置屏幕亮度 +*/ +void OLED_Setting_luminance(unsigned char a) +{ + OLED_WrCmd(0x81); + OLED_WrCmd(a*2.55); + +} +/* +初始化OLED +*/ +void OLED_Init(void) +{ + //HAL_Delay(200); + OLED_WrCmd(0xAE); //关闭显示 + OLED_WrCmd(0xD5); //设置时钟分频因子,震荡频率 + OLED_WrCmd( 80); //[3:0],分频因子;[7:4],震荡频率 + OLED_WrCmd(0xA8); //设置驱动路数 + OLED_WrCmd(0X3F); //默认0X3F(1/64) + OLED_WrCmd(0xD3); //设置显示偏移 + OLED_WrCmd(0X00); //默认为0 + OLED_WrCmd(0x40); //设置显示开始行 [5:0],行数. + OLED_WrCmd(0x8D); //电荷泵设置 + OLED_WrCmd(0x14); //bit2,开启/关闭 + OLED_WrCmd(0x20); //设置内存地址模式 + OLED_WrCmd(0x02); //[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10; + OLED_WrCmd(0xA1); //段重定义设置,bit0:0,0->0;1,0->127; + OLED_WrCmd(0xC0); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数 + //OLED_WrCmd(0xDA); //设置COM硬件引脚配置 + //OLED_WrCmd(0x12); //[5:4]配置 + //显示方向设置 + //OLED_WrCmd(0xc8);//OLED_WrCmd(0xa0); + //行扫描顺序:从上到下 + //列扫描顺序:从左到右 + OLED_WrCmd(0xD9); //设置预充电周期 + OLED_WrCmd(0xf1); //[3:0],PHASE 1;[7:4],PHASE 2; + OLED_WrCmd(0xDB); //设置VCOMH 电压倍率 + OLED_WrCmd(0x30); //[6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc; + + OLED_WrCmd(0xA4); //全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏) + OLED_WrCmd(0xA6); + //设置显示方式;bit0:1,反相显示;0,正常显示 + OLED_WrCmd(0xAF); //开启显示 + + OLED_Init_Display_Buffer(0); +} + +/*************************************************************************************************************************************************************************************/ +/*硬件与软件之间的部分*/ + + +/* +定义显存 +*/ +char OLED_buff[Y_WIDTH_][X_WIDTH]; + +/* +将显存发送到硬件 +*/ +void OLED_Cache_to_hardware() +{ + for(uint8_t y=0;y>4)|0x10); - OLED_WrCmd( (x&0x0f) |0x00); -} - -void OLED_Init_Display_Buffer(char a) -{ - - for(unsigned char y = 0;y < Y_WIDTH_;y++) - { - OLED_Set_Pos(0,y); - for(unsigned char x = 0;x < X_WIDTH;x++) - { - - OLED_WrDat(a); - //HAL_Delay(1); - } - } - - -} - -void OLED_Setting_luminance(unsigned char a) -{ - OLED_WrCmd(0x81); - OLED_WrCmd(a*2.55); - -} - -void OLED_Init(void) -{ - //HAL_Delay(200); - OLED_WrCmd(0xAE); //关闭显示 - OLED_WrCmd(0xD5); //设置时钟分频因子,震荡频率 - OLED_WrCmd( 80); //[3:0],分频因子;[7:4],震荡频率 - OLED_WrCmd(0xA8); //设置驱动路数 - OLED_WrCmd(0X3F); //默认0X3F(1/64) - OLED_WrCmd(0xD3); //设置显示偏移 - OLED_WrCmd(0X00); //默认为0 - OLED_WrCmd(0x40); //设置显示开始行 [5:0],行数. - OLED_WrCmd(0x8D); //电荷泵设置 - OLED_WrCmd(0x14); //bit2,开启/关闭 - OLED_WrCmd(0x20); //设置内存地址模式 - OLED_WrCmd(0x02); //[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10; - OLED_WrCmd(0xA1); //段重定义设置,bit0:0,0->0;1,0->127; - OLED_WrCmd(0xC0); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数 - //OLED_WrCmd(0xDA); //设置COM硬件引脚配置 - //OLED_WrCmd(0x12); //[5:4]配置 - //显示方向设置 - //OLED_WrCmd(0xc8);//OLED_WrCmd(0xa0); - //行扫描顺序:从上到下 - //列扫描顺序:从左到右 - OLED_WrCmd(0xD9); //设置预充电周期 - OLED_WrCmd(0xf1); //[3:0],PHASE 1;[7:4],PHASE 2; - OLED_WrCmd(0xDB); //设置VCOMH 电压倍率 - OLED_WrCmd(0x30); //[6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc; - - OLED_WrCmd(0xA4); //全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏) - OLED_WrCmd(0xA6); - //设置显示方式;bit0:1,反相显示;0,正常显示 - OLED_WrCmd(0xAF); //开启显示 -} - - - void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr) { OLED_Set_Pos(x,y); diff --git a/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h b/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h index cbf2ba0..105f866 100644 --- a/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h +++ b/f103c8t6_keil/MDK-ARM/MYDEIVERS/oled.h @@ -10,6 +10,7 @@ #include "main.h" #include "hread_interface.h" + #define OLED_ADDRESS 0x78 #define PI 3.141592654 #define X_WIDTH 128 @@ -17,6 +18,9 @@ #define Y_WIDTH_ 8 void OLED_Init(void); + +void OLED_Cache_to_hardware(); + void OLED_ShowStr(unsigned char x,unsigned char y,char *str); #endif /* OLED_H_ */ diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvguix.wuwen b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvguix.wuwen index f5603e7..5235c3f 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvguix.wuwen +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvguix.wuwen @@ -110,8 +110,8 @@ 0 - 483 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000020000000100000047433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF52433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6D796D61696E2E6300000000086D796D61696E2E6300000000FFDC7800FFFFFFFF52433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6D796D61696E2E6800000000086D796D61696E2E6800000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000A403000042010000F60B0000F4030000 + 1049 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000008000000030000000100000047433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF52433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6D796D61696E2E6300000000086D796D61696E2E6300000000FFDC7800FFFFFFFF52433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6D796D61696E2E6800000000086D796D61696E2E6800000000BECEA100FFFFFFFF50433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6F6C65642E6300000000066F6C65642E6300000000F0A0A100FFFFFFFF5B433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C68726561645F696E746572666163652E63000000001168726561645F696E746572666163652E6300000000BCA8E100FFFFFFFF5B433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C68726561645F696E746572666163652E68000000001168726561645F696E746572666163652E68000000009CC1B600FFFFFFFF50433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C6F6C65642E6800000000066F6C65642E6800000000F7B88600FFFFFFFF51433A5C55736572735C777577656E5C4465736B746F705C6D6F7273655F636F64655F747261696E65725C66313033633874365F6B65696C5C4D444B2D41524D5C4D59444549564552535C666F6E74732E630000000007666F6E74732E6300000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000A403000042010000F60B0000F4030000 @@ -1806,7 +1806,7 @@ File 2537 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 986 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000D66313033633874365F4B45494C960000000000000001000D66313033633874365F4B45494C000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000D66313033633874365F4B45494C960000000000000001000D66313033633874365F4B45494C000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1862,7 +1862,7 @@ 0 100 - 2 + 3 ../Core/Src/main.c 3 @@ -1874,9 +1874,9 @@ .\MYDEIVERS\mymain.c - 2 + 29 1 - 13 + 22 1 0 @@ -1890,6 +1890,51 @@ 0 + + .\MYDEIVERS\oled.c + 8 + 89 + 115 + 1 + + 0 + + + .\MYDEIVERS\hread_interface.c + 0 + 1 + 10 + 1 + + 0 + + + ./MYDEIVERS/hread_interface.h + 92 + 1 + 19 + 1 + + 0 + + + ./MYDEIVERS/oled.h + 30 + 1 + 22 + 1 + + 0 + + + .\MYDEIVERS\fonts.c + 0 + 1 + 2 + 1 + + 0 + diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvoptx b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvoptx index eb11a7f..2e9c0c3 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvoptx +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvoptx @@ -483,6 +483,18 @@ 0 0 + + 5 + 23 + 1 + 0 + 0 + 0 + .\MYDEIVERS\fonts.c + fonts.c + 0 + 0 + diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvprojx b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvprojx index 7d2ad81..6c94869 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvprojx +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL.uvprojx @@ -513,6 +513,11 @@ 1 .\MYDEIVERS\oled.c + + fonts.c + 1 + .\MYDEIVERS\fonts.c + diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.axf b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.axf index f1354c9a94bd32c962b5cb30eb006f5bbb4c951f..27aeba2f4658d410871da6df2d0fea8f2da83f50 100644 GIT binary patch delta 14482 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 delta 15289 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 diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.build_log.htm b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.build_log.htm index ccef55e..a5524f9 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.build_log.htm +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.build_log.htm @@ -27,20 +27,14 @@ Project File Date: 04/15/2022

Output:

*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' Build target 'f103c8t6_KEIL' -compiling mymain.c... -MYDEIVERS\mymain.h(14): warning: #1295-D: Deprecated declaration mymain - give arg types - void mymain(); -MYDEIVERS\mymain.c(12): warning: #177-D: variable "run_tick" was declared but never referenced - uint32_t run_tick=0; -MYDEIVERS\mymain.c: 2 warnings, 0 errors -compiling main.c... -./MYDEIVERS/mymain.h(14): warning: #1295-D: Deprecated declaration mymain - give arg types - void mymain(); -../Core/Src/main.c: 1 warning, 0 errors +compiling oled.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 linking... -Program Size: Code=4664 RO-data=1812 RW-data=16 ZI-data=1720 +Program Size: Code=4656 RO-data=292 RW-data=16 ZI-data=2744 FromELF: creating hex file... -"f103c8t6_KEIL\f103c8t6_KEIL.axf" - 0 Error(s), 3 Warning(s). +"f103c8t6_KEIL\f103c8t6_KEIL.axf" - 0 Error(s), 1 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 ca1689b..5bb1158 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 -:10000000C806002089010008E3100008B50D0008AB -:10001000E11000088F020008A11200080000000093 -:100020000000000000000000000000003B1200087B -:100030009102000800000000391200083D1200087B +:10000000C80A002089010008F3100008C50D000887 +:10001000F11000088F02000887120008000000009D +:100020000000000000000000000000002112000895 +:1000300091020008000000001F12000823120008AF :10004000A3010008A3010008A3010008A301000800 :10005000A3010008A3010008A3010008A3010008F0 :10006000A3010008A3010008A3010008A3010008E0 @@ -17,17 +17,17 @@ :1000F00000F03AF80AA090E8000C82448344AAF188 :100100000107DA4501D100F02FF8AFF2090EBAE885 :100110000F0013F0010F18BFFB1A43F0010318473B -:100120000C1800002C180000103A24BF78C878C1C1 +:100120001412000034120000103A24BF78C878C1BD :10013000FAD8520724BF30C830C144BF04680C60ED :10014000704700000023002400250026103A28BF35 :1001500078C1FBD8520728BF30C148BF0B60704739 :100160001FB51FBD10B510BD00F058F81146FFF7C0 -:10017000F7FF01F0A7F800F076F803B4FFF7F2FFFD +:10017000F7FF01F099F800F076F803B4FFF7F2FF0B :1001800003BC00F07DF8000009488047094800479B :10019000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE737 :1001A000FEE7FEE704480549054A064B7047000094 -:1001B0009F120008ED000008C8000020C8060020BB -:1001C000C8020020C80200204FF0000200B513460C +:1001B00085120008ED000008C8040020C80A0020CD +:1001C000C8060020C80600204FF0000200B5134604 :1001D00094469646203922BFA0E80C50A0E80C5067 :1001E000B1F12001BFF4F7AF090728BFA0E80C5018 :1001F00048BF0CC05DF804EB890028BF40F8042B11 @@ -38,7 +38,7 @@ :100240004FF000074FF000084FF0000B21F00701BE :10025000AC46ACE8C009ACE8C009ACE8C009ACE801 :10026000C0098D46704710B50446AFF300802046A4 -:10027000BDE81040FFF781BF0048704764000020D0 +:10027000BDE81040FFF781BF0048704764040020CC :1002800001491820ABBEFEE7260002007047FEE7DA :10029000704700002DE9F84FDFF8B891002409F10C :1002A000040A0AF1040B23460F270BF1040EC9E0E0 @@ -70,340 +70,245 @@ :100440002E60641C0D682A46E5407FF431AFBDE89C :10045000F88F00000004014000001110001002405D :100460000000014000080140000C01400010014064 -:10047000001401400AB1016170470904FBE7000064 -:1004800001488068704700000000002070B504003B -:1004900025D094F83D00002520B984F83C50204632 -:1004A00000F050F9242084F83D002068016821F014 -:1004B000010101602068016841F400410160206889 -:1004C000016821F40041016000F08AFA4D4A616838 -:1004D000914201D84C4900E04C49884201D20120A8 -:1004E00070BD4B492368B0FBF1F15E6826F03F0612 -:1004F0000E435E606368934206D94FF49673594386 -:100500004FF47A73B1FBF3F12368491C1E6A26F09D -:100510003F06314319626168914210D84900401E7C -:10052000B0FBF1F2521CC2F30B02042A01D20420E8 -:1005300022E0B0FBF1F0401CC0F30B001CE0A2680D -:10054000F2B301EBC10303EB0116431EB3FBF6F359 -:100550005B1C43F480431B0549D092B301EBC102FD -:1005600002EB0111401EB0FBF1F0401CC0F30B0088 -:1005700040F4804040F400402168CA694CF6FF73A3 -:100580009A431043C861D4E9071001432068026808 -:1005900022F0C00211430160D4E903010143206845 -:1005A000826848F2FF339A4311438160D4E9050120 -:1005B00008432168CA6822F0FF021043C86001E0C6 -:1005C0000EE016E02068016841F001010160256439 -:1005D000202084F83D00256384F83E50002070BD43 -:1005E00001EB4106431EB3FBF6F35B1CB3E70120AE -:1005F000C2E701EB4101401EB0FBF1F0401CC0F32B -:100600000B00B7E7A086010080841E0000093D00B2 -:1006100040420F002DE9FF4F83B09A46DDE9119764 -:1006200093460446DDF84080FFF72AFF054694F81C -:100630003D0020287FD11923012240492046009502 -:1006400000F04AFC002876D194F83C00012872D0D2 -:10065000012084F83C0020680168C90703D10168C3 -:1006600041F0010101602068016821F4006101602E -:10067000212084F83D00402084F83E0000262664B6 -:10068000C4F82480A4F82A90608D20852C48E0626C -:10069000CDE9007553465A462046049900F0A2FB66 -:1006A00070B930E02A463946204600F094FC58B133 -:1006B000206C042804D12068016841F400710160B5 -:1006C000012007B0BDE8F08F606A216800780861FA -:1006D000606A401C6062218D491E89B22185628D4D -:1006E000521E628522685369DB435B070BD469B1F4 -:1006F00000781061606A401C6062208D401E208579 -:10070000608D401E6085208D0028CBD12A46394659 -:10071000204600F0BBFB0028CAD154F83D0B01680D -:1007200041F400710160202004F81E09E677667725 -:100730000020C6E7FFE70220C3E700000200100028 -:100740000000FFFF10B586B00021009101910291D9 -:10075000039100680F4988421AD10F4CA06940F0FC -:100760000800A061A069694600F008000490C0205C -:10077000009012200190032003900848FFF78AFDA3 -:10078000E06940F40010E061E06900F400100490BA -:1007900006B010BD0054004000100240000C0140A3 -:1007A000024881680278114481607047000000208F -:1007B000074810B5016841F010010160032000F006 -:1007C00067F80F2000F006F800F024F8002010BDB4 -:1007D0000020024070B50D4D04464FF47A71287820 -:1007E000B1FBF0F00A490968B1FBF0F000F0CEFA75 -:1007F00048B9102C07D200222146501E00F028F8DC -:1008000000206C6070BD012070BD00000000002061 -:100810000C0000200C4808B5816941F0010181619C -:10082000816901F001010091C16941F08051C1610C -:10083000C06900F0805000900448416821F0E061F8 -:1008400041F00071416008BD00100240000001400D -:10085000F0B40E4B1B680C46C3F30223C3F107052B -:10086000042D00D90425191D072901D2002300E019 -:10087000DB1E012606FA05F1491E214099409E40E3 -:10088000761E16403143F0BC00F00BBD0CED00E0CD -:10089000064900F0070208684FF6FF03184040EAD7 -:1008A0000220034A10430860704700000CED00E08E -:1008B0000000FA052DE9F0470F46050061D0434ED0 -:1008C000306800F00700B84209D2306820F0070015 -:1008D00038433060306800F00700B84251D12868D2 -:1008E0003B4C810712D5400703D5606840F4E060B7 -:1008F00060602878000703D5606840F4605060604D -:100900006068A96820F0F000084360602878C0079C -:1009100028D06868012810D02168022810D08907E3 -:1009200000292EDA616821F0030101436160FFF7BD -:10093000A7FD804641F288390DE021688903EFE781 -:100940008901EDE7FFF79CFDA0EB0801494502D9BD -:100950000320BDE8F0876068696800F00C00B0EB28 -:10096000810FEFD1306800F00700B8420BD9306832 -:1009700020F0070038433060306800F00700B842CC -:1009800001D00120E5E72878400705D56068E968CF -:1009900020F4E060084360602878000706D56068AE -:1009A000296920F4605040EAC100606000F028F836 -:1009B0006168084AC1F30311515CC84006490860E8 -:1009C00006480068FFF706FF0020C2E7002002404B -:1009D00000100240241300080C0000200400002036 -:1009E0000448054900684968044AC1F30221515C82 -:1009F000C84070470C00002000100240341300086B -:100A000012A185B00FC98DE80F0014A0144A006828 -:100A100004905168134801F00C03042B10D0082BEC -:100A20000ED1C1F38343C9031DF803000AD55168F1 -:100A300004AAC1F34041515C0A4A5043B0FBF1F0B3 -:100A400005B0704708494843FAE70000020304056F -:100A5000060708090A0B0C0D0E0F1010010200000A -:100A60000010024000127A0000093D002DE9F84F05 -:100A7000040070D02078C04DC00749D06868C0F32A -:100A80008100012807D06868C0F38100022809D1DD -:100A90006868C00306D52868800339D560680028D7 -:100AA000E7D035E06068B0F5803F0BD010B1B0F50D -:100AB000A02F11D0286820F480302860286820F406 -:100AC000802002E0286840F480302860606890B19F -:100AD000FFF7D6FC06460AE0286840F4802028602C -:100AE000F0E700BFFFF7CCFC801B642873D82868B0 -:100AF0008003F7D50CE0FFF7C3FC064605E000BF16 -:100B0000FFF7BEFC801B6428F0D828688003F7D468 -:100B100020789A4E80074FF001094FF0000839D530 -:100B2000686810F00C0F07D06868C0F381000228D5 -:100B300009D16868C00306D42868800714D52069E5 -:100B4000012808D110E02069B0B1C6F80090FFF785 -:100B500097FC074605E00AE1FFF792FCC01B02285C -:100B6000C4D828688007F7D52868616920F0F800A4 -:100B700040EAC10028600DE0C6F80080FFF780FC65 -:100B8000074604E0FFF77CFCC01B022823D8286836 -:100B90008007F7D4207800072CD57948A169D9B10E -:100BA000C0F80090FFF76CFC074604E0FFF768FC14 -:100BB000C01B02280FD8686A8007F7D571484FF428 -:100BC000FA510068B0FBF1F0009000BF0098411EA0 -:100BD0000091FAD20EE080E0C0F80080FFF750FCF0 -:100BE000074604E0FFF74CFCC01B022875D8686A72 -:100BF0008007F7D42078400760D5E8690027C00057 -:100C000008D4E86940F08050E861E869012700F005 -:100C1000805000905C480168C90513D40168834680 -:100C200041F480710160FFF72BFC824606E000BFB3 -:100C3000FFF726FCA0EB0A0064284ED8DBF8000082 -:100C4000C005F5D5E06801280AD008B1052813D001 -:100C5000286A20F001002862286A20F0040002E0DF -:100C6000286A40F001002862E06841F2883B98B1B0 -:100C7000FFF706FC82460BE0286A40F00400286279 -:100C8000EEE700BFFFF7FCFBA0EB0A0159455AD87D -:100C9000286A8007F6D50CE0FFF7F2FB824605E0F4 -:100CA000FFF7EEFBA0EB0A0159454CD8286A8007F4 -:100CB000F6D41FB1E86920F08050E861E06988B39C -:100CC0006968C1F38101022944D00228C6F8608016 -:100CD00004D0FFF7D5FB044638E034E0FFF7D0FB43 -:100CE000074604E0FFF7CCFBC01B02282BD828687E -:100CF0008001F7D4206AB0F5803F05D16868A1680B -:100D000020F4003008436860D4E9080108436968AA -:100D100021F4741108436860C6F86090FFF7B0FBD7 -:100D2000044606E025E000BFFFF7AAFB001B0228EF -:100D300009D828688001F7D51BE000BFFFF7A0FBAA -:100D4000001B022802D90320BDE8F88F2868800123 -:100D5000F4D40EE00128F7D06868226A00F48031EC -:100D6000914204D1616A00F47010884201D00120E0 -:100D7000EAE70020E8E700000010024000004242DD -:100D8000800442420C0000200070004010B5401E5C -:100D9000B0F1807F01D3012010BD4FF0E0246061ED -:100DA0000F21601700F07DFA0020A061072020616C -:100DB000002010BDFEE701684A69D24352050FD4F6 -:100DC0006FF480624A61002140F8301F2022427394 -:100DD0008173026942F004020261017301207047CD -:100DE000002070472DE9F843044600680D46DDE910 -:100DF000089701689846164641F4807101604B4699 -:100E000000224FF001112046009700F065F848B12C -:100E100020680068C00502D54FF4007020640320EC -:100E2000BDE8F883216805F0FE0008613B464A46AC -:100E30001549204600F084F888B920684169806926 -:100E400000903A464946204600F0C5F848B1206C6B -:100E5000042804D12068016841F400710160012078 -:100E6000DEE7F5B2B8F1010F09D02168300A086158 -:100E70003A464946204600F0AEF80028E7D12068FF -:100E800005610020CCE700000200010070B51646A5 -:100E90000D4604460DE02046FFF78DFF08B1012006 -:100EA00070BD681C05D0FFF7EBFA801BA84207D87D -:100EB00035B120684069C0434007ECD4002070BDC4 -:100EC000002044F8300F20216173A073216941F0A4 -:100ED000200121612073E2E72DE9F0471E4690468C -:100EE0000D460446C1F30747DDF8209008E0701C6A -:100EF00006D0FFF7C5FAA0EB0900B0420FD876B1D3 -:100F00002068012F18D0806925EA00000004000C39 -:100F100014D000214145EAD00020BDE8F087002030 -:100F200044F8300F20216173A073216941F0200142 -:100F3000216120730120F0E74069E5E70121E9E73D -:100F40002DE9F0479A4691460E46044600254FF09B -:100F50002008C1F3074725E020684069C0434005E9 -:100F600014D42068016841F40071016021686FF4B5 -:100F700080604861256384F83D8084F83E50206C91 -:100F800040F00400206484F83C501FE0B9F1FF3FBA -:100F900008D0FFF775FAA0EB0A0149450CD8B9F162 -:100FA000000F09D02068012F13D0806926EA0000C5 -:100FB0000004000C0BD0CFE744F8305F84F80D80BC -:100FC000A573206940F02000206125730120BDE851 -:100FD000F0874069EAE770B516460D4604460DE015 -:100FE0002046FFF7E8FE08B1012070BD681C05D05F -:100FF000FFF746FA801BA84207D835B12068406940 -:10100000C0430006ECD4002070BD002044F8300F2F -:1010100020216173A073216941F0200121612073B7 -:10102000E2E700003EB564248DE81C000A46014654 -:1010300001230248FFF7EEFA3EBD00001000002039 -:10104000F0B585B0002524480095019502950395DB -:10105000816941F010018161816901F01001049101 -:10106000816941F020018161816901F020010491D1 -:10107000816941F008018161816901F008010491F1 -:10108000816941F0040181618069144F00F004001E -:101090004FF480540490002221463846FFF7EAF9C5 -:1010A0000122D60331463846FFF7E4F90220CDE9A4 -:1010B000025000940124694601943846FFF7EAF88B -:1010C0000320CDE90240CDE9006469463846FFF7C8 -:1010D000E1F805B0F0BD000000100240000C014036 -:1010E000FEE7FEE710B5AE2000F096F8D52000F040 -:1010F00093F8502000F090F8A82000F08DF83F20E1 -:1011000000F08AF8D32000F087F8002000F084F87F -:10111000402000F081F88D2000F07EF8142000F0CF -:101120007BF8202000F078F8022000F075F8A1206C -:1011300000F072F8C02000F06FF8D92000F06CF8D1 -:10114000F12000F069F8DB2000F066F8302000F0B4 -:1011500063F8A42000F060F8A62000F05DF8BDE878 -:101160001040AF2000F058B810B50446C1F1B700E8 -:10117000C0B200F051F8102040EA141000F04CF812 -:1011800004F00F00BDE8104000F046B82DE9F04132 -:1011900015460E460746FFF7E7FF1248002400EB0E -:1011A000051500BF05EB4400A0F5805090F8000E37 -:1011B00000F03AF8641CE4B2082CF3D3761CF1B2C8 -:1011C0003846FFF7D1FF002405EB4400A0F580501E -:1011D00090F8010E00F028F8641CE4B2082CF3D358 -:1011E000BDE8F0813C13000870B516460D46044674 -:1011F0000EE0802C05D3AD1CEDB2082D00D30025E8 -:10120000002429462046FFF7C1FF0834E4B2761CCB -:101210003278002AEDD170BD01B56A460123002164 -:101220007820FFF7FFFE08BD01B56A460123402183 -:101230007820FFF7F7FE08BD70477047FFF7B0BA98 -:1012400030B58FB028216846FEF7BEFF14210AA8EA -:10125000FEF7BAFF01210804CDE900100024029432 -:1012600002250491CDE907504FF4E010099068463B -:10127000FFF7FCFB08B172B6FEE70F20CDE90A05C7 -:101280004FF48060CDE90C4002210AA80E94FFF7CC -:1012900011FB002801D072B6FEE70FB030BD7047D9 -:1012A000FEE70907090E002804DB00F1E02080F8C2 -:1012B0000014704700F00F0000F1E02080F8141DCA -:1012C00070470000FFF774FAFFF7BAFFFFF7B8FEA8 -:1012D0000C480B494FF4804201600B4941600021EA -:1012E0008160C0E9031241618161C1610162FFF760 -:1012F000CDF808B172B6FEE700F008F8FEE700008E -:101300000054004010000020A0860100FFF7EAFE14 -:10131000002102A20846FFF767FFFEE774657374B9 -:1013200000000000000000000000000001020304B3 -:101330000607080900000000010203040000000085 -:10134000000000000000000000000000000000009D -:1013500000001FCC000C000000000000000008008E -:10136000300060000800300060000000022003FC34 -:101370001E20022003FC1E200220000000000E1888 -:1013800011043FFF10840C78000000000F0010844F -:101390000F3800C0077818840078000000780F84A8 -:1013A00010C411240E9800E40084000808006800AE -:1013B00070000000000000000000000000000000BD -:1013C000000007E01818200440020000000040025E -:1013D0002004181807E0000000000000024002404E -:1013E00001800FF001800240024000000080008078 -:1013F00000800FF800800080008000000001000DD8 -:10140000000E00000000000000000000000000804E -:101410000080008000800080008000800000000CC0 -:10142000000C0000000000000000000000000006AA -:10143000001800600180060018002000000007F07E -:10144000080810041004080807F000000000080451 -:1014500008041FFC000400040000000000000E0C43 -:1014600010141024104411840E0C000000000C18FD -:1014700010041104110412880C700000000000E038 -:101480000320042408241FFC0024000000001F98EF -:10149000108411041104108810700000000007F07F -:1014A00008881104110418880070000000001C0056 -:1014B000100010FC13001C001000000000000E388B -:1014C00011441084108411440E38000000000700FD -:1014D000088C10441044088807F000000000000049 -:1014E0000000030C030C00000000000000000000DE -:1014F0000001010600000000000000000000008064 -:1015000001400220041008081004000002200220FC -:10151000022002200220022002200000000010040D -:1015200008080410022001400080000000000E00A6 -:101530001200100C106C10800F00000003E00C185B -:1015400013E4142417C4082807D000000004003C4A -:1015500003C41C40074000E4001C000410041FFCEE -:101560001104110411040E880070000003E00C182F -:1015700010041004100410081C10000010041FFCBC -:10158000100410041004080807F0000010041FFCE9 -:101590001104110417C410040818000010041FFCE3 -:1015A0001104110017C010000800000003E00C181F -:1015B0001004100410441C780040000010041FFCAC -:1015C00010840080008010841FFC100400001004B0 -:1015D00010041FFC100410040000000000030001B0 -:1015E000100110011FFE10001000000010041FFC6D -:1015F000110403801464181C1004000010041FFC64 -:101600001004000400040004000C000010041FFC7F -:101610001F0000FC1F001FFC1004000010041FFC32 -:101620000C04030000E010181FFC100007F008086D -:10163000100410041004080807F0000010041FFC38 -:1016400010841080108010800F00000007F0081830 -:1016500010241024101C080A07F2000010041FFCBC -:101660001104110011C011300E0C000400000E1CFA -:1016700011041084108410441C380000180010005D -:1016800010041FFC100410001800000010001FF8C8 -:1016900010040004000410041FF8100010001E00C5 -:1016A00011E0001C007013801C0010001FC0103CD3 -:1016B00000E01F0000E0103C1FC000001004180CE8 -:1016C000163401C001C01634180C100410001C00A0 -:1016D000130400FC13041C00100000000804101C7C -:1016E0001064108413041C04101800000000000093 -:1016F00000007FFE40024002400200000000300077 -:101700000C0003800060001C000300000000400289 -:10171000400240027FFE00000000000000000000C8 -:1017200020004000400040002000000000010001B7 -:101730000001000100010001000100010000400063 -:1017400040002000000000000000000000000098A1 -:10175000012401440144014400FC000410001FFC6A -:10176000008801040104008800700000000000707F -:1017700000880104010401040088000000000070DA -:1017800000880104010411081FFC0004000000F897 -:10179000014401440144014400C800000000010468 -:1017A00001040FFC1104110411001800000000D600 -:1017B00001290129012901C90106000010041FFCAB -:1017C000008401000100010400FC00040000010489 -:1017D000190419FC000400040000000000000003CC -:1017E00000010101190119FE0000000010041FFC96 -:1017F0000024004001B4010C0104000000001004AA -:1018000010041FFC0004000400000000010401FC9F -:101810000104010001FC0104010000FC010401FCC1 -:10182000008401000100010400FC0004000000F835 -:10183000010401040104010400F80000010101FF9A -:1018400000850104010400880070000000000070A1 -:10185000008801040104010501FF000101040104E5 -:1018600001FC00840104010001800000000000CCA4 -:10187000012401240124012401980000000001003A -:10188000010007F80104010400000000010001F854 -:10189000000400040004010801FC000401000180B0 -:1018A0000170000C001001600180010001F0010CCA -:1018B000003001C00030010C01F001000000010403 -:1018C000018C00740170018C010400000101018190 -:1018D0000171000E00180160018001000000018408 -:1018E000010C013401440184010C000000000000DF -:1018F0000000000001003EFC400240020000000029 -:1019000000000000FFFF0000000000000000400297 -:1019100040023EFC010000000000000000006000EA -:101920008000800040004000200020004C1900088A -:101930000000002010000000280100085C190008C9 -:1019400010000020B806000044010008010000005B -:0C19500010000000000000000024F40063 +:1004700000140140C26821EA02030A4043EA024133 +:10048000016170470AB1016170470904FBE7000090 +:1004900001488068704700000000002070B504002B +:1004A00025D094F83D00002520B984F83C50204622 +:1004B00000F050F9242084F83D002068016821F004 +:1004C000010101602068016841F400410160206879 +:1004D000016821F40041016000F08AFA4D4A616828 +:1004E000914201D84C4900E04C49884201D2012098 +:1004F00070BD4B492368B0FBF1F15E6826F03F0602 +:100500000E435E606368934206D94FF49673594375 +:100510004FF47A73B1FBF3F12368491C1E6A26F08D +:100520003F06314319626168914210D84900401E6C +:10053000B0FBF1F2521CC2F30B02042A01D20420D8 +:1005400022E0B0FBF1F0401CC0F30B001CE0A268FD +:10055000F2B301EBC10303EB0116431EB3FBF6F349 +:100560005B1C43F480431B0549D092B301EBC102ED +:1005700002EB0111401EB0FBF1F0401CC0F30B0078 +:1005800040F4804040F400402168CA694CF6FF7393 +:100590009A431043C861D4E90710014320680268F8 +:1005A00022F0C00211430160D4E903010143206835 +:1005B000826848F2FF339A4311438160D4E9050110 +:1005C00008432168CA6822F0FF021043C86001E0B6 +:1005D0000EE016E02068016841F001010160256429 +:1005E000202084F83D00256384F83E50002070BD33 +:1005F00001EB4106431EB3FBF6F35B1CB3E701209E +:10060000C2E701EB4101401EB0FBF1F0401CC0F31A +:100610000B00B7E7A086010080841E0000093D00A2 +:1006200040420F002DE9FF4F83B09A46DDE9119754 +:1006300093460446DDF84080FFF72AFF054694F80C +:100640003D0020287FD119230122404920460095F2 +:1006500000F04AFC002876D194F83C00012872D0C2 +:10066000012084F83C0020680168C90703D10168B3 +:1006700041F0010101602068016821F4006101601E +:10068000212084F83D00402084F83E0000262664A6 +:10069000C4F82480A4F82A90608D20852C48E0625C +:1006A000CDE9007553465A462046049900F0A2FB56 +:1006B00070B930E02A463946204600F094FC58B123 +:1006C000206C042804D12068016841F400710160A5 +:1006D000012007B0BDE8F08F606A216800780861EA +:1006E000606A401C6062218D491E89B22185628D3D +:1006F000521E628522685369DB435B070BD469B1E4 +:1007000000781061606A401C6062208D401E208568 +:10071000608D401E6085208D0028CBD12A46394649 +:10072000204600F0BBFB0028CAD154F83D0B0168FD +:1007300041F400710160202004F81E09E677667715 +:100740000020C6E7FFE70220C3E700000200100018 +:100750000000FFFF10B586B00021009101910291C9 +:10076000039100680F4988421AD10F4CA06940F0EC +:100770000800A061A069694600F008000490C0204C +:10078000009012200190032003900848FFF782FD9B +:10079000E06940F40010E061E06900F400100490AA +:1007A00006B010BD0054004000100240000C014093 +:1007B000024881680278114481607047000000207F +:1007C000074810B5016841F010010160032000F0F6 +:1007D00067F80F2000F006F800F024F8002010BDA4 +:1007E0000020024070B50D4D04464FF47A71287810 +:1007F000B1FBF0F00A490968B1FBF0F000F0CEFA65 +:1008000048B9102C07D200222146501E00F028F8CB +:1008100000206C6070BD012070BD00000000002051 +:100820000C0000200C4808B5816941F0010181618C +:10083000816901F001010091C16941F08051C161FC +:10084000C06900F0805000900448416821F0E061E8 +:1008500041F00071416008BD0010024000000140FD +:10086000F0B40E4B1B680C46C3F30223C3F107051B +:10087000042D00D90425191D072901D2002300E009 +:10088000DB1E012606FA05F1491E214099409E40D3 +:10089000761E16403143F0BC00F0F6BC0CED00E0D3 +:1008A000064900F0070208684FF6FF03184040EAC7 +:1008B0000220034A10430860704700000CED00E07E +:1008C0000000FA052DE9F0470F46050061D0434EC0 +:1008D000306800F00700B84209D2306820F0070005 +:1008E00038433060306800F00700B84251D12868C2 +:1008F0003B4C810712D5400703D5606840F4E060A7 +:1009000060602878000703D5606840F4605060603C +:100910006068A96820F0F000084360602878C0078C +:1009200028D06868012810D02168022810D08907D3 +:1009300000292EDA616821F0030101436160FFF7AD +:10094000A7FD804641F288390DE021688903EFE771 +:100950008901EDE7FFF79CFDA0EB0801494502D9AD +:100960000320BDE8F0876068696800F00C00B0EB18 +:10097000810FEFD1306800F00700B8420BD9306822 +:1009800020F0070038433060306800F00700B842BC +:1009900001D00120E5E72878400705D56068E968BF +:1009A00020F4E060084360602878000706D560689E +:1009B000296920F4605040EAC100606000F028F826 +:1009C0006168084AC1F30311515CC84006490860D8 +:1009D00006480068FFF706FF0020C2E7002002403B +:1009E000001002401C1300080C000020040000202E +:1009F0000448054900684968044AC1F30221515C72 +:100A0000C84070470C000020001002402C13000862 +:100A100012A185B00FC98DE80F0014A0144A006818 +:100A200004905168134801F00C03042B10D0082BDC +:100A30000ED1C1F38343C9031DF803000AD55168E1 +:100A400004AAC1F34041515C0A4A5043B0FBF1F0A3 +:100A500005B0704708494843FAE70000020304055F +:100A6000060708090A0B0C0D0E0F101001020000FA +:100A70000010024000127A0000093D002DE9F84FF5 +:100A8000040070D02078C04DC00749D06868C0F31A +:100A90008100012807D06868C0F38100022809D1CD +:100AA0006868C00306D52868800339D560680028C7 +:100AB000E7D035E06068B0F5803F0BD010B1B0F5FD +:100AC000A02F11D0286820F480302860286820F4F6 +:100AD000802002E0286840F480302860606890B18F +:100AE000FFF7D6FC06460AE0286840F4802028601C +:100AF000F0E700BFFFF7CCFC801B642873D82868A0 +:100B00008003F7D50CE0FFF7C3FC064605E000BF05 +:100B1000FFF7BEFC801B6428F0D828688003F7D458 +:100B200020789A4E80074FF001094FF0000839D520 +:100B3000686810F00C0F07D06868C0F381000228C5 +:100B400009D16868C00306D42868800714D52069D5 +:100B5000012808D110E02069B0B1C6F80090FFF775 +:100B600097FC074605E00AE1FFF792FCC01B02284C +:100B7000C4D828688007F7D52868616920F0F80094 +:100B800040EAC10028600DE0C6F80080FFF780FC55 +:100B9000074604E0FFF77CFCC01B022823D8286826 +:100BA0008007F7D4207800072CD57948A169D9B1FE +:100BB000C0F80090FFF76CFC074604E0FFF768FC04 +:100BC000C01B02280FD8686A8007F7D571484FF418 +:100BD000FA510068B0FBF1F0009000BF0098411E90 +:100BE0000091FAD20EE080E0C0F80080FFF750FCE0 +:100BF000074604E0FFF74CFCC01B022875D8686A62 +:100C00008007F7D42078400760D5E8690027C00046 +:100C100008D4E86940F08050E861E869012700F0F5 +:100C2000805000905C480168C90513D40168834670 +:100C300041F480710160FFF72BFC824606E000BFA3 +:100C4000FFF726FCA0EB0A0064284ED8DBF8000072 +:100C5000C005F5D5E06801280AD008B1052813D0F1 +:100C6000286A20F001002862286A20F0040002E0CF +:100C7000286A40F001002862E06841F2883B98B1A0 +:100C8000FFF706FC82460BE0286A40F00400286269 +:100C9000EEE700BFFFF7FCFBA0EB0A0159455AD86D +:100CA000286A8007F6D50CE0FFF7F2FB824605E0E4 +:100CB000FFF7EEFBA0EB0A0159454CD8286A8007E4 +:100CC000F6D41FB1E86920F08050E861E06988B38C +:100CD0006968C1F38101022944D00228C6F8608006 +:100CE00004D0FFF7D5FB044638E034E0FFF7D0FB33 +:100CF000074604E0FFF7CCFBC01B02282BD828686E +:100D00008001F7D4206AB0F5803F05D16868A168FA +:100D100020F4003008436860D4E90801084369689A +:100D200021F4741108436860C6F86090FFF7B0FBC7 +:100D3000044606E025E000BFFFF7AAFB001B0228DF +:100D400009D828688001F7D51BE000BFFFF7A0FB9A +:100D5000001B022802D90320BDE8F88F2868800113 +:100D6000F4D40EE00128F7D06868226A00F48031DC +:100D7000914204D1616A00F47010884201D00120D0 +:100D8000EAE70020E8E700000010024000004242CD +:100D9000800442420C0000200070004010B5401E4C +:100DA000B0F1807F01D3012010BD4FF0E0246061DD +:100DB0000F21601700F068FA0020A0610720206171 +:100DC000002010BDFEE701684A69D24352050FD4E6 +:100DD0006FF480624A61002140F8301F2022427384 +:100DE0008173026942F004020261017301207047BD +:100DF000002070472DE9F843044600680D46DDE900 +:100E0000089701689846164641F4807101604B4688 +:100E100000224FF001112046009700F065F848B11C +:100E200020680068C00502D54FF4007020640320DC +:100E3000BDE8F883216805F0FE0008613B464A469C +:100E40001549204600F084F888B920684169806916 +:100E500000903A464946204600F0C5F848B1206C5B +:100E6000042804D12068016841F400710160012068 +:100E7000DEE7F5B2B8F1010F09D02168300A086148 +:100E80003A464946204600F0AEF80028E7D12068EF +:100E900005610020CCE700000200010070B5164695 +:100EA0000D4604460DE02046FFF78DFF08B10120F6 +:100EB00070BD681C05D0FFF7EBFA801BA84207D86D +:100EC00035B120684069C0434007ECD4002070BDB4 +:100ED000002044F8300F20216173A073216941F094 +:100EE000200121612073E2E72DE9F0471E4690467C +:100EF0000D460446C1F30747DDF8209008E0701C5A +:100F000006D0FFF7C5FAA0EB0900B0420FD876B1C2 +:100F10002068012F18D0806925EA00000004000C29 +:100F200014D000214145EAD00020BDE8F087002020 +:100F300044F8300F20216173A073216941F0200132 +:100F4000216120730120F0E74069E5E70121E9E72D +:100F50002DE9F0479A4691460E46044600254FF08B +:100F60002008C1F3074725E020684069C0434005D9 +:100F700014D42068016841F40071016021686FF4A5 +:100F800080604861256384F83D8084F83E50206C81 +:100F900040F00400206484F83C501FE0B9F1FF3FAA +:100FA00008D0FFF775FAA0EB0A0149450CD8B9F152 +:100FB000000F09D02068012F13D0806926EA0000B5 +:100FC0000004000C0BD0CFE744F8305F84F80D80AC +:100FD000A573206940F02000206125730120BDE841 +:100FE000F0874069EAE770B516460D4604460DE005 +:100FF0002046FFF7E8FE08B1012070BD681C05D04F +:10100000FFF746FA801BA84207D835B1206840692F +:10101000C0430006ECD4002070BD002044F8300F1F +:1010200020216173A073216941F0200121612073A7 +:10103000E2E700003EB564248DE81C000A46014644 +:1010400001230248FFF7EEFA3EBD00001000002029 +:10105000F0B585B0002524480095019502950395CB +:10106000816941F010018161816901F010010491F1 +:10107000816941F020018161816901F020010491C1 +:10108000816941F008018161816901F008010491E1 +:10109000816941F0040181618069144F00F004000E +:1010A0004FF480540490002221463846FFF7EAF9B5 +:1010B0000122D60331463846FFF7E4F90220CDE994 +:1010C000025000940124694601943846FFF7E2F883 +:1010D0000320CDE90240CDE9006469463846FFF7B8 +:1010E000D9F805B0F0BD000000100240000C01402E +:1010F000FEE7FEE72DE9F0410A4F002421460020DB +:1011000000F06BF8002507EBC416705D00F07FF867 +:101110006D1CEDB2802DF8D3641CE4B2082CEDD325 +:10112000BDE8F0816400002010B5AE2000F067F843 +:10113000D52000F064F8502000F061F8A82000F0FD +:101140005EF83F2000F05BF8D32000F058F8002054 +:1011500000F055F8402000F052F88D2000F04FF8D4 +:10116000142000F04CF8202000F049F8022000F094 +:1011700046F8A12000F043F8C02000F040F8D92044 +:1011800000F03DF8F12000F03AF8DB2000F037F8ED +:10119000302000F034F8A42000F031F8A62000F050 +:1011A0002EF8AF2000F02BF8BDE810400020AFF380 +:1011B000008070B5064600242146002000F00DF89E +:1011C0000025304600F023F86D1CEDB2802DF8D3D9 +:1011D000641CE4B2082CEFD370BD10B50446C1F115 +:1011E000B700C0B200F00BF8102040EA141000F075 +:1011F00006F804F00F00BDE81040AFF3008001B521 +:101200006A46012300217820FFF714FF08BD01B5CD +:101210006A46012340217820FFF70CFF08BD704784 +:101220007047FFF7C5BA30B58FB028216846FEF782 +:10123000CBFF14210AA8FEF7C7FF01210804CDE95E +:1012400000100024029402250491CDE907504FF4C8 +:10125000E01009906846FFF711FC08B172B6FEE78E +:101260000F20CDE90A054FF48060CDE90C40022142 +:101270000AA80E94FFF726FB002801D072B6FEE7FD +:101280000FB030BD7047FEE70907090E002804DBE8 +:1012900000F1E02080F80014704700F00F0000F12A +:1012A000E02080F8141D7047FFF78AFAFFF7BBFFB4 +:1012B000FFF7CEFE0C480B494FF4804201600B490A +:1012C000416000218160C0E9031241618161C16117 +:1012D0000162FFF7E3F808B172B6FEE700F008F824 +:1012E000FEE700000054004010000020A08601002E +:1012F0000024FFF719FF4FF40045074EFFF7FAFEF1 +:10130000FFF7C6F8A042F9D92946304604F5FA7429 +:10131000FFF7B0F8F2E70000000C01400000000009 +:101320000000000001020304060708090000000095 +:101330000102030454130008000000201000000004 +:10134000280100086413000810000020B80A0000FB +:10135000440100080100000010000000000000002F +:041360000024F40071 :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 7333356..3384d70 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.htm +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.htm @@ -3,11 +3,11 @@ Static Call Graph - [f103c8t6_KEIL\f103c8t6_KEIL.axf]

Static Call Graph for image f103c8t6_KEIL\f103c8t6_KEIL.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Fri Apr 15 14:18:48 2022 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Fri Apr 15 17:38:20 2022

-

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

+

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

Call chain for Maximum Stack Depth:

-__rt_entry_main ⇒ main ⇒ mymain ⇒ OLED_ShowStr ⇒ OLED_ShowChar ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout +__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

Functions with no stack information @@ -102,9 +102,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 @@ -112,80 +112,80 @@ 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)

    __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 @@ -198,17 +198,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 = 208 + Unknown Stack Size -
      • Call Chain = __rt_entry_main ⇒ main ⇒ mymain ⇒ OLED_ShowStr ⇒ OLED_ShowChar ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout +

        [Stack]
        • Max Depth = 192 + 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 @@ -218,7 +218,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 @@ -370,17 +370,17 @@ Global Symbols
            [Called By]
            • >>   SystemClock_Config
            -

            __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$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) +

            __rt_heap_escrow$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) -

            __rt_heap_expand$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) +

            __rt_heap_expand$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.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 @@ -401,21 +401,21 @@ Global Symbols
              [Called By]
              • >>   __rt_entry_main
              -

              __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)

              _sys_exit (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))

              [Called By]

              • >>   __rt_exit_exit
              -

              __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)

              BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.BusFault_Handler))

              [Calls]

              • >>   BusFault_Handler @@ -424,7 +424,7 @@ Global Symbols

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

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

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

              DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DebugMon_Handler))
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) @@ -436,6 +436,10 @@ 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_WritePin (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin))

              [Called By]

              • >>   MX_GPIO_Init
              @@ -446,6 +450,7 @@ Global Symbols
            • >>   I2C_WaitOnMasterAddressFlagUntilTimeout
            • >>   I2C_WaitOnFlagUntilTimeout
            • >>   I2C_WaitOnBTFFlagUntilTimeout +
            • >>   mymain
            • >>   HAL_RCC_OscConfig
            • >>   HAL_RCC_ClockConfig
            @@ -569,8 +574,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)) @@ -587,54 +592,53 @@ Global Symbols


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

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

          OLED_Cache_to_hardware (Thumb, 48 bytes, Stack size 24 bytes, oled.o(i.OLED_Cache_to_hardware)) +

          [Stack]

          • Max Depth = 192
          • 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 +
          +
          [Called By]
          • >>   mymain +
          + +

          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
            -

            OLED_Set_Pos (Thumb, 36 bytes, Stack size 8 bytes, oled.o(i.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_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_ShowChar +
                [Called By]
                • >>   OLED_Init_Display_Buffer +
                • >>   OLED_Cache_to_hardware
                -

                OLED_ShowChar (Thumb, 88 bytes, Stack size 24 bytes, oled.o(i.OLED_ShowChar)) -

                [Stack]

                • Max Depth = 192
                • Call Chain = OLED_ShowChar ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout -
                -
                [Calls]
                • >>   OLED_WrDat -
                • >>   OLED_Set_Pos -
                -
                [Called By]
                • >>   OLED_ShowStr -
                - -

                OLED_ShowStr (Thumb, 48 bytes, Stack size 16 bytes, oled.o(i.OLED_ShowStr)) -

                [Stack]

                • Max Depth = 208
                • Call Chain = OLED_ShowStr ⇒ OLED_ShowChar ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout -
                -
                [Calls]
                • >>   OLED_ShowChar -
                -
                [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_ShowChar +
                    [Called By]
                    • >>   OLED_Init_Display_Buffer +
                    • >>   OLED_Cache_to_hardware

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

                    • startup_stm32f103xb.o(RESET)

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

                    [Stack]

                    • Max Depth = 208
                    • Call Chain = main ⇒ mymain ⇒ OLED_ShowStr ⇒ OLED_ShowChar ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout +

                      [Stack]
                      • Max Depth = 192
                      • 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
                      • >>   HAL_Init @@ -680,11 +684,13 @@ Global Symbols
                        [Called By]
                        • >>   __rt_entry_main
                        -

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

                        [Stack]

                        • Max Depth = 208
                        • Call Chain = mymain ⇒ OLED_ShowStr ⇒ OLED_ShowChar ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout +

                          mymain (Thumb, 38 bytes, Stack size 0 bytes, mymain.o(i.mymain)) +

                          [Stack]

                          • Max Depth = 192
                          • Call Chain = mymain ⇒ OLED_Cache_to_hardware ⇒ OLED_Set_Pos ⇒ OLED_WrCmd ⇒ IIC_SAND_DATE ⇒ HAL_I2C_Mem_Write ⇒ I2C_RequestMemoryWrite ⇒ I2C_WaitOnMasterAddressFlagUntilTimeout
                          -
                          [Calls]
                          • >>   OLED_ShowStr -
                          • >>   OLED_Init +
                            [Calls]
                            • >>   HAL_GetTick +
                            • >>   HAL_GPIO_TogglePin +
                            • >>   OLED_Init +
                            • >>   OLED_Cache_to_hardware

                            [Called By]
                            • >>   main
                            diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.lnp b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.lnp index 5f944ff..7910d99 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.lnp +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.lnp @@ -21,6 +21,7 @@ "f103c8t6_keil\hread_interface.o" "f103c8t6_keil\mymain.o" "f103c8t6_keil\oled.o" +"f103c8t6_keil\fonts.o" --strict --scatter "f103c8t6_KEIL\f103c8t6_KEIL.sct" --summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols --info sizes --info totals --info unused --info veneers diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map index 524ee20..6af853b 100644 --- a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map +++ b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/f103c8t6_KEIL.map @@ -285,8 +285,14 @@ Section Cross References hread_interface.o(i.IIC_SAND_DATE) refers to stm32f1xx_hal_i2c.o(i.HAL_I2C_Mem_Write) for HAL_I2C_Mem_Write hread_interface.o(i.IIC_SAND_DATE) refers to main.o(.bss) for hi2c1 mymain.o(i.mymain) refers to oled.o(i.OLED_Init) for OLED_Init - mymain.o(i.mymain) refers to oled.o(i.OLED_ShowStr) for OLED_ShowStr + mymain.o(i.mymain) refers to oled.o(i.OLED_Cache_to_hardware) for OLED_Cache_to_hardware + mymain.o(i.mymain) refers to stm32f1xx_hal.o(i.HAL_GetTick) for HAL_GetTick + mymain.o(i.mymain) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_TogglePin) for HAL_GPIO_TogglePin + oled.o(i.OLED_Cache_to_hardware) refers to oled.o(i.OLED_Set_Pos) for OLED_Set_Pos + oled.o(i.OLED_Cache_to_hardware) refers to oled.o(i.OLED_WrDat) for OLED_WrDat + oled.o(i.OLED_Cache_to_hardware) refers to oled.o(.bss) for .bss oled.o(i.OLED_Init) refers to oled.o(i.OLED_WrCmd) for OLED_WrCmd + oled.o(i.OLED_Init) refers to oled.o(i.OLED_Init_Display_Buffer) for OLED_Init_Display_Buffer oled.o(i.OLED_Init_Display_Buffer) refers to oled.o(i.OLED_Set_Pos) for OLED_Set_Pos oled.o(i.OLED_Init_Display_Buffer) refers to oled.o(i.OLED_WrDat) for OLED_WrDat oled.o(i.OLED_Set_Pos) refers to oled.o(i.OLED_WrCmd) for OLED_WrCmd @@ -553,7 +559,6 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler), (24 bytes). Removing stm32f1xx_hal_gpio.o(i.HAL_GPIO_LockPin), (34 bytes). Removing stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin), (10 bytes). - Removing stm32f1xx_hal_gpio.o(i.HAL_GPIO_TogglePin), (16 bytes). Removing stm32f1xx_hal_dma.o(.rev16_text), (4 bytes). Removing stm32f1xx_hal_dma.o(.revsh_text), (4 bytes). Removing stm32f1xx_hal_dma.o(.rrx_text), (6 bytes). @@ -671,10 +676,12 @@ Removing Unused input sections from the image. 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_Init_Display_Buffer), (40 bytes). Removing oled.o(i.OLED_Setting_luminance), (44 bytes). + Removing oled.o(i.OLED_ShowChar), (92 bytes). + Removing oled.o(i.OLED_ShowStr), (48 bytes). + Removing oled.o(.constdata), (1520 bytes). -256 unused section(s) (total 20138 bytes) removed from the image. +257 unused section(s) (total 21742 bytes) removed from the image. ============================================================================== @@ -703,52 +710,52 @@ 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 boardinit1.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE - ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE + ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.o ABSOLUTE ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.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 __rtentry2.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.o ABSOLUTE ../clib/angel/rt.s 0x00000000 Number 0 rt_raise.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 sys_stackheap_outer.o ABSOLUTE ../clib/angel/sys.s 0x00000000 Number 0 libspace.o ABSOLUTE ../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 sys_stackheap_outer.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_exit.o ABSOLUTE ../clib/angel/sysapp.c 0x00000000 Number 0 sys_command.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 argv_veneer.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 _get_argv_nomalloc.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 hrguard.o ABSOLUTE ../clib/heapaux.c 0x00000000 Number 0 heapauxi.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE ../clib/libinit.s 0x00000000 Number 0 libinit.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 libshutdown.o ABSOLUTE ../clib/longlong.s 0x00000000 Number 0 llushr.o ABSOLUTE ../clib/memcpset.s 0x00000000 Number 0 rt_memclr_w.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtred_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_general.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_exit.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_rtmem_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.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 __raise.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_abrt_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 @@ -779,6 +786,7 @@ Image Symbol Table MYDEIVERS\\hread_interface.c 0x00000000 Number 0 hread_interface.o ABSOLUTE MYDEIVERS\\mymain.c 0x00000000 Number 0 mymain.o ABSOLUTE MYDEIVERS\\oled.c 0x00000000 Number 0 oled.o ABSOLUTE + MYDEIVERS\fonts.c 0x00000000 Number 0 fonts.o ABSOLUTE MYDEIVERS\hread_interface.c 0x00000000 Number 0 hread_interface.o ABSOLUTE MYDEIVERS\mymain.c 0x00000000 Number 0 mymain.o ABSOLUTE MYDEIVERS\oled.c 0x00000000 Number 0 oled.o ABSOLUTE @@ -843,68 +851,69 @@ Image Symbol Table i.BusFault_Handler 0x0800028e Section 0 stm32f1xx_it.o(i.BusFault_Handler) i.DebugMon_Handler 0x08000290 Section 0 stm32f1xx_it.o(i.DebugMon_Handler) i.HAL_GPIO_Init 0x08000294 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init) - i.HAL_GPIO_WritePin 0x08000474 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) - i.HAL_GetTick 0x08000480 Section 0 stm32f1xx_hal.o(i.HAL_GetTick) - i.HAL_I2C_Init 0x0800048c Section 0 stm32f1xx_hal_i2c.o(i.HAL_I2C_Init) - i.HAL_I2C_Mem_Write 0x08000614 Section 0 stm32f1xx_hal_i2c.o(i.HAL_I2C_Mem_Write) - i.HAL_I2C_MspInit 0x08000744 Section 0 stm32f1xx_hal_msp.o(i.HAL_I2C_MspInit) - i.HAL_IncTick 0x080007a0 Section 0 stm32f1xx_hal.o(i.HAL_IncTick) - i.HAL_Init 0x080007b0 Section 0 stm32f1xx_hal.o(i.HAL_Init) - i.HAL_InitTick 0x080007d4 Section 0 stm32f1xx_hal.o(i.HAL_InitTick) - i.HAL_MspInit 0x08000814 Section 0 stm32f1xx_hal_msp.o(i.HAL_MspInit) - i.HAL_NVIC_SetPriority 0x08000850 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) - i.HAL_NVIC_SetPriorityGrouping 0x08000890 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) - i.HAL_RCC_ClockConfig 0x080008b4 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig) - i.HAL_RCC_GetPCLK1Freq 0x080009e0 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) - i.HAL_RCC_GetSysClockFreq 0x08000a00 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) - i.HAL_RCC_OscConfig 0x08000a6c Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig) - i.HAL_SYSTICK_Config 0x08000d8c Section 0 stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config) - i.HardFault_Handler 0x08000db4 Section 0 stm32f1xx_it.o(i.HardFault_Handler) - i.I2C_IsAcknowledgeFailed 0x08000db6 Section 0 stm32f1xx_hal_i2c.o(i.I2C_IsAcknowledgeFailed) - I2C_IsAcknowledgeFailed 0x08000db7 Thumb Code 46 stm32f1xx_hal_i2c.o(i.I2C_IsAcknowledgeFailed) - i.I2C_RequestMemoryWrite 0x08000de4 Section 0 stm32f1xx_hal_i2c.o(i.I2C_RequestMemoryWrite) - I2C_RequestMemoryWrite 0x08000de5 Thumb Code 162 stm32f1xx_hal_i2c.o(i.I2C_RequestMemoryWrite) - i.I2C_WaitOnBTFFlagUntilTimeout 0x08000e8c Section 0 stm32f1xx_hal_i2c.o(i.I2C_WaitOnBTFFlagUntilTimeout) - I2C_WaitOnBTFFlagUntilTimeout 0x08000e8d Thumb Code 76 stm32f1xx_hal_i2c.o(i.I2C_WaitOnBTFFlagUntilTimeout) - i.I2C_WaitOnFlagUntilTimeout 0x08000ed8 Section 0 stm32f1xx_hal_i2c.o(i.I2C_WaitOnFlagUntilTimeout) - I2C_WaitOnFlagUntilTimeout 0x08000ed9 Thumb Code 104 stm32f1xx_hal_i2c.o(i.I2C_WaitOnFlagUntilTimeout) - i.I2C_WaitOnMasterAddressFlagUntilTimeout 0x08000f40 Section 0 stm32f1xx_hal_i2c.o(i.I2C_WaitOnMasterAddressFlagUntilTimeout) - I2C_WaitOnMasterAddressFlagUntilTimeout 0x08000f41 Thumb Code 150 stm32f1xx_hal_i2c.o(i.I2C_WaitOnMasterAddressFlagUntilTimeout) - i.I2C_WaitOnTXEFlagUntilTimeout 0x08000fd6 Section 0 stm32f1xx_hal_i2c.o(i.I2C_WaitOnTXEFlagUntilTimeout) - I2C_WaitOnTXEFlagUntilTimeout 0x08000fd7 Thumb Code 76 stm32f1xx_hal_i2c.o(i.I2C_WaitOnTXEFlagUntilTimeout) - i.IIC_SAND_DATE 0x08001024 Section 0 hread_interface.o(i.IIC_SAND_DATE) - i.MX_GPIO_Init 0x08001040 Section 0 main.o(i.MX_GPIO_Init) - MX_GPIO_Init 0x08001041 Thumb Code 150 main.o(i.MX_GPIO_Init) - i.MemManage_Handler 0x080010e0 Section 0 stm32f1xx_it.o(i.MemManage_Handler) - i.NMI_Handler 0x080010e2 Section 0 stm32f1xx_it.o(i.NMI_Handler) - i.OLED_Init 0x080010e4 Section 0 oled.o(i.OLED_Init) - i.OLED_Set_Pos 0x08001168 Section 0 oled.o(i.OLED_Set_Pos) - i.OLED_ShowChar 0x0800118c Section 0 oled.o(i.OLED_ShowChar) - i.OLED_ShowStr 0x080011e8 Section 0 oled.o(i.OLED_ShowStr) - i.OLED_WrCmd 0x08001218 Section 0 oled.o(i.OLED_WrCmd) - i.OLED_WrDat 0x08001228 Section 0 oled.o(i.OLED_WrDat) - i.PendSV_Handler 0x08001238 Section 0 stm32f1xx_it.o(i.PendSV_Handler) - i.SVC_Handler 0x0800123a Section 0 stm32f1xx_it.o(i.SVC_Handler) - i.SysTick_Handler 0x0800123c Section 0 stm32f1xx_it.o(i.SysTick_Handler) - i.SystemClock_Config 0x08001240 Section 0 main.o(i.SystemClock_Config) - i.SystemInit 0x0800129e Section 0 system_stm32f1xx.o(i.SystemInit) - i.UsageFault_Handler 0x080012a0 Section 0 stm32f1xx_it.o(i.UsageFault_Handler) - i.__NVIC_SetPriority 0x080012a2 Section 0 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) - __NVIC_SetPriority 0x080012a3 Thumb Code 32 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) - i.main 0x080012c4 Section 0 main.o(i.main) - i.mymain 0x0800130c Section 0 mymain.o(i.mymain) - .constdata 0x08001324 Section 16 system_stm32f1xx.o(.constdata) - .constdata 0x08001334 Section 8 system_stm32f1xx.o(.constdata) - .constdata 0x0800133c Section 1520 oled.o(.constdata) + i.HAL_GPIO_TogglePin 0x08000474 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_TogglePin) + i.HAL_GPIO_WritePin 0x08000484 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) + i.HAL_GetTick 0x08000490 Section 0 stm32f1xx_hal.o(i.HAL_GetTick) + i.HAL_I2C_Init 0x0800049c Section 0 stm32f1xx_hal_i2c.o(i.HAL_I2C_Init) + i.HAL_I2C_Mem_Write 0x08000624 Section 0 stm32f1xx_hal_i2c.o(i.HAL_I2C_Mem_Write) + i.HAL_I2C_MspInit 0x08000754 Section 0 stm32f1xx_hal_msp.o(i.HAL_I2C_MspInit) + i.HAL_IncTick 0x080007b0 Section 0 stm32f1xx_hal.o(i.HAL_IncTick) + i.HAL_Init 0x080007c0 Section 0 stm32f1xx_hal.o(i.HAL_Init) + i.HAL_InitTick 0x080007e4 Section 0 stm32f1xx_hal.o(i.HAL_InitTick) + i.HAL_MspInit 0x08000824 Section 0 stm32f1xx_hal_msp.o(i.HAL_MspInit) + i.HAL_NVIC_SetPriority 0x08000860 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) + i.HAL_NVIC_SetPriorityGrouping 0x080008a0 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) + i.HAL_RCC_ClockConfig 0x080008c4 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig) + i.HAL_RCC_GetPCLK1Freq 0x080009f0 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) + i.HAL_RCC_GetSysClockFreq 0x08000a10 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) + i.HAL_RCC_OscConfig 0x08000a7c Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig) + i.HAL_SYSTICK_Config 0x08000d9c Section 0 stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config) + i.HardFault_Handler 0x08000dc4 Section 0 stm32f1xx_it.o(i.HardFault_Handler) + i.I2C_IsAcknowledgeFailed 0x08000dc6 Section 0 stm32f1xx_hal_i2c.o(i.I2C_IsAcknowledgeFailed) + I2C_IsAcknowledgeFailed 0x08000dc7 Thumb Code 46 stm32f1xx_hal_i2c.o(i.I2C_IsAcknowledgeFailed) + i.I2C_RequestMemoryWrite 0x08000df4 Section 0 stm32f1xx_hal_i2c.o(i.I2C_RequestMemoryWrite) + I2C_RequestMemoryWrite 0x08000df5 Thumb Code 162 stm32f1xx_hal_i2c.o(i.I2C_RequestMemoryWrite) + i.I2C_WaitOnBTFFlagUntilTimeout 0x08000e9c Section 0 stm32f1xx_hal_i2c.o(i.I2C_WaitOnBTFFlagUntilTimeout) + I2C_WaitOnBTFFlagUntilTimeout 0x08000e9d Thumb Code 76 stm32f1xx_hal_i2c.o(i.I2C_WaitOnBTFFlagUntilTimeout) + i.I2C_WaitOnFlagUntilTimeout 0x08000ee8 Section 0 stm32f1xx_hal_i2c.o(i.I2C_WaitOnFlagUntilTimeout) + I2C_WaitOnFlagUntilTimeout 0x08000ee9 Thumb Code 104 stm32f1xx_hal_i2c.o(i.I2C_WaitOnFlagUntilTimeout) + i.I2C_WaitOnMasterAddressFlagUntilTimeout 0x08000f50 Section 0 stm32f1xx_hal_i2c.o(i.I2C_WaitOnMasterAddressFlagUntilTimeout) + I2C_WaitOnMasterAddressFlagUntilTimeout 0x08000f51 Thumb Code 150 stm32f1xx_hal_i2c.o(i.I2C_WaitOnMasterAddressFlagUntilTimeout) + i.I2C_WaitOnTXEFlagUntilTimeout 0x08000fe6 Section 0 stm32f1xx_hal_i2c.o(i.I2C_WaitOnTXEFlagUntilTimeout) + I2C_WaitOnTXEFlagUntilTimeout 0x08000fe7 Thumb Code 76 stm32f1xx_hal_i2c.o(i.I2C_WaitOnTXEFlagUntilTimeout) + i.IIC_SAND_DATE 0x08001034 Section 0 hread_interface.o(i.IIC_SAND_DATE) + i.MX_GPIO_Init 0x08001050 Section 0 main.o(i.MX_GPIO_Init) + MX_GPIO_Init 0x08001051 Thumb Code 150 main.o(i.MX_GPIO_Init) + i.MemManage_Handler 0x080010f0 Section 0 stm32f1xx_it.o(i.MemManage_Handler) + i.NMI_Handler 0x080010f2 Section 0 stm32f1xx_it.o(i.NMI_Handler) + i.OLED_Cache_to_hardware 0x080010f4 Section 0 oled.o(i.OLED_Cache_to_hardware) + i.OLED_Init 0x08001128 Section 0 oled.o(i.OLED_Init) + i.OLED_Init_Display_Buffer 0x080011b2 Section 0 oled.o(i.OLED_Init_Display_Buffer) + i.OLED_Set_Pos 0x080011da Section 0 oled.o(i.OLED_Set_Pos) + i.OLED_WrCmd 0x080011fe Section 0 oled.o(i.OLED_WrCmd) + i.OLED_WrDat 0x0800120e Section 0 oled.o(i.OLED_WrDat) + i.PendSV_Handler 0x0800121e Section 0 stm32f1xx_it.o(i.PendSV_Handler) + i.SVC_Handler 0x08001220 Section 0 stm32f1xx_it.o(i.SVC_Handler) + i.SysTick_Handler 0x08001222 Section 0 stm32f1xx_it.o(i.SysTick_Handler) + i.SystemClock_Config 0x08001226 Section 0 main.o(i.SystemClock_Config) + i.SystemInit 0x08001284 Section 0 system_stm32f1xx.o(i.SystemInit) + i.UsageFault_Handler 0x08001286 Section 0 stm32f1xx_it.o(i.UsageFault_Handler) + i.__NVIC_SetPriority 0x08001288 Section 0 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) + __NVIC_SetPriority 0x08001289 Thumb Code 32 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) + i.main 0x080012a8 Section 0 main.o(i.main) + i.mymain 0x080012f0 Section 0 mymain.o(i.mymain) + .constdata 0x0800131c Section 16 system_stm32f1xx.o(.constdata) + .constdata 0x0800132c Section 8 system_stm32f1xx.o(.constdata) .data 0x20000000 Section 12 stm32f1xx_hal.o(.data) .data 0x2000000c Section 4 system_stm32f1xx.o(.data) .bss 0x20000010 Section 84 main.o(.bss) - .bss 0x20000064 Section 96 libspace.o(.bss) - HEAP 0x200000c8 Section 512 startup_stm32f103xb.o(HEAP) - Heap_Mem 0x200000c8 Data 512 startup_stm32f103xb.o(HEAP) - STACK 0x200002c8 Section 1024 startup_stm32f103xb.o(STACK) - Stack_Mem 0x200002c8 Data 1024 startup_stm32f103xb.o(STACK) - __initial_sp 0x200006c8 Data 0 startup_stm32f103xb.o(STACK) + .bss 0x20000064 Section 1024 oled.o(.bss) + .bss 0x20000464 Section 96 libspace.o(.bss) + HEAP 0x200004c8 Section 512 startup_stm32f103xb.o(HEAP) + Heap_Mem 0x200004c8 Data 512 startup_stm32f103xb.o(HEAP) + STACK 0x200006c8 Section 1024 startup_stm32f103xb.o(STACK) + Stack_Mem 0x200006c8 Data 1024 startup_stm32f103xb.o(STACK) + __initial_sp 0x20000ac8 Data 0 startup_stm32f103xb.o(STACK) Global Symbols @@ -1057,52 +1066,53 @@ Image Symbol Table __semihosting_library_function 0x0800028f Thumb Code 0 indicate_semi.o(.text) DebugMon_Handler 0x08000291 Thumb Code 2 stm32f1xx_it.o(i.DebugMon_Handler) HAL_GPIO_Init 0x08000295 Thumb Code 446 stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init) - HAL_GPIO_WritePin 0x08000475 Thumb Code 10 stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) - HAL_GetTick 0x08000481 Thumb Code 6 stm32f1xx_hal.o(i.HAL_GetTick) - HAL_I2C_Init 0x0800048d Thumb Code 376 stm32f1xx_hal_i2c.o(i.HAL_I2C_Init) - HAL_I2C_Mem_Write 0x08000615 Thumb Code 294 stm32f1xx_hal_i2c.o(i.HAL_I2C_Mem_Write) - HAL_I2C_MspInit 0x08000745 Thumb Code 80 stm32f1xx_hal_msp.o(i.HAL_I2C_MspInit) - HAL_IncTick 0x080007a1 Thumb Code 12 stm32f1xx_hal.o(i.HAL_IncTick) - HAL_Init 0x080007b1 Thumb Code 32 stm32f1xx_hal.o(i.HAL_Init) - HAL_InitTick 0x080007d5 Thumb Code 54 stm32f1xx_hal.o(i.HAL_InitTick) - HAL_MspInit 0x08000815 Thumb Code 52 stm32f1xx_hal_msp.o(i.HAL_MspInit) - HAL_NVIC_SetPriority 0x08000851 Thumb Code 60 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) - HAL_NVIC_SetPriorityGrouping 0x08000891 Thumb Code 26 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) - HAL_RCC_ClockConfig 0x080008b5 Thumb Code 280 stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig) - HAL_RCC_GetPCLK1Freq 0x080009e1 Thumb Code 20 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) - HAL_RCC_GetSysClockFreq 0x08000a01 Thumb Code 74 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) - HAL_RCC_OscConfig 0x08000a6d Thumb Code 778 stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig) - HAL_SYSTICK_Config 0x08000d8d Thumb Code 40 stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config) - HardFault_Handler 0x08000db5 Thumb Code 2 stm32f1xx_it.o(i.HardFault_Handler) - IIC_SAND_DATE 0x08001025 Thumb Code 22 hread_interface.o(i.IIC_SAND_DATE) - MemManage_Handler 0x080010e1 Thumb Code 2 stm32f1xx_it.o(i.MemManage_Handler) - NMI_Handler 0x080010e3 Thumb Code 2 stm32f1xx_it.o(i.NMI_Handler) - OLED_Init 0x080010e5 Thumb Code 132 oled.o(i.OLED_Init) - OLED_Set_Pos 0x08001169 Thumb Code 36 oled.o(i.OLED_Set_Pos) - OLED_ShowChar 0x0800118d Thumb Code 88 oled.o(i.OLED_ShowChar) - OLED_ShowStr 0x080011e9 Thumb Code 48 oled.o(i.OLED_ShowStr) - OLED_WrCmd 0x08001219 Thumb Code 16 oled.o(i.OLED_WrCmd) - OLED_WrDat 0x08001229 Thumb Code 16 oled.o(i.OLED_WrDat) - PendSV_Handler 0x08001239 Thumb Code 2 stm32f1xx_it.o(i.PendSV_Handler) - SVC_Handler 0x0800123b Thumb Code 2 stm32f1xx_it.o(i.SVC_Handler) - SysTick_Handler 0x0800123d Thumb Code 4 stm32f1xx_it.o(i.SysTick_Handler) - SystemClock_Config 0x08001241 Thumb Code 94 main.o(i.SystemClock_Config) - SystemInit 0x0800129f Thumb Code 2 system_stm32f1xx.o(i.SystemInit) - UsageFault_Handler 0x080012a1 Thumb Code 2 stm32f1xx_it.o(i.UsageFault_Handler) - main 0x080012c5 Thumb Code 58 main.o(i.main) - mymain 0x0800130d Thumb Code 16 mymain.o(i.mymain) - AHBPrescTable 0x08001324 Data 16 system_stm32f1xx.o(.constdata) - APBPrescTable 0x08001334 Data 8 system_stm32f1xx.o(.constdata) - asc2_1608 0x0800133c Data 1520 oled.o(.constdata) - Region$$Table$$Base 0x0800192c Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x0800194c Number 0 anon$$obj.o(Region$$Table) + HAL_GPIO_TogglePin 0x08000475 Thumb Code 16 stm32f1xx_hal_gpio.o(i.HAL_GPIO_TogglePin) + HAL_GPIO_WritePin 0x08000485 Thumb Code 10 stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) + HAL_GetTick 0x08000491 Thumb Code 6 stm32f1xx_hal.o(i.HAL_GetTick) + HAL_I2C_Init 0x0800049d Thumb Code 376 stm32f1xx_hal_i2c.o(i.HAL_I2C_Init) + HAL_I2C_Mem_Write 0x08000625 Thumb Code 294 stm32f1xx_hal_i2c.o(i.HAL_I2C_Mem_Write) + HAL_I2C_MspInit 0x08000755 Thumb Code 80 stm32f1xx_hal_msp.o(i.HAL_I2C_MspInit) + HAL_IncTick 0x080007b1 Thumb Code 12 stm32f1xx_hal.o(i.HAL_IncTick) + HAL_Init 0x080007c1 Thumb Code 32 stm32f1xx_hal.o(i.HAL_Init) + HAL_InitTick 0x080007e5 Thumb Code 54 stm32f1xx_hal.o(i.HAL_InitTick) + HAL_MspInit 0x08000825 Thumb Code 52 stm32f1xx_hal_msp.o(i.HAL_MspInit) + HAL_NVIC_SetPriority 0x08000861 Thumb Code 60 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) + HAL_NVIC_SetPriorityGrouping 0x080008a1 Thumb Code 26 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) + HAL_RCC_ClockConfig 0x080008c5 Thumb Code 280 stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig) + HAL_RCC_GetPCLK1Freq 0x080009f1 Thumb Code 20 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) + HAL_RCC_GetSysClockFreq 0x08000a11 Thumb Code 74 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) + HAL_RCC_OscConfig 0x08000a7d Thumb Code 778 stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig) + HAL_SYSTICK_Config 0x08000d9d Thumb Code 40 stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config) + HardFault_Handler 0x08000dc5 Thumb Code 2 stm32f1xx_it.o(i.HardFault_Handler) + IIC_SAND_DATE 0x08001035 Thumb Code 22 hread_interface.o(i.IIC_SAND_DATE) + MemManage_Handler 0x080010f1 Thumb Code 2 stm32f1xx_it.o(i.MemManage_Handler) + NMI_Handler 0x080010f3 Thumb Code 2 stm32f1xx_it.o(i.NMI_Handler) + OLED_Cache_to_hardware 0x080010f5 Thumb Code 48 oled.o(i.OLED_Cache_to_hardware) + OLED_Init 0x08001129 Thumb Code 138 oled.o(i.OLED_Init) + OLED_Init_Display_Buffer 0x080011b3 Thumb Code 40 oled.o(i.OLED_Init_Display_Buffer) + OLED_Set_Pos 0x080011db Thumb Code 36 oled.o(i.OLED_Set_Pos) + OLED_WrCmd 0x080011ff Thumb Code 16 oled.o(i.OLED_WrCmd) + OLED_WrDat 0x0800120f Thumb Code 16 oled.o(i.OLED_WrDat) + PendSV_Handler 0x0800121f Thumb Code 2 stm32f1xx_it.o(i.PendSV_Handler) + SVC_Handler 0x08001221 Thumb Code 2 stm32f1xx_it.o(i.SVC_Handler) + SysTick_Handler 0x08001223 Thumb Code 4 stm32f1xx_it.o(i.SysTick_Handler) + SystemClock_Config 0x08001227 Thumb Code 94 main.o(i.SystemClock_Config) + SystemInit 0x08001285 Thumb Code 2 system_stm32f1xx.o(i.SystemInit) + UsageFault_Handler 0x08001287 Thumb Code 2 stm32f1xx_it.o(i.UsageFault_Handler) + main 0x080012a9 Thumb Code 58 main.o(i.main) + mymain 0x080012f1 Thumb Code 38 mymain.o(i.mymain) + AHBPrescTable 0x0800131c Data 16 system_stm32f1xx.o(.constdata) + APBPrescTable 0x0800132c Data 8 system_stm32f1xx.o(.constdata) + Region$$Table$$Base 0x08001334 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x08001354 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) SystemCoreClock 0x2000000c Data 4 system_stm32f1xx.o(.data) hi2c1 0x20000010 Data 84 main.o(.bss) - __libspace_start 0x20000064 Data 96 libspace.o(.bss) - __temporary_stack_top$libspace 0x200000c4 Data 0 libspace.o(.bss) + OLED_buff 0x20000064 Data 1024 oled.o(.bss) + __libspace_start 0x20000464 Data 96 libspace.o(.bss) + __temporary_stack_top$libspace 0x200004c4 Data 0 libspace.o(.bss) @@ -1112,136 +1122,136 @@ Memory Map of the image Image Entry point : 0x080000ed - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000195c, Max: 0x00010000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00001364, Max: 0x00010000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000194c, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00001354, 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 1912 * !!!main c_w.l(__main.o) - 0x080000f4 0x080000f4 0x00000034 Code RO 2088 !!!scatter c_w.l(__scatter.o) - 0x08000128 0x08000128 0x0000001a Code RO 2090 !!handler_copy c_w.l(__scatter_copy.o) + 0x080000ec 0x080000ec 0x00000008 Code RO 1921 * !!!main c_w.l(__main.o) + 0x080000f4 0x080000f4 0x00000034 Code RO 2097 !!!scatter c_w.l(__scatter.o) + 0x08000128 0x08000128 0x0000001a Code RO 2099 !!handler_copy c_w.l(__scatter_copy.o) 0x08000142 0x08000142 0x00000002 PAD - 0x08000144 0x08000144 0x0000001c Code RO 2092 !!handler_zi c_w.l(__scatter_zi.o) - 0x08000160 0x08000160 0x00000002 Code RO 1956 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) - 0x08000162 0x08000162 0x00000000 Code RO 1963 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1965 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1968 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1970 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1972 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1975 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1977 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1979 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1981 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1983 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1985 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1987 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1989 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1991 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1993 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1995 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 1999 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 2001 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 2003 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 2005 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000002 Code RO 2006 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) - 0x08000164 0x08000164 0x00000002 Code RO 2026 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) - 0x08000166 0x08000166 0x00000000 Code RO 2039 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 2041 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 2043 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 2046 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 2049 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 2051 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 2054 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000002 Code RO 2055 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) - 0x08000168 0x08000168 0x00000000 Code RO 1926 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) - 0x08000168 0x08000168 0x00000000 Code RO 1933 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) - 0x08000168 0x08000168 0x00000006 Code RO 1945 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) - 0x0800016e 0x0800016e 0x00000000 Code RO 1935 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) - 0x0800016e 0x0800016e 0x00000004 Code RO 1936 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) - 0x08000172 0x08000172 0x00000000 Code RO 1938 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) - 0x08000172 0x08000172 0x00000008 Code RO 1939 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) - 0x0800017a 0x0800017a 0x00000002 Code RO 1960 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) - 0x0800017c 0x0800017c 0x00000000 Code RO 2008 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) - 0x0800017c 0x0800017c 0x00000004 Code RO 2009 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) - 0x08000180 0x08000180 0x00000006 Code RO 2010 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) + 0x08000144 0x08000144 0x0000001c Code RO 2101 !!handler_zi c_w.l(__scatter_zi.o) + 0x08000160 0x08000160 0x00000002 Code RO 1965 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) + 0x08000162 0x08000162 0x00000000 Code RO 1972 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1974 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1977 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1979 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1981 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1984 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1986 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1988 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1990 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1992 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1994 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1996 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1998 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 2000 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 2002 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 2004 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 2008 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 2010 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 2012 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 2014 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000002 Code RO 2015 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) + 0x08000164 0x08000164 0x00000002 Code RO 2035 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) + 0x08000166 0x08000166 0x00000000 Code RO 2048 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 2050 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 2052 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 2055 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 2058 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 2060 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 2063 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000002 Code RO 2064 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) + 0x08000168 0x08000168 0x00000000 Code RO 1935 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) + 0x08000168 0x08000168 0x00000000 Code RO 1942 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) + 0x08000168 0x08000168 0x00000006 Code RO 1954 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) + 0x0800016e 0x0800016e 0x00000000 Code RO 1944 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) + 0x0800016e 0x0800016e 0x00000004 Code RO 1945 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) + 0x08000172 0x08000172 0x00000000 Code RO 1947 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) + 0x08000172 0x08000172 0x00000008 Code RO 1948 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) + 0x0800017a 0x0800017a 0x00000002 Code RO 1969 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) + 0x0800017c 0x0800017c 0x00000000 Code RO 2017 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) + 0x0800017c 0x0800017c 0x00000004 Code RO 2018 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) + 0x08000180 0x08000180 0x00000006 Code RO 2019 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) 0x08000186 0x08000186 0x00000002 PAD 0x08000188 0x08000188 0x00000040 Code RO 4 .text startup_stm32f103xb.o - 0x080001c8 0x080001c8 0x0000004e Code RO 1908 .text c_w.l(rt_memclr_w.o) - 0x08000216 0x08000216 0x00000006 Code RO 1910 .text c_w.l(heapauxi.o) - 0x0800021c 0x0800021c 0x0000004a Code RO 1947 .text c_w.l(sys_stackheap_outer.o) - 0x08000266 0x08000266 0x00000012 Code RO 1949 .text c_w.l(exit.o) - 0x08000278 0x08000278 0x00000008 Code RO 1957 .text c_w.l(libspace.o) - 0x08000280 0x08000280 0x0000000c Code RO 2018 .text c_w.l(sys_exit.o) - 0x0800028c 0x0800028c 0x00000002 Code RO 2029 .text c_w.l(use_no_semi.o) - 0x0800028e 0x0800028e 0x00000000 Code RO 2031 .text c_w.l(indicate_semi.o) + 0x080001c8 0x080001c8 0x0000004e Code RO 1917 .text c_w.l(rt_memclr_w.o) + 0x08000216 0x08000216 0x00000006 Code RO 1919 .text c_w.l(heapauxi.o) + 0x0800021c 0x0800021c 0x0000004a Code RO 1956 .text c_w.l(sys_stackheap_outer.o) + 0x08000266 0x08000266 0x00000012 Code RO 1958 .text c_w.l(exit.o) + 0x08000278 0x08000278 0x00000008 Code RO 1966 .text c_w.l(libspace.o) + 0x08000280 0x08000280 0x0000000c Code RO 2027 .text c_w.l(sys_exit.o) + 0x0800028c 0x0800028c 0x00000002 Code RO 2038 .text c_w.l(use_no_semi.o) + 0x0800028e 0x0800028e 0x00000000 Code RO 2040 .text c_w.l(indicate_semi.o) 0x0800028e 0x0800028e 0x00000002 Code RO 148 i.BusFault_Handler stm32f1xx_it.o 0x08000290 0x08000290 0x00000002 Code RO 149 i.DebugMon_Handler stm32f1xx_it.o 0x08000292 0x08000292 0x00000002 PAD 0x08000294 0x08000294 0x000001e0 Code RO 1042 i.HAL_GPIO_Init stm32f1xx_hal_gpio.o - 0x08000474 0x08000474 0x0000000a Code RO 1046 i.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o - 0x0800047e 0x0800047e 0x00000002 PAD - 0x08000480 0x08000480 0x0000000c Code RO 738 i.HAL_GetTick stm32f1xx_hal.o - 0x0800048c 0x0800048c 0x00000188 Code RO 306 i.HAL_I2C_Init stm32f1xx_hal_i2c.o - 0x08000614 0x08000614 0x00000130 Code RO 327 i.HAL_I2C_Mem_Write stm32f1xx_hal_i2c.o - 0x08000744 0x08000744 0x0000005c Code RO 224 i.HAL_I2C_MspInit stm32f1xx_hal_msp.o - 0x080007a0 0x080007a0 0x00000010 Code RO 744 i.HAL_IncTick stm32f1xx_hal.o - 0x080007b0 0x080007b0 0x00000024 Code RO 745 i.HAL_Init stm32f1xx_hal.o - 0x080007d4 0x080007d4 0x00000040 Code RO 746 i.HAL_InitTick stm32f1xx_hal.o - 0x08000814 0x08000814 0x0000003c Code RO 225 i.HAL_MspInit stm32f1xx_hal_msp.o - 0x08000850 0x08000850 0x00000040 Code RO 1208 i.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o - 0x08000890 0x08000890 0x00000024 Code RO 1209 i.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o - 0x080008b4 0x080008b4 0x0000012c Code RO 902 i.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o - 0x080009e0 0x080009e0 0x00000020 Code RO 909 i.HAL_RCC_GetPCLK1Freq stm32f1xx_hal_rcc.o - 0x08000a00 0x08000a00 0x0000006c Code RO 911 i.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o - 0x08000a6c 0x08000a6c 0x00000320 Code RO 914 i.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o - 0x08000d8c 0x08000d8c 0x00000028 Code RO 1213 i.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o - 0x08000db4 0x08000db4 0x00000002 Code RO 150 i.HardFault_Handler stm32f1xx_it.o - 0x08000db6 0x08000db6 0x0000002e Code RO 348 i.I2C_IsAcknowledgeFailed stm32f1xx_hal_i2c.o - 0x08000de4 0x08000de4 0x000000a8 Code RO 359 i.I2C_RequestMemoryWrite stm32f1xx_hal_i2c.o - 0x08000e8c 0x08000e8c 0x0000004c Code RO 363 i.I2C_WaitOnBTFFlagUntilTimeout stm32f1xx_hal_i2c.o - 0x08000ed8 0x08000ed8 0x00000068 Code RO 364 i.I2C_WaitOnFlagUntilTimeout stm32f1xx_hal_i2c.o - 0x08000f40 0x08000f40 0x00000096 Code RO 365 i.I2C_WaitOnMasterAddressFlagUntilTimeout stm32f1xx_hal_i2c.o - 0x08000fd6 0x08000fd6 0x0000004c Code RO 367 i.I2C_WaitOnTXEFlagUntilTimeout stm32f1xx_hal_i2c.o - 0x08001022 0x08001022 0x00000002 PAD - 0x08001024 0x08001024 0x0000001c Code RO 1777 i.IIC_SAND_DATE hread_interface.o - 0x08001040 0x08001040 0x000000a0 Code RO 14 i.MX_GPIO_Init main.o - 0x080010e0 0x080010e0 0x00000002 Code RO 151 i.MemManage_Handler stm32f1xx_it.o - 0x080010e2 0x080010e2 0x00000002 Code RO 152 i.NMI_Handler stm32f1xx_it.o - 0x080010e4 0x080010e4 0x00000084 Code RO 1840 i.OLED_Init oled.o - 0x08001168 0x08001168 0x00000024 Code RO 1842 i.OLED_Set_Pos oled.o - 0x0800118c 0x0800118c 0x0000005c Code RO 1844 i.OLED_ShowChar oled.o - 0x080011e8 0x080011e8 0x00000030 Code RO 1845 i.OLED_ShowStr oled.o - 0x08001218 0x08001218 0x00000010 Code RO 1846 i.OLED_WrCmd oled.o - 0x08001228 0x08001228 0x00000010 Code RO 1847 i.OLED_WrDat oled.o - 0x08001238 0x08001238 0x00000002 Code RO 153 i.PendSV_Handler stm32f1xx_it.o - 0x0800123a 0x0800123a 0x00000002 Code RO 154 i.SVC_Handler stm32f1xx_it.o - 0x0800123c 0x0800123c 0x00000004 Code RO 155 i.SysTick_Handler stm32f1xx_it.o - 0x08001240 0x08001240 0x0000005e Code RO 15 i.SystemClock_Config main.o - 0x0800129e 0x0800129e 0x00000002 Code RO 1739 i.SystemInit system_stm32f1xx.o - 0x080012a0 0x080012a0 0x00000002 Code RO 156 i.UsageFault_Handler stm32f1xx_it.o - 0x080012a2 0x080012a2 0x00000020 Code RO 1215 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o - 0x080012c2 0x080012c2 0x00000002 PAD - 0x080012c4 0x080012c4 0x00000048 Code RO 16 i.main main.o - 0x0800130c 0x0800130c 0x00000018 Code RO 1810 i.mymain mymain.o - 0x08001324 0x08001324 0x00000010 Data RO 1740 .constdata system_stm32f1xx.o - 0x08001334 0x08001334 0x00000008 Data RO 1741 .constdata system_stm32f1xx.o - 0x0800133c 0x0800133c 0x000005f0 Data RO 1848 .constdata oled.o - 0x0800192c 0x0800192c 0x00000020 Data RO 2086 Region$$Table anon$$obj.o + 0x08000474 0x08000474 0x00000010 Code RO 1045 i.HAL_GPIO_TogglePin stm32f1xx_hal_gpio.o + 0x08000484 0x08000484 0x0000000a Code RO 1046 i.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o + 0x0800048e 0x0800048e 0x00000002 PAD + 0x08000490 0x08000490 0x0000000c Code RO 738 i.HAL_GetTick stm32f1xx_hal.o + 0x0800049c 0x0800049c 0x00000188 Code RO 306 i.HAL_I2C_Init stm32f1xx_hal_i2c.o + 0x08000624 0x08000624 0x00000130 Code RO 327 i.HAL_I2C_Mem_Write stm32f1xx_hal_i2c.o + 0x08000754 0x08000754 0x0000005c Code RO 224 i.HAL_I2C_MspInit stm32f1xx_hal_msp.o + 0x080007b0 0x080007b0 0x00000010 Code RO 744 i.HAL_IncTick stm32f1xx_hal.o + 0x080007c0 0x080007c0 0x00000024 Code RO 745 i.HAL_Init stm32f1xx_hal.o + 0x080007e4 0x080007e4 0x00000040 Code RO 746 i.HAL_InitTick stm32f1xx_hal.o + 0x08000824 0x08000824 0x0000003c Code RO 225 i.HAL_MspInit stm32f1xx_hal_msp.o + 0x08000860 0x08000860 0x00000040 Code RO 1208 i.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o + 0x080008a0 0x080008a0 0x00000024 Code RO 1209 i.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o + 0x080008c4 0x080008c4 0x0000012c Code RO 902 i.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o + 0x080009f0 0x080009f0 0x00000020 Code RO 909 i.HAL_RCC_GetPCLK1Freq stm32f1xx_hal_rcc.o + 0x08000a10 0x08000a10 0x0000006c Code RO 911 i.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o + 0x08000a7c 0x08000a7c 0x00000320 Code RO 914 i.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o + 0x08000d9c 0x08000d9c 0x00000028 Code RO 1213 i.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o + 0x08000dc4 0x08000dc4 0x00000002 Code RO 150 i.HardFault_Handler stm32f1xx_it.o + 0x08000dc6 0x08000dc6 0x0000002e Code RO 348 i.I2C_IsAcknowledgeFailed stm32f1xx_hal_i2c.o + 0x08000df4 0x08000df4 0x000000a8 Code RO 359 i.I2C_RequestMemoryWrite stm32f1xx_hal_i2c.o + 0x08000e9c 0x08000e9c 0x0000004c Code RO 363 i.I2C_WaitOnBTFFlagUntilTimeout stm32f1xx_hal_i2c.o + 0x08000ee8 0x08000ee8 0x00000068 Code RO 364 i.I2C_WaitOnFlagUntilTimeout stm32f1xx_hal_i2c.o + 0x08000f50 0x08000f50 0x00000096 Code RO 365 i.I2C_WaitOnMasterAddressFlagUntilTimeout stm32f1xx_hal_i2c.o + 0x08000fe6 0x08000fe6 0x0000004c Code RO 367 i.I2C_WaitOnTXEFlagUntilTimeout stm32f1xx_hal_i2c.o + 0x08001032 0x08001032 0x00000002 PAD + 0x08001034 0x08001034 0x0000001c Code RO 1777 i.IIC_SAND_DATE hread_interface.o + 0x08001050 0x08001050 0x000000a0 Code RO 14 i.MX_GPIO_Init main.o + 0x080010f0 0x080010f0 0x00000002 Code RO 151 i.MemManage_Handler stm32f1xx_it.o + 0x080010f2 0x080010f2 0x00000002 Code RO 152 i.NMI_Handler stm32f1xx_it.o + 0x080010f4 0x080010f4 0x00000034 Code RO 1840 i.OLED_Cache_to_hardware oled.o + 0x08001128 0x08001128 0x0000008a Code RO 1841 i.OLED_Init oled.o + 0x080011b2 0x080011b2 0x00000028 Code RO 1842 i.OLED_Init_Display_Buffer oled.o + 0x080011da 0x080011da 0x00000024 Code RO 1843 i.OLED_Set_Pos oled.o + 0x080011fe 0x080011fe 0x00000010 Code RO 1847 i.OLED_WrCmd oled.o + 0x0800120e 0x0800120e 0x00000010 Code RO 1848 i.OLED_WrDat oled.o + 0x0800121e 0x0800121e 0x00000002 Code RO 153 i.PendSV_Handler stm32f1xx_it.o + 0x08001220 0x08001220 0x00000002 Code RO 154 i.SVC_Handler stm32f1xx_it.o + 0x08001222 0x08001222 0x00000004 Code RO 155 i.SysTick_Handler stm32f1xx_it.o + 0x08001226 0x08001226 0x0000005e Code RO 15 i.SystemClock_Config main.o + 0x08001284 0x08001284 0x00000002 Code RO 1739 i.SystemInit system_stm32f1xx.o + 0x08001286 0x08001286 0x00000002 Code RO 156 i.UsageFault_Handler stm32f1xx_it.o + 0x08001288 0x08001288 0x00000020 Code RO 1215 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o + 0x080012a8 0x080012a8 0x00000048 Code RO 16 i.main main.o + 0x080012f0 0x080012f0 0x0000002c Code RO 1810 i.mymain mymain.o + 0x0800131c 0x0800131c 0x00000010 Data RO 1740 .constdata system_stm32f1xx.o + 0x0800132c 0x0800132c 0x00000008 Data RO 1741 .constdata system_stm32f1xx.o + 0x08001334 0x08001334 0x00000020 Data RO 2095 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800194c, Size: 0x000006c8, Max: 0x00005000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08001354, Size: 0x00000ac8, Max: 0x00005000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x0800194c 0x0000000c Data RW 752 .data stm32f1xx_hal.o - 0x2000000c 0x08001958 0x00000004 Data RW 1742 .data system_stm32f1xx.o + 0x20000000 0x08001354 0x0000000c Data RW 752 .data stm32f1xx_hal.o + 0x2000000c 0x08001360 0x00000004 Data RW 1742 .data system_stm32f1xx.o 0x20000010 - 0x00000054 Zero RW 17 .bss main.o - 0x20000064 - 0x00000060 Zero RW 1958 .bss c_w.l(libspace.o) - 0x200000c4 0x0800195c 0x00000004 PAD - 0x200000c8 - 0x00000200 Zero RW 2 HEAP startup_stm32f103xb.o - 0x200002c8 - 0x00000400 Zero RW 1 STACK startup_stm32f103xb.o + 0x20000064 - 0x00000400 Zero RW 1849 .bss oled.o + 0x20000464 - 0x00000060 Zero RW 1967 .bss c_w.l(libspace.o) + 0x200004c4 0x08001364 0x00000004 PAD + 0x200004c8 - 0x00000200 Zero RW 2 HEAP startup_stm32f103xb.o + 0x200006c8 - 0x00000400 Zero RW 1 STACK startup_stm32f103xb.o ============================================================================== @@ -1251,14 +1261,14 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name - 28 6 0 0 0 624 hread_interface.o + 28 6 0 0 0 920 hread_interface.o 326 24 0 0 84 395176 main.o - 24 8 0 0 0 429 mymain.o - 340 4 1520 0 0 3956 oled.o + 44 6 0 0 0 473 mymain.o + 298 4 0 0 1024 3917 oled.o 64 26 236 0 1536 816 startup_stm32f103xb.o 128 24 0 12 0 5325 stm32f1xx_hal.o 172 14 0 0 0 28298 stm32f1xx_hal_cortex.o - 490 34 0 0 0 2904 stm32f1xx_hal_gpio.o + 506 34 0 0 0 3521 stm32f1xx_hal_gpio.o 1316 32 0 0 0 9219 stm32f1xx_hal_i2c.o 152 20 0 0 0 1556 stm32f1xx_hal_msp.o 1240 88 0 0 0 4645 stm32f1xx_hal_rcc.o @@ -1266,9 +1276,9 @@ Image component sizes 2 0 24 4 0 1131 system_stm32f1xx.o ---------------------------------------------------------------------- - 4310 280 1812 16 1620 457981 Object Totals + 4302 278 292 16 2644 458899 Object Totals 0 0 32 0 0 0 (incl. Generated) - 8 0 0 0 0 0 (incl. Padding) + 6 0 0 0 0 0 (incl. Padding) ---------------------------------------------------------------------- @@ -1316,15 +1326,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 4664 296 1812 16 1720 456301 Grand Totals - 4664 296 1812 16 1720 456301 ELF Image Totals - 4664 296 1812 16 0 0 ROM Totals + 4656 294 292 16 2744 457167 Grand Totals + 4656 294 292 16 2744 457167 ELF Image Totals + 4656 294 292 16 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 6476 ( 6.32kB) - Total RW Size (RW Data + ZI Data) 1736 ( 1.70kB) - Total ROM Size (Code + RO Data + RW Data) 6492 ( 6.34kB) + Total RO Size (Code + RO Data) 4948 ( 4.83kB) + Total RW Size (RW Data + ZI Data) 2760 ( 2.70kB) + Total ROM Size (Code + RO Data + RW Data) 4964 ( 4.85kB) ============================================================================== 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 a41cc54..d0748d6 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 @@ -29,8 +29,8 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x6224463D) I (./MYDEIVERS/mymain.h)(0x62590E47) -I (./MYDEIVERS/oled.h)(0x625903B6) -I (./MYDEIVERS/hread_interface.h)(0x6258FED0) +I (./MYDEIVERS/oled.h)(0x62593CA4) +I (./MYDEIVERS/hread_interface.h)(0x625910E8) F (../Core/Src/stm32f1xx_it.c)(0x62590B1B)(--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\wuwen\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\wuwen\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)(0x62590B1B) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x6224463D) @@ -476,8 +476,8 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x6224463D) -F (.\MYDEIVERS\hread_interface.c)(0x6258FE49)(--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\wuwen\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\wuwen\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\hread_interface.o --omf_browse f103c8t6_keil\hread_interface.crf --depend f103c8t6_keil\hread_interface.d) -I (MYDEIVERS\hread_interface.h)(0x6258FED0) +F (.\MYDEIVERS\hread_interface.c)(0x625910E8)(--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\wuwen\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\wuwen\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\hread_interface.o --omf_browse f103c8t6_keil\hread_interface.crf --depend f103c8t6_keil\hread_interface.d) +I (MYDEIVERS\hread_interface.h)(0x625910E8) I (../Core/Inc/main.h)(0x62590B1B) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x6224463D) I (../Core/Inc/stm32f1xx_hal_conf.h)(0x62590DE4) @@ -504,7 +504,7 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x6224463D) -F (.\MYDEIVERS\mymain.c)(0x62590E47)(--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\wuwen\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\wuwen\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) +F (.\MYDEIVERS\mymain.c)(0x62593CD5)(--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\wuwen\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\wuwen\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)(0x62590E47) I (../Core/Inc/main.h)(0x62590B1B) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x6224463D) @@ -532,10 +532,10 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x6224463D) -I (MYDEIVERS\oled.h)(0x625903B6) -I (MYDEIVERS\hread_interface.h)(0x6258FED0) -F (.\MYDEIVERS\oled.c)(0x625902F3)(--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\wuwen\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\wuwen\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)(0x625903B6) +I (MYDEIVERS\oled.h)(0x62593CA4) +I (MYDEIVERS\hread_interface.h)(0x625910E8) +F (.\MYDEIVERS\oled.c)(0x62593D0B)(--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\wuwen\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\wuwen\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)(0x62593CA4) I (../Core/Inc/main.h)(0x62590B1B) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x6224463D) I (../Core/Inc/stm32f1xx_hal_conf.h)(0x62590DE4) @@ -562,4 +562,5 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h)(0x6224463D) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x6224463D) -I (MYDEIVERS\hread_interface.h)(0x6258FED0) +I (MYDEIVERS\hread_interface.h)(0x625910E8) +F (.\MYDEIVERS\fonts.c)(0x6259374C)(--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\wuwen\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\wuwen\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\fonts.o --omf_browse f103c8t6_keil\fonts.crf --depend f103c8t6_keil\fonts.d) diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/fonts.crf b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/fonts.crf new file mode 100644 index 0000000000000000000000000000000000000000..3ff275a183b5af724c3f8454d687f5dc69a1137c GIT binary patch literal 18 Wcmcb?!N9=8$N&VgH&}p71|V!LCz;zm4? z6^H#+-Lu6_ajh|IcUodDoA^RB9jAlFZa1G7zsj`I*^SoMz{Oasnahc>*r4BOd)B~i zdTpmSK%!+ghNohzDaM?WWFp<%^0L;M-R{&*oSrv`JIthS_gcHxsavRS_J_N9$Mx*X zSTT)qz26+{wtJrKUO4WV7%LIkYS&M#!LZ+V?ZIF-mrEzbm==$(<3M{|>*4eyDQ^4R zb_eT*Sxl!2$;(UYK-MkJzPr`BZlBhhZzf&li-u;bEB1N2X`}ye3i8_-w(RT7$5iXZ zmx`(#s}+L`YZX(iS)+^`s+x{;e!Es3VEna<;f39+$^E`k_v$s>Y1TV6+=p7Z-aH%B za5rl#oZ3cwE1vK%Wug{N_>R5~X{*9?DTQ(^70;kkzS7X4Vp;03j8P(}9&3hHI)v8Yoi@yB~VljW4Kv< zJ^CG$YXsKt7mImz0kFjVsutkwHPE2h*;%pz%Ti=au_dm`eOF9wh^a&>wTf;m%hZZY zk=)!)rnfU&oHa}(kLF2c!UTWEh|J}3iKHH?4oZfp;^vN5^8Kr`GTqyrH z1*-s_&MP$_VhzxItOm$pq6*lMk?Kk%j9XJJaR0a*y0y7bce^1PrQVNUuH+A_O)Ib+ zXUW4v8kntlP%ZBHiJP#_X0EZ8X-qmbnVNE?RM2$w>ZAo#Hmem@=Y{8`iZVGU(DM2D z%7Q)c2NtWksg?DY*AG-m)jeJPVaJMgtSRdCW2;B9uI(SGKM+%1e|7yh1yglxsOk$- zJ!02jMcvo1b}D$lsz;`uLb;qbEbRzsjQ7xY;k_Pq8{>GimtHzG!lg2nvxe8DQI_+; za*(u)qO9wdY#3_A^u3I1b@f=)#WXwfbeaog<}U)mG{0)#2KA3%eGy>l5#k8mDR;FM zfN2S$(J!MBd^pT336Z%^=ay$aoLds!6Yk97?K4RM+z1KMqhT-v;ASY~aUl0_Yn-GZ z(SQgn=En(ug+L_Z+kpVE7{Ji?osc5qrO$v?^xiZsEixC40xT0G@ctS^<{qN*E&~ey zD^XNY2mtq@z`=du03P4~_#n_H@ul@4w;=eCcmf|qfx3?u(6hF(brax690G^|mzf86 z6bRAiLUbNouP(AMKiOoRG=m*w|5E}0pHVl3-acmlm$i0>DZW_7iE&xDgFhxn;3u2| zc)X13h%I9%0P$rEf1Na$d2XNJ0*y!pJV0t$p!m|uKz0Bb0stFv9J#&tWHGlGnR_~~ zt?=ArCuvS@hUC6)w-r)+xQMgnCP|{ULu!A8h$kVz2LkL&QUJRlv5&d>G8Ds5pJB?L zPAVu^qMwB{50^+eB*&cG0@#~WFegaoL)v$Or1B9aEs5um&XdXofI`T=SbVwo99Ox| zsX#m+XTdlv6ezHtj)^$MAr}F30+G3$`3!E(Q{1s)NRW7R7xi?MN(2DPE9`{wEd}@) z7ip_2_n0R-7Y0EBCg%XE_t%fxc{COZeUL?`-#aR-5!3D0VbAk9q2B+teG%gG?ZiRNn=Z59T)ok7?Q?vtq9g0n?Z`)<9--E+4ce0oE?>2$mJu?um0ELrC#w)NVsw`>=SrQMLEiv7*d9(a<3 z+D^OiKg2MK-kOX?%7jh>6-6c`-{vWLDFu7<=`D{EDoN%+(b5e0JR_AQMLLxBBtt5z zlDw^_QdK>Ztm>(x^kQ32CM5$I0~rGuO;uI=eJ2P-e`mH7-2pYPvl@`^os@;*azci0Q&sh$b1Wt@Q*;`-<5%cj}HuynjfYRgahzxz~NZ~jr90eO4(p- z)+b0n-fx7SP|>kw1_0oX1O?z_%Hm{JX`=DX0@L&|VU6k({tbW^$!{3pyT1)|U(>AA zXftrpm+anQ%meyl{u_g1KLY#~ZjWSPKZGO1Qn!>M885f7_6G3*-ij<-{JD}k4Ddg= C({82! literal 0 HcmV?d00001 diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/hread_interface.crf b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/hread_interface.crf index 954d1baceff5afdc2d7005d88b779d900c4f8c09..adba91a400b491f2eda0fd2a50a00c75514d6a03 100644 GIT binary patch delta 696 zcmb`F%S!@L6voe0uY;3m(vx6hv{ogx4BAN}A%#W{i8j*aZd|o&l@(>J${;2v?PU+m zO>O)OT13#c7-?70M#v)CcIJAqXx+ep-#O>|&ixj1yRD{oROf>Oz(PPNGN`1TKKb?V zY0D1yc`pZgq@T8XIU%JI62Y=yS+Q)TghcNjSqqE-5CG@+RAe-y#V5lI79I-4gPI0aqfJa*;Yj?~;?rY2_>8?E@1AEV~j@37ZKM}7V$?v2reanWMSF%h`WaM#tf$n&MH7rHK6qmb7x-)WnE z`z1N_yEp3fkme*IElHxtSnee8l`3!4Y9V30`c8cVd~HgE%#_yUrbXBW%MDQA2h1a_ zsooEYWiR!9NP+eR;!!JQ33i!zW({eNQwk}=X%#8UX{9W~J|{(12XTDB%=ea%4mm9% z9dSw`9dlYhQ;w73R{P5iIAQ2koa6xcl*MYzJ~n4!kwrcioI%brbSfUQg*OCO_hoZ7dwVuJ zBM>tIF*6XeY|mzAy?(b|j6pz-m63sg&(qU6KG@OECEmp`#FgRuEl~y?J|#v5rdes+ zF0Nso&aUx}E-nn`Z%M$#`8@sNk)$r)5@67g0BT{GmBt1%#4(t`;ub$#HLH)mpF2bI zEffobrYk&SP1=6z8EYpOvpvJg>9c;Y%TI6p$STLUar>5!tjtV|meY59W>u7w^kBlvRn!`ZgVosP6IMzc^Fp#*>j-ml|c4fD0>BvJrBxW vew&S9ewr-5!a1Pe0uV!1ka0GUy%5Tt1!OORvS$L>i=pfpH&}q-&!7YVQhscx diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/hread_interface.o b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/hread_interface.o index f225d18506fd2a33463b35d953dd9d5e123bd78a..4f8858f1cc8a4924099c72ce5bc7987057e3cd7a 100644 GIT binary patch delta 8754 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 F{|7h0ln?*_ delta 8557 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 diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.crf b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.crf index bd9375bf19e9bc63303f6a5d3a12ca018abd4426..7eb8518bfea78c2e8dd6c3004ae717926c21966d 100644 GIT binary patch delta 1099 zcmcJPOH30{6o$_oIxbG-3-azJO$?wHJu;NG%|0(i)-^ zR|Z46@_~SeZv?F(ZKHX9FcEQHPjg$O0-~G>j=G>b}=G~-t zaz@Ns$pPR9&?JL5b9oM}e(LAyST^9(cCJ-hrT;RK*?t|4YDc14g5pqFC`~-7tKAOY?90 z$+laYtzKx6^D{}l!R@MtY3wvwcpPJJI&G5I>at6ibij}B|DEJ zypYG?^~RDP`SuE$IbEq*viba-0V&igb^3w_2YtZ+48(*_{9<^X6?$wo$$iA{?CA=5 zL&1K32!6@spewH=P@E~-4jG88|v;020Ebn zuU^$Z1mi=W`Efm|j}@%(bvc%z2(c7LNK@Rs#%FQ4yI_`>Uuh!5{5n>%#+TNp0VR|P zDq%(R3BhGqS)MD)OI*fAM%Q^%c6@YQ`+jrSViI4ZwQ!y(&0R!s8R>gC6yS` zgh~OV%S;*JN19aW0Me97KBQ@t+L5lPB&D-qh6x7o8NyX26o|_Rvn(ta#ivNum|zkg zBV1=fp_szH8%)6Ww;<|MY_d=vIuELx~-BI>5fVsq&bzE(z$S#l^gKBtr60e zHo!ciTXENf>K4zY3t)lKZMfNo3dD)H1Fd_E*5Y%hMinO1j z0~{UX=uwUiar78Rk8|{drUwHL80{13FyZJa)M?ZRDvCNoG>-HZco^Gj($%zvan2&6 zOGHF*C{l;cBSsVGB+y9^qMT)k(Ih%abdrQ@M<>B(3Y`=>DMD(~I!H450l#MdiUxlk GQ285?*e=xo delta 646 zcma))O=uHQ5XWa;cC%|*lQiwcnDsqd5Im@;2;PbWDOI6XFG>!@rj9LIm74fbg{CMZ z;6bRAz4%=A{2GB=yjX;KG0S&2Qe@fn|rY>hqYY zFE0ZS2y&9(+eH0#!}m1(b;Jw&Oka)}ExxzEXBXS-`HYdy7|0PE4@Yw{hQ4~n9+}gV z_S*0Iv!N`7_C%vy9Vg=LNBa_c69dV30*p!o%t$jr)8BFQ$l)d9HI?w{RQsVL{J++{7yw22u@nz+ZwOqY-y>OK*zk0`T zjjVtwFksU2y}DBe`o6cl$UFsy0^RBsX)npEHVzc>O(++tej@72GFzOv$8> zCxtvE}|RU{hdIK#a1PAX#KnWK%?JbxoKgIm_Q~xUBJi2hD!~s`16> diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.o b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/main.o index cfbaa6b26b6ea904e1b03099f414bbebc5fc81bc..fa62e02ddb4a6cabc58f8de4dd9e3c501a393497 100644 GIT binary patch delta 9568 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 diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.crf b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.crf index c01c3a03a0f78de0b1a0d57e11d114e9f08bfd9f..cc79b60192cd499da2148e85997e30b5c3d06efc 100644 GIT binary patch delta 956 zcmcJO-Afcv6u{5j-I>{){ZLzTRhXSIh^WN3@I{Sfcab$)YuBvA99Q$Egcgex_0SGT zNpE4`(1(_}n%ak{$n;hbQU5?-yZTZl5kZKgL{Oc%ZqPr_z=7ZSoqOioGcaRA%FmmM zYtaE90DK!uGo=ieK@2xMuG<*k?}&g2Zvjnp>R_q z7*+$J5Ugd2a@G@xs{a(eXFO0|jK^(!D9{*)LvzNRJIU2IL~CIjJM;Ys*<{v{}lP%_C;Wr5fos&aQJKL9$!VtK@fbrfN0zRq~~r+X;)J{e?|2-JpJ~ zikDF>iT1Z!>Z-0)@e8QFiT0%}r5ZKW{0u>N+iAbWvCj2@jT+wAs1X)MTq1lq;caL7 ziZQ<|)Y&{P$h3ODlC8^37{UjkXBSG1TBj{2eHy9PFFWiXOGFr=mKxT}Wkt}bWj{-- zdQ!Akq(rzw{RPbAX9XCh=Ca*LBaFI`?lL-sbdM258fDapbf21^qyuS;Q9DwaQ37e4 zQ5(_(BQ?vz11foxHwcqdO64i9k*27Wue?H-rc#0O65%10wkglEPIyEm^OJitGKtw^ zDivXdF^ungLZxDjG$PF~iX%N`6hoS2bQqVOqXhe9QQ4Dq!90~+itHnDi8Z*$+wgCN G9e)6f+X1iu delta 465 zcmex8Q(^Hm1)dw63=B++4D!p<7(Q&|ab)M(*8XG?8v_u0m>kZosB_`(V+i;5O?d`J zVc$p>SI;olpx~I?%G|`vJiTOw<8z=Io;ELGZ(qXB2*gZ4%nZaV+n2Dj{=YlD=NW71 zbmix)(Y(vjIEza2;!84L+_r=R8Gcr3`qFfEPAPT}xv zHiqeGO!f)~r=R5J(5q)-n3E>Ut8f`8JU302PvIhvF)vM)U*SBEF+WXKK;bNqu^>%W zP~r4#Zia~jLK=YQT$@3^2zrn)5!ob9!1OPCVk-Y!_ diff --git a/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.o b/f103c8t6_keil/MDK-ARM/f103c8t6_KEIL/mymain.o index 4731550b459d28470dd5a3f5565dad419fb8094f..9044bfca21f86d8e1045f3e96027dcc710829127 100644 GIT binary patch delta 11492 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 delta 11215 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 GD*pu~tka$V delta 1264 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