From 271227fb54057c11a2281996b452af5d38983527 Mon Sep 17 00:00:00 2001 From: wujunchao <24472040@qq.com> Date: Sun, 10 Nov 2024 14:13:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E7=A3=81=E6=9D=A1?= =?UTF-8?q?=E6=B5=8B=E8=AF=95&=E5=8C=80=E9=80=9F=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=B9=B6=E5=AD=98=EF=BC=8C=E7=BB=84=E5=90=88=E9=94=AE=E5=88=87?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/Src/oled2.c | 2 + App/Src/uniform.c | 30 +- MDK-ARM/mfps.uvguix.吴俊潮 | 34 +- MDK-ARM/mfps/app.crf | Bin 665965 -> 665965 bytes MDK-ARM/mfps/app.o | Bin 737432 -> 737432 bytes MDK-ARM/mfps/mfps.axf | Bin 1313984 -> 1314228 bytes MDK-ARM/mfps/mfps.build_log.htm | 2 +- MDK-ARM/mfps/mfps.hex | 2691 ++++++++++++++++--------------- MDK-ARM/mfps/mfps.htm | 12 +- MDK-ARM/mfps/mfps.map | 835 +++++----- MDK-ARM/mfps/mfps_mfps.dep | 6 +- MDK-ARM/mfps/oled2.crf | Bin 674173 -> 674178 bytes MDK-ARM/mfps/oled2.o | Bin 785344 -> 785364 bytes MDK-ARM/mfps/uniform.crf | Bin 665866 -> 665991 bytes MDK-ARM/mfps/uniform.o | Bin 738736 -> 739000 bytes 15 files changed, 1824 insertions(+), 1788 deletions(-) diff --git a/App/Src/oled2.c b/App/Src/oled2.c index 1862733..aea0acc 100644 --- a/App/Src/oled2.c +++ b/App/Src/oled2.c @@ -1506,6 +1506,8 @@ void OLED_Menu_New(void) { case 0: //初始化 { + tmc5160_operate(0,0); + OLED_Clear(); OLED_ShowCN(0,0,56,0); //正常“匀”,第0页 diff --git a/App/Src/uniform.c b/App/Src/uniform.c index 3fbf53c..0e2bef9 100644 --- a/App/Src/uniform.c +++ b/App/Src/uniform.c @@ -2,7 +2,7 @@ * @Author: wujunchao 24472040@qq.com * @Date: 2024-10-14 14:42:21 * @LastEditors: wujunchao 24472040@qq.com - * @LastEditTime: 2024-10-15 17:15:02 + * @LastEditTime: 2024-10-30 08:47:39 * @FilePath: \mfps\App\Src\uniform.c * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -102,20 +102,48 @@ void uniform_motion(void) } } +uint8_t ocin1_flag = 0, ocin2_flag = 0; char uniform_limit(float start, float end) { if( ( ocin1 == 0 )&&( direc_select != 0 ) ) { + ocin1_flag = 1; //电机停止 tmc5160_operate(0,0); return 1; } + if (ocin1_flag == 1) //是否经过限位点,防止越过限位点后无法停止 + { + if(direc_select != 0) + { + //电机停止 + tmc5160_operate(0,0); + return 1; + }else + { + ocin1_flag = 0; + } + } + if( ( ocin2 == 0 )&&( direc_select != 1 ) ) { + ocin2_flag = 1; //电机停止 tmc5160_operate(0,0); return 2; } + if (ocin2_flag == 1) //是否经过限位点,防止越过限位点后无法停止 + { + if(direc_select != 1) + { + //电机停止 + tmc5160_operate(0,0); + return 2; + }else + { + ocin2_flag = 0; + } + } if( ( X_ads1220 <= start )&&( direc_select != 0 ) ) { diff --git a/MDK-ARM/mfps.uvguix.吴俊潮 b/MDK-ARM/mfps.uvguix.吴俊潮 index 0d544e0..58e1482 100644 --- a/MDK-ARM/mfps.uvguix.吴俊潮 +++ b/MDK-ARM/mfps.uvguix.吴俊潮 @@ -93,8 +93,8 @@ 2 3 - -32000 - -32000 + -1 + -1 -1 @@ -111,7 +111,7 @@ 0 1438 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000040000000100000064463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C756E69666F726D2E630000000009756E69666F726D2E6300000000C5D4F200FFFFFFFF64463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C496E635C756E69666F726D2E680000000009756E69666F726D2E6800000000FFDC7800FFFFFFFF60463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C6B65792E6300000000056B65792E6300000000BECEA100FFFFFFFF65463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000F0A0A100FFFFFFFF5D463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C5372635C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFF60463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C6170702E6300000000056170702E6300000000F7B88600FFFFFFFF62463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C6F6C6564322E6300000000076F6C6564322E6300000000D9ADC200FFFFFFFF62463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C496E635C6F6C6564322E6800000000076F6C6564322E6800000000B3A6BE00FFFFFFFF64463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C746D63353136302E630000000009746D63353136302E6300000000EAD6A300FFFFFFFF70463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4D444B2D41524D5C737461727475705F73746D33326631303378652E730000000015737461727475705F73746D33326631303378652E7300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000074F9FFFF660000000000000012030000 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000040000000100000064463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C756E69666F726D2E630000000009756E69666F726D2E6300000000C5D4F200FFFFFFFF64463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C496E635C756E69666F726D2E680000000009756E69666F726D2E6800000000FFDC7800FFFFFFFF60463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C6B65792E6300000000056B65792E6300000000BECEA100FFFFFFFF65463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000F0A0A100FFFFFFFF5D463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C5372635C6D61696E2E6300000000066D61696E2E6300000000BCA8E100FFFFFFFF60463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C6170702E6300000000056170702E63000000009CC1B600FFFFFFFF62463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C6F6C6564322E6300000000076F6C6564322E6300000000F7B88600FFFFFFFF62463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C496E635C6F6C6564322E6800000000076F6C6564322E6800000000D9ADC200FFFFFFFF64463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C746D63353136302E630000000009746D63353136302E6300000000A5C2D700FFFFFFFF70463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4D444B2D41524D5C737461727475705F73746D33326631303378652E730000000015737461727475705F73746D33326631303378652E7300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000074F9FFFF660000000000000012030000 @@ -1822,7 +1822,7 @@ Build 968 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000046D66707396000000000000000100046D667073000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000046D66707396000000000000000100046D667073000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3563,7 +3563,7 @@ Build 955 - 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3579,7 +3579,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3606,9 +3606,9 @@ 4 ..\App\Src\uniform.c - 26 - 56 - 78 + 29 + 75 + 76 1 0 @@ -3624,16 +3624,16 @@ ..\App\Src\key.c - 22 + 0 290 - 301 + 302 1 0 ../Src/stm32f1xx_it.c - 100 + 90 384 406 1 @@ -3651,9 +3651,9 @@ ..\App\Src\app.c - 5 + 10 16 - 40 + 41 1 0 @@ -3661,7 +3661,7 @@ ..\App\Src\oled2.c 0 - 1550 + 1552 1585 1 @@ -3678,9 +3678,9 @@ ..\App\Src\tmc5160.c - 30 + 12 227 - 252 + 254 1 0 diff --git a/MDK-ARM/mfps/app.crf b/MDK-ARM/mfps/app.crf index 6c7681ee29140680c44a5102ab1b47d6367c0507..b42abcf065990dbd00099002bee19884ef905187 100644 GIT binary patch delta 65 zcmaERN#pG$jSV}vxt{%Q-O0uP1Rl+YxZ4kLGXgOa5HkZY3lOscF&hxG12G2>b8bJx I&9zz<0CJTWfB*mh delta 65 zcmaERN#pG$jSV}vxw_Ww*ulmC1P7WAakn4hW&~m;AZ7+)79eH?Vm2UV2VxE&=G=aW In`^Z!0B%SafB*mh diff --git a/MDK-ARM/mfps/app.o b/MDK-ARM/mfps/app.o index 461013abb0a110493b27e6c6e5e9c6921ffeea3b..c8833ae491dd9ac4f68f90dd3c639909d37c9d3a 100644 GIT binary patch delta 107 zcmbQys5_%kcf(vBSz`kQBLgE7B?d-@`1lY{U)T6}1tkLuD`NvIW3%R6Jng%97=f4x zh?#+y1&CRJm<@>8ftUk`Ik)fP;ri3bZk%LnqHD}BJyD0la8ftUk`Ik)fP;ri3bZkS?jp=-=AJyD0lak diff --git a/MDK-ARM/mfps/mfps.axf b/MDK-ARM/mfps/mfps.axf index 7c6cf83f0d32687ab1d118c11d20d66067c3b235..ce76d84e80e049b55805154967e87a1080527869 100644 GIT binary patch delta 22603 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 delta 22355 zcmZvE30zcF`~N*>m|t zFXt^8nr`UP1P+Dx@%Dg2CEY?$9{E|6q+Jn}x?4FIP&YlMk$EkrusmxBPPBFptS62^*~2 zFgTHx6ST$sPgi+?&=61m$PBS3v(( ze$E^sEtH4e>Rr<bE?{u#4L{Tn2LJ@ zPSUaC@~)tWkl!jjlH9G)RYpA9sn6C`Cm-a-8IlZEx%h6-qXukL@r_nVjF%V5;cZ&* z2SxJ0HqGeudYc4xvG_n6cQ=zbh$<|pFIlfasepZ{VazCp5;=V@vPw~7?cR4#EkMH_Xzz!&j zo0O4r=I;WNhr4t=z1WhVvyPV|x(#A8il=p3#n@4~F18E%tGHA5Hk{2bPV4c+lexA{VP0uR6PytUnA~iFTm4iFUM1F*W=0UH}SOBKf<%N z{#!h&n%A50`ltRoJpZnb#?xBA3eVr`{qX#?ejlFq<@n?v|C{v^;@{L$5x=UJA_?7- zrzg+L|EE@p(1kZi2n5B7xEtc6=~u+{h$kX`2XR9<4+~6S)*lder#R^4h#L_n`D=)K zAWrgE5cdpsQ{_KH+>7F%pF!LkagslVc!O}aOf|tFHGx4*@QIoLaR}{3yi>SAO|TvD z&WKY6n`)JmhFzla;*OdkdWK73QpKT)T#K|0m8*@)V^M}OqVq5Z?UG!U;_H7J9G#P6 zaB>dIRViT;ch+V*(^#ISc@H#)v;}!O^sI%3>|D|x^ql_1kc~!3EGUUX@@-JKnwJID zbHN4DCtv!KJy`sr{RLtFtos(vXlwZIPzE+RUUuk)I6d#ysS9sR6y}YAEHU zN;i`wEHJUow!TWL=vbk%Zmahg%o3uzMyndl_47-kvrGESg#}I94Pla+_mA>|)S>xq zHBv-FbUEsz_0>{DBg8F;S5`Z0o36@ssi{wtP_~*np0Mw)99DyReP3ycsCrtHe?gB4 zWu)%(K71-~s$6U3vTtvMqb#B+#tNw|tzr>D zh?4~_SJBw=Dq|7BPVQN7L!8{>;BuAQ(aAjsuCJ53=Y^_Pd4=eJg_X=CMKpFc|2DNy zj^=+K@n)b?mqO=^2t}L)4dq7iS2IQ6gARc$JsSuw)JiXs1>75!YS*zo_e zqF%M4(a{9P~3a+n{ zTP)8W8OBD)Vq^&GFCQM+F0_5s-K1F6pm*;d%Kd3z=jo=17BA4ULGwwd%tnQ>MsnDw z5GKjJM}@IJ<&04sIz?8JF$2&uG-C!=noxhukp3!P@51+%KOGg}TWz;I*9emJkz6&Z zUH-Rr=Cq__y>9P}Ztk$XWW8$FY%f_qhZNZ!bCmV0ON!(6Xjp_wqoq0suA{{y>mF!u zw3uZ5H{y;KldM~jDmVANN^VM(ca2^ZR9l1jder_t`dg_9(z`nA`ZS%d}9Vn+X`j4vUjFXE)-Q{)wcI8B%m{4FnSVw0>#pn zpcZf>`hun_#YNYEdd>bU>=yDZs?}MyRQ*_)BeMjuy~FMetAd?&cTA=g+>q|9_sx1Q zRkfOp)#6g9rcYJJ=AAhzMYMJ{OGC)CaW;z)@wU_~s1}DIPCadvz4G0cy0IcTWUjXgt7D8>2uQ%G3T5DDvd2Eh0pNe<~XPal&MPm*G9Wt-g?fa)7W@h5ISZJ$l zLz8Pv5xHo3v<8$JpnB?d#}td61{LHClIj7fYDY(iN8H&FtUVC-febpJwTnD`T$7k@ zLD5ECIO5u<3r1WUb&V0%Mx9AMJ}!domwy}=!nVnEc>YTcdL@)h^-2WGmD65n+56+# zXS2c1+CeU}!DjfJS`GqI+H6qdl46B?;g#NzlR?oWvye(FOB&)@S;oq(UY*14$U9z* z$oB-@%h|YYwKs>vsy^MfFucQ7dun4b$B-X;<0)-BXgrE~mK1h;k*dSd8uMzlV4!pB4*8d~ko;hz)>RxcilAMrW{)Aq z9bL^)UzEg*5 zwM~*bG7EA!U99MPm)ifWSuA<9iP%>cktzTDGyv3q&%ILs`TN_t?Ajf0|>E~3`+w8?-GaKocQJysM zhTd8v83X11*=YgmYgqZ?`y{GUmY?15Z1 zDWbtQC$Q>58^ek)U1qQQvMkyE^&*xofB5!W>c*~1ftCX7kA zd!NQYjjco;Ke-j#E3cZ|#s8gC(TCUUj|$69sIrZ&^$YXdU1b|C-A-wKs(O?K~i`rijxTLrRpdH`V=10!r>n^TEc{$T zyegwq`@t+#H9uBvEJ#e)2%j}cB5!*vWH-q}rbfnWsFvEZZ=Y$217~IR8xjjoN}%{s zRl~)aOlho&r^~yhw(BtQ*aJzjNG291dBco{S@@&`j*1xSjVIyHaLHmi9QV2uc6Q0x z#kIC8GMkpfK9mPdo9D5<&UA9Ys#@E4xon!RSD}iMjJ38A@}JY{xUNqABeyL(B?nC( z;9gnFDr#(ZgxsKh330*9da9P;aEVz9W!OHmWbdJgHCf(9HLn}^1FJ??-{g=B43U2W@E z`Q`mO+cxYH$>dQ9)wUKmv>K|$!sN8sLBoBY;)Zq_1#|~BaiCZ0 z+}paLh6O5bwETBoWXpbaS}wgIdkV4zYM!w`ikgy25F_`V(gr- zIYqjBYhArzW3McH7EYiI!~O@S0lNw%S^ot+vXxs;1udon5lps%vffTIsaiwza1AzGLz! zkeAH!4`^DYFUPTQ6fb=-msu?7@d?;%S{um+=1uh2XForrd$we~A&1TX(0#PMJ2(aM zm-ByQ59NLN{_M7VA%C97d-dIuJRo&W9#pW*_ob@9qv?}rk)5)Sg^?dWRK8n~ALLWj zI$4U0QhB_TS<=TRRIsoX;JeBB3l6hga+ihu8*Dvpw_UftQt9?vt!-}cvW4Y5KfYmt zdx9k_AhF8U(B3%Nc+`@Yca(+s0~_pqDJEbR|TWc5{f*h!Z)yM+xw@ebe+_V25rXc zZ9TBf^~ZL^&r)yef=)|AuFAH?IW($l@6@-*4XOyKpzU#hGhG~HL!IeHAl?MsTTR!~ zHnZL_R;z4N>$$~}`(p0N2bF6WW`ob`sc5!R5_A-7Cmnpw;O52v>0kunwUuM`g<`QAx-WxIkFE|I=7E>@?V>SnHH)1oJqF=hs)baeAzju@ZT6NdRWw!zC|=x#dbm zDxg-a3fx6eg`%B03*?xiox0b~mW)k7iT9nqn6GB4bSbJ7{f1<0?@S$wWX*v|69vLn zdGpZ@EKa_9v?U9apB(MMPRKFGf>>ucdwVZK02-~&I$3xkz;*-a_F*p}bPDHRgxyi{+thtx(MS<#n$rSo5C zJd^BmDo8&I5~HZltXxhy6%-N(oS>%2U(Mou-%9t*f2!@4yx>$2^OQHA8XdBD0-Erd z=E0;{t6sG1b2^lH%Q2@T^t&OqP(EONc`85_D_N$z!aI1E&DHk56b51b9~S&1%9 zJxH{LfLt_%Y{&0yHXx?p;>s&D#_RaX{kn}qbD%wqjC^lw@Pk&p&74TB_FxaENtBx z$@m(mn)FX=C8L`Q9ws(px{DLp2080e2W+0#UlQD^6t}-TSI71g z|L1B+ATt$b-pgl(Kt+;#j~DO1I?S!O$HS3+toh+0wv_P)dz2=eec;B7N{NA8XS}vp zS#4y~-S|UXJ~m+Y8Ml6<{MwN9cVn4Kv@iR>lRy4gDGgz7GnS(yhq7olmZ!{%U`32= zR2oIHm7G`nN7>wxop*DuJSa)6pK$SKL$*$-ZOgXmkY;l8Zr z#yAT8)iAaZx3VLZDI?e)ZY)k2H_Z>^ zaI&&(3e%CoT~nEvu`x=?G&YwpH>JyT_AkaO=ZZ@+SUoFLF3u#2NlL%j>>oFFUi5g2 z-C%1K-?!NS#NjFU9TW9SSco%f zS<1>@pmDYoArE5{ePDbxz5#G^bDNMeEn}ASVliiv46~7UpvziDoNUjQ&ML`-u@N*srL6@0INDz|PQ|j*x>9msG@e z&%`20BxT?#R>ff9ers57^Z3O+~D!UL`8Wi&!)Zq^XHk zTtC<@sfLy0Ns>wuI+;BP+z!q$ggoM|;yK`|B%xc!DqA;);$(ye;Pzg|(T@!?vc_jk zdLt`s)~uYg%#2wX5>tgl2}vyo6`o?!M%LV0!&mf@B#N%G zree)%wkL$9*J^}hFO=bDWQiWcawy{uEE|8|>W(b=|?jgJPCZ-1>iM01v1+VlH z@$a)=19xKSK8TQwsUzt(_9>)PlG1k*%hp9^VqHCkPy%*uD`U$IhKX6T(xzlgoSHQY zyGE5SO1Gfbc2;(8Wu34=N7+gd4mCoO-x<5g4O6DQkv4NyR<6WUrl{M-zKB?d^{~7E zs^M?+{)4e?I#n)b+O*sliK$%i$98r#;yUs_@+NG9C4&U-=+!dJoRvYHN9BqicCfGc zbwB0sPWF~tU^bRUS}qIx)k^ukElDa#4ETuMGR(q4cimsK`j`c)ajUyXTgigOzCCP@ zM{2TUJT)FpkP`eK=EXc|Rct*`GFCPhF?(2Jb(L(bB=2F3n3p%!`GE+fk&;+@AMI1H zmj&xpsmb2x|FsbACw7wH24#=G}O=23~&s&sj;eO)Gb!Ldn zZoHE>L!xMev9qS+&d8c5nLJQ9UX&*_KEsLrk|;dPzH48OX7U5<*&6zPV{E3XK7RaU ziD|54b&aBl$y*Hln4OEHhPsTflhUl>tgV`6c-GX+K69vnRldkm*l&TRIg;@Ogt#^^ z(9f(r%Ak_O+a;_toLnexa5sTV9WTJ4XjaAyOi(IQnR1lXx_OZAwHU!o%s9m&^ePnZ zonpUvl8;u1aHXwSbDBk}K3kzUdYaXGL@kCViaBwNICTbzR4DG9VYWbW_wFH#fJ2HY zBXYhZsU-2_EPLP)J4G_iK-e$tontNZDil7SvfAk87>$0=8r1>i{fn_)hFMd_cZum5 zoi=GI&8ZrHBRNx&lqk-gV&^^cplc%r?5z&M>jLYlSFw_C0evF+0lfA0;0MP*<6h31 z8Ahb^C5`cENl=;QXk<;QZKJ1+Y;@nl|3Ko_%GS?VoGy|M>sW3=?3kFYl4(@FBxh*2)?~>vMI{&&{bh#XxK?@mUpAgGKV{5ST19h3`WJ8zE-Hy%vQR)JyA*37ujs5y zDPv6;8>bXrV*ywU#n!JNm#!3EXL{c1)=b!U7P?M1l>HyZE^)({jLexa9Xm#+VHTY> zBNGc3$%rH0urEC_5&Z(8M6ABSI_OoXoV$UX0?Ava2FQs;do1VfizG=UiSNtVV^12e zw0XJ}E55tQTI*G;cz(-#Ss;1;)Elz9BV|4NX`v*kB+=zNeCl%oROc!v;^Ub=9Ee8B zh+A0ic=`+CY$Ed&+rMWvPZNsuDng}`c;pAHF)C5{`UmFCJPR>Ck0H$Jp*bSW^(sxY zs$dWKogO0KHoM2-MEz~{qX%tPq9MIW-1~{es(Y7cCE{o1$viuQyb!_C%aQ%SJD8zV zqR6_#Dm_nNsq#cg_Bi=(-DQ4yl_=!9>@U_+S$dDT>!JhaqJJV7d&Bl<(hs>|a@L%* zjPbM5re?i~X~D@a!F-Cp2V&?x)>xeWm3?f9!+`tdZFm}SNcsz0E-j_RRF>HMEBwa- zWyWu8I`^<*J6Da+Pdxmcg&7=B`2N9eMbQq9c6A&3l9l1m%~IFUA%@JXoQyeXQ)gm8 zkcbHQlidj;$yX7qknX*lvv{Z2Y>25m5o~3@dC>N;F~r6Q(?BR7|-EHRa({Qeg!<;`hZ`V+zxY_)nX;A|f=44;FwYzhr1iK%Sm_7n7; zkaBg<#HaR2osl(j{D_R#agpt!0wihL zRuCc)X>C+5l4(5r zHc4u{Ti2QrC=Y7U>pV&@Y0yT!MAYH%T(3eUyq>jSSh|z!OktjzrXx@E8EdleWW0r5 z#i9%2qxILo`au*i9?uWa7o6Ca5uU5vT~4Gs|4Xjr zMB++}CvU`9pc3zeuW8w0Wu7;m$yl`Vr~x0qqV6E?4KTQM7^?RLXBEMY>J87D)py#| z36myDk}9I4H{uiLU6UY$5do1Km@*v2mB<0U0Jepx=X978$-d=g* zP#5?vKelZkdiU}TSK=%@fbl!yl(Av_HCm5Ogu_H0R+`9>%?RP$oHx^}Q0dT|$1;9B zO_>zQ4>I2?m^{fn3e14c&p7)%pn{^Zhg}qrsrZunGbJUJkAi|Z%C4dOCo)Fi za574+a%Kb%#ri&9xjhnn4d(%VqxlLBt8E?2JJ9yO^d$(Oa@Lp8e*D%VrQIvM1yn6o zM!w32F}7RTokkMPm5b^8bH-*VYhU9tv1?V_viLp@7va!E-kW({S&3HqnzK!98i;5Q z-yo&QBxJ}dS1Bp4^A{-R!pS_J@zOPl#}pJ6?U6o}!!^lO&QIeLsa@Jmr%`l9**b%| zR9ofNOwhfOH$d@G9C);9AkK96ZK`C?MwenGO2He*7v(zhCcW1lnL`z*6-uwSsM)iX zxo^V+{Q5@a@LWEWn!$ZOx*lAdA^F^w6pSyxDE4yO1pVtcTcR_Fj9$LY#QO{QeUAdn zj7t&x#EOMHM6W`zcOftHNC))|gmkfN5f6C^?}!5n`PJyQ;0!}3*$l1Nl!% zf49AZVe>13+ZJfAX3WM6Ba%{L(nh8}r(P8k8wz(-bAlrv3dp6b`}#?^1mZ#b5BlK0me-4 zzZu&LwWInzQ>pSr{wn^JC+*v5JAP%W7`GZ0Rk4`A8p;C2=ryQgrWn2!ul-_35njQ{ zpnvfIH@06Hzkz>+jZshfl>h>82orFgy9{=WkG;25ekms_N7vVqk!L}l~)r`+OpV!pvwR9xi#V)CcFx$$3_P-xKA3h^mlV2sKFa@QRc zmh=2A<1q*NMcICyuWZ0}iw@UdU2oz36@MEG@uIJ|7d7#k>wE>nQDV?HsNyZLj9!7_ z?{6>@m5Z4-Fu%+a-`&76YZ7mkV}>miUzPI-7N|+U zieJ9NdeB^C+=4Cg6#wsO`gx#?{DFrWkjLyhC_$!pbO+pji(PkN>Vd-l9`wAXY`e$T zV5So>4Vn;Iv|8k^JJFdHh`|GOgIKzFZ=h~8 zYb*X5sGG>nh?fTGer9*Xi^)2HgVS%4b%WGRA3DSr;%thppO})OOGc_=Dd5mNfnK#; z)HmOjPtW}`(VKK6Lh;+n+fozxil{jFZHhvp4buKtUWayuh$$=I)a}d>L=<# zBH$;dIST4JAx6x1Hlu)3&9(q0YXEB zMhGSZA0=j*Ik`bJb}=a6MSP7B2p){1slQ^UWQ2#b;u{d~-Ou=+61(7MOJYJKr45ORtK$`R4W*2W|6_WTldt zZ^ohNIwb2HXc{9a%VMRPP*fLE|+x4;~US#tOSb0wBhk-P{B z7K>bZZ4~PkA^jC`WD#Vd#VsPv-LM$Sazz-u3Phj9=9a8byuKKvSu2Vbo5Mn{|AtFG z)ay$GI>MqeCi)9S;L>?fw%8mVcH)ocg@&tVK_u3llh_``Z;81l=cRv(Vav=({PAP4 zc^UF(F3vAQVUoqK%gj-1uJA2{HF8DQLUSv2LZla(qxi#G@lK)n3G1g6EJqdDII;B| zb93~(3-6%FIP7`H+=5>>h=wc75zVdcOl=k_Y)VWlPBi*vXE_TTt`^wpAx5r1`e5B7HbrJnueh#Ey5k^=vUuM>FGxu35V#a5#uu5Ry)t_;Db6Vo{UXvGM>=Hu zS&_LdJ0$)tGPlMA+3a8D2=9yinFMJG^Sz|*WK?Z5oVesBa{p!SfeB>Kzsxx(R1?|U zfsGMKvN_6o?NBE5LmE3I#ci{%MQoPMp8WbS@sW&7OyV2a91Rn?uQPW;7wf&w+=f3M zEppbGTX^>y%cOBy+IU}IUp3E2HP5Z$#5$}@1Zp}iqGCNxArdo(9sLj z*7R}r4H7HfLroRN=8ouM zO*TH}nbMg(m^L!A))wt!e7CU3#ScSy+e+Aof8fyhqf`z_{=v1b&8+aR-1?AwM}X`{G_ zm-ogm(E#}O4Js|--s66%323q6(nis4ySYDf&)jZq&8^qOmhDg%EY5Dnlu~)#Rv<3z zfa%+){VcY;o;qbOJOnmaiG)(+ME|~b_ zow@SqR!76cr<)TEBYnO^w>TPs1nA~P!;}Ht(`cCZbdRH9;?o(dhKWz-tQsah9mHyw z_;jMHVH5I~=*U+ikN|DLG)xL;ccx+D(-DM*iBFfP8deM7f{9PNHdj8Kcxc#!{3SXK z(Fmk~PF*xi3h3%U!^Ee%3JnvVt}!%Be7btjF!AYHLc_$Ti$o3Mhf|V77mXT$1n3M> z!^Ec(Ee#W&&L1^Qd^(%dF!5=Rt6}2Pu2{pwr+u^&=Sw6&n`&2q0vAkt+K#*OSGr*0 z(_y+RpHB5POnf@_*Dw`;t|c5epQ#0)D+^Zvy3x=uDWDq=4U+=ge?P^V6Q6GQG)#QD0Msz?>3&ed#HU*byr};>3b5yY z1dh32QgH39=M_}AVB)K{9e9&IwT9T-tI(;RE>bj1eA?PO@^=c*Nr0;WT{>!*GN21c z4U+=83fD04&$(dYUv|O7FUO_2CQp0|F5}huYZe$s1oh8RgV$UzDWKbXS3Z4Spkdm@#km)`ba{eV?e!jGI#WMm4+;PE_LDb6U`E6Y= z@yEDeNfSl=vKqqfwfhX(jTGp&P9*#WngWQB>aO8p5#_#*Gcn_y0FiR z93OrX<4+Hi8yNd)ASQ7fb6iw*oi(pvK6KTgW!M209jf&I)I5#(XbujgUjWNo6&KE% z_vLGT3y~lDJabbB(}$*XcciHc0WJb2yL0fPf$0uP;|~Jf2JCQMnUo1kS6CW9ANW&X z$3BHg8_kmV`-1s)zUG=xraSTB(NVZ6S|&$<=`v7LatWAzqB77~h#SCkaj5Zs2d1C0 z;3`-xB*Qg2T|8?1#=!J5mu60WD}PMabZ4juya)jW763J0PBH+o%}h# zbUCc?R{)0rpL6ox2d3*mjlT!@F7QDo|F}PzeUte5b90AqI*Qih?x2zBmYWPgh9Qir z?G_i!FT(ZDx@b;|(Hs(D&u%P9bmgukUkI!@B*b3@94($8nU8aoR<+&)IZ$L>GH=PJ zk2AE?6L2q1R|OiL0ZiXUXm}p5=98256~LMgPWU}wx=7IEw*k|)5E|YOtod^!etl=YX*jaV3cAQOeYPIR&YeH~-PcX}E&iVOcWcgUd6P&ED3I6S0JZ#3Mf z$ukd|k~Ig`JZi!(0Bf!R;laSooeLY`SAe6$$SXJ?$Pw$Wn5X4yTOQ(u;j4N2c1_Ez z1F*K^A%1UQZHGg6C@|fGYVw)D^bMJY^MEy9kK`8uYrY-fwN0fy>PL23f=v*Z1mBI0 z0cd3Y8<;-j()fpgHQ$aDoCP+C3s=q4Vl=u6GL!!(bE(zXhbo;nzWy8~|&S*2z>E-tgm=ycH}mR!So zs@O%ZP2vK*Hj2A=#aOXMpGOvy^dY7YyK~JZqyG(Dxds<{PJTVGyXf+jIn-Q^r5PtS zYBEbGei{FcnD7-&W5$UkVB>gU7hd=vUVH|skM>18WwHU%J;f7}S||Lklhi8F^*Yk7 z6C(-!v{t-9aG+R!-E7B~?_$H(fGfq}uaV}E_?lj4#1p)D{c6$p8!+DyUA_VJGiBsA zIG71DZkLSfoP{pH%I?;ETY3DxLy- z-38AB{>B9t0pmy9Pvv(4JAa>}rauUL2Yy{!XMU$6B;4fSIP2b8@lQFb5T*FvH0N`+ zL0SKudAMKxPL#xq!@2`6O41SxMHE}bCxJf#Ug*S^fMX^~#%oS|1GoVu4!l(P`-ltz ze#wcg!1TYhQAJ6=9r#1w)=uovTawDM;qhV~RRv5S`~rbQCvF1V1!J9-6H*Wfyd1cr z6L$or|NYJ2#C?Fj2d1Mmk{=H2g?_E!Ea2|I7{MxkCh*AD;qjI`2@65!f~l8GM+)8r z&H&bGunQQ+;p#7Mi2pJ06kyDls{A?NCBSY@d<}Rx@E9k)3w#?`(`N;~n-79k16`aX zJp#^iCTI*i4|6dVW;KH-;9r30N{0&21GxJXe3InEgMsG&TQFdV{~GWvtoRL`{29QT zr$1}b<-qy$pXar33cL>j{YQFQlk5dv0IU`8H1H~5tw3J_Zv)n9^b_z7V9g@G0iOic zny?bs2WJTyHpIh)$O7SY$x-6Q@n}O}ty8rCZUw(AiumZ?-GHY9t2F|S2VMXi#~kUC zfFEHk_jKwT0$c~IwfRfHkvJ=$>7Fb!K0Y748ie*vLJkD7fJZrT9`M(|KRNM2;F~y1 zpixc=-T`ic^+Ics4ZyR3we&lH%YZfcy}&-$%4?(GNInShAZ&mQN#QBrCfJK_bY^fF z_!972PW&Zs3bxXk!rQ>>f&1wk>3;(b!_IfVQ~ojV@4%|Xpx>(x=9z`)BTjyPBnXip zs3wL$SKy(*OPvD!fWHUUN<0|20Ty_;q-udDP3>(i0PFw{1 zE^s(g(_^y*!d>T#MHbi(?Bm=>5-e+|6Zh5wTi(-jA$ ze*pZb5MO|(`f%d)4+yK4J39pg-1?$~z~HMjG&!-_rr`SnKXT!RJ25S9ltC2mVXRx) zsCfbSEU-E%z)u3c39RbJOe~FZ5(=Cp90&Z$%4Y@0apG)e2D5-KxbPP^aaSjQ8E~Bo zf4vi{qY4Gs1l-HHUCbvF?{*TRoeDkyp5hcB{&6R6;pCqKUhl%c=EPb7zXiUp@pVl4 z1GrAZ&{yNch~}#%WBuR}tj33m&I}p>uYgCOj$@QK1b96#*lLrscjDKa^4)-|T=@N* z_*W-?An?y?pH0nUf$sxnB7ark>mUq*x18+EAP-mos}?~q3xR3l2)1MbmVvcBh7a&I z;0NH70O5VWn)glk5U}Qb6FvrPd=L79k%9=PK-jeXSq9gDPbjl(=4r<$+2} zvag;gu_?Yji`-%|yTyv4QNEulrZV5%5pEs3M@Ktw{uAFfd~~rB#yj9~cfUzGebf%L zrfB8mH-MLK7c;#4!u8%DrHY{q{Cve8FFz9;)RSI*E%CaGm)`ObIfFjlei8c2ODKov zu15E8>?|`7Static Call Graph - [mfps\mfps.axf]

Static Call Graph for image mfps\mfps.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Tue Oct 15 17:15:05 2024 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Wed Oct 30 08:47:43 2024

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

Call chain for Maximum Stack Depth:

@@ -1583,8 +1583,8 @@ Global Symbols
[Called By]
  • >>   app_act
-

OLED_Menu_New (Thumb, 676 bytes, Stack size 16 bytes, oled2.o(i.OLED_Menu_New)) -

[Stack]

  • Max Depth = 160
  • Call Chain = OLED_Menu_New ⇒ uniform_motion ⇒ uniform_limit ⇒ tmc5160_operate ⇒ TMC5160_SPIReadInt ⇒ TMC5160_SPIWriteInt +

    OLED_Menu_New (Thumb, 684 bytes, Stack size 16 bytes, oled2.o(i.OLED_Menu_New)) +

    [Stack]

    • Max Depth = 168
    • Call Chain = OLED_Menu_New ⇒ uniform_motion ⇒ uniform_limit ⇒ tmc5160_operate ⇒ TMC5160_SPIReadInt ⇒ TMC5160_SPIWriteInt

    [Calls]
    • >>   HAL_GPIO_WritePin
    • >>   tmc5160_operate @@ -2222,8 +2222,8 @@ Global Symbols
    • >>   uniform_limit
    -

    uniform_limit (Thumb, 102 bytes, Stack size 24 bytes, uniform.o(i.uniform_limit)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = uniform_limit ⇒ tmc5160_operate ⇒ TMC5160_SPIReadInt ⇒ TMC5160_SPIWriteInt +

      uniform_limit (Thumb, 142 bytes, Stack size 32 bytes, uniform.o(i.uniform_limit)) +

      [Stack]

      • Max Depth = 112
      • Call Chain = uniform_limit ⇒ tmc5160_operate ⇒ TMC5160_SPIReadInt ⇒ TMC5160_SPIWriteInt

      [Calls]
      • >>   tmc5160_operate
      • >>   HAL_GPIO_ReadPin @@ -2233,7 +2233,7 @@ Global Symbols

      uniform_motion (Thumb, 290 bytes, Stack size 40 bytes, uniform.o(i.uniform_motion)) -

      [Stack]

      • Max Depth = 144
      • Call Chain = uniform_motion ⇒ uniform_limit ⇒ tmc5160_operate ⇒ TMC5160_SPIReadInt ⇒ TMC5160_SPIWriteInt +

        [Stack]
        • Max Depth = 152
        • Call Chain = uniform_motion ⇒ uniform_limit ⇒ tmc5160_operate ⇒ TMC5160_SPIReadInt ⇒ TMC5160_SPIWriteInt

        [Calls]
        • >>   HAL_GPIO_WritePin
        • >>   tmc5160_operate diff --git a/MDK-ARM/mfps/mfps.map b/MDK-ARM/mfps/mfps.map index 1953a1c..9e8290d 100644 --- a/MDK-ARM/mfps/mfps.map +++ b/MDK-ARM/mfps/mfps.map @@ -1076,6 +1076,7 @@ Section Cross References uniform.o(i.uniform_limit) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin uniform.o(i.uniform_limit) refers to frleqf.o(x$fpl$frleqf) for __aeabi_cfrcmple uniform.o(i.uniform_limit) refers to tmc5160.o(i.tmc5160_operate) for tmc5160_operate + uniform.o(i.uniform_limit) refers to uniform.o(.data) for .data uniform.o(i.uniform_limit) refers to oled2.o(.data) for direc_select uniform.o(i.uniform_limit) refers to app.o(.data) for X_ads1220 uniform.o(i.uniform_motion) refers to uniform.o(i.uniform_limit) for uniform_limit @@ -2321,153 +2322,153 @@ Image Symbol Table i.OLED_Clear 0x08004c1c Section 0 oled2.o(i.OLED_Clear) i.OLED_MenuTest 0x08004c50 Section 0 oled2.o(i.OLED_MenuTest) i.OLED_Menu_New 0x080063d0 Section 0 oled2.o(i.OLED_Menu_New) - i.OLED_SetPos 0x08006684 Section 0 oled2.o(i.OLED_SetPos) - i.OLED_ShowCN 0x080066a8 Section 0 oled2.o(i.OLED_ShowCN) - i.OLED_ShowChar 0x08006730 Section 0 oled2.o(i.OLED_ShowChar) - i.OLED_ShowString 0x0800680c Section 0 oled2.o(i.OLED_ShowString) - i.PartSort 0x0800684a Section 0 ads1220.o(i.PartSort) - i.PendSV_Handler 0x080068a4 Section 0 stm32f1xx_it.o(i.PendSV_Handler) - i.QuickSort 0x080068a6 Section 0 ads1220.o(i.QuickSort) - i.Raw_32 0x080068d0 Section 0 tmc5160.o(i.Raw_32) - i.ReadData 0x080068e8 Section 0 ads1220.o(i.ReadData) - i.ReadOneByte 0x08006934 Section 0 ads1220.o(i.ReadOneByte) - i.ReadRegister 0x08006988 Section 0 ads1220.o(i.ReadRegister) - i.SPI2_IRQHandler 0x080069c0 Section 0 stm32f1xx_it.o(i.SPI2_IRQHandler) - i.SPI_DMAAbortOnError 0x080069cc Section 0 stm32f1xx_hal_spi.o(i.SPI_DMAAbortOnError) - SPI_DMAAbortOnError 0x080069cd Thumb Code 16 stm32f1xx_hal_spi.o(i.SPI_DMAAbortOnError) - i.SSD1306_WriteCmd 0x080069dc Section 0 oled2.o(i.SSD1306_WriteCmd) - i.SSD1306_WriteData 0x08006a0a Section 0 oled2.o(i.SSD1306_WriteData) - i.STMFLASH_Read 0x08006a38 Section 0 flash.o(i.STMFLASH_Read) - i.STMFLASH_Write 0x08006a54 Section 0 flash.o(i.STMFLASH_Write) - i.STMFLASH_Write_NoCheck 0x08006b34 Section 0 flash.o(i.STMFLASH_Write_NoCheck) - i.SVC_Handler 0x08006b60 Section 0 stm32f1xx_it.o(i.SVC_Handler) - i.Swap 0x08006b62 Section 0 ads1220.o(i.Swap) - i.SysTick_CLKSourceConfig 0x08006b6c Section 0 misc.o(i.SysTick_CLKSourceConfig) - i.SysTick_Handler 0x08006b84 Section 0 stm32f1xx_it.o(i.SysTick_Handler) - i.SystemClock_Config 0x08006b88 Section 0 main.o(i.SystemClock_Config) - i.SystemInit 0x08006be0 Section 0 system_stm32f1xx.o(i.SystemInit) - i.TIM1_UP_IRQHandler 0x08006be4 Section 0 stm32f1xx_it.o(i.TIM1_UP_IRQHandler) - i.TIM_Base_SetConfig 0x08006bf0 Section 0 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) - i.TIM_ETR_SetConfig 0x08006c7c Section 0 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) - i.TIM_ITRx_SetConfig 0x08006c90 Section 0 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) - TIM_ITRx_SetConfig 0x08006c91 Thumb Code 16 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) - i.TIM_TI1_ConfigInputStage 0x08006ca0 Section 0 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) - TIM_TI1_ConfigInputStage 0x08006ca1 Thumb Code 34 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) - i.TIM_TI2_ConfigInputStage 0x08006cc2 Section 0 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) - TIM_TI2_ConfigInputStage 0x08006cc3 Thumb Code 36 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) - i.TMC5160A_Init_Gpio 0x08006ce8 Section 0 tmc5160.o(i.TMC5160A_Init_Gpio) - i.TMC5160_SPIReadInt 0x08006d38 Section 0 tmc5160.o(i.TMC5160_SPIReadInt) - i.TMC5160_SPIWriteInt 0x08006d78 Section 0 tmc5160.o(i.TMC5160_SPIWriteInt) - i.UART1_Send_Char 0x08006ea4 Section 0 uart1.o(i.UART1_Send_Char) - i.UART_DMAAbortOnError 0x08006eb8 Section 0 stm32f1xx_hal_uart.o(i.UART_DMAAbortOnError) - UART_DMAAbortOnError 0x08006eb9 Thumb Code 16 stm32f1xx_hal_uart.o(i.UART_DMAAbortOnError) - i.UART_DMAError 0x08006ec8 Section 0 stm32f1xx_hal_uart.o(i.UART_DMAError) - UART_DMAError 0x08006ec9 Thumb Code 74 stm32f1xx_hal_uart.o(i.UART_DMAError) - i.UART_DMAReceiveCplt 0x08006f12 Section 0 stm32f1xx_hal_uart.o(i.UART_DMAReceiveCplt) - UART_DMAReceiveCplt 0x08006f13 Thumb Code 134 stm32f1xx_hal_uart.o(i.UART_DMAReceiveCplt) - i.UART_DMARxHalfCplt 0x08006f98 Section 0 stm32f1xx_hal_uart.o(i.UART_DMARxHalfCplt) - UART_DMARxHalfCplt 0x08006f99 Thumb Code 30 stm32f1xx_hal_uart.o(i.UART_DMARxHalfCplt) - i.UART_EndRxTransfer 0x08006fb6 Section 0 stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) - UART_EndRxTransfer 0x08006fb7 Thumb Code 78 stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) - i.UART_EndTxTransfer 0x08007004 Section 0 stm32f1xx_hal_uart.o(i.UART_EndTxTransfer) - UART_EndTxTransfer 0x08007005 Thumb Code 28 stm32f1xx_hal_uart.o(i.UART_EndTxTransfer) - i.UART_Receive_IT 0x08007020 Section 0 stm32f1xx_hal_uart.o(i.UART_Receive_IT) - UART_Receive_IT 0x08007021 Thumb Code 194 stm32f1xx_hal_uart.o(i.UART_Receive_IT) - i.UART_SetConfig 0x080070e4 Section 0 stm32f1xx_hal_uart.o(i.UART_SetConfig) - UART_SetConfig 0x080070e5 Thumb Code 178 stm32f1xx_hal_uart.o(i.UART_SetConfig) - i.UART_Start_Receive_DMA 0x0800719c Section 0 stm32f1xx_hal_uart.o(i.UART_Start_Receive_DMA) - i.USART1_IRQHandler 0x0800722c Section 0 stm32f1xx_it.o(i.USART1_IRQHandler) - i.USART2_IRQHandler 0x08007260 Section 0 stm32f1xx_it.o(i.USART2_IRQHandler) - i.USART3_IRQHandler 0x08007280 Section 0 stm32f1xx_it.o(i.USART3_IRQHandler) - i.Uart_Send_Delay 0x0800728c Section 0 uart1.o(i.Uart_Send_Delay) - i.UsageFault_Handler 0x080072a0 Section 0 stm32f1xx_it.o(i.UsageFault_Handler) - i.VerfiyRC 0x080072a2 Section 0 uart1.o(i.VerfiyRC) - i.WriteOneByte 0x080072bc Section 0 ads1220.o(i.WriteOneByte) - i.WriteRegister 0x08007310 Section 0 ads1220.o(i.WriteRegister) - i.Xads1220_filter 0x08007364 Section 0 ads1220.o(i.Xads1220_filter) - i.Xads1220_record 0x080073dc Section 0 ads1220.o(i.Xads1220_record) - i.__ARM_fpclassify 0x08007428 Section 0 fpclassify.o(i.__ARM_fpclassify) - i.__NVIC_SetPriority 0x08007450 Section 0 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) - __NVIC_SetPriority 0x08007451 Thumb Code 32 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) - i._is_digit 0x08007470 Section 0 __printf_wp.o(i._is_digit) - i.app_act 0x08007480 Section 0 app.o(i.app_act) - i.delay 0x080075f0 Section 0 delay.o(i.delay) - i.delay_init 0x080075fc Section 0 delay.o(i.delay_init) - i.delay_ns 0x08007624 Section 0 delay.o(i.delay_ns) - i.delay_us 0x08007630 Section 0 delay.o(i.delay_us) - i.get_magnetv 0x08007664 Section 0 motor.o(i.get_magnetv) - i.get_state 0x080076d4 Section 0 motor.o(i.get_state) - i.i2c_Ack 0x080077d8 Section 0 oled2.o(i.i2c_Ack) - i.i2c_CfgGpio 0x08007818 Section 0 oled2.o(i.i2c_CfgGpio) - i.i2c_Delay 0x08007868 Section 0 oled2.o(i.i2c_Delay) - i2c_Delay 0x08007869 Thumb Code 12 oled2.o(i.i2c_Delay) - i.i2c_SendByte 0x08007874 Section 0 oled2.o(i.i2c_SendByte) - i.i2c_Start 0x080078d0 Section 0 oled2.o(i.i2c_Start) - i.i2c_Stop 0x08007910 Section 0 oled2.o(i.i2c_Stop) - i.key_act 0x08007940 Section 0 key.o(i.key_act) - i.key_act_new 0x08007c18 Section 0 key.o(i.key_act_new) - i.main 0x08007cc8 Section 0 main.o(i.main) - i.motor_protect_ads 0x08007d4c Section 0 tmc5160.o(i.motor_protect_ads) - i.mov_loop1 0x08007d94 Section 0 motor.o(i.mov_loop1) - i.mov_step 0x08008120 Section 0 motor.o(i.mov_step) - i.over_ttl_receive_timer 0x080081ec Section 0 uart1.o(i.over_ttl_receive_timer) - i.process_ttl_receive_timer 0x08008200 Section 0 uart1.o(i.process_ttl_receive_timer) - i.receive_ttl_data 0x08008224 Section 0 uart1.o(i.receive_ttl_data) - i.send_set_resp 0x08008250 Section 0 uart1.o(i.send_set_resp) - i.speed_set 0x080082dc Section 0 uniform.o(i.speed_set) - i.start_ttl_receive_timer 0x0800830c Section 0 uart1.o(i.start_ttl_receive_timer) - i.tmc5160_init 0x08008324 Section 0 tmc5160.o(i.tmc5160_init) - i.tmc5160_operate 0x08008428 Section 0 tmc5160.o(i.tmc5160_operate) - i.uniform_limit 0x08008520 Section 0 uniform.o(i.uniform_limit) - i.uniform_motion 0x08008598 Section 0 uniform.o(i.uniform_motion) - locale$$code 0x080086e4 Section 44 lc_numeric_c.o(locale$$code) - x$fpl$dfix 0x08008710 Section 94 dfix.o(x$fpl$dfix) - x$fpl$dflt 0x0800876e Section 46 dflt_clz.o(x$fpl$dflt) - x$fpl$dmul 0x0800879c Section 340 dmul.o(x$fpl$dmul) - x$fpl$dnaninf 0x080088f0 Section 156 dnaninf.o(x$fpl$dnaninf) - x$fpl$dretinf 0x0800898c Section 12 dretinf.o(x$fpl$dretinf) - x$fpl$f2d 0x08008998 Section 86 f2d.o(x$fpl$f2d) - x$fpl$fadd 0x080089f0 Section 196 faddsub_clz.o(x$fpl$fadd) - _fadd1 0x080089ff Thumb Code 0 faddsub_clz.o(x$fpl$fadd) - x$fpl$fcheck1 0x08008ab4 Section 12 fcheck1.o(x$fpl$fcheck1) - x$fpl$fcmpinf 0x08008ac0 Section 24 fcmpi.o(x$fpl$fcmpinf) - x$fpl$fdiv 0x08008ad8 Section 388 fdiv.o(x$fpl$fdiv) - _fdiv1 0x08008ad9 Thumb Code 0 fdiv.o(x$fpl$fdiv) - x$fpl$feqf 0x08008c5c Section 104 feqf.o(x$fpl$feqf) - x$fpl$ffix 0x08008cc4 Section 54 ffix.o(x$fpl$ffix) - x$fpl$ffixu 0x08008cfc Section 62 ffixu.o(x$fpl$ffixu) - x$fpl$fflt 0x08008d3c Section 48 fflt_clz.o(x$fpl$fflt) - x$fpl$ffltu 0x08008d6c Section 38 fflt_clz.o(x$fpl$ffltu) - x$fpl$fleqf 0x08008d94 Section 104 fleqf.o(x$fpl$fleqf) - x$fpl$fmul 0x08008dfc Section 258 fmul.o(x$fpl$fmul) - x$fpl$fnaninf 0x08008efe Section 140 fnaninf.o(x$fpl$fnaninf) - x$fpl$fretinf 0x08008f8a Section 10 fretinf.o(x$fpl$fretinf) - x$fpl$frleqf 0x08008f94 Section 98 frleqf.o(x$fpl$frleqf) - x$fpl$fsub 0x08008ff8 Section 234 faddsub_clz.o(x$fpl$fsub) - _fsub1 0x08009007 Thumb Code 0 faddsub_clz.o(x$fpl$fsub) - x$fpl$printf1 0x080090e2 Section 4 printf1.o(x$fpl$printf1) - x$fpl$retnan 0x080090e6 Section 100 retnan.o(x$fpl$retnan) - x$fpl$scalbnf 0x0800914a Section 76 scalbnf.o(x$fpl$scalbnf) - x$fpl$trapveneer 0x08009196 Section 48 trapv.o(x$fpl$trapveneer) - .constdata 0x080091c6 Section 18 stm32f1xx_hal_rcc.o(.constdata) - x$fpl$usenofp 0x080091c6 Section 0 usenofp.o(x$fpl$usenofp) - aPredivFactorTable 0x080091c6 Data 2 stm32f1xx_hal_rcc.o(.constdata) - aPLLMULFactorTable 0x080091c8 Data 16 stm32f1xx_hal_rcc.o(.constdata) - .constdata 0x080091d8 Section 16 system_stm32f1xx.o(.constdata) - .constdata 0x080091e8 Section 8 system_stm32f1xx.o(.constdata) - .constdata 0x080091f0 Section 552 mylib.o(.constdata) - .constdata 0x08009418 Section 1520 mylib.o(.constdata) - .constdata 0x08009a08 Section 2048 mylib.o(.constdata) - .constdata 0x0800a208 Section 148 bigflt0.o(.constdata) - tenpwrs_x 0x0800a208 Data 60 bigflt0.o(.constdata) - tenpwrs_i 0x0800a244 Data 64 bigflt0.o(.constdata) - locale$$data 0x0800a2bc Section 28 lc_numeric_c.o(locale$$data) - __lcnum_c_name 0x0800a2c0 Data 2 lc_numeric_c.o(locale$$data) - __lcnum_c_start 0x0800a2c8 Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_point 0x0800a2d4 Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_thousands 0x0800a2d6 Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_grouping 0x0800a2d7 Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_end 0x0800a2d8 Data 0 lc_numeric_c.o(locale$$data) + i.OLED_SetPos 0x0800668c Section 0 oled2.o(i.OLED_SetPos) + i.OLED_ShowCN 0x080066b0 Section 0 oled2.o(i.OLED_ShowCN) + i.OLED_ShowChar 0x08006738 Section 0 oled2.o(i.OLED_ShowChar) + i.OLED_ShowString 0x08006814 Section 0 oled2.o(i.OLED_ShowString) + i.PartSort 0x08006852 Section 0 ads1220.o(i.PartSort) + i.PendSV_Handler 0x080068ac Section 0 stm32f1xx_it.o(i.PendSV_Handler) + i.QuickSort 0x080068ae Section 0 ads1220.o(i.QuickSort) + i.Raw_32 0x080068d8 Section 0 tmc5160.o(i.Raw_32) + i.ReadData 0x080068f0 Section 0 ads1220.o(i.ReadData) + i.ReadOneByte 0x0800693c Section 0 ads1220.o(i.ReadOneByte) + i.ReadRegister 0x08006990 Section 0 ads1220.o(i.ReadRegister) + i.SPI2_IRQHandler 0x080069c8 Section 0 stm32f1xx_it.o(i.SPI2_IRQHandler) + i.SPI_DMAAbortOnError 0x080069d4 Section 0 stm32f1xx_hal_spi.o(i.SPI_DMAAbortOnError) + SPI_DMAAbortOnError 0x080069d5 Thumb Code 16 stm32f1xx_hal_spi.o(i.SPI_DMAAbortOnError) + i.SSD1306_WriteCmd 0x080069e4 Section 0 oled2.o(i.SSD1306_WriteCmd) + i.SSD1306_WriteData 0x08006a12 Section 0 oled2.o(i.SSD1306_WriteData) + i.STMFLASH_Read 0x08006a40 Section 0 flash.o(i.STMFLASH_Read) + i.STMFLASH_Write 0x08006a5c Section 0 flash.o(i.STMFLASH_Write) + i.STMFLASH_Write_NoCheck 0x08006b3c Section 0 flash.o(i.STMFLASH_Write_NoCheck) + i.SVC_Handler 0x08006b68 Section 0 stm32f1xx_it.o(i.SVC_Handler) + i.Swap 0x08006b6a Section 0 ads1220.o(i.Swap) + i.SysTick_CLKSourceConfig 0x08006b74 Section 0 misc.o(i.SysTick_CLKSourceConfig) + i.SysTick_Handler 0x08006b8c Section 0 stm32f1xx_it.o(i.SysTick_Handler) + i.SystemClock_Config 0x08006b90 Section 0 main.o(i.SystemClock_Config) + i.SystemInit 0x08006be8 Section 0 system_stm32f1xx.o(i.SystemInit) + i.TIM1_UP_IRQHandler 0x08006bec Section 0 stm32f1xx_it.o(i.TIM1_UP_IRQHandler) + i.TIM_Base_SetConfig 0x08006bf8 Section 0 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) + i.TIM_ETR_SetConfig 0x08006c84 Section 0 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) + i.TIM_ITRx_SetConfig 0x08006c98 Section 0 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) + TIM_ITRx_SetConfig 0x08006c99 Thumb Code 16 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) + i.TIM_TI1_ConfigInputStage 0x08006ca8 Section 0 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) + TIM_TI1_ConfigInputStage 0x08006ca9 Thumb Code 34 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) + i.TIM_TI2_ConfigInputStage 0x08006cca Section 0 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) + TIM_TI2_ConfigInputStage 0x08006ccb Thumb Code 36 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) + i.TMC5160A_Init_Gpio 0x08006cf0 Section 0 tmc5160.o(i.TMC5160A_Init_Gpio) + i.TMC5160_SPIReadInt 0x08006d40 Section 0 tmc5160.o(i.TMC5160_SPIReadInt) + i.TMC5160_SPIWriteInt 0x08006d80 Section 0 tmc5160.o(i.TMC5160_SPIWriteInt) + i.UART1_Send_Char 0x08006eac Section 0 uart1.o(i.UART1_Send_Char) + i.UART_DMAAbortOnError 0x08006ec0 Section 0 stm32f1xx_hal_uart.o(i.UART_DMAAbortOnError) + UART_DMAAbortOnError 0x08006ec1 Thumb Code 16 stm32f1xx_hal_uart.o(i.UART_DMAAbortOnError) + i.UART_DMAError 0x08006ed0 Section 0 stm32f1xx_hal_uart.o(i.UART_DMAError) + UART_DMAError 0x08006ed1 Thumb Code 74 stm32f1xx_hal_uart.o(i.UART_DMAError) + i.UART_DMAReceiveCplt 0x08006f1a Section 0 stm32f1xx_hal_uart.o(i.UART_DMAReceiveCplt) + UART_DMAReceiveCplt 0x08006f1b Thumb Code 134 stm32f1xx_hal_uart.o(i.UART_DMAReceiveCplt) + i.UART_DMARxHalfCplt 0x08006fa0 Section 0 stm32f1xx_hal_uart.o(i.UART_DMARxHalfCplt) + UART_DMARxHalfCplt 0x08006fa1 Thumb Code 30 stm32f1xx_hal_uart.o(i.UART_DMARxHalfCplt) + i.UART_EndRxTransfer 0x08006fbe Section 0 stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) + UART_EndRxTransfer 0x08006fbf Thumb Code 78 stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) + i.UART_EndTxTransfer 0x0800700c Section 0 stm32f1xx_hal_uart.o(i.UART_EndTxTransfer) + UART_EndTxTransfer 0x0800700d Thumb Code 28 stm32f1xx_hal_uart.o(i.UART_EndTxTransfer) + i.UART_Receive_IT 0x08007028 Section 0 stm32f1xx_hal_uart.o(i.UART_Receive_IT) + UART_Receive_IT 0x08007029 Thumb Code 194 stm32f1xx_hal_uart.o(i.UART_Receive_IT) + i.UART_SetConfig 0x080070ec Section 0 stm32f1xx_hal_uart.o(i.UART_SetConfig) + UART_SetConfig 0x080070ed Thumb Code 178 stm32f1xx_hal_uart.o(i.UART_SetConfig) + i.UART_Start_Receive_DMA 0x080071a4 Section 0 stm32f1xx_hal_uart.o(i.UART_Start_Receive_DMA) + i.USART1_IRQHandler 0x08007234 Section 0 stm32f1xx_it.o(i.USART1_IRQHandler) + i.USART2_IRQHandler 0x08007268 Section 0 stm32f1xx_it.o(i.USART2_IRQHandler) + i.USART3_IRQHandler 0x08007288 Section 0 stm32f1xx_it.o(i.USART3_IRQHandler) + i.Uart_Send_Delay 0x08007294 Section 0 uart1.o(i.Uart_Send_Delay) + i.UsageFault_Handler 0x080072a8 Section 0 stm32f1xx_it.o(i.UsageFault_Handler) + i.VerfiyRC 0x080072aa Section 0 uart1.o(i.VerfiyRC) + i.WriteOneByte 0x080072c4 Section 0 ads1220.o(i.WriteOneByte) + i.WriteRegister 0x08007318 Section 0 ads1220.o(i.WriteRegister) + i.Xads1220_filter 0x0800736c Section 0 ads1220.o(i.Xads1220_filter) + i.Xads1220_record 0x080073e4 Section 0 ads1220.o(i.Xads1220_record) + i.__ARM_fpclassify 0x08007430 Section 0 fpclassify.o(i.__ARM_fpclassify) + i.__NVIC_SetPriority 0x08007458 Section 0 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) + __NVIC_SetPriority 0x08007459 Thumb Code 32 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) + i._is_digit 0x08007478 Section 0 __printf_wp.o(i._is_digit) + i.app_act 0x08007488 Section 0 app.o(i.app_act) + i.delay 0x080075f8 Section 0 delay.o(i.delay) + i.delay_init 0x08007604 Section 0 delay.o(i.delay_init) + i.delay_ns 0x0800762c Section 0 delay.o(i.delay_ns) + i.delay_us 0x08007638 Section 0 delay.o(i.delay_us) + i.get_magnetv 0x0800766c Section 0 motor.o(i.get_magnetv) + i.get_state 0x080076dc Section 0 motor.o(i.get_state) + i.i2c_Ack 0x080077e0 Section 0 oled2.o(i.i2c_Ack) + i.i2c_CfgGpio 0x08007820 Section 0 oled2.o(i.i2c_CfgGpio) + i.i2c_Delay 0x08007870 Section 0 oled2.o(i.i2c_Delay) + i2c_Delay 0x08007871 Thumb Code 12 oled2.o(i.i2c_Delay) + i.i2c_SendByte 0x0800787c Section 0 oled2.o(i.i2c_SendByte) + i.i2c_Start 0x080078d8 Section 0 oled2.o(i.i2c_Start) + i.i2c_Stop 0x08007918 Section 0 oled2.o(i.i2c_Stop) + i.key_act 0x08007948 Section 0 key.o(i.key_act) + i.key_act_new 0x08007c20 Section 0 key.o(i.key_act_new) + i.main 0x08007cd0 Section 0 main.o(i.main) + i.motor_protect_ads 0x08007d54 Section 0 tmc5160.o(i.motor_protect_ads) + i.mov_loop1 0x08007d9c Section 0 motor.o(i.mov_loop1) + i.mov_step 0x08008128 Section 0 motor.o(i.mov_step) + i.over_ttl_receive_timer 0x080081f4 Section 0 uart1.o(i.over_ttl_receive_timer) + i.process_ttl_receive_timer 0x08008208 Section 0 uart1.o(i.process_ttl_receive_timer) + i.receive_ttl_data 0x0800822c Section 0 uart1.o(i.receive_ttl_data) + i.send_set_resp 0x08008258 Section 0 uart1.o(i.send_set_resp) + i.speed_set 0x080082e4 Section 0 uniform.o(i.speed_set) + i.start_ttl_receive_timer 0x08008314 Section 0 uart1.o(i.start_ttl_receive_timer) + i.tmc5160_init 0x0800832c Section 0 tmc5160.o(i.tmc5160_init) + i.tmc5160_operate 0x08008430 Section 0 tmc5160.o(i.tmc5160_operate) + i.uniform_limit 0x08008528 Section 0 uniform.o(i.uniform_limit) + i.uniform_motion 0x080085cc Section 0 uniform.o(i.uniform_motion) + locale$$code 0x08008718 Section 44 lc_numeric_c.o(locale$$code) + x$fpl$dfix 0x08008744 Section 94 dfix.o(x$fpl$dfix) + x$fpl$dflt 0x080087a2 Section 46 dflt_clz.o(x$fpl$dflt) + x$fpl$dmul 0x080087d0 Section 340 dmul.o(x$fpl$dmul) + x$fpl$dnaninf 0x08008924 Section 156 dnaninf.o(x$fpl$dnaninf) + x$fpl$dretinf 0x080089c0 Section 12 dretinf.o(x$fpl$dretinf) + x$fpl$f2d 0x080089cc Section 86 f2d.o(x$fpl$f2d) + x$fpl$fadd 0x08008a24 Section 196 faddsub_clz.o(x$fpl$fadd) + _fadd1 0x08008a33 Thumb Code 0 faddsub_clz.o(x$fpl$fadd) + x$fpl$fcheck1 0x08008ae8 Section 12 fcheck1.o(x$fpl$fcheck1) + x$fpl$fcmpinf 0x08008af4 Section 24 fcmpi.o(x$fpl$fcmpinf) + x$fpl$fdiv 0x08008b0c Section 388 fdiv.o(x$fpl$fdiv) + _fdiv1 0x08008b0d Thumb Code 0 fdiv.o(x$fpl$fdiv) + x$fpl$feqf 0x08008c90 Section 104 feqf.o(x$fpl$feqf) + x$fpl$ffix 0x08008cf8 Section 54 ffix.o(x$fpl$ffix) + x$fpl$ffixu 0x08008d30 Section 62 ffixu.o(x$fpl$ffixu) + x$fpl$fflt 0x08008d70 Section 48 fflt_clz.o(x$fpl$fflt) + x$fpl$ffltu 0x08008da0 Section 38 fflt_clz.o(x$fpl$ffltu) + x$fpl$fleqf 0x08008dc8 Section 104 fleqf.o(x$fpl$fleqf) + x$fpl$fmul 0x08008e30 Section 258 fmul.o(x$fpl$fmul) + x$fpl$fnaninf 0x08008f32 Section 140 fnaninf.o(x$fpl$fnaninf) + x$fpl$fretinf 0x08008fbe Section 10 fretinf.o(x$fpl$fretinf) + x$fpl$frleqf 0x08008fc8 Section 98 frleqf.o(x$fpl$frleqf) + x$fpl$fsub 0x0800902c Section 234 faddsub_clz.o(x$fpl$fsub) + _fsub1 0x0800903b Thumb Code 0 faddsub_clz.o(x$fpl$fsub) + x$fpl$printf1 0x08009116 Section 4 printf1.o(x$fpl$printf1) + x$fpl$retnan 0x0800911a Section 100 retnan.o(x$fpl$retnan) + x$fpl$scalbnf 0x0800917e Section 76 scalbnf.o(x$fpl$scalbnf) + x$fpl$trapveneer 0x080091ca Section 48 trapv.o(x$fpl$trapveneer) + .constdata 0x080091fa Section 18 stm32f1xx_hal_rcc.o(.constdata) + x$fpl$usenofp 0x080091fa Section 0 usenofp.o(x$fpl$usenofp) + aPredivFactorTable 0x080091fa Data 2 stm32f1xx_hal_rcc.o(.constdata) + aPLLMULFactorTable 0x080091fc Data 16 stm32f1xx_hal_rcc.o(.constdata) + .constdata 0x0800920c Section 16 system_stm32f1xx.o(.constdata) + .constdata 0x0800921c Section 8 system_stm32f1xx.o(.constdata) + .constdata 0x08009224 Section 552 mylib.o(.constdata) + .constdata 0x0800944c Section 1520 mylib.o(.constdata) + .constdata 0x08009a3c Section 2048 mylib.o(.constdata) + .constdata 0x0800a23c Section 148 bigflt0.o(.constdata) + tenpwrs_x 0x0800a23c Data 60 bigflt0.o(.constdata) + tenpwrs_i 0x0800a278 Data 64 bigflt0.o(.constdata) + locale$$data 0x0800a2f0 Section 28 lc_numeric_c.o(locale$$data) + __lcnum_c_name 0x0800a2f4 Data 2 lc_numeric_c.o(locale$$data) + __lcnum_c_start 0x0800a2fc Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_point 0x0800a308 Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_thousands 0x0800a30a Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_grouping 0x0800a30b Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_end 0x0800a30c Data 0 lc_numeric_c.o(locale$$data) .data 0x20000000 Section 98 stm32f1xx_it.o(.data) .data 0x20000064 Section 12 stm32f1xx_hal.o(.data) .data 0x20000070 Section 4 system_stm32f1xx.o(.data) @@ -2808,128 +2809,128 @@ Image Symbol Table OLED2_Init 0x08004b65 Thumb Code 178 oled2.o(i.OLED2_Init) OLED_Clear 0x08004c1d Thumb Code 50 oled2.o(i.OLED_Clear) OLED_MenuTest 0x08004c51 Thumb Code 5998 oled2.o(i.OLED_MenuTest) - OLED_Menu_New 0x080063d1 Thumb Code 676 oled2.o(i.OLED_Menu_New) - OLED_SetPos 0x08006685 Thumb Code 34 oled2.o(i.OLED_SetPos) - OLED_ShowCN 0x080066a9 Thumb Code 130 oled2.o(i.OLED_ShowCN) - OLED_ShowChar 0x08006731 Thumb Code 210 oled2.o(i.OLED_ShowChar) - OLED_ShowString 0x0800680d Thumb Code 62 oled2.o(i.OLED_ShowString) - PartSort 0x0800684b Thumb Code 90 ads1220.o(i.PartSort) - PendSV_Handler 0x080068a5 Thumb Code 2 stm32f1xx_it.o(i.PendSV_Handler) - QuickSort 0x080068a7 Thumb Code 42 ads1220.o(i.QuickSort) - Raw_32 0x080068d1 Thumb Code 22 tmc5160.o(i.Raw_32) - ReadData 0x080068e9 Thumb Code 72 ads1220.o(i.ReadData) - ReadOneByte 0x08006935 Thumb Code 78 ads1220.o(i.ReadOneByte) - ReadRegister 0x08006989 Thumb Code 50 ads1220.o(i.ReadRegister) - SPI2_IRQHandler 0x080069c1 Thumb Code 6 stm32f1xx_it.o(i.SPI2_IRQHandler) - SSD1306_WriteCmd 0x080069dd Thumb Code 46 oled2.o(i.SSD1306_WriteCmd) - SSD1306_WriteData 0x08006a0b Thumb Code 46 oled2.o(i.SSD1306_WriteData) - STMFLASH_Read 0x08006a39 Thumb Code 26 flash.o(i.STMFLASH_Read) - STMFLASH_Write 0x08006a55 Thumb Code 216 flash.o(i.STMFLASH_Write) - STMFLASH_Write_NoCheck 0x08006b35 Thumb Code 44 flash.o(i.STMFLASH_Write_NoCheck) - SVC_Handler 0x08006b61 Thumb Code 2 stm32f1xx_it.o(i.SVC_Handler) - Swap 0x08006b63 Thumb Code 10 ads1220.o(i.Swap) - SysTick_CLKSourceConfig 0x08006b6d Thumb Code 24 misc.o(i.SysTick_CLKSourceConfig) - SysTick_Handler 0x08006b85 Thumb Code 4 stm32f1xx_it.o(i.SysTick_Handler) - SystemClock_Config 0x08006b89 Thumb Code 88 main.o(i.SystemClock_Config) - SystemInit 0x08006be1 Thumb Code 2 system_stm32f1xx.o(i.SystemInit) - TIM1_UP_IRQHandler 0x08006be5 Thumb Code 6 stm32f1xx_it.o(i.TIM1_UP_IRQHandler) - TIM_Base_SetConfig 0x08006bf1 Thumb Code 120 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) - TIM_ETR_SetConfig 0x08006c7d Thumb Code 20 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) - TMC5160A_Init_Gpio 0x08006ce9 Thumb Code 70 tmc5160.o(i.TMC5160A_Init_Gpio) - TMC5160_SPIReadInt 0x08006d39 Thumb Code 58 tmc5160.o(i.TMC5160_SPIReadInt) - TMC5160_SPIWriteInt 0x08006d79 Thumb Code 288 tmc5160.o(i.TMC5160_SPIWriteInt) - UART1_Send_Char 0x08006ea5 Thumb Code 14 uart1.o(i.UART1_Send_Char) - UART_Start_Receive_DMA 0x0800719d Thumb Code 130 stm32f1xx_hal_uart.o(i.UART_Start_Receive_DMA) - USART1_IRQHandler 0x0800722d Thumb Code 38 stm32f1xx_it.o(i.USART1_IRQHandler) - USART2_IRQHandler 0x08007261 Thumb Code 22 stm32f1xx_it.o(i.USART2_IRQHandler) - USART3_IRQHandler 0x08007281 Thumb Code 6 stm32f1xx_it.o(i.USART3_IRQHandler) - Uart_Send_Delay 0x0800728d Thumb Code 20 uart1.o(i.Uart_Send_Delay) - UsageFault_Handler 0x080072a1 Thumb Code 2 stm32f1xx_it.o(i.UsageFault_Handler) - VerfiyRC 0x080072a3 Thumb Code 24 uart1.o(i.VerfiyRC) - WriteOneByte 0x080072bd Thumb Code 78 ads1220.o(i.WriteOneByte) - WriteRegister 0x08007311 Thumb Code 78 ads1220.o(i.WriteRegister) - Xads1220_filter 0x08007365 Thumb Code 106 ads1220.o(i.Xads1220_filter) - Xads1220_record 0x080073dd Thumb Code 62 ads1220.o(i.Xads1220_record) - __ARM_fpclassify 0x08007429 Thumb Code 40 fpclassify.o(i.__ARM_fpclassify) - _is_digit 0x08007471 Thumb Code 14 __printf_wp.o(i._is_digit) - app_act 0x08007481 Thumb Code 320 app.o(i.app_act) - delay 0x080075f1 Thumb Code 10 delay.o(i.delay) - delay_init 0x080075fd Thumb Code 26 delay.o(i.delay_init) - delay_ns 0x08007625 Thumb Code 12 delay.o(i.delay_ns) - delay_us 0x08007631 Thumb Code 46 delay.o(i.delay_us) - get_magnetv 0x08007665 Thumb Code 86 motor.o(i.get_magnetv) - get_state 0x080076d5 Thumb Code 226 motor.o(i.get_state) - i2c_Ack 0x080077d9 Thumb Code 60 oled2.o(i.i2c_Ack) - i2c_CfgGpio 0x08007819 Thumb Code 70 oled2.o(i.i2c_CfgGpio) - i2c_SendByte 0x08007875 Thumb Code 86 oled2.o(i.i2c_SendByte) - i2c_Start 0x080078d1 Thumb Code 60 oled2.o(i.i2c_Start) - i2c_Stop 0x08007911 Thumb Code 42 oled2.o(i.i2c_Stop) - key_act 0x08007941 Thumb Code 662 key.o(i.key_act) - key_act_new 0x08007c19 Thumb Code 152 key.o(i.key_act_new) - main 0x08007cc9 Thumb Code 122 main.o(i.main) - motor_protect_ads 0x08007d4d Thumb Code 60 tmc5160.o(i.motor_protect_ads) - mov_loop1 0x08007d95 Thumb Code 836 motor.o(i.mov_loop1) - mov_step 0x08008121 Thumb Code 176 motor.o(i.mov_step) - over_ttl_receive_timer 0x080081ed Thumb Code 14 uart1.o(i.over_ttl_receive_timer) - process_ttl_receive_timer 0x08008201 Thumb Code 32 uart1.o(i.process_ttl_receive_timer) - receive_ttl_data 0x08008225 Thumb Code 40 uart1.o(i.receive_ttl_data) - send_set_resp 0x08008251 Thumb Code 134 uart1.o(i.send_set_resp) - speed_set 0x080082dd Thumb Code 42 uniform.o(i.speed_set) - start_ttl_receive_timer 0x0800830d Thumb Code 18 uart1.o(i.start_ttl_receive_timer) - tmc5160_init 0x08008325 Thumb Code 240 tmc5160.o(i.tmc5160_init) - tmc5160_operate 0x08008429 Thumb Code 242 tmc5160.o(i.tmc5160_operate) - uniform_limit 0x08008521 Thumb Code 102 uniform.o(i.uniform_limit) - uniform_motion 0x08008599 Thumb Code 290 uniform.o(i.uniform_motion) - _get_lc_numeric 0x080086e5 Thumb Code 44 lc_numeric_c.o(locale$$code) - __aeabi_d2iz 0x08008711 Thumb Code 0 dfix.o(x$fpl$dfix) - _dfix 0x08008711 Thumb Code 94 dfix.o(x$fpl$dfix) - __aeabi_i2d 0x0800876f Thumb Code 0 dflt_clz.o(x$fpl$dflt) - _dflt 0x0800876f Thumb Code 46 dflt_clz.o(x$fpl$dflt) - __aeabi_dmul 0x0800879d Thumb Code 0 dmul.o(x$fpl$dmul) - _dmul 0x0800879d Thumb Code 332 dmul.o(x$fpl$dmul) - __fpl_dnaninf 0x080088f1 Thumb Code 156 dnaninf.o(x$fpl$dnaninf) - __fpl_dretinf 0x0800898d Thumb Code 12 dretinf.o(x$fpl$dretinf) - __aeabi_f2d 0x08008999 Thumb Code 0 f2d.o(x$fpl$f2d) - _f2d 0x08008999 Thumb Code 86 f2d.o(x$fpl$f2d) - __aeabi_fadd 0x080089f1 Thumb Code 0 faddsub_clz.o(x$fpl$fadd) - _fadd 0x080089f1 Thumb Code 196 faddsub_clz.o(x$fpl$fadd) - __fpl_fcheck_NaN1 0x08008ab5 Thumb Code 6 fcheck1.o(x$fpl$fcheck1) - __fpl_fcmp_Inf 0x08008ac1 Thumb Code 24 fcmpi.o(x$fpl$fcmpinf) - __aeabi_fdiv 0x08008ad9 Thumb Code 0 fdiv.o(x$fpl$fdiv) - _fdiv 0x08008ad9 Thumb Code 384 fdiv.o(x$fpl$fdiv) - __aeabi_cfcmpeq 0x08008c5d Thumb Code 0 feqf.o(x$fpl$feqf) - _fcmpeq 0x08008c5d Thumb Code 104 feqf.o(x$fpl$feqf) - __aeabi_f2iz 0x08008cc5 Thumb Code 0 ffix.o(x$fpl$ffix) - _ffix 0x08008cc5 Thumb Code 54 ffix.o(x$fpl$ffix) - __aeabi_f2uiz 0x08008cfd Thumb Code 0 ffixu.o(x$fpl$ffixu) - _ffixu 0x08008cfd Thumb Code 62 ffixu.o(x$fpl$ffixu) - __aeabi_i2f 0x08008d3d Thumb Code 0 fflt_clz.o(x$fpl$fflt) - _fflt 0x08008d3d Thumb Code 48 fflt_clz.o(x$fpl$fflt) - __aeabi_ui2f 0x08008d6d Thumb Code 0 fflt_clz.o(x$fpl$ffltu) - _ffltu 0x08008d6d Thumb Code 38 fflt_clz.o(x$fpl$ffltu) - __aeabi_cfcmple 0x08008d95 Thumb Code 0 fleqf.o(x$fpl$fleqf) - _fcmple 0x08008d95 Thumb Code 104 fleqf.o(x$fpl$fleqf) - __fpl_fcmple_InfNaN 0x08008de7 Thumb Code 0 fleqf.o(x$fpl$fleqf) - __aeabi_fmul 0x08008dfd Thumb Code 0 fmul.o(x$fpl$fmul) - _fmul 0x08008dfd Thumb Code 258 fmul.o(x$fpl$fmul) - __fpl_fnaninf 0x08008eff Thumb Code 140 fnaninf.o(x$fpl$fnaninf) - __fpl_fretinf 0x08008f8b Thumb Code 10 fretinf.o(x$fpl$fretinf) - __aeabi_cfrcmple 0x08008f95 Thumb Code 0 frleqf.o(x$fpl$frleqf) - _frcmple 0x08008f95 Thumb Code 98 frleqf.o(x$fpl$frleqf) - __aeabi_fsub 0x08008ff9 Thumb Code 0 faddsub_clz.o(x$fpl$fsub) - _fsub 0x08008ff9 Thumb Code 234 faddsub_clz.o(x$fpl$fsub) - _printf_fp_dec 0x080090e3 Thumb Code 4 printf1.o(x$fpl$printf1) - __fpl_return_NaN 0x080090e7 Thumb Code 100 retnan.o(x$fpl$retnan) - __ARM_scalbnf 0x0800914b Thumb Code 76 scalbnf.o(x$fpl$scalbnf) - __fpl_cmpreturn 0x08009197 Thumb Code 48 trapv.o(x$fpl$trapveneer) - __I$use$fp 0x080091c6 Number 0 usenofp.o(x$fpl$usenofp) - AHBPrescTable 0x080091d8 Data 16 system_stm32f1xx.o(.constdata) - APBPrescTable 0x080091e8 Data 8 system_stm32f1xx.o(.constdata) - F6x8 0x080091f0 Data 552 mylib.o(.constdata) - F8X16 0x08009418 Data 1520 mylib.o(.constdata) - Hzk 0x08009a08 Data 2048 mylib.o(.constdata) - Region$$Table$$Base 0x0800a29c Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x0800a2bc Number 0 anon$$obj.o(Region$$Table) + OLED_Menu_New 0x080063d1 Thumb Code 684 oled2.o(i.OLED_Menu_New) + OLED_SetPos 0x0800668d Thumb Code 34 oled2.o(i.OLED_SetPos) + OLED_ShowCN 0x080066b1 Thumb Code 130 oled2.o(i.OLED_ShowCN) + OLED_ShowChar 0x08006739 Thumb Code 210 oled2.o(i.OLED_ShowChar) + OLED_ShowString 0x08006815 Thumb Code 62 oled2.o(i.OLED_ShowString) + PartSort 0x08006853 Thumb Code 90 ads1220.o(i.PartSort) + PendSV_Handler 0x080068ad Thumb Code 2 stm32f1xx_it.o(i.PendSV_Handler) + QuickSort 0x080068af Thumb Code 42 ads1220.o(i.QuickSort) + Raw_32 0x080068d9 Thumb Code 22 tmc5160.o(i.Raw_32) + ReadData 0x080068f1 Thumb Code 72 ads1220.o(i.ReadData) + ReadOneByte 0x0800693d Thumb Code 78 ads1220.o(i.ReadOneByte) + ReadRegister 0x08006991 Thumb Code 50 ads1220.o(i.ReadRegister) + SPI2_IRQHandler 0x080069c9 Thumb Code 6 stm32f1xx_it.o(i.SPI2_IRQHandler) + SSD1306_WriteCmd 0x080069e5 Thumb Code 46 oled2.o(i.SSD1306_WriteCmd) + SSD1306_WriteData 0x08006a13 Thumb Code 46 oled2.o(i.SSD1306_WriteData) + STMFLASH_Read 0x08006a41 Thumb Code 26 flash.o(i.STMFLASH_Read) + STMFLASH_Write 0x08006a5d Thumb Code 216 flash.o(i.STMFLASH_Write) + STMFLASH_Write_NoCheck 0x08006b3d Thumb Code 44 flash.o(i.STMFLASH_Write_NoCheck) + SVC_Handler 0x08006b69 Thumb Code 2 stm32f1xx_it.o(i.SVC_Handler) + Swap 0x08006b6b Thumb Code 10 ads1220.o(i.Swap) + SysTick_CLKSourceConfig 0x08006b75 Thumb Code 24 misc.o(i.SysTick_CLKSourceConfig) + SysTick_Handler 0x08006b8d Thumb Code 4 stm32f1xx_it.o(i.SysTick_Handler) + SystemClock_Config 0x08006b91 Thumb Code 88 main.o(i.SystemClock_Config) + SystemInit 0x08006be9 Thumb Code 2 system_stm32f1xx.o(i.SystemInit) + TIM1_UP_IRQHandler 0x08006bed Thumb Code 6 stm32f1xx_it.o(i.TIM1_UP_IRQHandler) + TIM_Base_SetConfig 0x08006bf9 Thumb Code 120 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) + TIM_ETR_SetConfig 0x08006c85 Thumb Code 20 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) + TMC5160A_Init_Gpio 0x08006cf1 Thumb Code 70 tmc5160.o(i.TMC5160A_Init_Gpio) + TMC5160_SPIReadInt 0x08006d41 Thumb Code 58 tmc5160.o(i.TMC5160_SPIReadInt) + TMC5160_SPIWriteInt 0x08006d81 Thumb Code 288 tmc5160.o(i.TMC5160_SPIWriteInt) + UART1_Send_Char 0x08006ead Thumb Code 14 uart1.o(i.UART1_Send_Char) + UART_Start_Receive_DMA 0x080071a5 Thumb Code 130 stm32f1xx_hal_uart.o(i.UART_Start_Receive_DMA) + USART1_IRQHandler 0x08007235 Thumb Code 38 stm32f1xx_it.o(i.USART1_IRQHandler) + USART2_IRQHandler 0x08007269 Thumb Code 22 stm32f1xx_it.o(i.USART2_IRQHandler) + USART3_IRQHandler 0x08007289 Thumb Code 6 stm32f1xx_it.o(i.USART3_IRQHandler) + Uart_Send_Delay 0x08007295 Thumb Code 20 uart1.o(i.Uart_Send_Delay) + UsageFault_Handler 0x080072a9 Thumb Code 2 stm32f1xx_it.o(i.UsageFault_Handler) + VerfiyRC 0x080072ab Thumb Code 24 uart1.o(i.VerfiyRC) + WriteOneByte 0x080072c5 Thumb Code 78 ads1220.o(i.WriteOneByte) + WriteRegister 0x08007319 Thumb Code 78 ads1220.o(i.WriteRegister) + Xads1220_filter 0x0800736d Thumb Code 106 ads1220.o(i.Xads1220_filter) + Xads1220_record 0x080073e5 Thumb Code 62 ads1220.o(i.Xads1220_record) + __ARM_fpclassify 0x08007431 Thumb Code 40 fpclassify.o(i.__ARM_fpclassify) + _is_digit 0x08007479 Thumb Code 14 __printf_wp.o(i._is_digit) + app_act 0x08007489 Thumb Code 320 app.o(i.app_act) + delay 0x080075f9 Thumb Code 10 delay.o(i.delay) + delay_init 0x08007605 Thumb Code 26 delay.o(i.delay_init) + delay_ns 0x0800762d Thumb Code 12 delay.o(i.delay_ns) + delay_us 0x08007639 Thumb Code 46 delay.o(i.delay_us) + get_magnetv 0x0800766d Thumb Code 86 motor.o(i.get_magnetv) + get_state 0x080076dd Thumb Code 226 motor.o(i.get_state) + i2c_Ack 0x080077e1 Thumb Code 60 oled2.o(i.i2c_Ack) + i2c_CfgGpio 0x08007821 Thumb Code 70 oled2.o(i.i2c_CfgGpio) + i2c_SendByte 0x0800787d Thumb Code 86 oled2.o(i.i2c_SendByte) + i2c_Start 0x080078d9 Thumb Code 60 oled2.o(i.i2c_Start) + i2c_Stop 0x08007919 Thumb Code 42 oled2.o(i.i2c_Stop) + key_act 0x08007949 Thumb Code 662 key.o(i.key_act) + key_act_new 0x08007c21 Thumb Code 152 key.o(i.key_act_new) + main 0x08007cd1 Thumb Code 122 main.o(i.main) + motor_protect_ads 0x08007d55 Thumb Code 60 tmc5160.o(i.motor_protect_ads) + mov_loop1 0x08007d9d Thumb Code 836 motor.o(i.mov_loop1) + mov_step 0x08008129 Thumb Code 176 motor.o(i.mov_step) + over_ttl_receive_timer 0x080081f5 Thumb Code 14 uart1.o(i.over_ttl_receive_timer) + process_ttl_receive_timer 0x08008209 Thumb Code 32 uart1.o(i.process_ttl_receive_timer) + receive_ttl_data 0x0800822d Thumb Code 40 uart1.o(i.receive_ttl_data) + send_set_resp 0x08008259 Thumb Code 134 uart1.o(i.send_set_resp) + speed_set 0x080082e5 Thumb Code 42 uniform.o(i.speed_set) + start_ttl_receive_timer 0x08008315 Thumb Code 18 uart1.o(i.start_ttl_receive_timer) + tmc5160_init 0x0800832d Thumb Code 240 tmc5160.o(i.tmc5160_init) + tmc5160_operate 0x08008431 Thumb Code 242 tmc5160.o(i.tmc5160_operate) + uniform_limit 0x08008529 Thumb Code 142 uniform.o(i.uniform_limit) + uniform_motion 0x080085cd Thumb Code 290 uniform.o(i.uniform_motion) + _get_lc_numeric 0x08008719 Thumb Code 44 lc_numeric_c.o(locale$$code) + __aeabi_d2iz 0x08008745 Thumb Code 0 dfix.o(x$fpl$dfix) + _dfix 0x08008745 Thumb Code 94 dfix.o(x$fpl$dfix) + __aeabi_i2d 0x080087a3 Thumb Code 0 dflt_clz.o(x$fpl$dflt) + _dflt 0x080087a3 Thumb Code 46 dflt_clz.o(x$fpl$dflt) + __aeabi_dmul 0x080087d1 Thumb Code 0 dmul.o(x$fpl$dmul) + _dmul 0x080087d1 Thumb Code 332 dmul.o(x$fpl$dmul) + __fpl_dnaninf 0x08008925 Thumb Code 156 dnaninf.o(x$fpl$dnaninf) + __fpl_dretinf 0x080089c1 Thumb Code 12 dretinf.o(x$fpl$dretinf) + __aeabi_f2d 0x080089cd Thumb Code 0 f2d.o(x$fpl$f2d) + _f2d 0x080089cd Thumb Code 86 f2d.o(x$fpl$f2d) + __aeabi_fadd 0x08008a25 Thumb Code 0 faddsub_clz.o(x$fpl$fadd) + _fadd 0x08008a25 Thumb Code 196 faddsub_clz.o(x$fpl$fadd) + __fpl_fcheck_NaN1 0x08008ae9 Thumb Code 6 fcheck1.o(x$fpl$fcheck1) + __fpl_fcmp_Inf 0x08008af5 Thumb Code 24 fcmpi.o(x$fpl$fcmpinf) + __aeabi_fdiv 0x08008b0d Thumb Code 0 fdiv.o(x$fpl$fdiv) + _fdiv 0x08008b0d Thumb Code 384 fdiv.o(x$fpl$fdiv) + __aeabi_cfcmpeq 0x08008c91 Thumb Code 0 feqf.o(x$fpl$feqf) + _fcmpeq 0x08008c91 Thumb Code 104 feqf.o(x$fpl$feqf) + __aeabi_f2iz 0x08008cf9 Thumb Code 0 ffix.o(x$fpl$ffix) + _ffix 0x08008cf9 Thumb Code 54 ffix.o(x$fpl$ffix) + __aeabi_f2uiz 0x08008d31 Thumb Code 0 ffixu.o(x$fpl$ffixu) + _ffixu 0x08008d31 Thumb Code 62 ffixu.o(x$fpl$ffixu) + __aeabi_i2f 0x08008d71 Thumb Code 0 fflt_clz.o(x$fpl$fflt) + _fflt 0x08008d71 Thumb Code 48 fflt_clz.o(x$fpl$fflt) + __aeabi_ui2f 0x08008da1 Thumb Code 0 fflt_clz.o(x$fpl$ffltu) + _ffltu 0x08008da1 Thumb Code 38 fflt_clz.o(x$fpl$ffltu) + __aeabi_cfcmple 0x08008dc9 Thumb Code 0 fleqf.o(x$fpl$fleqf) + _fcmple 0x08008dc9 Thumb Code 104 fleqf.o(x$fpl$fleqf) + __fpl_fcmple_InfNaN 0x08008e1b Thumb Code 0 fleqf.o(x$fpl$fleqf) + __aeabi_fmul 0x08008e31 Thumb Code 0 fmul.o(x$fpl$fmul) + _fmul 0x08008e31 Thumb Code 258 fmul.o(x$fpl$fmul) + __fpl_fnaninf 0x08008f33 Thumb Code 140 fnaninf.o(x$fpl$fnaninf) + __fpl_fretinf 0x08008fbf Thumb Code 10 fretinf.o(x$fpl$fretinf) + __aeabi_cfrcmple 0x08008fc9 Thumb Code 0 frleqf.o(x$fpl$frleqf) + _frcmple 0x08008fc9 Thumb Code 98 frleqf.o(x$fpl$frleqf) + __aeabi_fsub 0x0800902d Thumb Code 0 faddsub_clz.o(x$fpl$fsub) + _fsub 0x0800902d Thumb Code 234 faddsub_clz.o(x$fpl$fsub) + _printf_fp_dec 0x08009117 Thumb Code 4 printf1.o(x$fpl$printf1) + __fpl_return_NaN 0x0800911b Thumb Code 100 retnan.o(x$fpl$retnan) + __ARM_scalbnf 0x0800917f Thumb Code 76 scalbnf.o(x$fpl$scalbnf) + __fpl_cmpreturn 0x080091cb Thumb Code 48 trapv.o(x$fpl$trapveneer) + __I$use$fp 0x080091fa Number 0 usenofp.o(x$fpl$usenofp) + AHBPrescTable 0x0800920c Data 16 system_stm32f1xx.o(.constdata) + APBPrescTable 0x0800921c Data 8 system_stm32f1xx.o(.constdata) + F6x8 0x08009224 Data 552 mylib.o(.constdata) + F8X16 0x0800944c Data 1520 mylib.o(.constdata) + Hzk 0x08009a3c Data 2048 mylib.o(.constdata) + Region$$Table$$Base 0x0800a2d0 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x0800a2f0 Number 0 anon$$obj.o(Region$$Table) rx_data 0x20000000 Data 1 stm32f1xx_it.o(.data) it_1ms_cnt 0x20000004 Data 4 stm32f1xx_it.o(.data) it_1ms_flag 0x20000008 Data 4 stm32f1xx_it.o(.data) @@ -3064,6 +3065,8 @@ Image Symbol Table data_len 0x200001d8 Data 4 uart1.o(.data) shouldaccept 0x200001dc Data 4 uart1.o(.data) limit_old 0x200001e0 Data 1 uniform.o(.data) + ocin1_flag 0x200001e1 Data 1 uniform.o(.data) + ocin2_flag 0x200001e2 Data 1 uniform.o(.data) uniform_speed 0x200001e4 Data 4 uniform.o(.data) uniform_speed_prv 0x200001e8 Data 4 uniform.o(.data) hi2c1 0x200001ec Data 84 i2c.o(.bss) @@ -3095,9 +3098,9 @@ Memory Map of the image Image Entry point : 0x08000131 - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000a4c4, Max: 0x00040000, ABSOLUTE, COMPRESSED[0x0000a328]) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000a4f8, Max: 0x00040000, ABSOLUTE, COMPRESSED[0x0000a35c]) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000a2d8, Max: 0x00040000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000a30c, Max: 0x00040000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object @@ -3337,145 +3340,145 @@ Memory Map of the image 0x08004c1c 0x08004c1c 0x00000032 Code RO 4372 i.OLED_Clear oled2.o 0x08004c4e 0x08004c4e 0x00000002 PAD 0x08004c50 0x08004c50 0x00001780 Code RO 4376 i.OLED_MenuTest oled2.o - 0x080063d0 0x080063d0 0x000002b4 Code RO 4377 i.OLED_Menu_New oled2.o - 0x08006684 0x08006684 0x00000022 Code RO 4378 i.OLED_SetPos oled2.o - 0x080066a6 0x080066a6 0x00000002 PAD - 0x080066a8 0x080066a8 0x00000088 Code RO 4379 i.OLED_ShowCN oled2.o - 0x08006730 0x08006730 0x000000dc Code RO 4380 i.OLED_ShowChar oled2.o - 0x0800680c 0x0800680c 0x0000003e Code RO 4381 i.OLED_ShowString oled2.o - 0x0800684a 0x0800684a 0x0000005a Code RO 4008 i.PartSort ads1220.o - 0x080068a4 0x080068a4 0x00000002 Code RO 551 i.PendSV_Handler stm32f1xx_it.o - 0x080068a6 0x080068a6 0x0000002a Code RO 4009 i.QuickSort ads1220.o - 0x080068d0 0x080068d0 0x00000016 Code RO 4240 i.Raw_32 tmc5160.o - 0x080068e6 0x080068e6 0x00000002 PAD - 0x080068e8 0x080068e8 0x0000004c Code RO 4010 i.ReadData ads1220.o - 0x08006934 0x08006934 0x00000054 Code RO 4011 i.ReadOneByte ads1220.o - 0x08006988 0x08006988 0x00000038 Code RO 4012 i.ReadRegister ads1220.o - 0x080069c0 0x080069c0 0x0000000c Code RO 552 i.SPI2_IRQHandler stm32f1xx_it.o - 0x080069cc 0x080069cc 0x00000010 Code RO 2210 i.SPI_DMAAbortOnError stm32f1xx_hal_spi.o - 0x080069dc 0x080069dc 0x0000002e Code RO 4382 i.SSD1306_WriteCmd oled2.o - 0x08006a0a 0x08006a0a 0x0000002e Code RO 4383 i.SSD1306_WriteData oled2.o - 0x08006a38 0x08006a38 0x0000001a Code RO 4759 i.STMFLASH_Read flash.o - 0x08006a52 0x08006a52 0x00000002 PAD - 0x08006a54 0x08006a54 0x000000e0 Code RO 4761 i.STMFLASH_Write flash.o - 0x08006b34 0x08006b34 0x0000002c Code RO 4762 i.STMFLASH_Write_NoCheck flash.o - 0x08006b60 0x08006b60 0x00000002 Code RO 553 i.SVC_Handler stm32f1xx_it.o - 0x08006b62 0x08006b62 0x0000000a Code RO 4013 i.Swap ads1220.o - 0x08006b6c 0x08006b6c 0x00000018 Code RO 4324 i.SysTick_CLKSourceConfig misc.o - 0x08006b84 0x08006b84 0x00000004 Code RO 554 i.SysTick_Handler stm32f1xx_it.o - 0x08006b88 0x08006b88 0x00000058 Code RO 14 i.SystemClock_Config main.o - 0x08006be0 0x08006be0 0x00000002 Code RO 3831 i.SystemInit system_stm32f1xx.o - 0x08006be2 0x08006be2 0x00000002 PAD - 0x08006be4 0x08006be4 0x0000000c Code RO 555 i.TIM1_UP_IRQHandler stm32f1xx_it.o - 0x08006bf0 0x08006bf0 0x0000008c Code RO 2589 i.TIM_Base_SetConfig stm32f1xx_hal_tim.o - 0x08006c7c 0x08006c7c 0x00000014 Code RO 2600 i.TIM_ETR_SetConfig stm32f1xx_hal_tim.o - 0x08006c90 0x08006c90 0x00000010 Code RO 2601 i.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o - 0x08006ca0 0x08006ca0 0x00000022 Code RO 2607 i.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o - 0x08006cc2 0x08006cc2 0x00000024 Code RO 2609 i.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o - 0x08006ce6 0x08006ce6 0x00000002 PAD - 0x08006ce8 0x08006ce8 0x00000050 Code RO 4241 i.TMC5160A_Init_Gpio tmc5160.o - 0x08006d38 0x08006d38 0x00000040 Code RO 4242 i.TMC5160_SPIReadInt tmc5160.o - 0x08006d78 0x08006d78 0x0000012c Code RO 4243 i.TMC5160_SPIWriteInt tmc5160.o - 0x08006ea4 0x08006ea4 0x00000014 Code RO 4619 i.UART1_Send_Char uart1.o - 0x08006eb8 0x08006eb8 0x00000010 Code RO 3510 i.UART_DMAAbortOnError stm32f1xx_hal_uart.o - 0x08006ec8 0x08006ec8 0x0000004a Code RO 3511 i.UART_DMAError stm32f1xx_hal_uart.o - 0x08006f12 0x08006f12 0x00000086 Code RO 3512 i.UART_DMAReceiveCplt stm32f1xx_hal_uart.o - 0x08006f98 0x08006f98 0x0000001e Code RO 3514 i.UART_DMARxHalfCplt stm32f1xx_hal_uart.o - 0x08006fb6 0x08006fb6 0x0000004e Code RO 3520 i.UART_EndRxTransfer stm32f1xx_hal_uart.o - 0x08007004 0x08007004 0x0000001c Code RO 3521 i.UART_EndTxTransfer stm32f1xx_hal_uart.o - 0x08007020 0x08007020 0x000000c2 Code RO 3522 i.UART_Receive_IT stm32f1xx_hal_uart.o - 0x080070e2 0x080070e2 0x00000002 PAD - 0x080070e4 0x080070e4 0x000000b8 Code RO 3523 i.UART_SetConfig stm32f1xx_hal_uart.o - 0x0800719c 0x0800719c 0x00000090 Code RO 3524 i.UART_Start_Receive_DMA stm32f1xx_hal_uart.o - 0x0800722c 0x0800722c 0x00000034 Code RO 556 i.USART1_IRQHandler stm32f1xx_it.o - 0x08007260 0x08007260 0x00000020 Code RO 557 i.USART2_IRQHandler stm32f1xx_it.o - 0x08007280 0x08007280 0x0000000c Code RO 558 i.USART3_IRQHandler stm32f1xx_it.o - 0x0800728c 0x0800728c 0x00000014 Code RO 4620 i.Uart_Send_Delay uart1.o - 0x080072a0 0x080072a0 0x00000002 Code RO 559 i.UsageFault_Handler stm32f1xx_it.o - 0x080072a2 0x080072a2 0x00000018 Code RO 4621 i.VerfiyRC uart1.o - 0x080072ba 0x080072ba 0x00000002 PAD - 0x080072bc 0x080072bc 0x00000054 Code RO 4014 i.WriteOneByte ads1220.o - 0x08007310 0x08007310 0x00000054 Code RO 4015 i.WriteRegister ads1220.o - 0x08007364 0x08007364 0x00000078 Code RO 4016 i.Xads1220_filter ads1220.o - 0x080073dc 0x080073dc 0x0000004c Code RO 4017 i.Xads1220_record ads1220.o - 0x08007428 0x08007428 0x00000028 Code RO 5020 i.__ARM_fpclassify m_ws.l(fpclassify.o) - 0x08007450 0x08007450 0x00000020 Code RO 1685 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o - 0x08007470 0x08007470 0x0000000e Code RO 4870 i._is_digit c_w.l(__printf_wp.o) - 0x0800747e 0x0800747e 0x00000002 PAD - 0x08007480 0x08007480 0x00000170 Code RO 3868 i.app_act app.o - 0x080075f0 0x080075f0 0x0000000a Code RO 3907 i.delay delay.o - 0x080075fa 0x080075fa 0x00000002 PAD - 0x080075fc 0x080075fc 0x00000028 Code RO 3908 i.delay_init delay.o - 0x08007624 0x08007624 0x0000000c Code RO 3909 i.delay_ns delay.o - 0x08007630 0x08007630 0x00000034 Code RO 3910 i.delay_us delay.o - 0x08007664 0x08007664 0x00000070 Code RO 4547 i.get_magnetv motor.o - 0x080076d4 0x080076d4 0x00000104 Code RO 4548 i.get_state motor.o - 0x080077d8 0x080077d8 0x00000040 Code RO 4384 i.i2c_Ack oled2.o - 0x08007818 0x08007818 0x00000050 Code RO 4385 i.i2c_CfgGpio oled2.o - 0x08007868 0x08007868 0x0000000c Code RO 4386 i.i2c_Delay oled2.o - 0x08007874 0x08007874 0x0000005c Code RO 4389 i.i2c_SendByte oled2.o - 0x080078d0 0x080078d0 0x00000040 Code RO 4390 i.i2c_Start oled2.o - 0x08007910 0x08007910 0x00000030 Code RO 4391 i.i2c_Stop oled2.o - 0x08007940 0x08007940 0x000002d8 Code RO 3952 i.key_act key.o - 0x08007c18 0x08007c18 0x000000b0 Code RO 3953 i.key_act_new key.o - 0x08007cc8 0x08007cc8 0x00000084 Code RO 15 i.main main.o - 0x08007d4c 0x08007d4c 0x00000048 Code RO 4244 i.motor_protect_ads tmc5160.o - 0x08007d94 0x08007d94 0x0000038c Code RO 4549 i.mov_loop1 motor.o - 0x08008120 0x08008120 0x000000cc Code RO 4550 i.mov_step motor.o - 0x080081ec 0x080081ec 0x00000014 Code RO 4624 i.over_ttl_receive_timer uart1.o - 0x08008200 0x08008200 0x00000024 Code RO 4625 i.process_ttl_receive_timer uart1.o - 0x08008224 0x08008224 0x0000002c Code RO 4626 i.receive_ttl_data uart1.o - 0x08008250 0x08008250 0x0000008c Code RO 4627 i.send_set_resp uart1.o - 0x080082dc 0x080082dc 0x00000030 Code RO 4809 i.speed_set uniform.o - 0x0800830c 0x0800830c 0x00000018 Code RO 4628 i.start_ttl_receive_timer uart1.o - 0x08008324 0x08008324 0x00000104 Code RO 4246 i.tmc5160_init tmc5160.o - 0x08008428 0x08008428 0x000000f8 Code RO 4247 i.tmc5160_operate tmc5160.o - 0x08008520 0x08008520 0x00000078 Code RO 4810 i.uniform_limit uniform.o - 0x08008598 0x08008598 0x0000014c Code RO 4811 i.uniform_motion uniform.o - 0x080086e4 0x080086e4 0x0000002c Code RO 5014 locale$$code c_w.l(lc_numeric_c.o) - 0x08008710 0x08008710 0x0000005e Code RO 4889 x$fpl$dfix fz_ws.l(dfix.o) - 0x0800876e 0x0800876e 0x0000002e Code RO 4894 x$fpl$dflt fz_ws.l(dflt_clz.o) - 0x0800879c 0x0800879c 0x00000154 Code RO 4899 x$fpl$dmul fz_ws.l(dmul.o) - 0x080088f0 0x080088f0 0x0000009c Code RO 4949 x$fpl$dnaninf fz_ws.l(dnaninf.o) - 0x0800898c 0x0800898c 0x0000000c Code RO 4951 x$fpl$dretinf fz_ws.l(dretinf.o) - 0x08008998 0x08008998 0x00000056 Code RO 4901 x$fpl$f2d fz_ws.l(f2d.o) - 0x080089ee 0x080089ee 0x00000002 PAD - 0x080089f0 0x080089f0 0x000000c4 Code RO 4903 x$fpl$fadd fz_ws.l(faddsub_clz.o) - 0x08008ab4 0x08008ab4 0x0000000c Code RO 4953 x$fpl$fcheck1 fz_ws.l(fcheck1.o) - 0x08008ac0 0x08008ac0 0x00000018 Code RO 4955 x$fpl$fcmpinf fz_ws.l(fcmpi.o) - 0x08008ad8 0x08008ad8 0x00000184 Code RO 4910 x$fpl$fdiv fz_ws.l(fdiv.o) - 0x08008c5c 0x08008c5c 0x00000068 Code RO 4913 x$fpl$feqf fz_ws.l(feqf.o) - 0x08008cc4 0x08008cc4 0x00000036 Code RO 4915 x$fpl$ffix fz_ws.l(ffix.o) - 0x08008cfa 0x08008cfa 0x00000002 PAD - 0x08008cfc 0x08008cfc 0x0000003e Code RO 4919 x$fpl$ffixu fz_ws.l(ffixu.o) - 0x08008d3a 0x08008d3a 0x00000002 PAD - 0x08008d3c 0x08008d3c 0x00000030 Code RO 4924 x$fpl$fflt fz_ws.l(fflt_clz.o) - 0x08008d6c 0x08008d6c 0x00000026 Code RO 4923 x$fpl$ffltu fz_ws.l(fflt_clz.o) - 0x08008d92 0x08008d92 0x00000002 PAD - 0x08008d94 0x08008d94 0x00000068 Code RO 4929 x$fpl$fleqf fz_ws.l(fleqf.o) - 0x08008dfc 0x08008dfc 0x00000102 Code RO 4931 x$fpl$fmul fz_ws.l(fmul.o) - 0x08008efe 0x08008efe 0x0000008c Code RO 4957 x$fpl$fnaninf fz_ws.l(fnaninf.o) - 0x08008f8a 0x08008f8a 0x0000000a Code RO 4959 x$fpl$fretinf fz_ws.l(fretinf.o) - 0x08008f94 0x08008f94 0x00000062 Code RO 4933 x$fpl$frleqf fz_ws.l(frleqf.o) - 0x08008ff6 0x08008ff6 0x00000002 PAD - 0x08008ff8 0x08008ff8 0x000000ea Code RO 4905 x$fpl$fsub fz_ws.l(faddsub_clz.o) - 0x080090e2 0x080090e2 0x00000004 Code RO 4935 x$fpl$printf1 fz_ws.l(printf1.o) - 0x080090e6 0x080090e6 0x00000064 Code RO 5018 x$fpl$retnan fz_ws.l(retnan.o) - 0x0800914a 0x0800914a 0x0000004c Code RO 4937 x$fpl$scalbnf fz_ws.l(scalbnf.o) - 0x08009196 0x08009196 0x00000030 Code RO 5082 x$fpl$trapveneer fz_ws.l(trapv.o) - 0x080091c6 0x080091c6 0x00000000 Code RO 4961 x$fpl$usenofp fz_ws.l(usenofp.o) - 0x080091c6 0x080091c6 0x00000012 Data RO 1383 .constdata stm32f1xx_hal_rcc.o - 0x080091d8 0x080091d8 0x00000010 Data RO 3832 .constdata system_stm32f1xx.o - 0x080091e8 0x080091e8 0x00000008 Data RO 3833 .constdata system_stm32f1xx.o - 0x080091f0 0x080091f0 0x00000228 Data RO 4202 .constdata mylib.o - 0x08009418 0x08009418 0x000005f0 Data RO 4203 .constdata mylib.o - 0x08009a08 0x08009a08 0x00000800 Data RO 4204 .constdata mylib.o - 0x0800a208 0x0800a208 0x00000094 Data RO 4989 .constdata c_w.l(bigflt0.o) - 0x0800a29c 0x0800a29c 0x00000020 Data RO 5165 Region$$Table anon$$obj.o - 0x0800a2bc 0x0800a2bc 0x0000001c Data RO 5013 locale$$data c_w.l(lc_numeric_c.o) + 0x080063d0 0x080063d0 0x000002bc Code RO 4377 i.OLED_Menu_New oled2.o + 0x0800668c 0x0800668c 0x00000022 Code RO 4378 i.OLED_SetPos oled2.o + 0x080066ae 0x080066ae 0x00000002 PAD + 0x080066b0 0x080066b0 0x00000088 Code RO 4379 i.OLED_ShowCN oled2.o + 0x08006738 0x08006738 0x000000dc Code RO 4380 i.OLED_ShowChar oled2.o + 0x08006814 0x08006814 0x0000003e Code RO 4381 i.OLED_ShowString oled2.o + 0x08006852 0x08006852 0x0000005a Code RO 4008 i.PartSort ads1220.o + 0x080068ac 0x080068ac 0x00000002 Code RO 551 i.PendSV_Handler stm32f1xx_it.o + 0x080068ae 0x080068ae 0x0000002a Code RO 4009 i.QuickSort ads1220.o + 0x080068d8 0x080068d8 0x00000016 Code RO 4240 i.Raw_32 tmc5160.o + 0x080068ee 0x080068ee 0x00000002 PAD + 0x080068f0 0x080068f0 0x0000004c Code RO 4010 i.ReadData ads1220.o + 0x0800693c 0x0800693c 0x00000054 Code RO 4011 i.ReadOneByte ads1220.o + 0x08006990 0x08006990 0x00000038 Code RO 4012 i.ReadRegister ads1220.o + 0x080069c8 0x080069c8 0x0000000c Code RO 552 i.SPI2_IRQHandler stm32f1xx_it.o + 0x080069d4 0x080069d4 0x00000010 Code RO 2210 i.SPI_DMAAbortOnError stm32f1xx_hal_spi.o + 0x080069e4 0x080069e4 0x0000002e Code RO 4382 i.SSD1306_WriteCmd oled2.o + 0x08006a12 0x08006a12 0x0000002e Code RO 4383 i.SSD1306_WriteData oled2.o + 0x08006a40 0x08006a40 0x0000001a Code RO 4759 i.STMFLASH_Read flash.o + 0x08006a5a 0x08006a5a 0x00000002 PAD + 0x08006a5c 0x08006a5c 0x000000e0 Code RO 4761 i.STMFLASH_Write flash.o + 0x08006b3c 0x08006b3c 0x0000002c Code RO 4762 i.STMFLASH_Write_NoCheck flash.o + 0x08006b68 0x08006b68 0x00000002 Code RO 553 i.SVC_Handler stm32f1xx_it.o + 0x08006b6a 0x08006b6a 0x0000000a Code RO 4013 i.Swap ads1220.o + 0x08006b74 0x08006b74 0x00000018 Code RO 4324 i.SysTick_CLKSourceConfig misc.o + 0x08006b8c 0x08006b8c 0x00000004 Code RO 554 i.SysTick_Handler stm32f1xx_it.o + 0x08006b90 0x08006b90 0x00000058 Code RO 14 i.SystemClock_Config main.o + 0x08006be8 0x08006be8 0x00000002 Code RO 3831 i.SystemInit system_stm32f1xx.o + 0x08006bea 0x08006bea 0x00000002 PAD + 0x08006bec 0x08006bec 0x0000000c Code RO 555 i.TIM1_UP_IRQHandler stm32f1xx_it.o + 0x08006bf8 0x08006bf8 0x0000008c Code RO 2589 i.TIM_Base_SetConfig stm32f1xx_hal_tim.o + 0x08006c84 0x08006c84 0x00000014 Code RO 2600 i.TIM_ETR_SetConfig stm32f1xx_hal_tim.o + 0x08006c98 0x08006c98 0x00000010 Code RO 2601 i.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o + 0x08006ca8 0x08006ca8 0x00000022 Code RO 2607 i.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o + 0x08006cca 0x08006cca 0x00000024 Code RO 2609 i.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o + 0x08006cee 0x08006cee 0x00000002 PAD + 0x08006cf0 0x08006cf0 0x00000050 Code RO 4241 i.TMC5160A_Init_Gpio tmc5160.o + 0x08006d40 0x08006d40 0x00000040 Code RO 4242 i.TMC5160_SPIReadInt tmc5160.o + 0x08006d80 0x08006d80 0x0000012c Code RO 4243 i.TMC5160_SPIWriteInt tmc5160.o + 0x08006eac 0x08006eac 0x00000014 Code RO 4619 i.UART1_Send_Char uart1.o + 0x08006ec0 0x08006ec0 0x00000010 Code RO 3510 i.UART_DMAAbortOnError stm32f1xx_hal_uart.o + 0x08006ed0 0x08006ed0 0x0000004a Code RO 3511 i.UART_DMAError stm32f1xx_hal_uart.o + 0x08006f1a 0x08006f1a 0x00000086 Code RO 3512 i.UART_DMAReceiveCplt stm32f1xx_hal_uart.o + 0x08006fa0 0x08006fa0 0x0000001e Code RO 3514 i.UART_DMARxHalfCplt stm32f1xx_hal_uart.o + 0x08006fbe 0x08006fbe 0x0000004e Code RO 3520 i.UART_EndRxTransfer stm32f1xx_hal_uart.o + 0x0800700c 0x0800700c 0x0000001c Code RO 3521 i.UART_EndTxTransfer stm32f1xx_hal_uart.o + 0x08007028 0x08007028 0x000000c2 Code RO 3522 i.UART_Receive_IT stm32f1xx_hal_uart.o + 0x080070ea 0x080070ea 0x00000002 PAD + 0x080070ec 0x080070ec 0x000000b8 Code RO 3523 i.UART_SetConfig stm32f1xx_hal_uart.o + 0x080071a4 0x080071a4 0x00000090 Code RO 3524 i.UART_Start_Receive_DMA stm32f1xx_hal_uart.o + 0x08007234 0x08007234 0x00000034 Code RO 556 i.USART1_IRQHandler stm32f1xx_it.o + 0x08007268 0x08007268 0x00000020 Code RO 557 i.USART2_IRQHandler stm32f1xx_it.o + 0x08007288 0x08007288 0x0000000c Code RO 558 i.USART3_IRQHandler stm32f1xx_it.o + 0x08007294 0x08007294 0x00000014 Code RO 4620 i.Uart_Send_Delay uart1.o + 0x080072a8 0x080072a8 0x00000002 Code RO 559 i.UsageFault_Handler stm32f1xx_it.o + 0x080072aa 0x080072aa 0x00000018 Code RO 4621 i.VerfiyRC uart1.o + 0x080072c2 0x080072c2 0x00000002 PAD + 0x080072c4 0x080072c4 0x00000054 Code RO 4014 i.WriteOneByte ads1220.o + 0x08007318 0x08007318 0x00000054 Code RO 4015 i.WriteRegister ads1220.o + 0x0800736c 0x0800736c 0x00000078 Code RO 4016 i.Xads1220_filter ads1220.o + 0x080073e4 0x080073e4 0x0000004c Code RO 4017 i.Xads1220_record ads1220.o + 0x08007430 0x08007430 0x00000028 Code RO 5020 i.__ARM_fpclassify m_ws.l(fpclassify.o) + 0x08007458 0x08007458 0x00000020 Code RO 1685 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o + 0x08007478 0x08007478 0x0000000e Code RO 4870 i._is_digit c_w.l(__printf_wp.o) + 0x08007486 0x08007486 0x00000002 PAD + 0x08007488 0x08007488 0x00000170 Code RO 3868 i.app_act app.o + 0x080075f8 0x080075f8 0x0000000a Code RO 3907 i.delay delay.o + 0x08007602 0x08007602 0x00000002 PAD + 0x08007604 0x08007604 0x00000028 Code RO 3908 i.delay_init delay.o + 0x0800762c 0x0800762c 0x0000000c Code RO 3909 i.delay_ns delay.o + 0x08007638 0x08007638 0x00000034 Code RO 3910 i.delay_us delay.o + 0x0800766c 0x0800766c 0x00000070 Code RO 4547 i.get_magnetv motor.o + 0x080076dc 0x080076dc 0x00000104 Code RO 4548 i.get_state motor.o + 0x080077e0 0x080077e0 0x00000040 Code RO 4384 i.i2c_Ack oled2.o + 0x08007820 0x08007820 0x00000050 Code RO 4385 i.i2c_CfgGpio oled2.o + 0x08007870 0x08007870 0x0000000c Code RO 4386 i.i2c_Delay oled2.o + 0x0800787c 0x0800787c 0x0000005c Code RO 4389 i.i2c_SendByte oled2.o + 0x080078d8 0x080078d8 0x00000040 Code RO 4390 i.i2c_Start oled2.o + 0x08007918 0x08007918 0x00000030 Code RO 4391 i.i2c_Stop oled2.o + 0x08007948 0x08007948 0x000002d8 Code RO 3952 i.key_act key.o + 0x08007c20 0x08007c20 0x000000b0 Code RO 3953 i.key_act_new key.o + 0x08007cd0 0x08007cd0 0x00000084 Code RO 15 i.main main.o + 0x08007d54 0x08007d54 0x00000048 Code RO 4244 i.motor_protect_ads tmc5160.o + 0x08007d9c 0x08007d9c 0x0000038c Code RO 4549 i.mov_loop1 motor.o + 0x08008128 0x08008128 0x000000cc Code RO 4550 i.mov_step motor.o + 0x080081f4 0x080081f4 0x00000014 Code RO 4624 i.over_ttl_receive_timer uart1.o + 0x08008208 0x08008208 0x00000024 Code RO 4625 i.process_ttl_receive_timer uart1.o + 0x0800822c 0x0800822c 0x0000002c Code RO 4626 i.receive_ttl_data uart1.o + 0x08008258 0x08008258 0x0000008c Code RO 4627 i.send_set_resp uart1.o + 0x080082e4 0x080082e4 0x00000030 Code RO 4809 i.speed_set uniform.o + 0x08008314 0x08008314 0x00000018 Code RO 4628 i.start_ttl_receive_timer uart1.o + 0x0800832c 0x0800832c 0x00000104 Code RO 4246 i.tmc5160_init tmc5160.o + 0x08008430 0x08008430 0x000000f8 Code RO 4247 i.tmc5160_operate tmc5160.o + 0x08008528 0x08008528 0x000000a4 Code RO 4810 i.uniform_limit uniform.o + 0x080085cc 0x080085cc 0x0000014c Code RO 4811 i.uniform_motion uniform.o + 0x08008718 0x08008718 0x0000002c Code RO 5014 locale$$code c_w.l(lc_numeric_c.o) + 0x08008744 0x08008744 0x0000005e Code RO 4889 x$fpl$dfix fz_ws.l(dfix.o) + 0x080087a2 0x080087a2 0x0000002e Code RO 4894 x$fpl$dflt fz_ws.l(dflt_clz.o) + 0x080087d0 0x080087d0 0x00000154 Code RO 4899 x$fpl$dmul fz_ws.l(dmul.o) + 0x08008924 0x08008924 0x0000009c Code RO 4949 x$fpl$dnaninf fz_ws.l(dnaninf.o) + 0x080089c0 0x080089c0 0x0000000c Code RO 4951 x$fpl$dretinf fz_ws.l(dretinf.o) + 0x080089cc 0x080089cc 0x00000056 Code RO 4901 x$fpl$f2d fz_ws.l(f2d.o) + 0x08008a22 0x08008a22 0x00000002 PAD + 0x08008a24 0x08008a24 0x000000c4 Code RO 4903 x$fpl$fadd fz_ws.l(faddsub_clz.o) + 0x08008ae8 0x08008ae8 0x0000000c Code RO 4953 x$fpl$fcheck1 fz_ws.l(fcheck1.o) + 0x08008af4 0x08008af4 0x00000018 Code RO 4955 x$fpl$fcmpinf fz_ws.l(fcmpi.o) + 0x08008b0c 0x08008b0c 0x00000184 Code RO 4910 x$fpl$fdiv fz_ws.l(fdiv.o) + 0x08008c90 0x08008c90 0x00000068 Code RO 4913 x$fpl$feqf fz_ws.l(feqf.o) + 0x08008cf8 0x08008cf8 0x00000036 Code RO 4915 x$fpl$ffix fz_ws.l(ffix.o) + 0x08008d2e 0x08008d2e 0x00000002 PAD + 0x08008d30 0x08008d30 0x0000003e Code RO 4919 x$fpl$ffixu fz_ws.l(ffixu.o) + 0x08008d6e 0x08008d6e 0x00000002 PAD + 0x08008d70 0x08008d70 0x00000030 Code RO 4924 x$fpl$fflt fz_ws.l(fflt_clz.o) + 0x08008da0 0x08008da0 0x00000026 Code RO 4923 x$fpl$ffltu fz_ws.l(fflt_clz.o) + 0x08008dc6 0x08008dc6 0x00000002 PAD + 0x08008dc8 0x08008dc8 0x00000068 Code RO 4929 x$fpl$fleqf fz_ws.l(fleqf.o) + 0x08008e30 0x08008e30 0x00000102 Code RO 4931 x$fpl$fmul fz_ws.l(fmul.o) + 0x08008f32 0x08008f32 0x0000008c Code RO 4957 x$fpl$fnaninf fz_ws.l(fnaninf.o) + 0x08008fbe 0x08008fbe 0x0000000a Code RO 4959 x$fpl$fretinf fz_ws.l(fretinf.o) + 0x08008fc8 0x08008fc8 0x00000062 Code RO 4933 x$fpl$frleqf fz_ws.l(frleqf.o) + 0x0800902a 0x0800902a 0x00000002 PAD + 0x0800902c 0x0800902c 0x000000ea Code RO 4905 x$fpl$fsub fz_ws.l(faddsub_clz.o) + 0x08009116 0x08009116 0x00000004 Code RO 4935 x$fpl$printf1 fz_ws.l(printf1.o) + 0x0800911a 0x0800911a 0x00000064 Code RO 5018 x$fpl$retnan fz_ws.l(retnan.o) + 0x0800917e 0x0800917e 0x0000004c Code RO 4937 x$fpl$scalbnf fz_ws.l(scalbnf.o) + 0x080091ca 0x080091ca 0x00000030 Code RO 5082 x$fpl$trapveneer fz_ws.l(trapv.o) + 0x080091fa 0x080091fa 0x00000000 Code RO 4961 x$fpl$usenofp fz_ws.l(usenofp.o) + 0x080091fa 0x080091fa 0x00000012 Data RO 1383 .constdata stm32f1xx_hal_rcc.o + 0x0800920c 0x0800920c 0x00000010 Data RO 3832 .constdata system_stm32f1xx.o + 0x0800921c 0x0800921c 0x00000008 Data RO 3833 .constdata system_stm32f1xx.o + 0x08009224 0x08009224 0x00000228 Data RO 4202 .constdata mylib.o + 0x0800944c 0x0800944c 0x000005f0 Data RO 4203 .constdata mylib.o + 0x08009a3c 0x08009a3c 0x00000800 Data RO 4204 .constdata mylib.o + 0x0800a23c 0x0800a23c 0x00000094 Data RO 4989 .constdata c_w.l(bigflt0.o) + 0x0800a2d0 0x0800a2d0 0x00000020 Data RO 5165 Region$$Table anon$$obj.o + 0x0800a2f0 0x0800a2f0 0x0000001c Data RO 5013 locale$$data c_w.l(lc_numeric_c.o) - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800a2d8, Size: 0x00001640, Max: 0x0000c000, ABSOLUTE, COMPRESSED[0x00000050]) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800a30c, Size: 0x00001640, Max: 0x0000c000, ABSOLUTE, COMPRESSED[0x00000050]) Exec Addr Load Addr Size Type Attr Idx E Section Name Object @@ -3537,7 +3540,7 @@ Image component sizes 24 0 0 0 0 554 misc.o 2196 238 0 92 0 6242 motor.o 0 0 4120 0 0 1792 mylib.o - 7846 424 0 104 40 15568 oled2.o + 7854 424 0 104 40 15572 oled2.o 216 26 0 0 88 1793 spi.o 64 26 304 0 1536 852 startup_stm32f103xe.o 128 24 0 12 0 6193 stm32f1xx_hal.o @@ -3557,11 +3560,11 @@ Image component sizes 172 20 0 0 72 1802 tim.o 1046 66 0 68 0 6477 tmc5160.o 928 122 0 32 70 9708 uart1.o - 500 66 0 12 0 2405 uniform.o + 544 70 0 12 0 2535 uniform.o 560 58 0 0 284 3331 usart.o ---------------------------------------------------------------------- - 29388 1996 4498 492 5108 1188527 Object Totals + 29440 2000 4498 492 5108 1188661 Object Totals 0 0 32 0 0 0 (incl. Generated) 52 0 0 9 10 0 (incl. Padding) @@ -3657,15 +3660,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 37014 2338 4674 492 5204 1179703 Grand Totals - 37014 2338 4674 80 5204 1179703 ELF Image Totals (compressed) - 37014 2338 4674 80 0 0 ROM Totals + 37066 2342 4674 492 5204 1179837 Grand Totals + 37066 2342 4674 80 5204 1179837 ELF Image Totals (compressed) + 37066 2342 4674 80 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 41688 ( 40.71kB) + Total RO Size (Code + RO Data) 41740 ( 40.76kB) Total RW Size (RW Data + ZI Data) 5696 ( 5.56kB) - Total ROM Size (Code + RO Data + RW Data) 41768 ( 40.79kB) + Total ROM Size (Code + RO Data + RW Data) 41820 ( 40.84kB) ============================================================================== diff --git a/MDK-ARM/mfps/mfps_mfps.dep b/MDK-ARM/mfps/mfps_mfps.dep index fc21be2..d90b44c 100644 --- a/MDK-ARM/mfps/mfps_mfps.dep +++ b/MDK-ARM/mfps/mfps_mfps.dep @@ -842,7 +842,7 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x663B42E9) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x663B42E9) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x663B42E9) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x663B42E9) -F (..\App\Src\app.c)(0x670E168A)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Inc -I ../Src -I ../App/Inc -I ../App/Src -I.\RTE\_mfps -IE:\Softwares\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IE:\Softwares\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F10X_HD -D_RTE_ -DSTM32F103xE -DUSE_HAL_DRIVER -o mfps\app.o --omf_browse mfps\app.crf --depend mfps\app.d) +F (..\App\Src\app.c)(0x67217DE6)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Inc -I ../Src -I ../App/Inc -I ../App/Src -I.\RTE\_mfps -IE:\Softwares\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IE:\Softwares\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F10X_HD -D_RTE_ -DSTM32F103xE -DUSE_HAL_DRIVER -o mfps\app.o --omf_browse mfps\app.crf --depend mfps\app.d) I (../App/Inc/app.h)(0x670E23F8) I (../App/Inc/MyLib.h)(0x670DB683) I (../Inc/main.h)(0x660A29E6) @@ -1217,7 +1217,7 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x663B42E9) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x663B42E9) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x663B42E9) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x663B42E9) -F (..\App\Src\oled2.c)(0x670E3176)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Inc -I ../Src -I ../App/Inc -I ../App/Src -I.\RTE\_mfps -IE:\Softwares\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IE:\Softwares\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F10X_HD -D_RTE_ -DSTM32F103xE -DUSE_HAL_DRIVER -o mfps\oled2.o --omf_browse mfps\oled2.crf --depend mfps\oled2.d) +F (..\App\Src\oled2.c)(0x67217E23)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Inc -I ../Src -I ../App/Inc -I ../App/Src -I.\RTE\_mfps -IE:\Softwares\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IE:\Softwares\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F10X_HD -D_RTE_ -DSTM32F103xE -DUSE_HAL_DRIVER -o mfps\oled2.o --omf_browse mfps\oled2.crf --depend mfps\oled2.d) I (../App/Inc/oled2.h)(0x670CEDDC) I (E:\Softwares\Keil_v5\ARM\ARMCC\include\inttypes.h)(0x5E8E3CC2) I (E:\Softwares\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) @@ -1406,7 +1406,7 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x663B42E9) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x663B42E9) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x663B42E9) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x663B42E9) -F (..\App\Src\uniform.c)(0x670E3296)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Inc -I ../Src -I ../App/Inc -I ../App/Src -I.\RTE\_mfps -IE:\Softwares\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IE:\Softwares\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F10X_HD -D_RTE_ -DSTM32F103xE -DUSE_HAL_DRIVER -o mfps\uniform.o --omf_browse mfps\uniform.crf --depend mfps\uniform.d) +F (..\App\Src\uniform.c)(0x6721822B)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Inc -I ../Src -I ../App/Inc -I ../App/Src -I.\RTE\_mfps -IE:\Softwares\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IE:\Softwares\Arm\Packs\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F10X_HD -D_RTE_ -DSTM32F103xE -DUSE_HAL_DRIVER -o mfps\uniform.o --omf_browse mfps\uniform.crf --depend mfps\uniform.d) I (../App/Inc/uniform.h)(0x670E3176) I (../App/Inc/app.h)(0x670E23F8) I (../App/Inc/MyLib.h)(0x670DB683) diff --git a/MDK-ARM/mfps/oled2.crf b/MDK-ARM/mfps/oled2.crf index 784acb8e0a74cdd9116c189ee9046d477f82b393..8ae2ef371ad69c041e08263ee551bba116ae5c33 100644 GIT binary patch delta 977 zcmaKpT}TvB6vywK+41U~nR37}U1f*yJ?2?eEx9)s{>wOmQk z2Q3H5%3R&WdQdUFB!z|hR6!Jx;<&EL+M1btDnXi^vx589!2iej-+S)4bM9Gh$*pV6 z?H^IOf35yW5`pjgwUF8nQYlCR$sh+v0VRo$${goXS5(>T)nv0>m(54Iq>G6X_Fk^} zq_HLM$V`B7Pu#A~q0S4d6pGAesP~_F0l;Hlw|TxQ)1j=s@%!0*E2RFyblV z8DdPU0fsPqiFk#03#hhFLDhF?BZwKq65pz(|wID8yGbc+dT(o@CY(8zP>{UC94C;JNv5Mx{4yz@?R-Id$t@cs!TIXxl z=rr?)@flVkCo07n3ZqOEMw83mBo@z$!NHUYnvQ==Y?TaGWE2}F7Tgd8Ln%c{BDG)K z7)fEJ1(=!xsU4M$(?-12J>c$EI*K+A?gn?S(s5?f?G&SKUYwlnB;l$Y?0p{JqZ?}c z7I}O5qFnw*rKVq_W*=w(GznVJ=w)d1d3Am^WKXGv8HLr4nq+qA)a=!z`*s0&QJwFG z-7xI-z-|B(1cgBn&}1jdHq}e_Ll~%~mgV6m z6nty974vYnf-jpX_z`}b@AE^i_#%^<^uf*`zB+17!`(qx#s+6KseQshh(vb%1E4ZA Af&c&j delta 995 zcmaKp%TH556vk(6dpmF+yo7}Tnj0S|8d5f1<3g0U@fp#?rGy0-h<|_!u`LfFJXSos z!65QzA(|M`qC@HedBkXeds2z*TqGivjUNkb}>t%zhdK}y z5n&~K?h~u9B`d8qmo6|~x{y*mn+#s%fk0{v-Gw)ngi4;*WS1Kz7Np$uEVWEdrjGHJ zU@EJ0Vd_Ch?X9(6G!m^AfV)>~FWWx2A6#Fp{nEDE%O{*lc}ki_!nX>r_dz&5%!>~w zD>lzBm6`(@H6MWJsjoySFU%HF(A$wjm%os!$G|BAOsX3xcBf>={-9=8=4a4pb z?D{}{kN|~25l|G=1t+?7`bsEd%I%_F>XM9)FuG~C%VD$#-g8(vohA3djUv|4apkDz zzrzX$jr7;iBZ`rj=Q7v2Adb=2xDQO?Qu`i2!RQJgZq^=_ViLOG)x8h|IjhYD%ZyvQa^_0T8$+Ye#v OJE}?dLv}(WvgaRU>N<@8 diff --git a/MDK-ARM/mfps/oled2.o b/MDK-ARM/mfps/oled2.o index 0c1e757d561766a9a716c50973a1aeec51d5d2a0..d000d9257c0fa3650673f4cea724b6d7ae40bd10 100644 GIT binary patch delta 5133 zcmYk=4NzRyeFgCQ7WQdBz=4J~Afbkph$ST`0*gsO!LAsSR5-{Z8fFSEj@b-OAj72E zsp0_-t|6t3<&e|_O^--PqD|#kxNDV-sR5fx;L0DUvctwC7K!3$9o!fhC6EvcEXM9R z`yO(bS^c=@|9|`5eIIuhOtTB8&Ft(&(59=NqfIsQ=Dzx$nF& z#%rg&+y5`&ZeNqd!KSp4{@l;s@B5uIc1W*yLE4I!7atNlx{PYx#ym` z>Vu!U=bnOX#bx{U7Vq2piGPf?el6N+@#WzwjjwdRynNYwZQ{$vmwzF&Lzzpt=*bnNZGh4k<_9*Xl5Fn@Ev7#-TixQ^qyct9It)pfKRW7QY`Xso&>@W=Jo z=o{AqX@73TMi=seAIN_2P8I`uJ?5|Fb<2ECdOYS!uJ^fq)%BaM-*!DAZ}FIzJHF^T z@A{7GpYb^KzB^s_IX-B<><0I{{;TV0*GbnOyT0RUdz?4SbuDx)l02Z>-0>Z*ce#GS z^}du_Jm#xz@GaLLxW-2PMZw2z%09~(cOec}v~j|M-4nMZ?J)}nq_pZ^D>5hWsq1~GZP@#Gg`-zjd`j=0ix%!yf8LnIfqqS4_5 zq8cqZ?8mZ3k2qX*C`RSu47(g=914(Bc-UdmAqyq{!LS+KVkCt({bR-)!tSA9Arg$e zr#P<1FHQxwdrgrsb*WN%>NkbfDMVtNL+)-o%{^d>18;1%F*CST zBM39G+e?kfvT)lI!R?4Eh<(DCTn49t+pKf2PIIe~vKw2SL@g8h&3(rB+$Np`MXMFg z8)-WqmbKmbZN{uRds{)}e==FzePhrOn8Ixh*^e|^UhFVsH1#kYn#?&}T3ld5OnH1sbQ#^&Cr?}}(L_}Q*Z`T)ef>ZC%jwu$r6)nabcam9T zk1|uQ=qrd4yZ^8;A2xVxlqczjsfsX>NZz5>Im#SsLXk z@%SQv!!E(6gLsRfD{^&`)u`fOOp8e@t2#eu%%I+RyB3EtEHtB4w4;xB z3w~=%%&A{MQiTKXpC!Blh}~sbroiCzIX*Gn3_R%`JbsqzRy`7GJBc+hg3u(pXXb2k z(ctBuvOB_nT?3*GQ^cFKZku*zXAdEJiiIMSixz~5-Ttm^nl|B^&ue*5-i0}l0qfb| zj!pT#O{V@^7T&uU+=f~v)VI6t@liI$Lc=NyOGmAL* zqhMir)W^p>byn6fu9kKriT%*O`%Knt_}p3EK*v#Xj+HDlh-2s`_Q`pl@zvwb=Xi(- zHIS4(+a^YY4&9TkS_G5@J;*B~Wc4A5mWq<28D}JY;2-(lGGJ$fjA7Nr2`Xb-K zZJ0+~m3qvHVpuP*VgKLzO-mNO{3?&2mI0sK4v~wf$~*tbZ`L!N9TZ|&l@a8>Kl&r95Z*RYVx^`VWXwOsS#jRljNEDy4fW`+u3|pj=cTOg7cM;Ws&dYOv>7 zUgo$8moP^%&3k^6#ZUbXe&Tl`^Vwj2I+H@@ikG7H0$XF~5PTMhU1|l)>S5L|D))3A zLPC`Ztcf0ke#C}j!vWLfao!;Z5k}S^1_Yl9;_VsOa_QDxco<1Ji_}q;Pel!qo*|~tJz}7R|VaY3uYtSHgQxI?GbMBGxD+I^( z498pwQgb+k&@4O8p;}x-gm{;p*W0C@!6HmC@ua_qE3;f$3XuI1Hk7`&F<0&?%*5_x zvg*EP58{ltoX&|CVf~bwT%Nx1p82R{V$GvNtRhP6wwHJ{EqwPGp4bsAs}e)rtE3l| z#CzhEfXQ)A%Lw|EtS~u*C$y+kA*t30_%9MZ8pON$6J3VXG^)_8!aRlq7f97xes*IP zT?oywZ~@g~5D{Vz|D1>9-X5!%V&rXlEx>P5sa+N$`)BMufpRg7F!9#^DzLGP&LHm8 z=bXCrbJoj#9pD#`TPJv-YB}adaffI|RMobH8wWgwWfhJi?-Gfjl6YI*;tj0{6{63H z$HkjS5_^4-cL^`SG@sp)UodFC8Zd?KZSxSi8S$D7iAf|xGuA{4La&iUREsu5L>&gi z5lo3*EQpiH{$*-ZPQ3FU4VwM9_m@2Xg*d801>&Lyb7CIWWwMA}q6oF34ISbnqGANo zVjj!HlkstEPVz3RLS>R^CtAfI`ot{8NoM+9YU7M&Opy-0{btce&xzakT;78ei^moOj}F(uZqKr%CmgEtno-T21q!7cnNp?sbV zMF@)u92GT)i$=_eHdt?vPV5rBs1<|g5HUo>1f~U_d2tDO|3?;4Db~?SGBZkoCfA+n zt*NPM1yn;0lA;FwUz1*xh)ZY?rRWwt7!ngmh!w1fW`y1(F;t5cL_`G!1h2H1#RAF9 z_=}+7xBb+De$d%>70MUbFpsck#!+V!7x|bIoc9%S61&7AYQ+jV#5$tHlfDngA!4P2GNLa(TpL{hJ-kR zHPMOCRnmiMF@cES1sC&}5{p<6E6Dy0Sw}g^O#kHjNBK3pbX9lTC-Lxac(>&su13yW zaHan(DZ(znPdrh94pD`usKKrD#K|ID$UWiE+_`q!@&MnVdt3;8hlN z=oW1l5-UiEb*u?~+y5OYLbc#k7Wo(ug_sf*SP*r{{yk|!x#&TdcrtFs!@uVQn-N#q zi8(O>YlW;}7s<@13YvEJ_IS&=J$lfghCxI{4yHvFmc=ac{y^4IDPm|9{KHQyVq6?U z(y961=7^IOoUEuox2VF9XhcHr$_ifDYlM%o;1_x^j{(6)nRqfjgDclkS1fy#X(`G@ z1;T=V&xj+4i(bqLPIiq$rVe$aIB9B=&at5xdf{{iesk}LoK delta 6981 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 diff --git a/MDK-ARM/mfps/uniform.o b/MDK-ARM/mfps/uniform.o index 05ac8f6872eaa8e6216ffdb797f9bed0ddd7f8b6..e4e1464dd8ce99766baa8fc2315819b7973f42f9 100644 GIT binary patch delta 10477 zcmZvi33ydSvd8*}iRuCA`` z)91pb$GdG`)@?iET^ zYSr1ww~yvmzxCQZRaRE2v4Y;pw~oA2)!~b^)k&kRd=D(F{G_8VR}CE6V;c7qIFVmn zxLIWdhO%U3?mm6-k>NuNn{-yb?+9yGzL&iD%ZL4$nacevM{#g`bxmM#)NlNc_?CDd z^*mO;AZo2;mDXkjPi4=#d-}{C6Q@>AzDLEDT1xpm+}5h%`XXIle<2uWWpF?I@mhhq zr%j%%yk76r%2|`=r~&o1RZ-h9oNO(x?-Tah*1FmO(G~U=s`k#9Yp0x5e#;;4^Z7IJ zH|WpurFkAgA<^gaJcODwf4r_wO!D~>Q4098@Hg5Mg}=UJ{7Lh7!r!1j%@<-5PjtNJ zK2!w!XsPYm!>+bNO#k|EF*jQndt=*v5%$$q^E26B{#4*Q6JJY>Spqy}ic0~uL@oX{ zef%g{>PE&xx;VZ`g+fSIjbTjE#c}xC^zou(tJvj?AhZnYifTBZ-e3Nwn~_@%7;A#n*?gAKxf^1Na8F9Z3u&FZNF^ zFYeY;)n@g)rgp6zyRG*#p~0R=N? zt7xb4RBy*%e)ujY@b>{<2QvqkF-b=WOD-4q0a2AQW;}sjC%zR4)z)+^8`ZM#ah#F}MO&wLUoNK8XFeArOPqN&} zQoj{$6#XBC?@9ehVWZT4Bm6fL4#r~gA@r94W}yE<(9TU!s+bE`S!y5?p7Pmf7i=54 zCDhi63^C`V-Ak#r(UIL$d)&j)%;$Nwd~TewL0oN%Y`9pPufpM@!2(@#I)c;N%W zCBo;0d%O|T;4`WCQ5f`@`c6V8SvWiGFO~X?`3HANj*g~x?wg_eY}tuR+uBpfIlEi4mO2qOMX1{n-1boLq0X5&4EY_=i&8GWWXmOIb#k zRxo$D^?JY`uq(L!pj-bn%U;Vw_NY<;<48oMibqAlQsJ$_`-F>ytC$r^9TE9!p zTt^mzoM*ekt)2-H4CFi%@>+GM8(xuyZ!6_I&z)z3js)8OPTDoJYOh27lO*$7u0uKk zKN^Q4_93|CG-P7mZWMWs@O|Mqp%dx^32mORmY)HWlv*ff{^Lya=Y(E6bXgoapzHDc zN9c5DaKpRAA^MYhlSz;PaY5BfR3e-$bRw}@J_#AVx8&bWNc;(Ozz3(P-v<%?PRNLW#sO>&*lQ0q^hMB@%!W)FnE^ubx?1Gh| zckYgRMUIyVjTGuD8z%M_mXQl*r2c|oME$^p$q2p7(D7I&3ohL_W0ZZ&&51M_sJn2u z&}pY<>X(^*h{mE%6gpS0{#wTVzfBZQQaRgci_{+!ej>aebZ*0`k|V=~;je@fgsX%v3wH}Y6#h;4ldzpcwzIHAI0w}Ce<#^~CyMRD ze+t{mo$V^&FyURo^}>C^AB1hOCY;>)Lg#5ZUgRhF`O5~Iq~cBCap4)ElE-bLu)FYb z5Cb5&Ci3GK$u)&J+1(xb1jUm^pD)MVTyVB4zqo1#ddr$R4<9Edoa=b4EX`}eL<#L^ zVLcO$e9eR-m!#fV0?Uac6Arc)*^lw{35e%{vcJbujk({Q!RstzE4;zn?$*D_GF}Y% z^tLxBRWB20{hsi>)Z5~Cy0E7(GC>N?yBi{|?9x^Pot1&Mx%JE04ts4CbE~`&VJY>t z1$93|l+unO{@T$UQa`pyAJM;G+IXMB15VlhCyMKv42&K>TxvaDiSL#f{aX0A@FihD zCZrv>&+TV7_y2dL_AwijdY3s3@z;iDL%sHYleMpR>$PKOeSq6-RBD;b_+{Z0 zVX`El?ssUb_ShQSK4Rks7@V$p7c>f;9~8V2QfIq3H=`n{cb*YtBHt_gjZhCf#vNGa z0-iuR7hb~+%a;8=Up!td)D3TL)ezq4hMV2`$Jt?A8lGSxT)N#jSHG0&adTb4#5!m_ zl2X^>oqUBtCfa{?723nU%0OFWO`B!24mlo~IvGE4+v$2db9Md6ZFe3FtsdOb{il%T zKgl=!R!^D1aQ3#0V0f*U_C|*rtaWsMOgP6*v1m<9IL|7leKFzARu!FL%%OH|!=3FT z9y-g)V>Fq?LZ1;~_9;?(6ijKpO=TI!wMZ2&aEs6{0+4I`b2GGATQK_kl{t$-&oUCvjc|$<0cdb=#vbLn_C=E=WH`>Y@dMo&Mb|$FRe;r|E>wpgSiO%HRyZ*o8@?a9l(sv zcYt@*RFn>*XXgf}Uk*IkNDI?3Uc(0gwSu~(!s0{vfGyIG2k4n>3|DYGpz2a7rV#yH z;C`0n!0IB+?f|R8O9A>R3swU!!I7YGs`w}F?B_xxSG$aGXV0*o1GF;}9{r4-#O9no zsOA{Q5yLGRh*;ks-JXSwF)SEV(_&3mo7x94;*4U9m`XQw#E6+`LF&h0C`=2gE78WR zpi2-Va{gPp=u$_d(%9}a7v}!*?m?C5F;+D_xHD~ag;r+5v+s(6^iw)I^Y#p?V`fbI z#1N{0(ki7QxZ|lB8l-1Bz-GbFpu%ajJRgDhRZ!K@vJA}dXcqcWql0t@_Y*rhs4ljr z=X=0rTGI^YOrzP^=&JvWAnixazH#v(6-&_wpMM&PV>%eK?S&!7vw|M9suN}~tyhTBkY&DJAvG+dlfrjh zNL5;NCkD3*22oKSwxJilJ35EYVzYr0P*o}mG46UaF$r=s4~w;QD5YMF`K}!rQurq_ zK0|!lQ8tH;-+MzyEw$-RWS}*i)^x`32_x9!S5Om`i(-m1dz9s*S~7x4^5M$3U%9R< zGOkQRRe2j)o)FHV&G{I=bR3<8t*`(15YB`7sffcE6c?CHh6De`E;w(-m4#HmHs{Tx zJL$Jw(0d^+-_A)@ZF(<7)fKOvglAxRh#p67)1a;xX5AF3=!#+Xk&eMOSe!E8H;_nlVyPC4sUE>D~ggtVGobrM*Mu?kfl{>+|1-lC-neR?-^8x0%pOKkV9dLx!A2O@F<0 z{JArl8sMOR6x!&NnXZSwr&kj3G(e3w=qp8eplMr!;$=lKSE1)wbW?ZCZqqDxeHQ51 z;dFknJH|W#jTzHUsG@J#_*9iU&;!Q!A`QA4(=Wdd32CwrXWB|s*}2uU16k!OovUY) zhX{=0q9j-)%Hq~W6j#VG-+vx0D#TEy=ea}u#te0ZjuyhN-1(AZxjvNE%4)?fpb4-Q} z_6Th$f-{F7af7tfICF}up6IORF>bf4J@0pxcP)b@oi9Lu57UcWGj=&!IA^QVb_~s_tTfq_!g|fZZ*#}Cn9;F13@nfMAv7P?6YCUZ^~SO-SVJRvb0F8yY|x+Z0&ZjR z^n7oeF9}=d4b=Gxws73e_r`r^&K8R61M~EHDgmQM*1H`CsY9P|nmx9j9%EHaGga8A zme$irZoR9X?7rasdg=-y05|rq zaDD4aG^)A=s$f+kRDDI2Y*gu6X$Mqx`BwUhS-F)$CE%Q`RK%ROm2L;4Yqq*`%BE{e zFsG$kX#=b3nyGS4ug`9!A6eA^6%I!2OLwC>yp=}ugQ|3!tLkl3W!q>Cs~UH>WA!tt zb35oPs}gp)s)0t8zLQG&b1SIwWvpSw!#2Cp8FS{3Y~ldLLjrn*Jk*hO8h zg=!8|OQgdIT7|>rfoqX!V|Tm#O)-rschfuEXdP4orO^zdYTQk!1F)c1XwU#G;hfj0 z0%G*i*F&mWEaw|b?;hI0s^UF33`DiqsP^xn&~;FqgKCqgmKoKvd+Byo9ovi8;02Da z+pCT0)El&cRW)zA4nHTY-lQK{)d1Bb>F|F|*b?^Bh=EY0?{`~mFs+LB(;8NlHB)Ud zt>)~fv#greOtsCZ>h@E~AgG>&YM_j@%cxH6r^i^;2vw%2_8FD;0G(u2n**-upivbZ zpss_VDsHCwlTnR5Kyz7D234VSc*Lld9-wzvRR@)mmB-DzHXfkVAy73!<(vs8jq2P1 zs$f;wL09#;QI#L09jvNrrfM{*XAe@S6siWOoUzUsHx3`9+gWw2nd*{^b&xi&%6rJ2 x@()Ipdx(C7%I<%Nvabin9-oqR9f*ZI}is!mm% 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