From 2efb3f1e871bf981f50437be462871fafb87afc2 Mon Sep 17 00:00:00 2001 From: dekunukem Date: Sat, 30 Apr 2022 15:33:43 +0100 Subject: [PATCH] quad encoder output working, not very linear though --- .../apple_all/MDK-ARM/apple_all.uvguix.allen | 40 +- .../apple_all/MDK-ARM/apple_all/apple_all.axf | Bin 639588 -> 640148 bytes .../MDK-ARM/apple_all/apple_all.build_log.htm | 9 +- .../apple_all/MDK-ARM/apple_all/apple_all.hex | 680 +++++++++--------- .../apple_all/MDK-ARM/apple_all/apple_all.htm | 387 +++++----- .../apple_all/MDK-ARM/apple_all/apple_all.map | 666 ++++++++--------- .../MDK-ARM/apple_all/apple_all_apple_all.dep | 2 +- firmware/apple_all/MDK-ARM/apple_all/main.crf | Bin 545286 -> 545472 bytes firmware/apple_all/MDK-ARM/apple_all/main.o | Bin 607116 -> 607372 bytes firmware/apple_all/New Text Document.txt | 7 + firmware/apple_all/Src/main.c | 28 +- firmware/apple_all/apple_all.ioc | 3 +- firmware/apple_all/scrap.txt | 0 13 files changed, 930 insertions(+), 892 deletions(-) create mode 100644 firmware/apple_all/New Text Document.txt create mode 100644 firmware/apple_all/scrap.txt diff --git a/firmware/apple_all/MDK-ARM/apple_all.uvguix.allen b/firmware/apple_all/MDK-ARM/apple_all.uvguix.allen index 288a2da..8517fb8 100644 --- a/firmware/apple_all/MDK-ARM/apple_all.uvguix.allen +++ b/firmware/apple_all/MDK-ARM/apple_all.uvguix.allen @@ -110,8 +110,8 @@ 0 - 262 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000042433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C6170706C655F616C6C5C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000069030000 + 549 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000020000000100000042433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C6170706C655F616C6C5C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF6C433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C6170706C655F616C6C5C447269766572735C53544D3332463078785F48414C5F4472697665725C496E635C73746D3332663078785F68616C5F74696D2E68000000001373746D3332663078785F68616C5F74696D2E6800000000FFDC7800FFFFFFFF6F433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C6170706C655F616C6C5C447269766572735C434D5349535C4465766963655C53545C53544D3332463078785C496E636C7564655C73746D33326630373278622E68000000000D73746D33326630373278622E6800000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000069030000 @@ -490,7 +490,7 @@ 0 16 - 000000006A03000080070000E6030000 + 030000006D0300007D070000CD030000 16 @@ -1160,7 +1160,7 @@ 38007 38007 - 0 + 1 0 0 0 @@ -1799,14 +1799,14 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000052030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F000000069030000000000004F000000F0000000520300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000520300008007000056030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000006D03000080070000FD030000000000005603000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000052030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F000000069030000000000004F000000F0000000520300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000520300008007000056030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000006D03000080070000FD030000000000005603000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 2870 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000D76657273696F6E5F7061746368960000000000000013000D76657273696F6E5F7061746368056D616A6F720F50524F544F434F4C5F4144425F4B4201311B70726F746F636F6C5F7374617475735F6C6F6F6B75705F696E697403666E6F066C65645F73680A6869645F74785F6275661A555342445F435553544F4D5F4849445F53656E645265706F7274042E7478740D736176655F73657474696E6773076869645F627566146B6579626F6172645F72656C656173655F616C6C21555342445F435553544F4D4849445F4F55545245504F52545F4255465F53495A4507665F636C6F736504705F63610B636D645F5357434F4C4F520862675F636F6C6F720C4173796E636850726564697600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000D76657273696F6E5F7061746368960000000000000013000D76657273696F6E5F7061746368056D616A6F720F50524F544F434F4C5F4144425F4B4201311B70726F746F636F6C5F7374617475735F6C6F6F6B75705F696E697403666E6F066C65645F73680A6869645F74785F6275661A555342445F435553544F4D5F4849445F53656E645265706F7274042E7478740D736176655F73657474696E6773076869645F627566146B6579626F6172645F72656C656173655F616C6C21555342445F435553544F4D4849445F4F55545245504F52545F4255465F53495A4507665F636C6F736504705F63610B636D645F5357434F4C4F520862675F636F6C6F720C4173796E636850726564697600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 978 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000096170706C655F616C6C96000000000000000100096170706C655F616C6C000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000096170706C655F616C6C96000000000000000100096170706C655F616C6C000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1862,12 +1862,30 @@ 0 100 - 0 + 2 ../Src/main.c - 29 - 156 - 173 + 8 + 48 + 62 + 1 + + 0 + + + ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim.h + 10 + 282 + 289 + 1 + + 0 + + + ../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h + 77 + 530 + 563 1 0 diff --git a/firmware/apple_all/MDK-ARM/apple_all/apple_all.axf b/firmware/apple_all/MDK-ARM/apple_all/apple_all.axf index b09ec03949034fdae18f14a9970aae662f17c529..8d39f146265f249681f8dad17d38362aa7dc3b55 100644 GIT binary patch delta 15958 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 diff --git a/firmware/apple_all/MDK-ARM/apple_all/apple_all.build_log.htm b/firmware/apple_all/MDK-ARM/apple_all/apple_all.build_log.htm index fca3330..5420093 100644 --- a/firmware/apple_all/MDK-ARM/apple_all/apple_all.build_log.htm +++ b/firmware/apple_all/MDK-ARM/apple_all/apple_all.build_log.htm @@ -28,13 +28,10 @@ Project File Date: 04/29/2022 *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' Build target 'apple_all' compiling main.c... -../Src/main.c(220): warning: #111-D: statement is unreachable - speed_val = abs(speed_val); -../Src/main.c: 1 warning, 0 errors linking... -Program Size: Code=9236 RO-data=328 RW-data=40 ZI-data=2080 +Program Size: Code=9332 RO-data=328 RW-data=40 ZI-data=2096 FromELF: creating hex file... -"apple_all\apple_all.axf" - 0 Error(s), 1 Warning(s). +"apple_all\apple_all.axf" - 0 Error(s), 0 Warning(s).

Software Packages used:

@@ -57,7 +54,7 @@ Package Vendor: Keil

Collection of Component Files used:

* Component: ARM::CMSIS:CORE:5.3.0 -Build Time Elapsed: 00:00:01 +Build Time Elapsed: 00:00:02 diff --git a/firmware/apple_all/MDK-ARM/apple_all/apple_all.hex b/firmware/apple_all/MDK-ARM/apple_all/apple_all.hex index 85c50cf..95fa68f 100644 --- a/firmware/apple_all/MDK-ARM/apple_all/apple_all.hex +++ b/firmware/apple_all/MDK-ARM/apple_all/apple_all.hex @@ -1,19 +1,19 @@ :020000040800F2 -:1000000048080020D5000008B5150008F5130008C1 +:1000000058080020D5000008D11500081114000878 :1000100000000000000000000000000000000000E0 -:10002000000000000000000000000000F3180008BD -:100030000000000000000000FD150008F518000891 +:100020000000000000000000000000000F190008A0 +:100030000000000000000000191600081119000857 :10004000E7000008E7000008E7000008E7000008F4 :10005000E7000008E7000008E7000008E7000008E4 :10006000E7000008E7000008E7000008E7000008D4 :10007000E7000008E7000008E7000008E7000008C4 :10008000E7000008E7000008E7000008E7000008B4 -:10009000E7000008C9190008D9190008E70000089E -:1000A000E700000801160008E7000008E700000864 +:10009000E7000008E5190008F5190008E700000866 +:1000A000E70000081D160008E7000008E700000848 :1000B000E7000008E7000008E7000008E700000884 -:1000C0000348854600F04EF8004800470921000823 -:1000D000480800200448804704480047FEE7FEE740 -:1000E000FEE7FEE7FEE7FEE76D190008C100000825 +:1000C0000348854600F04EF80048004765210008C7 +:1000D000580800200448804704480047FEE7FEE730 +:1000E000FEE7FEE7FEE7FEE789190008C100000809 :1000F00030B50B46014600202022012409E00D46C0 :10010000D5409D4205D31D469540491B2546954047 :1001100040191546521E002DF1DC30BD03460B433D @@ -23,7 +23,7 @@ :10015000F6E710B513460A4604461946FFF7F0FFC6 :10016000204610BD064C0125064E05E0E36807CC8D :100170002B430C3C98471034B442F7D3FFF7A4FF4D -:100180003C2500085C25000870B50024014620319C +:100180009C250008BC25000870B5002401462031DC :100190004A78022A03D004218163012416E0026810 :1001A00013680E25AB431360026813685B085B009D :1001B00013600122056C1346AB40C56B6B604A703F @@ -64,7 +64,7 @@ :1003E00017F800221146901E00F012F80022114664 :1003F000501E00F00DF808BD00100240C106C90EE5 :1004000001208840014908607047000000E100E0D9 -:1004100010B501F0D1F810BDF8B504460068434DA1 +:1004100010B501F0DFF810BDF8B504460068434D93 :10042000C00352D5E8690026C00007D4E969280452 :100430000143E961E9690140012600913C480168F6 :10044000C90510D40168821511430160FFF784FFCC @@ -103,10 +103,10 @@ :1006500009028843E9680843606000F02DF861688A :10066000084A0906090F515CC84007490860002084 :10067000FFF790FE0020F8BD00200240001002406D -:100680008813000021250008180000200148006898 +:100680008813000081250008180000200148006838 :1006900070470000180000200448054900684968B8 :1006A000044A4905490F515CC840704718000020B2 -:1006B000001002403125000830B516A30FCB89B0D9 +:1006B000001002409125000830B516A30FCB89B079 :1006C0006C460FC417A30FCB0FC41A494A680C20FD :1006D000144604401848042C05D0184B082C04D0AC :1006E0000C2C00D1184609B030BD9402240F6D4681 @@ -189,7 +189,7 @@ :100BB00018D020684168890889004160A06D0B4DFC :100BC000002803D04563A06DFFF7DEFA606D0028B2 :100BD000B8D04563606DFFF7D7FAF8BDC16880688B -:100BE0000090F8BD2046FFF797FFF8BD7317000887 +:100BE0000090F8BD2046FFF797FFF8BD8F1700086B :100BF000F8B5040007D0002625464035A662687F78 :100C0000002802D005E00120F8BD2E77204600F034 :100C10004BF802236B772068016840229143016002 @@ -219,17 +219,17 @@ :100D900003D301684B68934302E001684B68134337 :100DA0004B6001684A68E0231A434A6000680168A2 :100DB000490603D4016840221143016000202077D6 -:100DC0002846F0BD11160008A516000847160008B1 -:100DD000D916000870B501220926D503F606294662 +:100DC0002846F0BD2D160008C1160008631600085D +:100DD000F516000870B501220926D503F606294646 :100DE0003046FFF7B3FA0F4C2078DE2802D00E49C8 -:100DF000012048700B4801F097FAA078032805D12C +:100DF000012048700B4801F0C7FAA078032805D1FC :100E00000121002249030948FFF7A0FA054A2023DF :100E1000D11A0748FFF774FF002229463046FFF732 :100E200095FA70BDDC010020040000200008004895 :100E300028000020042204490428086902D09043B5 :100E4000086170471043FBE700E000E070470000D6 :100E5000094910B5401E884201D9012010BD074C38 -:100E600060610321081F00F0A7FB0020A06107209C +:100E600060610321081F00F0B5FB0020A06107208E :100E70002061002010BD0000FFFFFF0000E000E047 :100E800010B5FFF7E3FF10BD7047704770B502461D :100E90002032137F012B1BD00123137702245477B8 @@ -238,7 +238,7 @@ :100EC000846849680C43846053770020107770BDB4 :100ED000022070BD70B5040005D025462035687F1E :100EE000002802D006E0012070BD002028772046AF -:100EF00000F00AF802206877211D206800F074FDD8 +:100EF00000F00AF802206877211D206800F082FDCA :100F000001206877002070BD08B5012201689207B2 :100F10001848914207D1C16901221143C161C069DA :100F20001040009008BD144A91420ED182690121FF @@ -256,13 +256,13 @@ :100FE00006DC00284ED0102840D14EE00220F8BD8B :100FF000302850D0402839D13CE060282DD07028CE :1010000017D001221203801A0ED090422ED1CB6845 -:101010004A688968206800F031FD206881680122F3 +:101010004A688968206800F03FFD206881680122E5 :1010200092031143816021E020688168C908C900EA -:10103000F8E7CB684A688968206800F01FFD2168DE +:10103000F8E7CB684A688968206800F02DFD2168D0 :101040008868B0433043886010E0CA684968206807 -:1010500000F027FD5021206806E0CA684968206832 -:1010600000F030FD6021206800F013FD6F77002054 -:101070002877F8BDCA684968206800F012FD402151 +:1010500000F035FD5021206806E0CA684968206824 +:1010600000F03EFD6021206800F021FD6F77002038 +:101070002877F8BDCA684968206800F020FD402143 :101080002068F1E700212068EEE710212068EBE7F7 :1010900020212068E8E730212068E5E7704770B537 :1010A0000446006801690025C9438907002915DB4A @@ -284,321 +284,327 @@ :1011A00000F030F820680169C943090609D4C16814 :1011B000C943090605D48021C94301612046FFF7D0 :1011C00063FE20680169C943490609D4C168C9435F -:1011D000490605D44021C9430161204600F048F882 +:1011D000490605D44021C9430161204600F056F874 :1011E00020680169C943890609D4C168C9438906D1 :1011F00005D42021C94301612046FFF746FE70BD9A -:101200007047704770B505461548164C0646403E77 -:10121000854214D12046083001F063F8002818D028 -:101220000021415E084600F0E5FE2046083001F04E -:1012300063F800F009FF606031680B48C862B5428E -:1012400006D16068002803D0084806DD01F0D5F813 -:1012500070BD002000F0CEFEEBE701F0C5F870BDD8 -:101260000C010020040000201027000034020020A0 -:10127000704770B5040005D025466035687A0028AF -:1012800002D006E0012070BD00202872204600F048 -:1012900027F8242068722068016849084900016025 -:1012A000204600F0C1FC0128EDD0606A002802D081 -:1012B000204600F01AFC206841680922D2029143BE -:1012C0004160206881682A2291438160206801681A -:1012D000012211430160204600F06CFC70BD00004B -:1012E00000B500680F4987B0884218D10E4882695E -:1012F000012189030A438261806908400590032027 -:1013000040020090022001900020029003200390F0 -:101310000120049009206946C006FEF767FF07B068 -:1013200000BD00000038014000100240FFB5064635 -:1013300004466036707A83B00D46202858D1002DBF -:101340000CD00598002809D00120A1680003814233 -:1013500007D12069002804D1E80702D0012007B096 -:10136000F0BD307A012843D0012030720020E066C1 -:1013700021207072FEF7F0FF019027464037059854 -:1013800038820598788218E0788A401E788206981C -:101390000090002280212046019B00F0F3FC0028F1 -:1013A00018D10120A1680003814202D120690028E0 -:1013B00012D02168287808856D1C788A0028E3D12E -:1013C00006980090002240212046019B00F0DAFCA4 -:1013D000002808D00320C2E728882168C005C00D76 -:1013E0000885AD1CE9E72020707200203072B6E756 -:1013F0000220B4E7FEE70000F0B5384887B0426944 -:101400000121C9040A43426142690A4005924269C6 -:1014100089100A43426142690A40059242694900C3 -:101420000A43426140694C11084005900022214660 -:101430002B48FEF78BFF2B4E012231462A48FEF740 -:1014400085FF0122170209203946C006FEF77EFFFC -:1014500009200022A100C006FEF778FF0022082123 -:101460002148FEF773FF00940024012501950294A2 -:1014700069461B480394FEF7B9FE009611260294B4 -:101480006946194801960394FEF7B0FE812080005A -:10149000009002200290019469461348FEF7A6FED0 -:1014A000092002946946C006009701960394FEF74E -:1014B0009DFEE8030090092002946946019503947B -:1014C000C006FEF793FE082000900294694601953D -:1014D00003940548FEF78AFE07B0F0BD00100240F5 -:1014E0000008004823F100000004004810B50D4832 -:1014F0000B490160002141608160016141618161AE -:101500000722016212024162C26081620722016306 -:10151000C2624163FFF76CFB002800D0FEE710BDFC -:10152000003001402800002010B50121124886B08B -:101530008907016000242F21846041600461611EDD -:101540008461C160FFF7C6FC002800D0FEE70120DF -:101550000003009069460848FFF729FD002800D0E5 -:10156000FEE7049404A904480594FFF78FFC0028C3 -:1015700000D0FEE706B010BD8C00002010B50C486E -:101580000A490160E1214902416000218160C16096 -:1015900001618161C1610C22016242614162FFF718 -:1015A00068FE002800D0FEE710BD000000380140B2 -:1015B0004C010020704700008307FF22DB0E9A4099 -:1015C0008907090E994000280BDA0007000F083838 -:1015D000830808489B001818C36993430B43C361F1 -:1015E0007047830804489B001B1818689043084301 -:1015F0001860704700ED00E000E400E07047000074 -:1016000010B50248FFF78AFA10BD0000280000203C -:1016100010B50168C968026C1180016C891C0164F5 -:1016200001464031CA88521ECA80C988002909D1A2 -:1016300001684A6840239A434A60C18F002901D15A -:1016400000F06EF810BD10B501464031CC8803683B -:10165000026C012C11D9DB681380026C921C0264AD -:10166000CA88921ECA80CA88012A0DD102685368AE -:10167000012424032343536006E01C7B531C0364B2 -:101680001470CA88521ECA80C988002909D101680D -:101690004A6860239A434A60C18F002901D100F053 -:1016A0003FF810BD10B5816B02680988D160816B6D -:1016B000891C8163C18F491EC187C18F00290AD14E -:1016C00001684A6880239A434A604621095A0029E2 -:1016D00001D100F025F810BD10B5C38F0268816BF1 -:1016E000022B07D30988D160816B891C8163C18F6C -:1016F000891E05E04B1C836309781173C18F491E55 -:10170000C187C18F00290AD101684A6880239A43A2 -:101710004A604621095A002901D100F001F810BDA4 -:1017200070B50446FEF718FE024620684168202581 -:10173000A94341606421204600F024F8002802D02B -:10174000206E28432066226E204601214030002A68 -:1017500004D041772046FFF7DFF970BD427F417723 -:10176000042A204602D0FFF735FB70BDFFF7C6FA0A -:1017700070BD10B5406A002146221152C187FFF7A3 -:10178000CBF910BDF8B50F460B4615460092032164 -:1017900004460022C90200F01BF82026002812D1BE -:1017A0003B46002280212046009500F05CF800288E -:1017B00009D103213B46002249022046009500F052 -:1017C00007F8002803D0206E304320660320F8BDC0 -:1017D000F8B51D4617460E4604463DE00321490272 -:1017E0008E4205D1002F03D1017B6846017000783D -:1017F000681C31D0002D05D0FEF7AEFD0699401AC9 -:10180000A84229D320684168E02291434160606882 -:10181000C11FFD390CD10121A068C903884202D043 -:101820004911884204D12068016840229143016037 -:101830000120A16A4003814207D121680A688243DE -:101840000A6021680A6802430A6001204034607718 -:10185000002020770320F8BD206881683140B9421C -:10186000BCD10020F8BDF8B51D4617460E4604460B -:1018700033E0681C31D0002D05D0FEF76DFD0699D0 -:10188000401AA84229D320684168E0229143416070 -:101890006068C11FFD390CD10121A068C9038842CD -:1018A00002D04911884204D1206801684022914346 -:1018B00001600120A16A4003814207D121680A68C2 -:1018C00082430A6021680A6802430A6001204034AA -:1018D0006077002020770320F8BD206881683046BB -:1018E000884304D00020B842C3D10020F8BD0120B5 -:1018F000F9E7704710B5FEF735FDFFF7C1FA10BDE7 -:1019000030B599B020200125002400900895099455 -:101910006846FEF715FF002800D0FEE707200D906F -:1019200003200E900F94012110940DA8FEF704FEE1 -:10193000002800D0FEE7119511A81395FEF76CFD65 -:10194000002800D0FEE7FEF7A1FE7D21C900FEF7CA -:10195000CFFBFFF77DFA0420FFF76CFA0022114657 -:10196000501EFEF755FD19B030BD00001248016849 -:101970000122114301604168104A11404160016831 -:101980000F4A1140016001680122920491430160F5 -:1019900041683F22120491434160C16A090909016B -:1019A000C162016B074A11400163416B490849005C -:1019B0004163002181607047001002400CB8FF08AD -:1019C000FFFFF6FE2CFEFCFF10B50248FFF767FB99 -:1019D00010BD0000CC00002010B50248FFF75FFBEF -:1019E00010BD00000C010020F0B502681D4B012461 -:1019F000A4071D4D984203D0A04201D0A84203D1B4 -:101A00007026B2434E683243184E194F98420DD09B -:101A1000A0420BD0A84209D0164CA04206D0B0423A -:101A200004D0B84202D0144CA04204D103242402B2 -:101A3000A243CC6822438024A2434C692243026023 -:101A40008A68C2620A688262984206D0B04204D0B4 -:101A5000B84202D0084A904201D1096901630121CC -:101A60004161F0BD002C01400004004000400140F5 -:101A700000440140002000400048014030B5846827 -:101A8000FF252D021B021343AC430B43234383600A -:101A900030BD826870239A430A4307210A4382605B -:101AA000704730B5036A046A64086400046284699C -:101AB000F025AC43120122430A24A3430B43826165 -:101AC000036230BD30B5036A1024A3430362846906 -:101AD000036A0F252D031203AC432243A024A34322 -:101AE000090119438261016230BD10B5818CC907BB -:101AF00007D001684A6801235B049A43836A1A434A -:101B00004A60818C890707D501684A6801231B0454 -:101B10009A43C36A1A434A60818C490707D5016812 -:101B20004A6801239B049A43036B1A434A60818CE1 -:101B3000090707D501684A680123DB039A43436B11 -:101B40001A434A60818CC90607D50268916801234F -:101B50001B039943836B19439160818C890607D5D8 -:101B600001688A6801235B039A43C36B1A438A6046 -:101B7000818C490612D503685A6801210905046C55 -:101B80008A4322435A60026C8A4207D10268516834 -:101B900003235B059943436C19435160818C09060B -:101BA00007D501684A680123DB04806C9A4302432D -:101BB0004A6010BDF8B500260446C666FEF7CCFBA9 -:101BC000054616492068884202D0154988421DD131 -:101BD0000068144F000709D501212B460022490552 -:101BE0002046009700F0CEF800280DD1206800684C -:101BF00040070BD501212B4600228905204600977E -:101C000000F0C0F8002801D00320F8BD2020603487 -:101C10006072A07226720020F8BD000000380140FA -:101C200000440040FFFFFF01F8B504462369A268A5 -:101C3000E5691A43636910202B43002125681A4384 -:101C40002B680E46474F3B4013432B6023685A686E -:101C500003252D03AA43E5682A435A60236AA26933 -:101C600025681A43AB680B273F02BB431343AB60A5 -:101C70003D4F25683D4B0203BD420AD11B6B9B07BC -:101C80009B0F20D0012B14D0022B14D0032B1BD17F -:101C90000DE0374FBD4210D11B6B03273F043B4083 -:101CA00011D09B1A05D09B1A05D093420CD102206B -:101CB0000AE0042008E0082006E02E4B9D4202D0F6 -:101CC0002D4B9D4200D100200123E769DB039F4299 -:101CD00022D100280CD002280DD0042813D00828C7 -:101CE00017D001260A0912010807400F10432EE001 -:101CF000FEF7D2FC09E06168204A48088018FEF728 -:101D0000F7F981B2EEE7FEF7D7FC616840004A08B8 -:101D1000F4E761684808F1E7002808D0022809D0F4 -:101D200004280CD0082815D001263046F8BDFEF74F -:101D3000B3FC06E06168124A480880180DE0FEF71F -:101D4000BBFC61684A088018FEF7D2F980B22168AE -:101D5000C860EAE761684808C018FEF7C9F980B2B0 -:101D6000E860E2E7F369FFEF00380140001002404D -:101D70000044004000480040004C00400024F400B3 -:101D800000127A00FFB581B017460E4604460A9D40 -:101D90001DE0681C1BD0002D05D0FEF7DDFA04996C -:101DA000401AA84213D920680168FF22A13291434A -:101DB0000160206881684908490081602020603402 -:101DC0006072A07200202072032005B0F0BD206870 -:101DD000C1693046884304D00020B842D9D00020E1 -:101DE000F3E70120F9E700000FB410B503A9044B95 -:101DF000044A029800F018F810BC08BC04B0184758 -:101E0000312000081C00002002E008C8121F08C191 -:101E1000002AFAD170477047002001E001C1121F6B -:101E2000002AFBD170470000FFB58DB00F46054674 -:101E3000002606E025280AD0109A0F9990476D1CBD -:101E4000761C28780028F5D1304611B0F0BD00246A -:101E50000121674A009400E004436D1C2B7808467A -:101E6000203B98401042F7D128782E2815D1042025 -:101E7000044368786D1C2A280AD101CF6D1C00909C -:101E80000BE000990A225143303940186D1C009034 -:101E90002878014630390929F3D92878692843D0B0 -:101EA00006DC0028D0D063280BD0642804D13BE0A6 -:101EB00073280FD075284CD0109A0F999047761C34 -:101EC00094E03878694608720020487202A80190B0 -:101ED000012003E0386801900020C0433F1D6107E6 -:101EE0000CD5002400E0641C00998C420FDA844277 -:101EF000F9DB0199095D0029F5D108E0002400E033 -:101F0000641C8442FCDB0199095D0029F8D1361973 -:101F100007E0019801990078491C0191109A0F99E6 -:101F20009047641EF5D261E00A20019001CF00289D -:101F300002DA40422D2102E0210504D52B216A4618 -:101F40001172012103E0E10701D02021F7E70C9194 -:101F500004E00A20019001CF00210C910BA90B9104 -:101F600008E00199FEF7C4F80A460B993032491E81 -:101F70000B910A700028F4D10B9803A9081A20309D -:101F80000190600701D5009801E0012000900199BF -:101F9000884203DD01460198081A00E00020002471 -:101FA000009006E002A8109A005D0F999047641C0B -:101FB000761C0C988442F5DB04E0109A30200F99CF -:101FC0009047761C0099481E00900029F5DC08E037 -:101FD0000B980B990078491C0B91109A0F99904718 -:101FE000761C0199481E01900029F1DC6D1C28E740 -:101FF0000928010010B5064A064C91784B00E052C2 -:10200000491CC8B29070082801D30020907010BD00 -:1020100004000020240200200902014308B2704796 -:1020200010B502490860FEF7ABFF10BD00000020AC -:1020300013B50A23012269460248FFF777F9009891 -:102040001CBD00004C01002000200C4A01464B0042 -:10205000D35E491C18180829F9DB411E072901D253 -:10206000082006E0002804DA4142082901DA0720A6 -:10207000C043C117490F0818C01070472402002040 -:1020800070B515460E46044600F022F8002801D02F -:10209000012070BD2178606846542178A0684554BD -:1020A0002078A178401CFEF723F82170002070BD35 -:1020B00070B50D4604468170284600F0A9F86060AE -:1020C000284600F0A5F8A060204600F00FF870BD8B -:1020D00010B5044681780078401CFEF709F8607856 -:1020E000814201D1012010BD002010BD10B5044671 -:1020F000002020706070A1786068FEF728F8A17851 -:10210000A068FEF724F810BD1CB5FEF733F9FFF701 -:10211000F7FBFFF771F9FFF7E9F9FFF72FFAFFF780 -:1021200003FA2E482C4900242F25846022C08460A5 -:10213000C4602B49046141600838FEF7CBFE0028DB -:1021400000D0FEE7254827494030846022C08460E3 -:10215000C4602549046141600838FEF7BBFE0028D1 -:1021600000D0FEE7012000940190204C002322784B -:102170001F4920A0FFF738FE18484038FFF750FFEE -:1021800010212148FFF794FF20461021083000F06D -:102190008EF81D4820214038FDF7D9FF1A4A0F4814 -:1021A0002023203AD11AA438FEF7AAFD012000030B -:1021B00042000090154914480B46383000F026F9CB -:1021C00006484030FEF7E8FE0448FEF7E5FE60787A -:1021D0000028FDD000F042F900440140CC0000206E -:1021E000FFFF00000048014010270000040000200D -:1021F000D824000825730A72657625642076256444 -:102200002E25642E25640A00FC01002000040048ED -:10221000F0B50B30C108C900144F0026144A0FE076 -:1022200003688B420BD38B4205D95C1A431845686F -:1022300030C3083B00E04368136002C004E0021DA5 -:1022400010680028ECD13046002803D138680028F7 -:1022500001D00020F0BD064A06481060064A121A56 -:10226000D208D20044C001203860D7E72400002003 -:10227000200000204C0200204804002070B50D46CC -:10228000044600F020F8002801D0012070BD20781D -:102290000C226168504308182946FDF73FFF20785B -:1022A000A178401CFDF724FF2170002070BD10B5FF -:1022B000044681700C204843FFF7AAFF6060204667 -:1022C00000F026F810BD10B5044681780078401C57 -:1022D000FDF70EFF6078814201D1012010BD002082 -:1022E00010BD41780278914201D1002070474068CA -:1022F0000C2251434018704710B5044640782178AD -:10230000884204D0A178401CFDF7F2FE617010BD38 -:1023100010B500210170417081780C225143406852 -:10232000FDF715FF10BD000070B504468078092840 -:1023300024D0082842D001283FD120212848FDF789 -:1023400006FF2748CD210170617841708025857096 -:102350000321C170234908220978017100214171CC -:1023600081710121C171002104465834635C002B46 -:1023700032D0022B29D0012B29D02BE06179207992 -:10238000FFF74AFE164A4C321080E179A079FFF738 -:1023900043FE5080207A124940429080607B9071C9 -:1023A000A07B1072E07BD071207C5072607C9072B8 -:1023B0000C484C310830FFF761FF70BD0848A27926 -:1023C00021794030FFF75CFE70BD815402E00B467E -:1023D0002B438354521CD2B2491C1029C6DB70BD5A -:1023E000BC0100200400002010B5817B491E890734 -:1023F000890F817300F01AF810BD10B5817B491C5C -:102400008907890F817300F011F810BD10B5029C87 -:10241000016082808360848100F001F810BD10B5F6 -:102420000021817300F002F810BD000070B5044671 -:10243000807B09490D5CA1882068EA0700D0012251 -:10244000FDF784FFA807A189A06801D5012200E05B -:102450000022FDF77BFF70BDD424000811A0FFF718 -:10246000C3FC134D0024295D12A0FFF7BDFC641CC2 -:10247000202CF8DB10A0FFF7B7FC134D0024082137 -:102480002846FDF75FFF6420FDF7A2FE641C642C64 -:10249000F5DBBFF34F8F0E490C48C860BFF34F8F79 -:1024A00000BFFDE7535049204552524F520A0000E9 -:1024B000DC010020256420000A7265626F6F746978 -:1024C0006E672E2E2E0A0000000400480400FA0554 -:1024D00000ED00E000010302555342345643205002 -:1024E000726F746F636F6C20426F6172640A456132 -:1024F000726C79204D6163696E746F736820262059 -:102500004170706C65204465736B746F7020427508 -:10251000730A64656B754E756B656D2032303232AF -:10252000000000000000000000010203040607088C -:102530000900000000010203040000005C250008FF -:102540000000002028000000081E00088425000864 -:102550002800002020080000181E000800000000CD -:10256000000000000000000000000000000000006B -:102570000000000000127A000000000000000000CF -:042580000000000057 +:101200007047704770B504461C481D4D0646403E69 +:1012100084421BD1FF2109200131C006FFF792F85B +:101220002846083001F08DF8002820D00021415ECA +:10123000084600F0EDFE2846083001F08DF800F079 +:1012400031FF686000F0FAFE3168C862B4420DD127 +:10125000686800280AD00121C9030A48FFF772F81C +:1012600068680028084806DD01F0F7F870BD002026 +:1012700000F0CEFEE3E701F0E7F870BD0C010020BE +:10128000040000200004004844020020704770B5AC +:10129000040005D025466035687A002802D006E0B3 +:1012A000012070BD00202872204600F027F824207D +:1012B000687220680168490849000160204600F012 +:1012C000C1FC0128EDD0606A002802D0204600F061 +:1012D0001AFC206841680922D202914341602068CB +:1012E00081682A22914381602068016801221143AC +:1012F0000160204600F06CFC70BD000000B5006885 +:101300000F4987B0884218D10E48826901218903AC +:101310000A438261806908400590032040020090E2 +:1013200002200190002002900320039001200490ED +:1013300009206946C006FEF759FF07B000BD00004E +:101340000038014000100240FFB5064604466036F2 +:10135000707A83B00D46202858D1002D0CD0059806 +:10136000002809D00120A1680003814207D120692B +:10137000002804D1E80702D0012007B0F0BD307A80 +:10138000012843D0012030720020E06621207072D5 +:10139000FEF7E2FF0190274640370598388205980E +:1013A000788218E0788A401E7882069800900022A1 +:1013B00080212046019B00F0F3FC002818D1012079 +:1013C000A1680003814202D12069002812D021685F +:1013D000287808856D1C788A0028E3D1069800904B +:1013E000002240212046019B00F0DAFC002808D0B2 +:1013F0000320C2E728882168C005C00D0885AD1C00 +:10140000E9E72020707200203072B6E70220B4E7CE +:10141000FEE70000F0B5384887B042690121C904F1 +:101420000A43426142690A400592426989100A43AF +:10143000426142690A400592426949000A43426199 +:1014400040694C1108400590002221462B48FEF7C8 +:101450007DFF2B4E012231462A48FEF777FF0122FD +:10146000170209203946C006FEF770FF0920002246 +:10147000A100C006FEF76AFF002208212148FEF7FE +:1014800065FF0094002401250195029469461B48DC +:101490000394FEF7ABFE00961126029469461948A4 +:1014A00001960394FEF7A2FE8120800000900220A6 +:1014B0000290019469461348FEF798FE09200294B1 +:1014C0006946C006009701960394FEF78FFEE80375 +:1014D000009009200294694601950394C006FEF726 +:1014E00085FE082000900294694601950394054802 +:1014F000FEF77CFE07B0F0BD001002400008004877 +:1015000023F100000004004810B50D480B490160AC +:1015100000214160816001614161816107220162B6 +:1015200012024162C260816207220163C2624163AA +:10153000FFF75EFB002800D0FEE710BD0030014041 +:101540002800002010B50121124886B089070160EB +:1015500000242F21846041600461611E8461C160A8 +:10156000FFF7B8FC002800D0FEE701200003009040 +:1015700069460848FFF71BFD002800D0FEE70494E9 +:1015800004A904480594FFF781FC002800D0FEE779 +:1015900006B010BD8C00002010B50C480A4901604F +:1015A000E1214902416000218160C16001618161E6 +:1015B000C1610C22016242614162FFF768FE0028AE +:1015C00000D0FEE710BD0000003801404C010020B3 +:1015D000704700008307FF22DB0E9A408907090E3F +:1015E000994000280BDA0007000F083883080848E4 +:1015F0009B001818C36993430B43C361704783086A +:1016000004489B001B1818689043084318607047F3 +:1016100000ED00E000E400E07047000010B5024873 +:10162000FFF77CFA10BD00002800002010B501680B +:10163000C968026C1180016C891C0164014640314B +:10164000CA88521ECA80C988002909D101684A681F +:1016500040239A434A60C18F002901D100F06EF8FF +:1016600010BD10B501464031CC880368026C012CD6 +:1016700011D9DB681380026C921C0264CA88921E26 +:10168000CA80CA88012A0DD1026853680124240344 +:101690002343536006E01C7B531C03641470CA8808 +:1016A000521ECA80C988002909D101684A6860238E +:1016B0009A434A60C18F002901D100F03FF810BD64 +:1016C00010B5816B02680988D160816B891C8163C8 +:1016D000C18F491EC187C18F00290AD101684A689C +:1016E00080239A434A604621095A002901D100F01B +:1016F00025F810BD10B5C38F0268816B022B07D38C +:101700000988D160816B891C8163C18F891E05E0C6 +:101710004B1C836309781173C18F491EC187C18F28 +:1017200000290AD101684A6880239A434A60462109 +:10173000095A002901D100F001F810BD70B5044626 +:10174000FEF70AFE0246206841682025A943416051 +:101750006421204600F024F8002802D0206E28439F +:101760002066226E204601214030002A04D04177B5 +:101770002046FFF7D1F970BD427F4177042A204609 +:1017800002D0FFF727FB70BDFFF7B8FA70BD10B5A8 +:10179000406A002146221152C187FFF7BDF910BDF2 +:1017A000F8B50F460B461546009203210446002269 +:1017B000C90200F01BF82026002812D13B46002267 +:1017C00080212046009500F05CF8002809D1032113 +:1017D0003B46002249022046009500F007F8002809 +:1017E00003D0206E304320660320F8BDF8B51D46B7 +:1017F00017460E4604463DE0032149028E4205D1BC +:10180000002F03D1017B684601700078681C31D03D +:10181000002D05D0FEF7A0FD0699401AA84229D355 +:1018200020684168E022914341606068C11FFD3932 +:101830000CD10121A068C903884202D04911884215 +:1018400004D1206801684022914301600120A16A0F +:101850004003814207D121680A6882430A602168F7 +:101860000A6802430A600120403460770020207734 +:101870000320F8BD206881683140B942BCD1002006 +:10188000F8BDF8B51D4617460E46044633E0681C01 +:1018900031D0002D05D0FEF75FFD0699401AA84211 +:1018A00029D320684168E022914341606068C11FEC +:1018B000FD390CD10121A068C903884202D0491129 +:1018C000884204D1206801684022914301600120D0 +:1018D000A16A4003814207D121680A6882430A60F5 +:1018E00021680A6802430A600120403460770020C2 +:1018F00020770320F8BD206881683046884304D0F3 +:101900000020B842C3D10020F8BD0120F9E770479C +:1019100010B5FEF727FDFFF7B3FA10BD30B599B04B +:101920002020012500240090089509946846FEF7C0 +:1019300007FF002800D0FEE707200D9003200E903F +:101940000F94012110940DA8FEF7F6FD002800D099 +:10195000FEE7119511A81395FEF75EFD002800D053 +:10196000FEE7FEF793FE7D21C900FEF7C1FBFFF7FE +:101970006FFA0420FFF75EFA00221146501EFEF7B0 +:1019800047FD19B030BD0000124801680122114323 +:1019900001604168104A1140416001680F4A1140DE +:1019A00001600168012292049143016041683F2275 +:1019B000120491434160C16A09090901C162016BC6 +:1019C000074A11400163416B490849004163002106 +:1019D00081607047001002400CB8FF08FFFFF6FE60 +:1019E0002CFEFCFF10B50248FFF759FB10BD0000AC +:1019F000CC00002010B50248FFF751FB10BD0000DD +:101A00000C010020F0B502681D4B0124A4071D4DF8 +:101A1000984203D0A04201D0A84203D17026B2431D +:101A20004E683243184E194F98420DD0A0420BD049 +:101A3000A84209D0164CA04206D0B04204D0B84209 +:101A400002D0144CA04204D103242402A243CC6847 +:101A500022438024A2434C69224302608A68C26206 +:101A60000A688262984206D0B04204D0B84202D0DE +:101A7000084A904201D10969016301214161F0BD29 +:101A8000002C01400004004000400140004401409F +:101A9000002000400048014030B58468FF252D0239 +:101AA0001B021343AC430B432343836030BD826866 +:101AB00070239A430A4307210A438260704730B576 +:101AC000036A046A6408640004628469F025AC4314 +:101AD000120122430A24A3430B438261036230BDF7 +:101AE00030B5036A1024A34303628469036A0F2597 +:101AF0002D031203AC432243A024A343090119433D +:101B00008261016230BD10B5818CC90707D00168C0 +:101B10004A6801235B049A43836A1A434A60818CB2 +:101B2000890707D501684A6801231B049A43C36AE1 +:101B30001A434A60818C490707D501684A68012326 +:101B40009B049A43036B1A434A60818C090707D5AB +:101B500001684A680123DB039A43436B1A434A60D6 +:101B6000818CC90607D50268916801231B0399433C +:101B7000836B19439160818C890607D501688A6857 +:101B800001235B039A43C36B1A438A60818C490625 +:101B900012D503685A6801210905046C8A4322435F +:101BA0005A60026C8A4207D10268516803235B05C0 +:101BB0009943436C19435160818C090607D501682C +:101BC0004A680123DB04806C9A4302434A6010BDDB +:101BD000F8B500260446C666FEF7BEFB0546164964 +:101BE0002068884202D0154988421DD10068144FF0 +:101BF000000709D501212B46002249052046009700 +:101C000000F0CEF800280DD12068006840070BD501 +:101C100001212B46002289052046009700F0C0F8DC +:101C2000002801D00320F8BD202060346072A0722B +:101C300026720020F8BD000000380140004400403A +:101C4000FFFFFF01F8B504462369A268E5691A435E +:101C5000636910202B43002125681A432B680E4628 +:101C6000474F3B4013432B6023685A6803252D03DD +:101C7000AA43E5682A435A60236AA26925681A4381 +:101C8000AB680B273F02BB431343AB603D4F256856 +:101C90003D4B0203BD420AD11B6B9B079B0F20D01B +:101CA000012B14D0022B14D0032B1BD10DE0374F86 +:101CB000BD4210D11B6B03273F043B4011D09B1A40 +:101CC00005D09B1A05D093420CD102200AE00420D3 +:101CD00008E0082006E02E4B9D4202D02D4B9D428D +:101CE00000D100200123E769DB039F4222D10028B5 +:101CF0000CD002280DD0042813D0082817D00126B4 +:101D00000A0912010807400F10432EE0FEF7C4FC39 +:101D100009E06168204A48088018FEF7E9F981B2B5 +:101D2000EEE7FEF7C9FC616840004A08F4E7616825 +:101D30004808F1E7002808D0022809D004280CD070 +:101D4000082815D001263046F8BDFEF7A5FC06E0B0 +:101D50006168124A480880180DE0FEF7ADFC616822 +:101D60004A088018FEF7C4F980B22168C860EAE723 +:101D700061684808C018FEF7BBF980B2E860E2E786 +:101D8000F369FFEF003801400010024000440040BA +:101D900000480040004C00400024F40000127A008B +:101DA000FFB581B017460E4604460A9D1DE0681C2B +:101DB0001BD0002D05D0FEF7CFFA0499401AA84297 +:101DC00013D920680168FF22A13291430160206885 +:101DD0008168490849008160202060346072A072E7 +:101DE00000202072032005B0F0BD2068C169304694 +:101DF000884304D00020B842D9D00020F3E7012066 +:101E0000F9E700000FB410B503A9044B044A029887 +:101E100000F018F810BC08BC04B018478D2000086A +:101E20001C00002002E008C8121F08C1002AFAD1D5 +:101E300070477047002001E001C1121F002AFBD14A +:101E400070470000FFB58DB00F460546002606E03E +:101E500025280AD0109A0F9990476D1C761C287877 +:101E60000028F5D1304611B0F0BD00240121674AA9 +:101E7000009400E004436D1C2B780846203B9840FA +:101E80001042F7D128782E2815D104200443687811 +:101E90006D1C2A280AD101CF6D1C00900BE000991F +:101EA0000A225143303940186D1C009028780146B1 +:101EB00030390929F3D92878692843D006DC00286D +:101EC000D0D063280BD0642804D13BE073280FD016 +:101ED00075284CD0109A0F999047761C94E038786A +:101EE000694608720020487202A80190012003E0B0 +:101EF000386801900020C0433F1D61070CD50024C5 +:101F000000E0641C00998C420FDA8442F9DB0199ED +:101F1000095D0029F5D108E0002400E0641C84423A +:101F2000FCDB0199095D0029F8D1361907E0019819 +:101F300001990078491C0191109A0F999047641EED +:101F4000F5D261E00A20019001CF002802DA404278 +:101F50002D2102E0210504D52B216A4611720121B1 +:101F600003E0E10701D02021F7E70C9104E00A200B +:101F7000019001CF00210C910BA90B9108E0019970 +:101F8000FEF7B6F80A460B993032491E0B910A70DB +:101F90000028F4D10B9803A9081A2030019060079B +:101FA00001D5009801E0012000900199884203DDED +:101FB00001460198081A00E000200024009006E085 +:101FC00002A8109A005D0F999047641C761C0C982B +:101FD0008442F5DB04E0109A30200F999047761C7C +:101FE0000099481E00900029F5DC08E00B980B9939 +:101FF0000078491C0B91109A0F999047761C019913 +:10200000481E01900029F1DC6D1C28E70928010019 +:1020100010B5064A064C91788B00E050491CC8B2B6 +:102020009070082801D30020907010BD040000209B +:10203000240200200902014308B27047002801DB96 +:10204000024600E04242FF20F530002A0EDD402A21 +:102050000CDA07494A4307495118074A814201DA15 +:10206000014602E0914200DD114688B2704700004F +:10207000CDFEFFFF07320000D430000010B502494A +:102080000860FEF77DFF10BD0000002013B50A2395 +:10209000012269460248FFF757F900981CBD00006D +:1020A0004C01002000200C4A01468B00D358491CEB +:1020B00018180829F9DB411E072901D2082006E07B +:1020C000002804DA4142082901DA0720C043C11779 +:1020D000490F0818C01070472402002070B515463B +:1020E0000E46044600F022F8002801D0012070BD01 +:1020F0002178606846542178A06845542078A178FA +:10210000401CFDF7F5FF2170002070BD70B50D4635 +:1021100004468170284600F0ABF86060284600F065 +:10212000A7F8A060204600F00FF870BD10B5044677 +:1021300081780078401CFDF7DBFF6078814201D197 +:10214000012010BD002010BD10B5044600202070F5 +:102150006070A1786068FDF7FAFFA178A068FDF7CC +:10216000F6FF10BD1CB5FEF705F9FFF7D7FBFFF72B +:1021700051F9FFF7C9F9FFF70FFAFFF7E3F92F4815 +:102180002D4900242F25846022C084602C49C4601E +:102190004160802101610838FEF79CFE002800D0D4 +:1021A000FEE7264827494030846022C08460C4602E +:1021B0002549046141600838FEF78CFE002800D0F4 +:1021C000FEE7012000940190204C00232278204952 +:1021D00020A0FFF717FE19484038FFF74FFF1021E6 +:1021E0002148FFF793FF20461021083000F08FF8B8 +:1021F0001D4820214038FDF7AAFF1B4A0F48202325 +:10220000203AD11AA438FEF77BFD012000034200DA +:102210000090164914480B46483000F027F907484B +:102220004030FEF7B9FE0548FEF7B6FE607800289C +:10223000FDD000F043F9000000440140CC00002034 +:10224000FFFF0000004801401027000004000020AC +:102250003825000825730A72657625642076256482 +:102260002E25642E25640A00FC010020000400488D +:10227000F0B50B30C108C900144F0026144A0FE016 +:1022800003688B420BD38B4205D95C1A431845680F +:1022900030C3083B00E04368136002C004E0021D45 +:1022A00010680028ECD13046002803D13868002897 +:1022B00001D00020F0BD064A06481060064A121AF6 +:1022C000D208D20044C001203860D7E724000020A3 +:1022D000200000205C0200205804002070B50D464C +:1022E000044600F020F8002801D0012070BD2078BD +:1022F0000C226168504308182946FDF70FFF20782B +:10230000A178401CFDF7F4FE2170002070BD10B5CF +:10231000044681700C204843FFF7AAFF6060204606 +:1023200000F026F810BD10B5044681780078401CF6 +:10233000FDF7DEFE6078814201D1012010BD002052 +:1023400010BD41780278914201D100207047406869 +:102350000C2251434018704710B50446407821784C +:10236000884204D0A178401CFDF7C2FE617010BD08 +:1023700010B500210170417081780C2251434068F2 +:10238000FDF7E5FE10BD000070B504468078092811 +:1023900024D0082842D001283FD120212848FDF729 +:1023A000D6FE2748CD210170617841708025857067 +:1023B0000321C1702349082209780171002141716C +:1023C00081710121C171002104465834635C002BE6 +:1023D00032D0022B29D0012B29D02BE06179207932 +:1023E000FFF728FE164A4C321080E179A079FFF7FA +:1023F00021FE5080207A124940429080607B90718B +:10240000A07B1072E07BD071207C5072607C907257 +:102410000C484C310830FFF761FF70BD0848A279C5 +:1024200021794030FFF75AFE70BD815402E00B461F +:102430002B438354521CD2B2491C1029C6DB70BDF9 +:10244000BC0100200400002010B5817B491E8907D3 +:10245000890F817300F01AF810BD10B5817B491CFB +:102460008907890F817300F011F810BD10B5029C27 +:10247000016082808360848100F001F810BD10B596 +:102480000021817300F002F810BD000070B5044611 +:10249000807B09490D5CA1882068EA0700D00122F1 +:1024A000FDF754FFA807A189A06801D5012200E02B +:1024B0000022FDF74BFF70BD3425000811A0FFF787 +:1024C000A1FC134D0024295D12A0FFF79BFC641CA6 +:1024D000202CF8DB10A0FFF795FC134D00240821F9 +:1024E0002846FDF72FFF6420FDF772FE641C642C64 +:1024F000F5DBBFF34F8F0E490C48C860BFF34F8F19 +:1025000000BFFDE7535049204552524F520A000088 +:10251000DC010020256420000A7265626F6F746917 +:102520006E672E2E2E0A0000000400480400FA05F3 +:1025300000ED00E0000103025553423456432050A1 +:10254000726F746F636F6C20426F6172640A4561D1 +:10255000726C79204D6163696E746F7368202620F8 +:102560004170706C65204465736B746F70204275A8 +:10257000730A64656B754E756B656D20323032324F +:10258000000000000000000000010203040607082C +:10259000090000000001020304000000BC2500083F +:1025A0000000002028000000241E0008E425000888 +:1025B0002800002030080000341E00080000000041 +:1025C000000000000000000000000000000000000B +:1025D0000000000000127A0000000000000000006F +:0425E00000000000F7 :04000005080000C12E :00000001FF diff --git a/firmware/apple_all/MDK-ARM/apple_all/apple_all.htm b/firmware/apple_all/MDK-ARM/apple_all/apple_all.htm index 864d90b..559ac91 100644 --- a/firmware/apple_all/MDK-ARM/apple_all/apple_all.htm +++ b/firmware/apple_all/MDK-ARM/apple_all/apple_all.htm @@ -3,7 +3,7 @@ Static Call Graph - [apple_all\apple_all.axf]

Static Call Graph for image apple_all\apple_all.axf


-

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Fri Apr 29 23:40:22 2022 +

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Sat Apr 30 15:29:44 2022

Maximum Stack Usage = 212 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

@@ -73,7 +73,7 @@ Global Symbols

__main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
[Address Reference Count : 1]

  • startup_stm32f072xb.o(.text)
-

_main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) +

_main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))

_main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))

[Calls]

  • >>   __scatterload @@ -83,15 +83,15 @@ Global Symbols

    [Called By]
    • >>   __scatterload
    -

    _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) +

    _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) -

    _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) +

    _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) -

    _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) +

    _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) -

    __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D)) +

    __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D)) -

    __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F)) +

    __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f072xb.o(.text))
    [Address Reference Count : 1]

    • startup_stm32f072xb.o(RESET) @@ -187,53 +187,53 @@ Global Symbols

      WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f072xb.o(.text))
      [Address Reference Count : 1]

      • startup_stm32f072xb.o(RESET)
      -

      __aeabi_uidiv (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED) +

      __aeabi_uidiv (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)

      __aeabi_uidivmod (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text))

      [Stack]

      • Max Depth = 12
      • Call Chain = __aeabi_uidivmod
      -
      [Called By]
      • >>   SystemClock_Config -
      • >>   mouse_buf_pop -
      • >>   mouse_buf_is_full -
      • >>   mouse_buf_add -
      • >>   kb_buf_is_full -
      • >>   kb_buf_add +
        [Called By]
        • >>   SystemClock_Config +
        • >>   mouse_buf_pop +
        • >>   mouse_buf_is_full +
        • >>   mouse_buf_add +
        • >>   kb_buf_is_full +
        • >>   kb_buf_add
        • >>   HAL_InitTick
        • >>   HAL_RCC_GetSysClockFreq -
        • >>   UART_SetConfig -
        • >>   _printf_core +
        • >>   UART_SetConfig +
        • >>   _printf_core
        -

        __aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text)) -

        [Called By]

        • >>   mouse_buf_add +

          __aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text)) +

          [Called By]

          • >>   mouse_buf_add
          -

          __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) +

          __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) -

          __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) +

          __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)

          __aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text))

          [Called By]

          • >>   _memset$wrapper
          • >>   __aeabi_memclr
          -

          __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) +

          __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) -

          __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) +

          __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

          __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))

          [Calls]

          • >>   __aeabi_memset
          -
          [Called By]
          • >>   mouse_buf_reset -
          • >>   kb_buf_reset +
            [Called By]
            • >>   mouse_buf_reset +
            • >>   kb_buf_reset
            -

            __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text)) +

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

            [Called By]

            • >>   parse_spi_buf
            • >>   main
            -

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

            __aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

            _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)

            [Calls]

            • >>   __aeabi_memset @@ -245,7 +245,7 @@ Global Symbols
              [Called By]
              • >>   _main_scatterload
              -

              __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) +

              __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)

              HAL_DMA_Abort_IT (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_Abort_IT))

              [Stack]

              • Max Depth = 16
              • Call Chain = HAL_DMA_Abort_IT @@ -258,41 +258,42 @@ Global Symbols

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

                HAL_GPIO_Init (Thumb, 314 bytes, Stack size 24 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init))

                [Stack]

                • Max Depth = 24
                • Call Chain = HAL_GPIO_Init
                -
                [Called By]
                • >>   HAL_UART_MspInit +
                  [Called By]
                  • >>   HAL_UART_MspInit
                  • >>   HAL_SPI_MspInit -
                  • >>   MX_GPIO_Init +
                  • >>   MX_GPIO_Init
                  -

                  HAL_GPIO_TogglePin (Thumb, 8 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin)) -

                  [Called By]

                  • >>   spi_error_dump_reboot +

                    HAL_GPIO_TogglePin (Thumb, 8 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin)) +

                    [Called By]

                    • >>   spi_error_dump_reboot +
                    • >>   HAL_TIM_PeriodElapsedCallback

                    HAL_GPIO_WritePin (Thumb, 12 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin))

                    [Called By]

                    • >>   HAL_SPI_TxRxCpltCallback -
                    • >>   MX_GPIO_Init -
                    • >>   quad_write +
                    • >>   MX_GPIO_Init +
                    • >>   quad_write

                    HAL_GetTick (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_GetTick)) -

                    [Called By]

                    • >>   SPI_WaitFlagStateUntilTimeout -
                    • >>   SPI_WaitFifoStateUntilTimeout -
                    • >>   SPI_CloseRxTx_ISR -
                    • >>   HAL_UART_Transmit +

                      [Called By]
                      • >>   SPI_WaitFlagStateUntilTimeout +
                      • >>   SPI_WaitFifoStateUntilTimeout +
                      • >>   SPI_CloseRxTx_ISR +
                      • >>   HAL_UART_Transmit
                      • >>   HAL_RCC_OscConfig
                      • >>   HAL_RCC_ClockConfig
                      • >>   HAL_RCCEx_PeriphCLKConfig
                      • >>   HAL_Delay -
                      • >>   UART_WaitOnFlagUntilTimeout -
                      • >>   UART_CheckIdleState +
                      • >>   UART_WaitOnFlagUntilTimeout +
                      • >>   UART_CheckIdleState
                      -

                      HAL_IncTick (Thumb, 10 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_IncTick)) +

                      HAL_IncTick (Thumb, 10 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_IncTick))

                      [Called By]

                      • >>   SysTick_Handler
                      @@ -338,7 +339,7 @@ Global Symbols
                      [Called By]
                      • >>   HAL_TIM_Base_MspInit
                      • >>   HAL_SPI_MspInit
                      • >>   HAL_MspInit -
                      • >>   SystemClock_Config +
                      • >>   SystemClock_Config
                      • >>   HAL_InitTick
                      @@ -347,7 +348,7 @@ Global Symbols

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

                      HAL_RCC_ClockConfig (Thumb, 320 bytes, Stack size 24 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_ClockConfig)) @@ -357,16 +358,16 @@ Global Symbols

                    • >>   HAL_InitTick
                    • >>   HAL_RCC_GetSysClockFreq
                    -
                    [Called By]
                    • >>   SystemClock_Config +
                      [Called By]
                      • >>   SystemClock_Config

                      HAL_RCC_GetHCLKFreq (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq)) -

                      [Called By]

                      • >>   SystemClock_Config +

                        [Called By]
                        • >>   SystemClock_Config
                        • >>   HAL_InitTick
                        -

                        HAL_RCC_GetPCLK1Freq (Thumb, 20 bytes, Stack size 0 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)) -

                        [Called By]

                        • >>   UART_SetConfig +

                          HAL_RCC_GetPCLK1Freq (Thumb, 20 bytes, Stack size 0 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)) +

                          [Called By]

                          • >>   UART_SetConfig

                          HAL_RCC_GetSysClockFreq (Thumb, 90 bytes, Stack size 48 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)) @@ -375,7 +376,7 @@ Global Symbols
                          [Calls]

                          • >>   __aeabi_uidivmod

                          [Called By]
                          • >>   HAL_RCC_ClockConfig -
                          • >>   UART_SetConfig +
                          • >>   UART_SetConfig

                          HAL_RCC_OscConfig (Thumb, 966 bytes, Stack size 32 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_OscConfig)) @@ -383,12 +384,12 @@ Global Symbols


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

                          HAL_SPI_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_ErrorCallback))

                          [Called By]

                          • >>   SPI_DMAAbortOnError -
                          • >>   SPI_CloseRxTx_ISR +
                          • >>   SPI_CloseRxTx_ISR
                          • >>   HAL_SPI_IRQHandler
                          @@ -406,7 +407,7 @@ Global Symbols

                        [Calls]
                        • >>   HAL_SPI_MspInit
                        -
                        [Called By]
                        • >>   MX_SPI1_Init +
                          [Called By]
                          • >>   MX_SPI1_Init

                          HAL_SPI_MspInit (Thumb, 76 bytes, Stack size 32 bytes, stm32f0xx_hal_msp.o(i.HAL_SPI_MspInit)) @@ -419,8 +420,8 @@ Global Symbols
                          [Called By]

                          • >>   HAL_SPI_Init
                          -

                          HAL_SPI_RxCpltCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback)) -

                          [Called By]

                          • >>   SPI_CloseRxTx_ISR +

                            HAL_SPI_RxCpltCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback)) +

                            [Called By]

                            • >>   SPI_CloseRxTx_ISR

                            HAL_SPI_TransmitReceive_IT (Thumb, 196 bytes, Stack size 20 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)) @@ -437,11 +438,11 @@ Global Symbols

                          • >>   parse_spi_buf
                          • >>   HAL_GPIO_WritePin
                          -
                          [Called By]
                          • >>   SPI_CloseRxTx_ISR +
                            [Called By]
                            • >>   SPI_CloseRxTx_ISR
                            -

                            HAL_SYSTICK_CLKSourceConfig (Thumb, 20 bytes, Stack size 0 bytes, stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)) -

                            [Called By]

                            • >>   SystemClock_Config +

                              HAL_SYSTICK_CLKSourceConfig (Thumb, 20 bytes, Stack size 0 bytes, stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)) +

                              [Called By]

                              • >>   SystemClock_Config

                              HAL_SYSTICK_Callback (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)) @@ -453,7 +454,7 @@ Global Symbols


                            [Calls]
                            • >>   NVIC_SetPriority
                            -
                            [Called By]
                            • >>   SystemClock_Config +
                              [Called By]
                              • >>   SystemClock_Config
                              • >>   HAL_InitTick
                              @@ -473,10 +474,10 @@ Global Symbols

                              [Called By]
                              • >>   HAL_TIM_IRQHandler
                              -

                              HAL_TIMEx_MasterConfigSynchronization (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)) +

                              HAL_TIMEx_MasterConfigSynchronization (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization))

                              [Stack]

                              • Max Depth = 16
                              • Call Chain = HAL_TIMEx_MasterConfigSynchronization
                              -
                              [Called By]
                              • >>   MX_TIM2_Init +
                                [Called By]
                                • >>   MX_TIM2_Init

                                HAL_TIM_Base_Init (Thumb, 52 bytes, Stack size 16 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)) @@ -486,7 +487,7 @@ Global Symbols

                              • >>   TIM_Base_SetConfig

                              [Called By]
                              • >>   main -
                              • >>   MX_TIM2_Init +
                              • >>   MX_TIM2_Init

                              HAL_TIM_Base_MspInit (Thumb, 106 bytes, Stack size 8 bytes, stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)) @@ -498,11 +499,11 @@ Global Symbols
                              [Called By]

                              • >>   HAL_TIM_Base_Init
                              -

                              HAL_TIM_Base_Start (Thumb, 24 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)) -

                              [Called By]

                              • >>   delay_us_init +

                                HAL_TIM_Base_Start (Thumb, 24 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)) +

                                [Called By]

                                • >>   delay_us_init
                                -

                                HAL_TIM_Base_Start_IT (Thumb, 22 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start_IT)) +

                                HAL_TIM_Base_Start_IT (Thumb, 22 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start_IT))

                                [Called By]

                                • >>   main
                                @@ -514,7 +515,7 @@ Global Symbols
                              • >>   TIM_TI1_ConfigInputStage
                              • >>   TIM_ITRx_SetConfig
                              -
                              [Called By]
                              • >>   MX_TIM2_Init +
                                [Called By]
                                • >>   MX_TIM2_Init

                                HAL_TIM_IC_CaptureCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback)) @@ -544,15 +545,17 @@ Global Symbols

                                [Called By]

                                • >>   HAL_TIM_IRQHandler
                                -

                                HAL_TIM_PeriodElapsedCallback (Thumb, 92 bytes, Stack size 16 bytes, main.o(i.HAL_TIM_PeriodElapsedCallback)) +

                                HAL_TIM_PeriodElapsedCallback (Thumb, 120 bytes, Stack size 16 bytes, main.o(i.HAL_TIM_PeriodElapsedCallback))

                                [Stack]

                                • Max Depth = 40
                                • Call Chain = HAL_TIM_PeriodElapsedCallback ⇒ quad_increment ⇒ quad_write
                                -
                                [Calls]
                                • >>   get_buf_avg -
                                • >>   avg_buf_add -
                                • >>   mouse_buf_pop -
                                • >>   mouse_buf_peek -
                                • >>   quad_increment -
                                • >>   quad_decrement +
                                  [Calls]
                                  • >>   HAL_GPIO_TogglePin +
                                  • >>   get_buf_avg +
                                  • >>   calc_arr +
                                  • >>   avg_buf_add +
                                  • >>   mouse_buf_pop +
                                  • >>   mouse_buf_peek +
                                  • >>   quad_increment +
                                  • >>   quad_decrement

                                  [Called By]
                                  • >>   HAL_TIM_IRQHandler
                                  @@ -561,30 +564,30 @@ Global Symbols

                                  [Called By]
                                  • >>   HAL_TIM_IRQHandler
                                  -

                                  HAL_UART_Init (Thumb, 108 bytes, Stack size 16 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Init)) +

                                  HAL_UART_Init (Thumb, 108 bytes, Stack size 16 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Init))

                                  [Stack]

                                  • Max Depth = 100
                                  • Call Chain = HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
                                  -
                                  [Calls]
                                  • >>   HAL_UART_MspInit -
                                  • >>   UART_SetConfig -
                                  • >>   UART_CheckIdleState -
                                  • >>   UART_AdvFeatureConfig +
                                    [Calls]
                                    • >>   HAL_UART_MspInit +
                                    • >>   UART_SetConfig +
                                    • >>   UART_CheckIdleState +
                                    • >>   UART_AdvFeatureConfig
                                    -
                                    [Called By]
                                    • >>   MX_USART1_UART_Init +
                                      [Called By]
                                      • >>   MX_USART1_UART_Init
                                      -

                                      HAL_UART_MspInit (Thumb, 66 bytes, Stack size 32 bytes, stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)) +

                                      HAL_UART_MspInit (Thumb, 66 bytes, Stack size 32 bytes, stm32f0xx_hal_msp.o(i.HAL_UART_MspInit))

                                      [Stack]

                                      • Max Depth = 56
                                      • Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init

                                      [Calls]
                                      • >>   HAL_GPIO_Init
                                      -
                                      [Called By]
                                      • >>   HAL_UART_Init +
                                        [Called By]
                                        • >>   HAL_UART_Init
                                        -

                                        HAL_UART_Transmit (Thumb, 200 bytes, Stack size 48 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)) +

                                        HAL_UART_Transmit (Thumb, 200 bytes, Stack size 48 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Transmit))

                                        [Stack]

                                        • Max Depth = 88
                                        • Call Chain = HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout

                                        [Calls]
                                        • >>   HAL_GetTick -
                                        • >>   UART_WaitOnFlagUntilTimeout +
                                        • >>   UART_WaitOnFlagUntilTimeout

                                        [Called By]
                                        • >>   fputc
                                        @@ -616,15 +619,15 @@ Global Symbols

                                        [Stack]
                                        • Max Depth = 16
                                        • Call Chain = SysTick_Handler ⇒ HAL_SYSTICK_IRQHandler

                                        [Calls]
                                        • >>   HAL_SYSTICK_IRQHandler -
                                        • >>   HAL_IncTick +
                                        • >>   HAL_IncTick

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

                                        SystemClock_Config (Thumb, 106 bytes, Stack size 112 bytes, main.o(i.SystemClock_Config)) +

                                        SystemClock_Config (Thumb, 106 bytes, Stack size 112 bytes, main.o(i.SystemClock_Config))

                                        [Stack]

                                        • Max Depth = 196
                                        • Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod

                                        [Calls]
                                        • >>   HAL_SYSTICK_Config -
                                        • >>   HAL_SYSTICK_CLKSourceConfig +
                                        • >>   HAL_SYSTICK_CLKSourceConfig
                                        • >>   HAL_RCC_OscConfig
                                        • >>   HAL_RCC_GetHCLKFreq
                                        • >>   HAL_RCC_ClockConfig @@ -664,73 +667,77 @@ Global Symbols
                                          [Called By]
                                          • >>   HAL_TIM_ConfigClockSource
                                          -

                                          UART_AdvFeatureConfig (Thumb, 202 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)) +

                                          UART_AdvFeatureConfig (Thumb, 202 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig))

                                          [Stack]

                                          • Max Depth = 8
                                          • Call Chain = UART_AdvFeatureConfig
                                          -
                                          [Called By]
                                          • >>   HAL_UART_Init +
                                            [Called By]
                                            • >>   HAL_UART_Init
                                            -

                                            UART_CheckIdleState (Thumb, 102 bytes, Stack size 24 bytes, stm32f0xx_hal_uart.o(i.UART_CheckIdleState)) +

                                            UART_CheckIdleState (Thumb, 102 bytes, Stack size 24 bytes, stm32f0xx_hal_uart.o(i.UART_CheckIdleState))

                                            [Stack]

                                            • Max Depth = 64
                                            • Call Chain = UART_CheckIdleState ⇒ UART_WaitOnFlagUntilTimeout

                                            [Calls]
                                            • >>   HAL_GetTick -
                                            • >>   UART_WaitOnFlagUntilTimeout +
                                            • >>   UART_WaitOnFlagUntilTimeout
                                            -
                                            [Called By]
                                            • >>   HAL_UART_Init +
                                              [Called By]
                                              • >>   HAL_UART_Init
                                              -

                                              UART_SetConfig (Thumb, 316 bytes, Stack size 24 bytes, stm32f0xx_hal_uart.o(i.UART_SetConfig)) +

                                              UART_SetConfig (Thumb, 316 bytes, Stack size 24 bytes, stm32f0xx_hal_uart.o(i.UART_SetConfig))

                                              [Stack]

                                              • Max Depth = 84
                                              • Call Chain = UART_SetConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod

                                              [Calls]
                                              • >>   HAL_RCC_GetSysClockFreq -
                                              • >>   HAL_RCC_GetPCLK1Freq +
                                              • >>   HAL_RCC_GetPCLK1Freq
                                              • >>   __aeabi_uidivmod
                                              -
                                              [Called By]
                                              • >>   HAL_UART_Init +
                                                [Called By]
                                                • >>   HAL_UART_Init
                                                -

                                                UART_WaitOnFlagUntilTimeout (Thumb, 98 bytes, Stack size 40 bytes, stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)) +

                                                UART_WaitOnFlagUntilTimeout (Thumb, 98 bytes, Stack size 40 bytes, stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout))

                                                [Stack]

                                                • Max Depth = 40
                                                • Call Chain = UART_WaitOnFlagUntilTimeout

                                                [Calls]
                                                • >>   HAL_GetTick
                                                -
                                                [Called By]
                                                • >>   HAL_UART_Transmit -
                                                • >>   UART_CheckIdleState +
                                                  [Called By]
                                                  • >>   HAL_UART_Transmit +
                                                  • >>   UART_CheckIdleState
                                                  -

                                                  __0printf$3 (Thumb, 24 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED) -

                                                  [Calls]

                                                  • >>   _printf_core +

                                                    __0printf$3 (Thumb, 24 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED) +

                                                    [Calls]

                                                    • >>   _printf_core
                                                    -

                                                    __1printf$3 (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED) +

                                                    __1printf$3 (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED) -

                                                    __2printf (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3)) +

                                                    __2printf (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3))

                                                    [Stack]

                                                    • Max Depth = 24
                                                    • Call Chain = __2printf
                                                    -
                                                    [Called By]
                                                    • >>   spi_error_dump_reboot +
                                                      [Called By]
                                                      • >>   spi_error_dump_reboot
                                                      • >>   main
                                                      -

                                                      __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) +

                                                      __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) -

                                                      __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) +

                                                      __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) -

                                                      __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) +

                                                      __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) -

                                                      avg_buf_add (Thumb, 28 bytes, Stack size 8 bytes, main.o(i.avg_buf_add)) +

                                                      avg_buf_add (Thumb, 28 bytes, Stack size 8 bytes, main.o(i.avg_buf_add))

                                                      [Stack]

                                                      • Max Depth = 8
                                                      • Call Chain = avg_buf_add

                                                      [Called By]
                                                      • >>   HAL_TIM_PeriodElapsedCallback
                                                      -

                                                      byte_to_int16_t (Thumb, 8 bytes, Stack size 0 bytes, main.o(i.byte_to_int16_t)) +

                                                      byte_to_int16_t (Thumb, 8 bytes, Stack size 0 bytes, main.o(i.byte_to_int16_t))

                                                      [Called By]

                                                      • >>   parse_spi_buf
                                                      -

                                                      delay_us_init (Thumb, 12 bytes, Stack size 8 bytes, delay_us.o(i.delay_us_init)) +

                                                      calc_arr (Thumb, 50 bytes, Stack size 0 bytes, main.o(i.calc_arr)) +

                                                      [Called By]

                                                      • >>   HAL_TIM_PeriodElapsedCallback +
                                                      + +

                                                      delay_us_init (Thumb, 12 bytes, Stack size 8 bytes, delay_us.o(i.delay_us_init))

                                                      [Stack]

                                                      • Max Depth = 8
                                                      • Call Chain = delay_us_init
                                                      -
                                                      [Calls]
                                                      • >>   HAL_TIM_Base_Start +
                                                        [Calls]
                                                        • >>   HAL_TIM_Base_Start

                                                        [Called By]
                                                        • >>   main
                                                        @@ -738,109 +745,109 @@ Global Symbols

                                                        fputc (Thumb, 18 bytes, Stack size 16 bytes, main.o(i.fputc))

                                                        [Stack]

                                                        • Max Depth = 104
                                                        • Call Chain = fputc ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
                                                        -
                                                        [Calls]
                                                        • >>   HAL_UART_Transmit +
                                                          [Calls]
                                                          • >>   HAL_UART_Transmit

                                                          [Address Reference Count : 1]
                                                          • printf3.o(i.__0printf$3)
                                                          -

                                                          get_buf_avg (Thumb, 52 bytes, Stack size 0 bytes, main.o(i.get_buf_avg)) +

                                                          get_buf_avg (Thumb, 52 bytes, Stack size 0 bytes, main.o(i.get_buf_avg))

                                                          [Called By]

                                                          • >>   HAL_TIM_PeriodElapsedCallback
                                                          -

                                                          kb_buf_add (Thumb, 48 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_add)) +

                                                          kb_buf_add (Thumb, 48 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_add))

                                                          [Stack]

                                                          • Max Depth = 36
                                                          • Call Chain = kb_buf_add ⇒ kb_buf_is_full ⇒ __aeabi_uidivmod
                                                          -
                                                          [Calls]
                                                          • >>   kb_buf_is_full +
                                                            [Calls]
                                                            • >>   kb_buf_is_full
                                                            • >>   __aeabi_uidivmod

                                                            [Called By]
                                                            • >>   parse_spi_buf
                                                            -

                                                            kb_buf_init (Thumb, 32 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_init)) +

                                                            kb_buf_init (Thumb, 32 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_init))

                                                            [Stack]

                                                            • Max Depth = 36
                                                            • Call Chain = kb_buf_init ⇒ malloc
                                                            -
                                                            [Calls]
                                                            • >>   kb_buf_reset -
                                                            • >>   malloc +
                                                              [Calls]
                                                              • >>   kb_buf_reset +
                                                              • >>   malloc

                                                              [Called By]
                                                              • >>   main
                                                              -

                                                              kb_buf_is_full (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_is_full)) +

                                                              kb_buf_is_full (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_is_full))

                                                              [Stack]

                                                              • Max Depth = 20
                                                              • Call Chain = kb_buf_is_full ⇒ __aeabi_uidivmod

                                                              [Calls]
                                                              • >>   __aeabi_uidivmod
                                                              -
                                                              [Called By]
                                                              • >>   kb_buf_add +
                                                                [Called By]
                                                                • >>   kb_buf_add
                                                                -

                                                                kb_buf_reset (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_reset)) +

                                                                kb_buf_reset (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_reset))

                                                                [Stack]

                                                                • Max Depth = 8
                                                                • Call Chain = kb_buf_reset

                                                                [Calls]
                                                                • >>   __aeabi_memclr
                                                                -
                                                                [Called By]
                                                                • >>   kb_buf_init +
                                                                  [Called By]
                                                                  • >>   kb_buf_init
                                                                  -

                                                                  main (Thumb, 208 bytes, Stack size 16 bytes, main.o(i.main)) +

                                                                  main (Thumb, 210 bytes, Stack size 16 bytes, main.o(i.main))

                                                                  [Stack]

                                                                  • Max Depth = 212
                                                                  • Call Chain = main ⇒ SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
                                                                  -
                                                                  [Calls]
                                                                  • >>   HAL_TIM_Base_Start_IT +
                                                                    [Calls]
                                                                    • >>   HAL_TIM_Base_Start_IT
                                                                    • >>   HAL_TIM_Base_Init
                                                                    • >>   HAL_SPI_TransmitReceive_IT
                                                                    • >>   HAL_Init -
                                                                    • >>   spi_error_dump_reboot -
                                                                    • >>   SystemClock_Config -
                                                                    • >>   MX_USART1_UART_Init -
                                                                    • >>   MX_TIM2_Init -
                                                                    • >>   MX_SPI1_Init -
                                                                    • >>   MX_GPIO_Init -
                                                                    • >>   mouse_buf_init -
                                                                    • >>   kb_buf_init -
                                                                    • >>   quad_init -
                                                                    • >>   delay_us_init -
                                                                    • >>   __2printf -
                                                                    • >>   __aeabi_memclr4 +
                                                                    • >>   spi_error_dump_reboot +
                                                                    • >>   SystemClock_Config +
                                                                    • >>   MX_USART1_UART_Init +
                                                                    • >>   MX_TIM2_Init +
                                                                    • >>   MX_SPI1_Init +
                                                                    • >>   MX_GPIO_Init +
                                                                    • >>   mouse_buf_init +
                                                                    • >>   kb_buf_init +
                                                                    • >>   quad_init +
                                                                    • >>   delay_us_init +
                                                                    • >>   __2printf +
                                                                    • >>   __aeabi_memclr4

                                                                    [Address Reference Count : 1]
                                                                    • entry9a.o(.ARM.Collect$$$$0000000B)
                                                                    -

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

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

                                                                    [Stack]

                                                                    • Max Depth = 20
                                                                    • Call Chain = malloc
                                                                    -
                                                                    [Called By]
                                                                    • >>   mouse_buf_init -
                                                                    • >>   kb_buf_init +
                                                                      [Called By]
                                                                      • >>   mouse_buf_init +
                                                                      • >>   kb_buf_init
                                                                      -

                                                                      mouse_buf_add (Thumb, 50 bytes, Stack size 16 bytes, helpers.o(i.mouse_buf_add)) +

                                                                      mouse_buf_add (Thumb, 50 bytes, Stack size 16 bytes, helpers.o(i.mouse_buf_add))

                                                                      [Stack]

                                                                      • Max Depth = 36
                                                                      • Call Chain = mouse_buf_add ⇒ mouse_buf_is_full ⇒ __aeabi_uidivmod
                                                                      -
                                                                      [Calls]
                                                                      • >>   mouse_buf_is_full -
                                                                      • >>   __aeabi_memcpy +
                                                                        [Calls]
                                                                        • >>   mouse_buf_is_full +
                                                                        • >>   __aeabi_memcpy
                                                                        • >>   __aeabi_uidivmod

                                                                        [Called By]
                                                                        • >>   parse_spi_buf
                                                                        -

                                                                        mouse_buf_init (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_init)) +

                                                                        mouse_buf_init (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_init))

                                                                        [Stack]

                                                                        • Max Depth = 28
                                                                        • Call Chain = mouse_buf_init ⇒ malloc
                                                                        -
                                                                        [Calls]
                                                                        • >>   mouse_buf_reset -
                                                                        • >>   malloc +
                                                                          [Calls]
                                                                          • >>   mouse_buf_reset +
                                                                          • >>   malloc

                                                                          [Called By]
                                                                          • >>   main
                                                                          -

                                                                          mouse_buf_is_full (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_is_full)) +

                                                                          mouse_buf_is_full (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_is_full))

                                                                          [Stack]

                                                                          • Max Depth = 20
                                                                          • Call Chain = mouse_buf_is_full ⇒ __aeabi_uidivmod

                                                                          [Calls]
                                                                          • >>   __aeabi_uidivmod
                                                                          -
                                                                          [Called By]
                                                                          • >>   mouse_buf_add +
                                                                            [Called By]
                                                                            • >>   mouse_buf_add
                                                                            -

                                                                            mouse_buf_peek (Thumb, 22 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_peek)) +

                                                                            mouse_buf_peek (Thumb, 22 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_peek))

                                                                            [Called By]

                                                                            • >>   HAL_TIM_PeriodElapsedCallback
                                                                            -

                                                                            mouse_buf_pop (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_pop)) +

                                                                            mouse_buf_pop (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_pop))

                                                                            [Stack]

                                                                            • Max Depth = 20
                                                                            • Call Chain = mouse_buf_pop ⇒ __aeabi_uidivmod

                                                                            [Calls]
                                                                            • >>   __aeabi_uidivmod @@ -848,73 +855,73 @@ Global Symbols
                                                                              [Called By]
                                                                              • >>   HAL_TIM_PeriodElapsedCallback
                                                                              -

                                                                              mouse_buf_reset (Thumb, 22 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_reset)) +

                                                                              mouse_buf_reset (Thumb, 22 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_reset))

                                                                              [Stack]

                                                                              • Max Depth = 8
                                                                              • Call Chain = mouse_buf_reset

                                                                              [Calls]
                                                                              • >>   __aeabi_memclr
                                                                              -
                                                                              [Called By]
                                                                              • >>   mouse_buf_init +
                                                                                [Called By]
                                                                                • >>   mouse_buf_init

                                                                                parse_spi_buf (Thumb, 184 bytes, Stack size 16 bytes, main.o(i.parse_spi_buf))

                                                                                [Stack]

                                                                                • Max Depth = 52
                                                                                • Call Chain = parse_spi_buf ⇒ mouse_buf_add ⇒ mouse_buf_is_full ⇒ __aeabi_uidivmod
                                                                                -
                                                                                [Calls]
                                                                                • >>   byte_to_int16_t -
                                                                                • >>   mouse_buf_add -
                                                                                • >>   kb_buf_add -
                                                                                • >>   __aeabi_memclr4 +
                                                                                  [Calls]
                                                                                  • >>   byte_to_int16_t +
                                                                                  • >>   mouse_buf_add +
                                                                                  • >>   kb_buf_add +
                                                                                  • >>   __aeabi_memclr4

                                                                                  [Called By]
                                                                                  • >>   HAL_SPI_TxRxCpltCallback
                                                                                  -

                                                                                  quad_decrement (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_decrement)) +

                                                                                  quad_decrement (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_decrement))

                                                                                  [Stack]

                                                                                  • Max Depth = 24
                                                                                  • Call Chain = quad_decrement ⇒ quad_write
                                                                                  -
                                                                                  [Calls]
                                                                                  • >>   quad_write +
                                                                                    [Calls]
                                                                                    • >>   quad_write

                                                                                    [Called By]
                                                                                    • >>   HAL_TIM_PeriodElapsedCallback
                                                                                    -

                                                                                    quad_increment (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_increment)) +

                                                                                    quad_increment (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_increment))

                                                                                    [Stack]

                                                                                    • Max Depth = 24
                                                                                    • Call Chain = quad_increment ⇒ quad_write
                                                                                    -
                                                                                    [Calls]
                                                                                    • >>   quad_write +
                                                                                      [Calls]
                                                                                      • >>   quad_write

                                                                                      [Called By]
                                                                                      • >>   HAL_TIM_PeriodElapsedCallback
                                                                                      -

                                                                                      quad_init (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_init)) +

                                                                                      quad_init (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_init))

                                                                                      [Stack]

                                                                                      • Max Depth = 32
                                                                                      • Call Chain = quad_init ⇒ quad_reset ⇒ quad_write
                                                                                      -
                                                                                      [Calls]
                                                                                      • >>   quad_reset +
                                                                                        [Calls]
                                                                                        • >>   quad_reset

                                                                                        [Called By]
                                                                                        • >>   main
                                                                                        -

                                                                                        quad_reset (Thumb, 12 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_reset)) +

                                                                                        quad_reset (Thumb, 12 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_reset))

                                                                                        [Stack]

                                                                                        • Max Depth = 24
                                                                                        • Call Chain = quad_reset ⇒ quad_write
                                                                                        -
                                                                                        [Calls]
                                                                                        • >>   quad_write +
                                                                                          [Calls]
                                                                                          • >>   quad_write
                                                                                          -
                                                                                          [Called By]
                                                                                          • >>   quad_init +
                                                                                            [Called By]
                                                                                            • >>   quad_init
                                                                                            -

                                                                                            quad_write (Thumb, 44 bytes, Stack size 16 bytes, quad_encoder.o(i.quad_write)) +

                                                                                            quad_write (Thumb, 44 bytes, Stack size 16 bytes, quad_encoder.o(i.quad_write))

                                                                                            [Stack]

                                                                                            • Max Depth = 16
                                                                                            • Call Chain = quad_write

                                                                                            [Calls]
                                                                                            • >>   HAL_GPIO_WritePin
                                                                                            -
                                                                                            [Called By]
                                                                                            • >>   quad_reset -
                                                                                            • >>   quad_increment -
                                                                                            • >>   quad_decrement +
                                                                                              [Called By]
                                                                                              • >>   quad_reset +
                                                                                              • >>   quad_increment +
                                                                                              • >>   quad_decrement
                                                                                              -

                                                                                              spi_error_dump_reboot (Thumb, 72 bytes, Stack size 0 bytes, main.o(i.spi_error_dump_reboot)) +

                                                                                              spi_error_dump_reboot (Thumb, 72 bytes, Stack size 0 bytes, main.o(i.spi_error_dump_reboot))

                                                                                              [Stack]

                                                                                              • Max Depth = 24
                                                                                              • Call Chain = spi_error_dump_reboot ⇒ __2printf
                                                                                              -
                                                                                              [Calls]
                                                                                              • >>   HAL_GPIO_TogglePin +
                                                                                                [Calls]
                                                                                                • >>   HAL_GPIO_TogglePin
                                                                                                • >>   HAL_Delay -
                                                                                                • >>   __2printf +
                                                                                                • >>   __2printf

                                                                                                [Called By]
                                                                                                • >>   main
                                                                                                @@ -922,7 +929,7 @@ Global Symbols

                                                                                                Local Symbols

                                                                                                -

                                                                                                MX_GPIO_Init (Thumb, 228 bytes, Stack size 48 bytes, main.o(i.MX_GPIO_Init)) +

                                                                                                MX_GPIO_Init (Thumb, 228 bytes, Stack size 48 bytes, main.o(i.MX_GPIO_Init))

                                                                                                [Stack]

                                                                                                • Max Depth = 72
                                                                                                • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init

                                                                                                [Calls]
                                                                                                • >>   HAL_GPIO_Init @@ -931,7 +938,7 @@ Local Symbols
                                                                                                  [Called By]
                                                                                                  • >>   main
                                                                                                  -

                                                                                                  MX_SPI1_Init (Thumb, 52 bytes, Stack size 8 bytes, main.o(i.MX_SPI1_Init)) +

                                                                                                  MX_SPI1_Init (Thumb, 52 bytes, Stack size 8 bytes, main.o(i.MX_SPI1_Init))

                                                                                                  [Stack]

                                                                                                  • Max Depth = 88
                                                                                                  • Call Chain = MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init

                                                                                                  [Calls]
                                                                                                  • >>   HAL_SPI_Init @@ -939,20 +946,20 @@ Local Symbols
                                                                                                    [Called By]
                                                                                                    • >>   main
                                                                                                    -

                                                                                                    MX_TIM2_Init (Thumb, 80 bytes, Stack size 32 bytes, main.o(i.MX_TIM2_Init)) +

                                                                                                    MX_TIM2_Init (Thumb, 80 bytes, Stack size 32 bytes, main.o(i.MX_TIM2_Init))

                                                                                                    [Stack]

                                                                                                    • Max Depth = 68
                                                                                                    • Call Chain = MX_TIM2_Init ⇒ HAL_TIM_ConfigClockSource ⇒ TIM_ETR_SetConfig

                                                                                                    [Calls]
                                                                                                    • >>   HAL_TIM_ConfigClockSource
                                                                                                    • >>   HAL_TIM_Base_Init -
                                                                                                    • >>   HAL_TIMEx_MasterConfigSynchronization +
                                                                                                    • >>   HAL_TIMEx_MasterConfigSynchronization

                                                                                                    [Called By]
                                                                                                    • >>   main
                                                                                                    -

                                                                                                    MX_USART1_UART_Init (Thumb, 46 bytes, Stack size 8 bytes, main.o(i.MX_USART1_UART_Init)) +

                                                                                                    MX_USART1_UART_Init (Thumb, 46 bytes, Stack size 8 bytes, main.o(i.MX_USART1_UART_Init))

                                                                                                    [Stack]

                                                                                                    • Max Depth = 108
                                                                                                    • Call Chain = MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ UART_SetConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
                                                                                                    -
                                                                                                    [Calls]
                                                                                                    • >>   HAL_UART_Init +
                                                                                                      [Calls]
                                                                                                      • >>   HAL_UART_Init

                                                                                                      [Called By]
                                                                                                      • >>   main
                                                                                                      @@ -960,37 +967,37 @@ Local Symbols

                                                                                                      SPI_2linesRxISR_16BIT (Thumb, 54 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT))

                                                                                                      [Stack]

                                                                                                      • Max Depth = 92
                                                                                                      • Call Chain = SPI_2linesRxISR_16BIT ⇒ SPI_CloseRxTx_ISR ⇒ HAL_SPI_TxRxCpltCallback ⇒ parse_spi_buf ⇒ mouse_buf_add ⇒ mouse_buf_is_full ⇒ __aeabi_uidivmod
                                                                                                      -
                                                                                                      [Calls]
                                                                                                      • >>   SPI_CloseRxTx_ISR +
                                                                                                        [Calls]
                                                                                                        • >>   SPI_CloseRxTx_ISR

                                                                                                        [Address Reference Count : 1]
                                                                                                        • stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)

                                                                                                        SPI_2linesRxISR_8BIT (Thumb, 94 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT))

                                                                                                        [Stack]

                                                                                                        • Max Depth = 92
                                                                                                        • Call Chain = SPI_2linesRxISR_8BIT ⇒ SPI_CloseRxTx_ISR ⇒ HAL_SPI_TxRxCpltCallback ⇒ parse_spi_buf ⇒ mouse_buf_add ⇒ mouse_buf_is_full ⇒ __aeabi_uidivmod
                                                                                                        -
                                                                                                        [Calls]
                                                                                                        • >>   SPI_CloseRxTx_ISR +
                                                                                                          [Calls]
                                                                                                          • >>   SPI_CloseRxTx_ISR

                                                                                                          [Address Reference Count : 1]
                                                                                                          • stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)

                                                                                                          SPI_2linesTxISR_16BIT (Thumb, 52 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT))

                                                                                                          [Stack]

                                                                                                          • Max Depth = 92
                                                                                                          • Call Chain = SPI_2linesTxISR_16BIT ⇒ SPI_CloseRxTx_ISR ⇒ HAL_SPI_TxRxCpltCallback ⇒ parse_spi_buf ⇒ mouse_buf_add ⇒ mouse_buf_is_full ⇒ __aeabi_uidivmod
                                                                                                          -
                                                                                                          [Calls]
                                                                                                          • >>   SPI_CloseRxTx_ISR +
                                                                                                            [Calls]
                                                                                                            • >>   SPI_CloseRxTx_ISR

                                                                                                            [Address Reference Count : 1]
                                                                                                            • stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)

                                                                                                            SPI_2linesTxISR_8BIT (Thumb, 72 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT))

                                                                                                            [Stack]

                                                                                                            • Max Depth = 92
                                                                                                            • Call Chain = SPI_2linesTxISR_8BIT ⇒ SPI_CloseRxTx_ISR ⇒ HAL_SPI_TxRxCpltCallback ⇒ parse_spi_buf ⇒ mouse_buf_add ⇒ mouse_buf_is_full ⇒ __aeabi_uidivmod
                                                                                                            -
                                                                                                            [Calls]
                                                                                                            • >>   SPI_CloseRxTx_ISR +
                                                                                                              [Calls]
                                                                                                              • >>   SPI_CloseRxTx_ISR

                                                                                                              [Address Reference Count : 1]
                                                                                                              • stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
                                                                                                              -

                                                                                                              SPI_CloseRxTx_ISR (Thumb, 82 bytes, Stack size 16 bytes, stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)) +

                                                                                                              SPI_CloseRxTx_ISR (Thumb, 82 bytes, Stack size 16 bytes, stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR))

                                                                                                              [Stack]

                                                                                                              • Max Depth = 84
                                                                                                              • Call Chain = SPI_CloseRxTx_ISR ⇒ HAL_SPI_TxRxCpltCallback ⇒ parse_spi_buf ⇒ mouse_buf_add ⇒ mouse_buf_is_full ⇒ __aeabi_uidivmod
                                                                                                              -
                                                                                                              [Calls]
                                                                                                              • >>   SPI_EndRxTxTransaction +
                                                                                                                [Calls]
                                                                                                                • >>   SPI_EndRxTxTransaction
                                                                                                                • >>   HAL_SPI_TxRxCpltCallback -
                                                                                                                • >>   HAL_SPI_RxCpltCallback +
                                                                                                                • >>   HAL_SPI_RxCpltCallback
                                                                                                                • >>   HAL_SPI_ErrorCallback
                                                                                                                • >>   HAL_GetTick
                                                                                                                @@ -1007,29 +1014,29 @@ Local Symbols

                                                                                                              [Address Reference Count : 1]
                                                                                                              • stm32f0xx_hal_spi.o(i.HAL_SPI_IRQHandler)
                                                                                                              -

                                                                                                              SPI_EndRxTxTransaction (Thumb, 76 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)) +

                                                                                                              SPI_EndRxTxTransaction (Thumb, 76 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction))

                                                                                                              [Stack]

                                                                                                              • Max Depth = 48
                                                                                                              • Call Chain = SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
                                                                                                              -
                                                                                                              [Calls]
                                                                                                              • >>   SPI_WaitFlagStateUntilTimeout -
                                                                                                              • >>   SPI_WaitFifoStateUntilTimeout +
                                                                                                                [Calls]
                                                                                                                • >>   SPI_WaitFlagStateUntilTimeout +
                                                                                                                • >>   SPI_WaitFifoStateUntilTimeout
                                                                                                                -
                                                                                                                [Called By]
                                                                                                                • >>   SPI_CloseRxTx_ISR +
                                                                                                                  [Called By]
                                                                                                                  • >>   SPI_CloseRxTx_ISR
                                                                                                                  -

                                                                                                                  SPI_WaitFifoStateUntilTimeout (Thumb, 150 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)) +

                                                                                                                  SPI_WaitFifoStateUntilTimeout (Thumb, 150 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout))

                                                                                                                  [Stack]

                                                                                                                  • Max Depth = 24
                                                                                                                  • Call Chain = SPI_WaitFifoStateUntilTimeout

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

                                                                                                                    SPI_WaitFlagStateUntilTimeout (Thumb, 140 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)) +

                                                                                                                    SPI_WaitFlagStateUntilTimeout (Thumb, 140 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout))

                                                                                                                    [Stack]

                                                                                                                    • Max Depth = 24
                                                                                                                    • Call Chain = SPI_WaitFlagStateUntilTimeout

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

                                                                                                                      TIM_ITRx_SetConfig (Thumb, 16 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)) @@ -1053,10 +1060,10 @@ Local Symbols

                                                                                                                    • >>   HAL_NVIC_SetPriority
                                                                                                                    -

                                                                                                                    _printf_core (Thumb, 456 bytes, Stack size 88 bytes, printf3.o(i._printf_core), UNUSED) +

                                                                                                                    _printf_core (Thumb, 456 bytes, Stack size 88 bytes, printf3.o(i._printf_core), UNUSED)

                                                                                                                    [Calls]

                                                                                                                    • >>   __aeabi_uidivmod
                                                                                                                    -
                                                                                                                    [Called By]
                                                                                                                    • >>   __0printf$3 +
                                                                                                                      [Called By]
                                                                                                                      • >>   __0printf$3

                                                                                                                      diff --git a/firmware/apple_all/MDK-ARM/apple_all/apple_all.map b/firmware/apple_all/MDK-ARM/apple_all/apple_all.map index b8914eb..571d5fe 100644 --- a/firmware/apple_all/MDK-ARM/apple_all/apple_all.map +++ b/firmware/apple_all/MDK-ARM/apple_all/apple_all.map @@ -46,10 +46,12 @@ Section Cross References main.o(i.HAL_SPI_TxRxCpltCallback) refers to stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) for HAL_SPI_TransmitReceive_IT main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(.bss) for .bss main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(.data) for .data + main.o(i.HAL_TIM_PeriodElapsedCallback) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin) for HAL_GPIO_TogglePin main.o(i.HAL_TIM_PeriodElapsedCallback) refers to helpers.o(i.mouse_buf_peek) for mouse_buf_peek main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(i.avg_buf_add) for avg_buf_add main.o(i.HAL_TIM_PeriodElapsedCallback) refers to helpers.o(i.mouse_buf_pop) for mouse_buf_pop main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(i.get_buf_avg) for get_buf_avg + main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(i.calc_arr) for calc_arr main.o(i.HAL_TIM_PeriodElapsedCallback) refers to quad_encoder.o(i.quad_increment) for quad_increment main.o(i.HAL_TIM_PeriodElapsedCallback) refers to quad_encoder.o(i.quad_decrement) for quad_decrement main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(.bss) for .bss @@ -1068,7 +1070,6 @@ Removing Unused input sections from the image. Removing main.o(.rev16_text), (4 bytes). Removing main.o(.revsh_text), (4 bytes). Removing main.o(i._Error_Handler), (2 bytes). - Removing main.o(i.calc_arr), (8 bytes). Removing main.o(.bss), (16 bytes). Removing main.o(.constdata), (1 bytes). Removing main.o(.constdata), (1 bytes). @@ -1542,7 +1543,7 @@ Removing Unused input sections from the image. Removing stm32f0xx_hal_tim.o(i.__ARM_common_switch8), (26 bytes). Removing depilogue.o(i.__ARM_clz), (46 bytes). -488 unused section(s) (total 34960 bytes) removed from the image. +487 unused section(s) (total 34952 bytes) removed from the image. ============================================================================== @@ -1576,38 +1577,38 @@ Image Symbol Table ../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE - ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE + ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE + ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE - ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE - ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE ../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE ../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE ../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE @@ -1710,94 +1711,95 @@ Image Symbol Table i.HAL_TIM_OC_DelayElapsedCallback 0x08001200 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback) i.HAL_TIM_PWM_PulseFinishedCallback 0x08001202 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback) i.HAL_TIM_PeriodElapsedCallback 0x08001204 Section 0 main.o(i.HAL_TIM_PeriodElapsedCallback) - i.HAL_TIM_TriggerCallback 0x08001270 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback) - i.HAL_UART_Init 0x08001272 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Init) - i.HAL_UART_MspInit 0x080012e0 Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit) - i.HAL_UART_Transmit 0x0800132c Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit) - i.HardFault_Handler 0x080013f4 Section 0 stm32f0xx_it.o(i.HardFault_Handler) - i.MX_GPIO_Init 0x080013f8 Section 0 main.o(i.MX_GPIO_Init) - MX_GPIO_Init 0x080013f9 Thumb Code 228 main.o(i.MX_GPIO_Init) - i.MX_SPI1_Init 0x080014ec Section 0 main.o(i.MX_SPI1_Init) - MX_SPI1_Init 0x080014ed Thumb Code 52 main.o(i.MX_SPI1_Init) - i.MX_TIM2_Init 0x08001528 Section 0 main.o(i.MX_TIM2_Init) - MX_TIM2_Init 0x08001529 Thumb Code 80 main.o(i.MX_TIM2_Init) - i.MX_USART1_UART_Init 0x0800157c Section 0 main.o(i.MX_USART1_UART_Init) - MX_USART1_UART_Init 0x0800157d Thumb Code 46 main.o(i.MX_USART1_UART_Init) - i.NMI_Handler 0x080015b4 Section 0 stm32f0xx_it.o(i.NMI_Handler) - i.NVIC_SetPriority 0x080015b8 Section 0 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority) - NVIC_SetPriority 0x080015b9 Thumb Code 60 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority) - i.PendSV_Handler 0x080015fc Section 0 stm32f0xx_it.o(i.PendSV_Handler) - i.SPI1_IRQHandler 0x08001600 Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler) - i.SPI_2linesRxISR_16BIT 0x08001610 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT) - SPI_2linesRxISR_16BIT 0x08001611 Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT) - i.SPI_2linesRxISR_8BIT 0x08001646 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT) - SPI_2linesRxISR_8BIT 0x08001647 Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT) - i.SPI_2linesTxISR_16BIT 0x080016a4 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT) - SPI_2linesTxISR_16BIT 0x080016a5 Thumb Code 52 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT) - i.SPI_2linesTxISR_8BIT 0x080016d8 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT) - SPI_2linesTxISR_8BIT 0x080016d9 Thumb Code 72 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT) - i.SPI_CloseRxTx_ISR 0x08001720 Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR) - SPI_CloseRxTx_ISR 0x08001721 Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR) - i.SPI_DMAAbortOnError 0x08001772 Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError) - SPI_DMAAbortOnError 0x08001773 Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError) - i.SPI_EndRxTxTransaction 0x08001784 Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction) - SPI_EndRxTxTransaction 0x08001785 Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction) - i.SPI_WaitFifoStateUntilTimeout 0x080017d0 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout) - SPI_WaitFifoStateUntilTimeout 0x080017d1 Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout) - i.SPI_WaitFlagStateUntilTimeout 0x08001866 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) - SPI_WaitFlagStateUntilTimeout 0x08001867 Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) - i.SVC_Handler 0x080018f2 Section 0 stm32f0xx_it.o(i.SVC_Handler) - i.SysTick_Handler 0x080018f4 Section 0 stm32f0xx_it.o(i.SysTick_Handler) - i.SystemClock_Config 0x08001900 Section 0 main.o(i.SystemClock_Config) - i.SystemInit 0x0800196c Section 0 system_stm32f0xx.o(i.SystemInit) - i.TIM16_IRQHandler 0x080019c8 Section 0 stm32f0xx_it.o(i.TIM16_IRQHandler) - i.TIM17_IRQHandler 0x080019d8 Section 0 stm32f0xx_it.o(i.TIM17_IRQHandler) - i.TIM_Base_SetConfig 0x080019e8 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig) - i.TIM_ETR_SetConfig 0x08001a7c Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig) - i.TIM_ITRx_SetConfig 0x08001a92 Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig) - TIM_ITRx_SetConfig 0x08001a93 Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig) - i.TIM_TI1_ConfigInputStage 0x08001aa2 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) - TIM_TI1_ConfigInputStage 0x08001aa3 Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) - i.TIM_TI2_ConfigInputStage 0x08001ac4 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) - TIM_TI2_ConfigInputStage 0x08001ac5 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) - i.UART_AdvFeatureConfig 0x08001aea Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig) - i.UART_CheckIdleState 0x08001bb4 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState) - i.UART_SetConfig 0x08001c28 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig) - i.UART_WaitOnFlagUntilTimeout 0x08001d84 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) - i.__0printf$3 0x08001de8 Section 0 printf3.o(i.__0printf$3) - i.__scatterload_copy 0x08001e08 Section 14 handlers.o(i.__scatterload_copy) - i.__scatterload_null 0x08001e16 Section 2 handlers.o(i.__scatterload_null) - i.__scatterload_zeroinit 0x08001e18 Section 14 handlers.o(i.__scatterload_zeroinit) - i._printf_core 0x08001e28 Section 0 printf3.o(i._printf_core) - _printf_core 0x08001e29 Thumb Code 456 printf3.o(i._printf_core) - i.avg_buf_add 0x08001ff4 Section 0 main.o(i.avg_buf_add) - i.byte_to_int16_t 0x08002018 Section 0 main.o(i.byte_to_int16_t) - i.delay_us_init 0x08002020 Section 0 delay_us.o(i.delay_us_init) - i.fputc 0x08002030 Section 0 main.o(i.fputc) - i.get_buf_avg 0x08002048 Section 0 main.o(i.get_buf_avg) - i.kb_buf_add 0x08002080 Section 0 helpers.o(i.kb_buf_add) - i.kb_buf_init 0x080020b0 Section 0 helpers.o(i.kb_buf_init) - i.kb_buf_is_full 0x080020d0 Section 0 helpers.o(i.kb_buf_is_full) - i.kb_buf_reset 0x080020ec Section 0 helpers.o(i.kb_buf_reset) - i.main 0x08002108 Section 0 main.o(i.main) - i.malloc 0x08002210 Section 0 malloc.o(i.malloc) - i.mouse_buf_add 0x0800227c Section 0 helpers.o(i.mouse_buf_add) - i.mouse_buf_init 0x080022ae Section 0 helpers.o(i.mouse_buf_init) - i.mouse_buf_is_full 0x080022c6 Section 0 helpers.o(i.mouse_buf_is_full) - i.mouse_buf_peek 0x080022e2 Section 0 helpers.o(i.mouse_buf_peek) - i.mouse_buf_pop 0x080022f8 Section 0 helpers.o(i.mouse_buf_pop) - i.mouse_buf_reset 0x08002310 Section 0 helpers.o(i.mouse_buf_reset) - i.parse_spi_buf 0x08002328 Section 0 main.o(i.parse_spi_buf) - i.quad_decrement 0x080023e8 Section 0 quad_encoder.o(i.quad_decrement) - i.quad_increment 0x080023fa Section 0 quad_encoder.o(i.quad_increment) - i.quad_init 0x0800240c Section 0 quad_encoder.o(i.quad_init) - i.quad_reset 0x0800241e Section 0 quad_encoder.o(i.quad_reset) - i.quad_write 0x0800242c Section 0 quad_encoder.o(i.quad_write) - i.spi_error_dump_reboot 0x0800245c Section 0 main.o(i.spi_error_dump_reboot) - .constdata 0x080024d4 Section 4 quad_encoder.o(.constdata) - .constdata 0x080024d8 Section 73 main.o(.constdata) - .constdata 0x08002521 Section 16 system_stm32f0xx.o(.constdata) - .constdata 0x08002531 Section 8 system_stm32f0xx.o(.constdata) + i.HAL_TIM_TriggerCallback 0x0800128c Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback) + i.HAL_UART_Init 0x0800128e Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Init) + i.HAL_UART_MspInit 0x080012fc Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit) + i.HAL_UART_Transmit 0x08001348 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit) + i.HardFault_Handler 0x08001410 Section 0 stm32f0xx_it.o(i.HardFault_Handler) + i.MX_GPIO_Init 0x08001414 Section 0 main.o(i.MX_GPIO_Init) + MX_GPIO_Init 0x08001415 Thumb Code 228 main.o(i.MX_GPIO_Init) + i.MX_SPI1_Init 0x08001508 Section 0 main.o(i.MX_SPI1_Init) + MX_SPI1_Init 0x08001509 Thumb Code 52 main.o(i.MX_SPI1_Init) + i.MX_TIM2_Init 0x08001544 Section 0 main.o(i.MX_TIM2_Init) + MX_TIM2_Init 0x08001545 Thumb Code 80 main.o(i.MX_TIM2_Init) + i.MX_USART1_UART_Init 0x08001598 Section 0 main.o(i.MX_USART1_UART_Init) + MX_USART1_UART_Init 0x08001599 Thumb Code 46 main.o(i.MX_USART1_UART_Init) + i.NMI_Handler 0x080015d0 Section 0 stm32f0xx_it.o(i.NMI_Handler) + i.NVIC_SetPriority 0x080015d4 Section 0 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority) + NVIC_SetPriority 0x080015d5 Thumb Code 60 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority) + i.PendSV_Handler 0x08001618 Section 0 stm32f0xx_it.o(i.PendSV_Handler) + i.SPI1_IRQHandler 0x0800161c Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler) + i.SPI_2linesRxISR_16BIT 0x0800162c Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT) + SPI_2linesRxISR_16BIT 0x0800162d Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT) + i.SPI_2linesRxISR_8BIT 0x08001662 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT) + SPI_2linesRxISR_8BIT 0x08001663 Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT) + i.SPI_2linesTxISR_16BIT 0x080016c0 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT) + SPI_2linesTxISR_16BIT 0x080016c1 Thumb Code 52 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT) + i.SPI_2linesTxISR_8BIT 0x080016f4 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT) + SPI_2linesTxISR_8BIT 0x080016f5 Thumb Code 72 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT) + i.SPI_CloseRxTx_ISR 0x0800173c Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR) + SPI_CloseRxTx_ISR 0x0800173d Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR) + i.SPI_DMAAbortOnError 0x0800178e Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError) + SPI_DMAAbortOnError 0x0800178f Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError) + i.SPI_EndRxTxTransaction 0x080017a0 Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction) + SPI_EndRxTxTransaction 0x080017a1 Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction) + i.SPI_WaitFifoStateUntilTimeout 0x080017ec Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout) + SPI_WaitFifoStateUntilTimeout 0x080017ed Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout) + i.SPI_WaitFlagStateUntilTimeout 0x08001882 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) + SPI_WaitFlagStateUntilTimeout 0x08001883 Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) + i.SVC_Handler 0x0800190e Section 0 stm32f0xx_it.o(i.SVC_Handler) + i.SysTick_Handler 0x08001910 Section 0 stm32f0xx_it.o(i.SysTick_Handler) + i.SystemClock_Config 0x0800191c Section 0 main.o(i.SystemClock_Config) + i.SystemInit 0x08001988 Section 0 system_stm32f0xx.o(i.SystemInit) + i.TIM16_IRQHandler 0x080019e4 Section 0 stm32f0xx_it.o(i.TIM16_IRQHandler) + i.TIM17_IRQHandler 0x080019f4 Section 0 stm32f0xx_it.o(i.TIM17_IRQHandler) + i.TIM_Base_SetConfig 0x08001a04 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig) + i.TIM_ETR_SetConfig 0x08001a98 Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig) + i.TIM_ITRx_SetConfig 0x08001aae Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig) + TIM_ITRx_SetConfig 0x08001aaf Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig) + i.TIM_TI1_ConfigInputStage 0x08001abe Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) + TIM_TI1_ConfigInputStage 0x08001abf Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) + i.TIM_TI2_ConfigInputStage 0x08001ae0 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) + TIM_TI2_ConfigInputStage 0x08001ae1 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) + i.UART_AdvFeatureConfig 0x08001b06 Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig) + i.UART_CheckIdleState 0x08001bd0 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState) + i.UART_SetConfig 0x08001c44 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig) + i.UART_WaitOnFlagUntilTimeout 0x08001da0 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) + i.__0printf$3 0x08001e04 Section 0 printf3.o(i.__0printf$3) + i.__scatterload_copy 0x08001e24 Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x08001e32 Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x08001e34 Section 14 handlers.o(i.__scatterload_zeroinit) + i._printf_core 0x08001e44 Section 0 printf3.o(i._printf_core) + _printf_core 0x08001e45 Thumb Code 456 printf3.o(i._printf_core) + i.avg_buf_add 0x08002010 Section 0 main.o(i.avg_buf_add) + i.byte_to_int16_t 0x08002034 Section 0 main.o(i.byte_to_int16_t) + i.calc_arr 0x0800203c Section 0 main.o(i.calc_arr) + i.delay_us_init 0x0800207c Section 0 delay_us.o(i.delay_us_init) + i.fputc 0x0800208c Section 0 main.o(i.fputc) + i.get_buf_avg 0x080020a4 Section 0 main.o(i.get_buf_avg) + i.kb_buf_add 0x080020dc Section 0 helpers.o(i.kb_buf_add) + i.kb_buf_init 0x0800210c Section 0 helpers.o(i.kb_buf_init) + i.kb_buf_is_full 0x0800212c Section 0 helpers.o(i.kb_buf_is_full) + i.kb_buf_reset 0x08002148 Section 0 helpers.o(i.kb_buf_reset) + i.main 0x08002164 Section 0 main.o(i.main) + i.malloc 0x08002270 Section 0 malloc.o(i.malloc) + i.mouse_buf_add 0x080022dc Section 0 helpers.o(i.mouse_buf_add) + i.mouse_buf_init 0x0800230e Section 0 helpers.o(i.mouse_buf_init) + i.mouse_buf_is_full 0x08002326 Section 0 helpers.o(i.mouse_buf_is_full) + i.mouse_buf_peek 0x08002342 Section 0 helpers.o(i.mouse_buf_peek) + i.mouse_buf_pop 0x08002358 Section 0 helpers.o(i.mouse_buf_pop) + i.mouse_buf_reset 0x08002370 Section 0 helpers.o(i.mouse_buf_reset) + i.parse_spi_buf 0x08002388 Section 0 main.o(i.parse_spi_buf) + i.quad_decrement 0x08002448 Section 0 quad_encoder.o(i.quad_decrement) + i.quad_increment 0x0800245a Section 0 quad_encoder.o(i.quad_increment) + i.quad_init 0x0800246c Section 0 quad_encoder.o(i.quad_init) + i.quad_reset 0x0800247e Section 0 quad_encoder.o(i.quad_reset) + i.quad_write 0x0800248c Section 0 quad_encoder.o(i.quad_write) + i.spi_error_dump_reboot 0x080024bc Section 0 main.o(i.spi_error_dump_reboot) + .constdata 0x08002534 Section 4 quad_encoder.o(.constdata) + .constdata 0x08002538 Section 73 main.o(.constdata) + .constdata 0x08002581 Section 16 system_stm32f0xx.o(.constdata) + .constdata 0x08002591 Section 8 system_stm32f0xx.o(.constdata) .data 0x20000000 Section 4 delay_us.o(.data) .data 0x20000004 Section 16 main.o(.data) .data 0x20000014 Section 4 stm32f0xx_hal.o(.data) @@ -1805,9 +1807,9 @@ Image Symbol Table .data 0x2000001c Section 4 stdout.o(.data) .data 0x20000020 Section 4 mvars.o(.data) .data 0x20000024 Section 4 mvars.o(.data) - .bss 0x20000028 Section 540 main.o(.bss) - HEAP 0x20000248 Section 512 startup_stm32f072xb.o(HEAP) - STACK 0x20000448 Section 1024 startup_stm32f072xb.o(STACK) + .bss 0x20000028 Section 556 main.o(.bss) + HEAP 0x20000258 Section 512 startup_stm32f072xb.o(HEAP) + STACK 0x20000458 Section 1024 startup_stm32f072xb.o(STACK) Global Symbols @@ -1958,63 +1960,64 @@ Image Symbol Table HAL_TIM_IRQHandler 0x0800109f Thumb Code 354 stm32f0xx_hal_tim.o(i.HAL_TIM_IRQHandler) HAL_TIM_OC_DelayElapsedCallback 0x08001201 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback) HAL_TIM_PWM_PulseFinishedCallback 0x08001203 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback) - HAL_TIM_PeriodElapsedCallback 0x08001205 Thumb Code 92 main.o(i.HAL_TIM_PeriodElapsedCallback) - HAL_TIM_TriggerCallback 0x08001271 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback) - HAL_UART_Init 0x08001273 Thumb Code 108 stm32f0xx_hal_uart.o(i.HAL_UART_Init) - HAL_UART_MspInit 0x080012e1 Thumb Code 66 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit) - HAL_UART_Transmit 0x0800132d Thumb Code 200 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit) - HardFault_Handler 0x080013f5 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler) - NMI_Handler 0x080015b5 Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler) - PendSV_Handler 0x080015fd Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler) - SPI1_IRQHandler 0x08001601 Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler) - SVC_Handler 0x080018f3 Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler) - SysTick_Handler 0x080018f5 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler) - SystemClock_Config 0x08001901 Thumb Code 106 main.o(i.SystemClock_Config) - SystemInit 0x0800196d Thumb Code 76 system_stm32f0xx.o(i.SystemInit) - TIM16_IRQHandler 0x080019c9 Thumb Code 10 stm32f0xx_it.o(i.TIM16_IRQHandler) - TIM17_IRQHandler 0x080019d9 Thumb Code 10 stm32f0xx_it.o(i.TIM17_IRQHandler) - TIM_Base_SetConfig 0x080019e9 Thumb Code 124 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig) - TIM_ETR_SetConfig 0x08001a7d Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig) - UART_AdvFeatureConfig 0x08001aeb Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig) - UART_CheckIdleState 0x08001bb5 Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState) - UART_SetConfig 0x08001c29 Thumb Code 316 stm32f0xx_hal_uart.o(i.UART_SetConfig) - UART_WaitOnFlagUntilTimeout 0x08001d85 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) - __0printf$3 0x08001de9 Thumb Code 24 printf3.o(i.__0printf$3) - __1printf$3 0x08001de9 Thumb Code 0 printf3.o(i.__0printf$3) - __2printf 0x08001de9 Thumb Code 0 printf3.o(i.__0printf$3) - __scatterload_copy 0x08001e09 Thumb Code 14 handlers.o(i.__scatterload_copy) - __scatterload_null 0x08001e17 Thumb Code 2 handlers.o(i.__scatterload_null) - __scatterload_zeroinit 0x08001e19 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) - avg_buf_add 0x08001ff5 Thumb Code 28 main.o(i.avg_buf_add) - byte_to_int16_t 0x08002019 Thumb Code 8 main.o(i.byte_to_int16_t) - delay_us_init 0x08002021 Thumb Code 12 delay_us.o(i.delay_us_init) - fputc 0x08002031 Thumb Code 18 main.o(i.fputc) - get_buf_avg 0x08002049 Thumb Code 52 main.o(i.get_buf_avg) - kb_buf_add 0x08002081 Thumb Code 48 helpers.o(i.kb_buf_add) - kb_buf_init 0x080020b1 Thumb Code 32 helpers.o(i.kb_buf_init) - kb_buf_is_full 0x080020d1 Thumb Code 28 helpers.o(i.kb_buf_is_full) - kb_buf_reset 0x080020ed Thumb Code 28 helpers.o(i.kb_buf_reset) - main 0x08002109 Thumb Code 208 main.o(i.main) - malloc 0x08002211 Thumb Code 92 malloc.o(i.malloc) - mouse_buf_add 0x0800227d Thumb Code 50 helpers.o(i.mouse_buf_add) - mouse_buf_init 0x080022af Thumb Code 24 helpers.o(i.mouse_buf_init) - mouse_buf_is_full 0x080022c7 Thumb Code 28 helpers.o(i.mouse_buf_is_full) - mouse_buf_peek 0x080022e3 Thumb Code 22 helpers.o(i.mouse_buf_peek) - mouse_buf_pop 0x080022f9 Thumb Code 24 helpers.o(i.mouse_buf_pop) - mouse_buf_reset 0x08002311 Thumb Code 22 helpers.o(i.mouse_buf_reset) - parse_spi_buf 0x08002329 Thumb Code 184 main.o(i.parse_spi_buf) - quad_decrement 0x080023e9 Thumb Code 18 quad_encoder.o(i.quad_decrement) - quad_increment 0x080023fb Thumb Code 18 quad_encoder.o(i.quad_increment) - quad_init 0x0800240d Thumb Code 18 quad_encoder.o(i.quad_init) - quad_reset 0x0800241f Thumb Code 12 quad_encoder.o(i.quad_reset) - quad_write 0x0800242d Thumb Code 44 quad_encoder.o(i.quad_write) - spi_error_dump_reboot 0x0800245d Thumb Code 72 main.o(i.spi_error_dump_reboot) - grey_code_lookup 0x080024d4 Data 4 quad_encoder.o(.constdata) - boot_message 0x080024d8 Data 73 main.o(.constdata) - AHBPrescTable 0x08002521 Data 16 system_stm32f0xx.o(.constdata) - APBPrescTable 0x08002531 Data 8 system_stm32f0xx.o(.constdata) - Region$$Table$$Base 0x0800253c Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x0800255c Number 0 anon$$obj.o(Region$$Table) + HAL_TIM_PeriodElapsedCallback 0x08001205 Thumb Code 120 main.o(i.HAL_TIM_PeriodElapsedCallback) + HAL_TIM_TriggerCallback 0x0800128d Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback) + HAL_UART_Init 0x0800128f Thumb Code 108 stm32f0xx_hal_uart.o(i.HAL_UART_Init) + HAL_UART_MspInit 0x080012fd Thumb Code 66 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit) + HAL_UART_Transmit 0x08001349 Thumb Code 200 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit) + HardFault_Handler 0x08001411 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler) + NMI_Handler 0x080015d1 Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler) + PendSV_Handler 0x08001619 Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler) + SPI1_IRQHandler 0x0800161d Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler) + SVC_Handler 0x0800190f Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler) + SysTick_Handler 0x08001911 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler) + SystemClock_Config 0x0800191d Thumb Code 106 main.o(i.SystemClock_Config) + SystemInit 0x08001989 Thumb Code 76 system_stm32f0xx.o(i.SystemInit) + TIM16_IRQHandler 0x080019e5 Thumb Code 10 stm32f0xx_it.o(i.TIM16_IRQHandler) + TIM17_IRQHandler 0x080019f5 Thumb Code 10 stm32f0xx_it.o(i.TIM17_IRQHandler) + TIM_Base_SetConfig 0x08001a05 Thumb Code 124 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig) + TIM_ETR_SetConfig 0x08001a99 Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig) + UART_AdvFeatureConfig 0x08001b07 Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig) + UART_CheckIdleState 0x08001bd1 Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState) + UART_SetConfig 0x08001c45 Thumb Code 316 stm32f0xx_hal_uart.o(i.UART_SetConfig) + UART_WaitOnFlagUntilTimeout 0x08001da1 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) + __0printf$3 0x08001e05 Thumb Code 24 printf3.o(i.__0printf$3) + __1printf$3 0x08001e05 Thumb Code 0 printf3.o(i.__0printf$3) + __2printf 0x08001e05 Thumb Code 0 printf3.o(i.__0printf$3) + __scatterload_copy 0x08001e25 Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x08001e33 Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x08001e35 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + avg_buf_add 0x08002011 Thumb Code 28 main.o(i.avg_buf_add) + byte_to_int16_t 0x08002035 Thumb Code 8 main.o(i.byte_to_int16_t) + calc_arr 0x0800203d Thumb Code 50 main.o(i.calc_arr) + delay_us_init 0x0800207d Thumb Code 12 delay_us.o(i.delay_us_init) + fputc 0x0800208d Thumb Code 18 main.o(i.fputc) + get_buf_avg 0x080020a5 Thumb Code 52 main.o(i.get_buf_avg) + kb_buf_add 0x080020dd Thumb Code 48 helpers.o(i.kb_buf_add) + kb_buf_init 0x0800210d Thumb Code 32 helpers.o(i.kb_buf_init) + kb_buf_is_full 0x0800212d Thumb Code 28 helpers.o(i.kb_buf_is_full) + kb_buf_reset 0x08002149 Thumb Code 28 helpers.o(i.kb_buf_reset) + main 0x08002165 Thumb Code 210 main.o(i.main) + malloc 0x08002271 Thumb Code 92 malloc.o(i.malloc) + mouse_buf_add 0x080022dd Thumb Code 50 helpers.o(i.mouse_buf_add) + mouse_buf_init 0x0800230f Thumb Code 24 helpers.o(i.mouse_buf_init) + mouse_buf_is_full 0x08002327 Thumb Code 28 helpers.o(i.mouse_buf_is_full) + mouse_buf_peek 0x08002343 Thumb Code 22 helpers.o(i.mouse_buf_peek) + mouse_buf_pop 0x08002359 Thumb Code 24 helpers.o(i.mouse_buf_pop) + mouse_buf_reset 0x08002371 Thumb Code 22 helpers.o(i.mouse_buf_reset) + parse_spi_buf 0x08002389 Thumb Code 184 main.o(i.parse_spi_buf) + quad_decrement 0x08002449 Thumb Code 18 quad_encoder.o(i.quad_decrement) + quad_increment 0x0800245b Thumb Code 18 quad_encoder.o(i.quad_increment) + quad_init 0x0800246d Thumb Code 18 quad_encoder.o(i.quad_init) + quad_reset 0x0800247f Thumb Code 12 quad_encoder.o(i.quad_reset) + quad_write 0x0800248d Thumb Code 44 quad_encoder.o(i.quad_write) + spi_error_dump_reboot 0x080024bd Thumb Code 72 main.o(i.spi_error_dump_reboot) + grey_code_lookup 0x08002534 Data 4 quad_encoder.o(.constdata) + boot_message 0x08002538 Data 73 main.o(.constdata) + AHBPrescTable 0x08002581 Data 16 system_stm32f0xx.o(.constdata) + APBPrescTable 0x08002591 Data 8 system_stm32f0xx.o(.constdata) + Region$$Table$$Base 0x0800259c Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x080025bc Number 0 anon$$obj.o(Region$$Table) us_timer 0x20000000 Data 4 delay_us.o(.data) hw_revision 0x20000004 Data 1 main.o(.data) spi_error_occured 0x20000005 Data 1 main.o(.data) @@ -2036,11 +2039,11 @@ Image Symbol Table my_kb_buf 0x200001fc Data 12 main.o(.bss) latest_mouse_event 0x20000208 Data 12 main.o(.bss) protocol_status_lookup 0x20000214 Data 16 main.o(.bss) - avg_buf 0x20000224 Data 16 main.o(.bss) - quad_x 0x20000234 Data 16 main.o(.bss) - __heap_base 0x20000248 Data 0 startup_stm32f072xb.o(HEAP) - __heap_limit 0x20000448 Data 0 startup_stm32f072xb.o(HEAP) - __initial_sp 0x20000848 Data 0 startup_stm32f072xb.o(STACK) + avg_buf 0x20000224 Data 32 main.o(.bss) + quad_x 0x20000244 Data 16 main.o(.bss) + __heap_base 0x20000258 Data 0 startup_stm32f072xb.o(HEAP) + __heap_limit 0x20000458 Data 0 startup_stm32f072xb.o(HEAP) + __initial_sp 0x20000858 Data 0 startup_stm32f072xb.o(STACK) @@ -2050,171 +2053,172 @@ Memory Map of the image Image Entry point : 0x080000c1 - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002584, Max: 0x00010000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000025e4, Max: 0x00010000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000255c, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000025bc, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x08000000 0x08000000 0x000000c0 Data RO 3 RESET startup_stm32f072xb.o - 0x080000c0 0x080000c0 0x00000000 Code RO 3581 * .ARM.Collect$$$$00000000 mc_p.l(entry.o) - 0x080000c0 0x080000c0 0x00000004 Code RO 3883 .ARM.Collect$$$$00000001 mc_p.l(entry2.o) - 0x080000c4 0x080000c4 0x00000004 Code RO 3886 .ARM.Collect$$$$00000004 mc_p.l(entry5.o) - 0x080000c8 0x080000c8 0x00000000 Code RO 3888 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o) - 0x080000c8 0x080000c8 0x00000000 Code RO 3890 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o) - 0x080000c8 0x080000c8 0x00000008 Code RO 3891 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o) - 0x080000d0 0x080000d0 0x00000000 Code RO 3893 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o) - 0x080000d0 0x080000d0 0x00000000 Code RO 3895 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o) - 0x080000d0 0x080000d0 0x00000004 Code RO 3884 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) + 0x080000c0 0x080000c0 0x00000000 Code RO 3582 * .ARM.Collect$$$$00000000 mc_p.l(entry.o) + 0x080000c0 0x080000c0 0x00000004 Code RO 3884 .ARM.Collect$$$$00000001 mc_p.l(entry2.o) + 0x080000c4 0x080000c4 0x00000004 Code RO 3887 .ARM.Collect$$$$00000004 mc_p.l(entry5.o) + 0x080000c8 0x080000c8 0x00000000 Code RO 3889 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o) + 0x080000c8 0x080000c8 0x00000000 Code RO 3891 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o) + 0x080000c8 0x080000c8 0x00000008 Code RO 3892 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o) + 0x080000d0 0x080000d0 0x00000000 Code RO 3894 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o) + 0x080000d0 0x080000d0 0x00000000 Code RO 3896 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o) + 0x080000d0 0x080000d0 0x00000004 Code RO 3885 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) 0x080000d4 0x080000d4 0x0000001c Code RO 4 .text startup_stm32f072xb.o - 0x080000f0 0x080000f0 0x0000002c Code RO 3584 .text mc_p.l(uidiv.o) - 0x0800011c 0x0800011c 0x00000024 Code RO 3588 .text mc_p.l(memcpya.o) - 0x08000140 0x08000140 0x00000024 Code RO 3590 .text mc_p.l(memseta.o) - 0x08000164 0x08000164 0x00000024 Code RO 3913 .text mc_p.l(init.o) - 0x08000188 0x08000188 0x00000048 Code RO 3028 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o - 0x080001d0 0x080001d0 0x0000001c Code RO 2357 i.HAL_Delay stm32f0xx_hal.o - 0x080001ec 0x080001ec 0x00000158 Code RO 2966 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o - 0x08000344 0x08000344 0x00000008 Code RO 2969 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o - 0x0800034c 0x0800034c 0x0000000c Code RO 2970 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o - 0x08000358 0x08000358 0x0000000c Code RO 2361 i.HAL_GetTick stm32f0xx_hal.o - 0x08000364 0x08000364 0x00000010 Code RO 2365 i.HAL_IncTick stm32f0xx_hal.o - 0x08000374 0x08000374 0x00000020 Code RO 2366 i.HAL_Init stm32f0xx_hal.o - 0x08000394 0x08000394 0x00000022 Code RO 2367 i.HAL_InitTick stm32f0xx_hal.o + 0x080000f0 0x080000f0 0x0000002c Code RO 3585 .text mc_p.l(uidiv.o) + 0x0800011c 0x0800011c 0x00000024 Code RO 3589 .text mc_p.l(memcpya.o) + 0x08000140 0x08000140 0x00000024 Code RO 3591 .text mc_p.l(memseta.o) + 0x08000164 0x08000164 0x00000024 Code RO 3914 .text mc_p.l(init.o) + 0x08000188 0x08000188 0x00000048 Code RO 3029 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o + 0x080001d0 0x080001d0 0x0000001c Code RO 2358 i.HAL_Delay stm32f0xx_hal.o + 0x080001ec 0x080001ec 0x00000158 Code RO 2967 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o + 0x08000344 0x08000344 0x00000008 Code RO 2970 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o + 0x0800034c 0x0800034c 0x0000000c Code RO 2971 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o + 0x08000358 0x08000358 0x0000000c Code RO 2362 i.HAL_GetTick stm32f0xx_hal.o + 0x08000364 0x08000364 0x00000010 Code RO 2366 i.HAL_IncTick stm32f0xx_hal.o + 0x08000374 0x08000374 0x00000020 Code RO 2367 i.HAL_Init stm32f0xx_hal.o + 0x08000394 0x08000394 0x00000022 Code RO 2368 i.HAL_InitTick stm32f0xx_hal.o 0x080003b6 0x080003b6 0x00000002 PAD - 0x080003b8 0x080003b8 0x00000044 Code RO 493 i.HAL_MspInit stm32f0xx_hal_msp.o - 0x080003fc 0x080003fc 0x00000014 Code RO 3123 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o - 0x08000410 0x08000410 0x00000008 Code RO 3127 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o - 0x08000418 0x08000418 0x00000120 Code RO 2277 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o - 0x08000538 0x08000538 0x00000154 Code RO 2175 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o - 0x0800068c 0x0800068c 0x0000000c Code RO 2180 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o - 0x08000698 0x08000698 0x00000020 Code RO 2182 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o - 0x080006b8 0x080006b8 0x00000088 Code RO 2183 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o - 0x08000740 0x08000740 0x000003d8 Code RO 2186 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o - 0x08000b18 0x08000b18 0x00000002 Code RO 556 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o + 0x080003b8 0x080003b8 0x00000044 Code RO 494 i.HAL_MspInit stm32f0xx_hal_msp.o + 0x080003fc 0x080003fc 0x00000014 Code RO 3124 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o + 0x08000410 0x08000410 0x00000008 Code RO 3128 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o + 0x08000418 0x08000418 0x00000120 Code RO 2278 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o + 0x08000538 0x08000538 0x00000154 Code RO 2176 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o + 0x0800068c 0x0800068c 0x0000000c Code RO 2181 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o + 0x08000698 0x08000698 0x00000020 Code RO 2183 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o + 0x080006b8 0x080006b8 0x00000088 Code RO 2184 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o + 0x08000740 0x08000740 0x000003d8 Code RO 2187 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o + 0x08000b18 0x08000b18 0x00000002 Code RO 557 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o 0x08000b1a 0x08000b1a 0x00000002 PAD - 0x08000b1c 0x08000b1c 0x000000d4 Code RO 559 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o - 0x08000bf0 0x08000bf0 0x000000b8 Code RO 560 i.HAL_SPI_Init stm32f0xx_hal_spi.o - 0x08000ca8 0x08000ca8 0x00000054 Code RO 495 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o - 0x08000cfc 0x08000cfc 0x00000002 Code RO 566 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o + 0x08000b1c 0x08000b1c 0x000000d4 Code RO 560 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o + 0x08000bf0 0x08000bf0 0x000000b8 Code RO 561 i.HAL_SPI_Init stm32f0xx_hal_spi.o + 0x08000ca8 0x08000ca8 0x00000054 Code RO 496 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o + 0x08000cfc 0x08000cfc 0x00000002 Code RO 567 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o 0x08000cfe 0x08000cfe 0x00000002 PAD - 0x08000d00 0x08000d00 0x000000d4 Code RO 571 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o + 0x08000d00 0x08000d00 0x000000d4 Code RO 572 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o 0x08000dd4 0x08000dd4 0x00000060 Code RO 307 i.HAL_SPI_TxRxCpltCallback main.o - 0x08000e34 0x08000e34 0x00000018 Code RO 3129 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o - 0x08000e4c 0x08000e4c 0x00000002 Code RO 3130 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o + 0x08000e34 0x08000e34 0x00000018 Code RO 3130 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o + 0x08000e4c 0x08000e4c 0x00000002 Code RO 3131 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o 0x08000e4e 0x08000e4e 0x00000002 PAD - 0x08000e50 0x08000e50 0x00000030 Code RO 3131 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o - 0x08000e80 0x08000e80 0x00000008 Code RO 3132 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o - 0x08000e88 0x08000e88 0x00000002 Code RO 1533 i.HAL_TIMEx_BreakCallback stm32f0xx_hal_tim_ex.o - 0x08000e8a 0x08000e8a 0x00000002 Code RO 1534 i.HAL_TIMEx_CommutationCallback stm32f0xx_hal_tim_ex.o - 0x08000e8c 0x08000e8c 0x00000048 Code RO 1550 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o - 0x08000ed4 0x08000ed4 0x00000034 Code RO 894 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o - 0x08000f08 0x08000f08 0x00000078 Code RO 497 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o - 0x08000f80 0x08000f80 0x00000018 Code RO 897 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o - 0x08000f98 0x08000f98 0x00000016 Code RO 899 i.HAL_TIM_Base_Start_IT stm32f0xx_hal_tim.o - 0x08000fae 0x08000fae 0x000000ee Code RO 903 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o - 0x0800109c 0x0800109c 0x00000002 Code RO 925 i.HAL_TIM_IC_CaptureCallback stm32f0xx_hal_tim.o - 0x0800109e 0x0800109e 0x00000162 Code RO 938 i.HAL_TIM_IRQHandler stm32f0xx_hal_tim.o - 0x08001200 0x08001200 0x00000002 Code RO 941 i.HAL_TIM_OC_DelayElapsedCallback stm32f0xx_hal_tim.o - 0x08001202 0x08001202 0x00000002 Code RO 968 i.HAL_TIM_PWM_PulseFinishedCallback stm32f0xx_hal_tim.o - 0x08001204 0x08001204 0x0000006c Code RO 308 i.HAL_TIM_PeriodElapsedCallback main.o - 0x08001270 0x08001270 0x00000002 Code RO 979 i.HAL_TIM_TriggerCallback stm32f0xx_hal_tim.o - 0x08001272 0x08001272 0x0000006c Code RO 1798 i.HAL_UART_Init stm32f0xx_hal_uart.o - 0x080012de 0x080012de 0x00000002 PAD - 0x080012e0 0x080012e0 0x0000004c Code RO 499 i.HAL_UART_MspInit stm32f0xx_hal_msp.o - 0x0800132c 0x0800132c 0x000000c8 Code RO 1806 i.HAL_UART_Transmit stm32f0xx_hal_uart.o - 0x080013f4 0x080013f4 0x00000002 Code RO 427 i.HardFault_Handler stm32f0xx_it.o - 0x080013f6 0x080013f6 0x00000002 PAD - 0x080013f8 0x080013f8 0x000000f4 Code RO 309 i.MX_GPIO_Init main.o - 0x080014ec 0x080014ec 0x0000003c Code RO 310 i.MX_SPI1_Init main.o - 0x08001528 0x08001528 0x00000054 Code RO 311 i.MX_TIM2_Init main.o - 0x0800157c 0x0800157c 0x00000038 Code RO 312 i.MX_USART1_UART_Init main.o - 0x080015b4 0x080015b4 0x00000002 Code RO 428 i.NMI_Handler stm32f0xx_it.o - 0x080015b6 0x080015b6 0x00000002 PAD - 0x080015b8 0x080015b8 0x00000044 Code RO 3133 i.NVIC_SetPriority stm32f0xx_hal_cortex.o - 0x080015fc 0x080015fc 0x00000002 Code RO 429 i.PendSV_Handler stm32f0xx_it.o - 0x080015fe 0x080015fe 0x00000002 PAD - 0x08001600 0x08001600 0x00000010 Code RO 430 i.SPI1_IRQHandler stm32f0xx_it.o - 0x08001610 0x08001610 0x00000036 Code RO 578 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o - 0x08001646 0x08001646 0x0000005e Code RO 579 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o - 0x080016a4 0x080016a4 0x00000034 Code RO 580 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o - 0x080016d8 0x080016d8 0x00000048 Code RO 581 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o - 0x08001720 0x08001720 0x00000052 Code RO 584 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o - 0x08001772 0x08001772 0x00000012 Code RO 587 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o - 0x08001784 0x08001784 0x0000004c Code RO 598 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o - 0x080017d0 0x080017d0 0x00000096 Code RO 603 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o - 0x08001866 0x08001866 0x0000008c Code RO 604 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o - 0x080018f2 0x080018f2 0x00000002 Code RO 431 i.SVC_Handler stm32f0xx_it.o - 0x080018f4 0x080018f4 0x0000000c Code RO 432 i.SysTick_Handler stm32f0xx_it.o - 0x08001900 0x08001900 0x0000006a Code RO 313 i.SystemClock_Config main.o - 0x0800196a 0x0800196a 0x00000002 PAD - 0x0800196c 0x0800196c 0x0000005c Code RO 3550 i.SystemInit system_stm32f0xx.o - 0x080019c8 0x080019c8 0x00000010 Code RO 433 i.TIM16_IRQHandler stm32f0xx_it.o - 0x080019d8 0x080019d8 0x00000010 Code RO 434 i.TIM17_IRQHandler stm32f0xx_it.o - 0x080019e8 0x080019e8 0x00000094 Code RO 980 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o - 0x08001a7c 0x08001a7c 0x00000016 Code RO 987 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o - 0x08001a92 0x08001a92 0x00000010 Code RO 988 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o - 0x08001aa2 0x08001aa2 0x00000022 Code RO 994 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o - 0x08001ac4 0x08001ac4 0x00000026 Code RO 996 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o - 0x08001aea 0x08001aea 0x000000ca Code RO 1811 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o - 0x08001bb4 0x08001bb4 0x00000074 Code RO 1812 i.UART_CheckIdleState stm32f0xx_hal_uart.o - 0x08001c28 0x08001c28 0x0000015c Code RO 1827 i.UART_SetConfig stm32f0xx_hal_uart.o - 0x08001d84 0x08001d84 0x00000062 Code RO 1829 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o - 0x08001de6 0x08001de6 0x00000002 PAD - 0x08001de8 0x08001de8 0x00000020 Code RO 3683 i.__0printf$3 mc_p.l(printf3.o) - 0x08001e08 0x08001e08 0x0000000e Code RO 3925 i.__scatterload_copy mc_p.l(handlers.o) - 0x08001e16 0x08001e16 0x00000002 Code RO 3926 i.__scatterload_null mc_p.l(handlers.o) - 0x08001e18 0x08001e18 0x0000000e Code RO 3927 i.__scatterload_zeroinit mc_p.l(handlers.o) - 0x08001e26 0x08001e26 0x00000002 PAD - 0x08001e28 0x08001e28 0x000001cc Code RO 3690 i._printf_core mc_p.l(printf3.o) - 0x08001ff4 0x08001ff4 0x00000024 Code RO 315 i.avg_buf_add main.o - 0x08002018 0x08002018 0x00000008 Code RO 316 i.byte_to_int16_t main.o - 0x08002020 0x08002020 0x00000010 Code RO 13 i.delay_us_init delay_us.o - 0x08002030 0x08002030 0x00000018 Code RO 318 i.fputc main.o - 0x08002048 0x08002048 0x00000038 Code RO 319 i.get_buf_avg main.o - 0x08002080 0x08002080 0x00000030 Code RO 209 i.kb_buf_add helpers.o - 0x080020b0 0x080020b0 0x00000020 Code RO 210 i.kb_buf_init helpers.o - 0x080020d0 0x080020d0 0x0000001c Code RO 212 i.kb_buf_is_full helpers.o - 0x080020ec 0x080020ec 0x0000001c Code RO 215 i.kb_buf_reset helpers.o - 0x08002108 0x08002108 0x00000108 Code RO 320 i.main main.o - 0x08002210 0x08002210 0x0000006c Code RO 3856 i.malloc mc_p.l(malloc.o) - 0x0800227c 0x0800227c 0x00000032 Code RO 216 i.mouse_buf_add helpers.o - 0x080022ae 0x080022ae 0x00000018 Code RO 217 i.mouse_buf_init helpers.o - 0x080022c6 0x080022c6 0x0000001c Code RO 219 i.mouse_buf_is_full helpers.o - 0x080022e2 0x080022e2 0x00000016 Code RO 220 i.mouse_buf_peek helpers.o - 0x080022f8 0x080022f8 0x00000018 Code RO 221 i.mouse_buf_pop helpers.o - 0x08002310 0x08002310 0x00000016 Code RO 222 i.mouse_buf_reset helpers.o - 0x08002326 0x08002326 0x00000002 PAD - 0x08002328 0x08002328 0x000000c0 Code RO 321 i.parse_spi_buf main.o - 0x080023e8 0x080023e8 0x00000012 Code RO 149 i.quad_decrement quad_encoder.o - 0x080023fa 0x080023fa 0x00000012 Code RO 150 i.quad_increment quad_encoder.o - 0x0800240c 0x0800240c 0x00000012 Code RO 151 i.quad_init quad_encoder.o - 0x0800241e 0x0800241e 0x0000000c Code RO 152 i.quad_reset quad_encoder.o - 0x0800242a 0x0800242a 0x00000002 PAD - 0x0800242c 0x0800242c 0x00000030 Code RO 153 i.quad_write quad_encoder.o - 0x0800245c 0x0800245c 0x00000078 Code RO 322 i.spi_error_dump_reboot main.o - 0x080024d4 0x080024d4 0x00000004 Data RO 154 .constdata quad_encoder.o - 0x080024d8 0x080024d8 0x00000049 Data RO 329 .constdata main.o - 0x08002521 0x08002521 0x00000010 Data RO 3551 .constdata system_stm32f0xx.o - 0x08002531 0x08002531 0x00000008 Data RO 3552 .constdata system_stm32f0xx.o - 0x08002539 0x08002539 0x00000003 PAD - 0x0800253c 0x0800253c 0x00000020 Data RO 3923 Region$$Table anon$$obj.o + 0x08000e50 0x08000e50 0x00000030 Code RO 3132 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o + 0x08000e80 0x08000e80 0x00000008 Code RO 3133 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o + 0x08000e88 0x08000e88 0x00000002 Code RO 1534 i.HAL_TIMEx_BreakCallback stm32f0xx_hal_tim_ex.o + 0x08000e8a 0x08000e8a 0x00000002 Code RO 1535 i.HAL_TIMEx_CommutationCallback stm32f0xx_hal_tim_ex.o + 0x08000e8c 0x08000e8c 0x00000048 Code RO 1551 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o + 0x08000ed4 0x08000ed4 0x00000034 Code RO 895 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o + 0x08000f08 0x08000f08 0x00000078 Code RO 498 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o + 0x08000f80 0x08000f80 0x00000018 Code RO 898 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o + 0x08000f98 0x08000f98 0x00000016 Code RO 900 i.HAL_TIM_Base_Start_IT stm32f0xx_hal_tim.o + 0x08000fae 0x08000fae 0x000000ee Code RO 904 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o + 0x0800109c 0x0800109c 0x00000002 Code RO 926 i.HAL_TIM_IC_CaptureCallback stm32f0xx_hal_tim.o + 0x0800109e 0x0800109e 0x00000162 Code RO 939 i.HAL_TIM_IRQHandler stm32f0xx_hal_tim.o + 0x08001200 0x08001200 0x00000002 Code RO 942 i.HAL_TIM_OC_DelayElapsedCallback stm32f0xx_hal_tim.o + 0x08001202 0x08001202 0x00000002 Code RO 969 i.HAL_TIM_PWM_PulseFinishedCallback stm32f0xx_hal_tim.o + 0x08001204 0x08001204 0x00000088 Code RO 308 i.HAL_TIM_PeriodElapsedCallback main.o + 0x0800128c 0x0800128c 0x00000002 Code RO 980 i.HAL_TIM_TriggerCallback stm32f0xx_hal_tim.o + 0x0800128e 0x0800128e 0x0000006c Code RO 1799 i.HAL_UART_Init stm32f0xx_hal_uart.o + 0x080012fa 0x080012fa 0x00000002 PAD + 0x080012fc 0x080012fc 0x0000004c Code RO 500 i.HAL_UART_MspInit stm32f0xx_hal_msp.o + 0x08001348 0x08001348 0x000000c8 Code RO 1807 i.HAL_UART_Transmit stm32f0xx_hal_uart.o + 0x08001410 0x08001410 0x00000002 Code RO 428 i.HardFault_Handler stm32f0xx_it.o + 0x08001412 0x08001412 0x00000002 PAD + 0x08001414 0x08001414 0x000000f4 Code RO 309 i.MX_GPIO_Init main.o + 0x08001508 0x08001508 0x0000003c Code RO 310 i.MX_SPI1_Init main.o + 0x08001544 0x08001544 0x00000054 Code RO 311 i.MX_TIM2_Init main.o + 0x08001598 0x08001598 0x00000038 Code RO 312 i.MX_USART1_UART_Init main.o + 0x080015d0 0x080015d0 0x00000002 Code RO 429 i.NMI_Handler stm32f0xx_it.o + 0x080015d2 0x080015d2 0x00000002 PAD + 0x080015d4 0x080015d4 0x00000044 Code RO 3134 i.NVIC_SetPriority stm32f0xx_hal_cortex.o + 0x08001618 0x08001618 0x00000002 Code RO 430 i.PendSV_Handler stm32f0xx_it.o + 0x0800161a 0x0800161a 0x00000002 PAD + 0x0800161c 0x0800161c 0x00000010 Code RO 431 i.SPI1_IRQHandler stm32f0xx_it.o + 0x0800162c 0x0800162c 0x00000036 Code RO 579 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o + 0x08001662 0x08001662 0x0000005e Code RO 580 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o + 0x080016c0 0x080016c0 0x00000034 Code RO 581 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o + 0x080016f4 0x080016f4 0x00000048 Code RO 582 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o + 0x0800173c 0x0800173c 0x00000052 Code RO 585 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o + 0x0800178e 0x0800178e 0x00000012 Code RO 588 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o + 0x080017a0 0x080017a0 0x0000004c Code RO 599 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o + 0x080017ec 0x080017ec 0x00000096 Code RO 604 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o + 0x08001882 0x08001882 0x0000008c Code RO 605 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o + 0x0800190e 0x0800190e 0x00000002 Code RO 432 i.SVC_Handler stm32f0xx_it.o + 0x08001910 0x08001910 0x0000000c Code RO 433 i.SysTick_Handler stm32f0xx_it.o + 0x0800191c 0x0800191c 0x0000006a Code RO 313 i.SystemClock_Config main.o + 0x08001986 0x08001986 0x00000002 PAD + 0x08001988 0x08001988 0x0000005c Code RO 3551 i.SystemInit system_stm32f0xx.o + 0x080019e4 0x080019e4 0x00000010 Code RO 434 i.TIM16_IRQHandler stm32f0xx_it.o + 0x080019f4 0x080019f4 0x00000010 Code RO 435 i.TIM17_IRQHandler stm32f0xx_it.o + 0x08001a04 0x08001a04 0x00000094 Code RO 981 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o + 0x08001a98 0x08001a98 0x00000016 Code RO 988 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o + 0x08001aae 0x08001aae 0x00000010 Code RO 989 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o + 0x08001abe 0x08001abe 0x00000022 Code RO 995 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o + 0x08001ae0 0x08001ae0 0x00000026 Code RO 997 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o + 0x08001b06 0x08001b06 0x000000ca Code RO 1812 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o + 0x08001bd0 0x08001bd0 0x00000074 Code RO 1813 i.UART_CheckIdleState stm32f0xx_hal_uart.o + 0x08001c44 0x08001c44 0x0000015c Code RO 1828 i.UART_SetConfig stm32f0xx_hal_uart.o + 0x08001da0 0x08001da0 0x00000062 Code RO 1830 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o + 0x08001e02 0x08001e02 0x00000002 PAD + 0x08001e04 0x08001e04 0x00000020 Code RO 3684 i.__0printf$3 mc_p.l(printf3.o) + 0x08001e24 0x08001e24 0x0000000e Code RO 3926 i.__scatterload_copy mc_p.l(handlers.o) + 0x08001e32 0x08001e32 0x00000002 Code RO 3927 i.__scatterload_null mc_p.l(handlers.o) + 0x08001e34 0x08001e34 0x0000000e Code RO 3928 i.__scatterload_zeroinit mc_p.l(handlers.o) + 0x08001e42 0x08001e42 0x00000002 PAD + 0x08001e44 0x08001e44 0x000001cc Code RO 3691 i._printf_core mc_p.l(printf3.o) + 0x08002010 0x08002010 0x00000024 Code RO 315 i.avg_buf_add main.o + 0x08002034 0x08002034 0x00000008 Code RO 316 i.byte_to_int16_t main.o + 0x0800203c 0x0800203c 0x00000040 Code RO 317 i.calc_arr main.o + 0x0800207c 0x0800207c 0x00000010 Code RO 13 i.delay_us_init delay_us.o + 0x0800208c 0x0800208c 0x00000018 Code RO 318 i.fputc main.o + 0x080020a4 0x080020a4 0x00000038 Code RO 319 i.get_buf_avg main.o + 0x080020dc 0x080020dc 0x00000030 Code RO 209 i.kb_buf_add helpers.o + 0x0800210c 0x0800210c 0x00000020 Code RO 210 i.kb_buf_init helpers.o + 0x0800212c 0x0800212c 0x0000001c Code RO 212 i.kb_buf_is_full helpers.o + 0x08002148 0x08002148 0x0000001c Code RO 215 i.kb_buf_reset helpers.o + 0x08002164 0x08002164 0x0000010c Code RO 320 i.main main.o + 0x08002270 0x08002270 0x0000006c Code RO 3857 i.malloc mc_p.l(malloc.o) + 0x080022dc 0x080022dc 0x00000032 Code RO 216 i.mouse_buf_add helpers.o + 0x0800230e 0x0800230e 0x00000018 Code RO 217 i.mouse_buf_init helpers.o + 0x08002326 0x08002326 0x0000001c Code RO 219 i.mouse_buf_is_full helpers.o + 0x08002342 0x08002342 0x00000016 Code RO 220 i.mouse_buf_peek helpers.o + 0x08002358 0x08002358 0x00000018 Code RO 221 i.mouse_buf_pop helpers.o + 0x08002370 0x08002370 0x00000016 Code RO 222 i.mouse_buf_reset helpers.o + 0x08002386 0x08002386 0x00000002 PAD + 0x08002388 0x08002388 0x000000c0 Code RO 321 i.parse_spi_buf main.o + 0x08002448 0x08002448 0x00000012 Code RO 149 i.quad_decrement quad_encoder.o + 0x0800245a 0x0800245a 0x00000012 Code RO 150 i.quad_increment quad_encoder.o + 0x0800246c 0x0800246c 0x00000012 Code RO 151 i.quad_init quad_encoder.o + 0x0800247e 0x0800247e 0x0000000c Code RO 152 i.quad_reset quad_encoder.o + 0x0800248a 0x0800248a 0x00000002 PAD + 0x0800248c 0x0800248c 0x00000030 Code RO 153 i.quad_write quad_encoder.o + 0x080024bc 0x080024bc 0x00000078 Code RO 322 i.spi_error_dump_reboot main.o + 0x08002534 0x08002534 0x00000004 Data RO 154 .constdata quad_encoder.o + 0x08002538 0x08002538 0x00000049 Data RO 329 .constdata main.o + 0x08002581 0x08002581 0x00000010 Data RO 3552 .constdata system_stm32f0xx.o + 0x08002591 0x08002591 0x00000008 Data RO 3553 .constdata system_stm32f0xx.o + 0x08002599 0x08002599 0x00000003 PAD + 0x0800259c 0x0800259c 0x00000020 Data RO 3924 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800255c, Size: 0x00000848, Max: 0x00004000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080025bc, Size: 0x00000858, Max: 0x00004000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x0800255c 0x00000004 Data RW 15 .data delay_us.o - 0x20000004 0x08002560 0x00000010 Data RW 330 .data main.o - 0x20000014 0x08002570 0x00000004 Data RW 2372 .data stm32f0xx_hal.o - 0x20000018 0x08002574 0x00000004 Data RW 3553 .data system_stm32f0xx.o - 0x2000001c 0x08002578 0x00000004 Data RW 3897 .data mc_p.l(stdout.o) - 0x20000020 0x0800257c 0x00000004 Data RW 3900 .data mc_p.l(mvars.o) - 0x20000024 0x08002580 0x00000004 Data RW 3901 .data mc_p.l(mvars.o) - 0x20000028 - 0x0000021c Zero RW 323 .bss main.o - 0x20000244 0x08002584 0x00000004 PAD - 0x20000248 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o - 0x20000448 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o + 0x20000000 0x080025bc 0x00000004 Data RW 15 .data delay_us.o + 0x20000004 0x080025c0 0x00000010 Data RW 330 .data main.o + 0x20000014 0x080025d0 0x00000004 Data RW 2373 .data stm32f0xx_hal.o + 0x20000018 0x080025d4 0x00000004 Data RW 3554 .data system_stm32f0xx.o + 0x2000001c 0x080025d8 0x00000004 Data RW 3898 .data mc_p.l(stdout.o) + 0x20000020 0x080025dc 0x00000004 Data RW 3901 .data mc_p.l(mvars.o) + 0x20000024 0x080025e0 0x00000004 Data RW 3902 .data mc_p.l(mvars.o) + 0x20000028 - 0x0000022c Zero RW 323 .bss main.o + 0x20000254 0x080025e4 0x00000004 PAD + 0x20000258 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o + 0x20000458 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o ============================================================================== @@ -2226,7 +2230,7 @@ Image component sizes 16 4 0 4 0 490820 delay_us.o 306 0 0 0 0 7297 helpers.o - 1454 200 73 16 540 16731 main.o + 1550 216 73 16 556 17153 main.o 114 4 4 0 0 3719 quad_encoder.o 28 8 192 0 1536 632 startup_stm32f072xb.o 122 18 0 4 0 3631 stm32f0xx_hal.o @@ -2244,7 +2248,7 @@ Image component sizes 92 16 24 4 0 1143 system_stm32f0xx.o ---------------------------------------------------------------------- - 8432 568 328 28 2080 580199 Object Totals + 8528 584 328 28 2096 580621 Object Totals 0 0 32 0 0 0 (incl. Generated) 24 0 3 0 4 0 (incl. Padding) @@ -2290,15 +2294,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 9236 612 328 40 2080 576407 Grand Totals - 9236 612 328 40 2080 576407 ELF Image Totals - 9236 612 328 40 0 0 ROM Totals + 9332 628 328 40 2096 576785 Grand Totals + 9332 628 328 40 2096 576785 ELF Image Totals + 9332 628 328 40 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 9564 ( 9.34kB) - Total RW Size (RW Data + ZI Data) 2120 ( 2.07kB) - Total ROM Size (Code + RO Data + RW Data) 9604 ( 9.38kB) + Total RO Size (Code + RO Data) 9660 ( 9.43kB) + Total RW Size (RW Data + ZI Data) 2136 ( 2.09kB) + Total ROM Size (Code + RO Data + RW Data) 9700 ( 9.47kB) ============================================================================== diff --git a/firmware/apple_all/MDK-ARM/apple_all/apple_all_apple_all.dep b/firmware/apple_all/MDK-ARM/apple_all/apple_all_apple_all.dep index bedfdc0..c0df33f 100644 --- a/firmware/apple_all/MDK-ARM/apple_all/apple_all_apple_all.dep +++ b/firmware/apple_all/MDK-ARM/apple_all/apple_all_apple_all.dep @@ -113,7 +113,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893) I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x5DFA0893) I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893) I (../Inc/shared.h)(0x617487BD) -F (../Src/main.c)(0x626C6950)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include -I.\RTE\_apple_all -IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include -IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include -D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB -o apple_all\main.o --omf_browse apple_all\main.crf --depend apple_all\main.d) +F (../Src/main.c)(0x626D47D2)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include -I.\RTE\_apple_all -IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include -IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include -D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB -o apple_all\main.o --omf_browse apple_all\main.crf --depend apple_all\main.d) I (../Inc/main.h)(0x626C509E) I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893) I (../Inc/stm32f0xx_hal_conf.h)(0x626C509E) diff --git a/firmware/apple_all/MDK-ARM/apple_all/main.crf b/firmware/apple_all/MDK-ARM/apple_all/main.crf index 6b5875b1dcc14ad02cbd91a05a96e34e685fc254..c28f579ad4bc1aad65b6d9fd1c3dc6a2dba7bf9d 100644 GIT binary patch delta 6495 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 I{?Kmze|xQ+VE_OC diff --git a/firmware/apple_all/MDK-ARM/apple_all/main.o b/firmware/apple_all/MDK-ARM/apple_all/main.o index 000f007f7e2128f80b3c6d01bf44b3a3b4682b39..011f331f44461ae34d6b1dff3f03aa519c240de1 100644 GIT binary patch delta 31130 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 Dy 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 delta 30627 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 Oc3ZHV%wJ3t?*4z|hpdGF diff --git a/firmware/apple_all/New Text Document.txt b/firmware/apple_all/New Text Document.txt new file mode 100644 index 0000000..86a3d25 --- /dev/null +++ b/firmware/apple_all/New Text Document.txt @@ -0,0 +1,7 @@ + // int32_t ddd = calc_arr(avg_speed); + // if(ddd != 65535) + // printf("%d\n", calc_arr(avg_speed)); + + + // return (uint16_t)(-190*speed_val + 12690); // 1, 12500 | 64, 500 +int32_t result = -307*speed_val + 12807; // 1, 12500, 40, 500 \ No newline at end of file diff --git a/firmware/apple_all/Src/main.c b/firmware/apple_all/Src/main.c index 1e5dfca..a4aa47c 100644 --- a/firmware/apple_all/Src/main.c +++ b/firmware/apple_all/Src/main.c @@ -182,10 +182,10 @@ void spi_error_dump_reboot(void) const char boot_message[] = "USB4VC Protocol Board\nEarly Macintosh & Apple Desktop Bus\ndekuNukem 2022"; #define AVG_BUF_SIZE 8 -int16_t avg_buf[AVG_BUF_SIZE]; +int32_t avg_buf[AVG_BUF_SIZE]; uint8_t avg_buf_index; -void avg_buf_add(int16_t value) +void avg_buf_add(int32_t value) { avg_buf[avg_buf_index] = value; avg_buf_index++; @@ -216,15 +216,16 @@ value = us uint16_t calc_arr(int32_t speed_val) { - return 10000; speed_val = abs(speed_val); - if(speed_val <= 0) - return 65535; - if(speed_val >= 64) + if(speed_val <= 0 || speed_val >= 64) return 500; - return (uint16_t)(-307*speed_val + 12807); // 1, 12500 | 64, 500 - // return (uint16_t)(-190*speed_val + 12690); // 1, 12500 | 64, 500 - + // int32_t result = -190*speed_val + 12690; // 1, 12500 | 64, 500 + int32_t result = -307*speed_val + 12807; // 1, 12500, 40, 500 + if (result < 500) + result = 500; + if(result > 12500) + result = 12500; + return (uint16_t)result; } quad_output quad_x; @@ -240,7 +241,7 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) // every 10ms if(htim == &htim17) { - // HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_2); + HAL_GPIO_TogglePin(MX1_GPIO_Port, MX1_Pin); mouse_event* this_mouse_event = mouse_buf_peek(&my_mouse_buf); if(this_mouse_event == NULL) { @@ -253,14 +254,11 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) } avg_speed = get_buf_avg(); htim16.Instance->ARR = calc_arr(avg_speed); - // int32_t ddd = calc_arr(avg_speed); - // if(ddd != 65535) - // printf("%d\n", calc_arr(avg_speed)); } // every ARR overflow if(htim == &htim16 && avg_speed != 0) { - // HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3); + HAL_GPIO_TogglePin(MX2_GPIO_Port, MX2_Pin); if(avg_speed > 0) quad_increment(&quad_x); else @@ -461,7 +459,7 @@ static void MX_TIM16_Init(void) htim16.Init.Period = 65535; htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim16.Init.RepetitionCounter = 0; - htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; if (HAL_TIM_Base_Init(&htim16) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); diff --git a/firmware/apple_all/apple_all.ioc b/firmware/apple_all/apple_all.ioc index 7fe741f..85fd432 100644 --- a/firmware/apple_all/apple_all.ioc +++ b/firmware/apple_all/apple_all.ioc @@ -214,7 +214,8 @@ SPI1.IPParameters=VirtualType,Mode,Direction,VirtualNSS,DataSize SPI1.Mode=SPI_MODE_SLAVE SPI1.VirtualNSS=VM_NSSHARD SPI1.VirtualType=VM_SLAVE -TIM16.IPParameters=Prescaler,Period +TIM16.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE +TIM16.IPParameters=Prescaler,Period,AutoReloadPreload TIM16.Period=65535 TIM16.Prescaler=47 TIM17.IPParameters=Prescaler,Period diff --git a/firmware/apple_all/scrap.txt b/firmware/apple_all/scrap.txt new file mode 100644 index 0000000..e69de29