From bd8ce065e4775bf659165dfe081eaf00079bec11 Mon Sep 17 00:00:00 2001 From: yunhai8432 Date: Fri, 17 Oct 2025 15:56:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=91=E5=8F=B0=E6=9C=80=E7=BB=88=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MDK-ARM/gimbal.uvguix.yunha | 75 +- MDK-ARM/gimbal.uvoptx | 30 +- MDK-ARM/gimbal.uvprojx | 10 +- MDK-ARM/gimbal/ai.crf | Bin 937508 -> 937467 bytes MDK-ARM/gimbal/ai.o | Bin 1014172 -> 1014152 bytes MDK-ARM/gimbal/atti_esti.crf | Bin 936870 -> 936829 bytes MDK-ARM/gimbal/atti_esti.o | Bin 1013256 -> 1013236 bytes MDK-ARM/gimbal/config.crf | Bin 936627 -> 936586 bytes MDK-ARM/gimbal/config.o | Bin 1008780 -> 1008760 bytes MDK-ARM/gimbal/gimbal.axf | Bin 2035028 -> 2034604 bytes MDK-ARM/gimbal/gimbal.build_log.htm | 6 +- MDK-ARM/gimbal/gimbal.crf | Bin 935227 -> 934814 bytes MDK-ARM/gimbal/gimbal.hex | 6513 +++++++++++++-------------- MDK-ARM/gimbal/gimbal.htm | 354 +- MDK-ARM/gimbal/gimbal.lnp | 2 +- MDK-ARM/gimbal/gimbal.map | 2533 +++++------ MDK-ARM/gimbal/gimbal.o | Bin 1015644 -> 1015224 bytes MDK-ARM/gimbal/gimbal_ctrl.crf | Bin 938622 -> 938581 bytes MDK-ARM/gimbal/gimbal_ctrl.o | Bin 1011896 -> 1011876 bytes MDK-ARM/gimbal/gimbal_gimbal.dep | 34 +- MDK-ARM/gimbal/init.crf | Bin 935018 -> 934977 bytes MDK-ARM/gimbal/init.o | Bin 1010456 -> 1010436 bytes MDK-ARM/gimbal/remote.crf | Bin 935311 -> 935270 bytes MDK-ARM/gimbal/remote.o | Bin 1012236 -> 1012216 bytes User/module/config.c | 1 + User/module/gimbal.c | 48 +- User/module/gimbal.h | 1 - 27 files changed, 4814 insertions(+), 4793 deletions(-) diff --git a/MDK-ARM/gimbal.uvguix.yunha b/MDK-ARM/gimbal.uvguix.yunha index 9345efd..5e3a571 100644 --- a/MDK-ARM/gimbal.uvguix.yunha +++ b/MDK-ARM/gimbal.uvguix.yunha @@ -110,8 +110,8 @@ 0 - 60 - 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000 + 613 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000600000002000000010000002C443A5C79756E68615CD4C6CCA85CB4F3BDAEB5E7BBFA5C67696D62616C5C557365725C6273705C63616E2E63000000000563616E2E6300000000C5D4F200FFFFFFFF32443A5C79756E68615CD4C6CCA85CB4F3BDAEB5E7BBFA5C67696D62616C5C557365725C6D6F64756C655C67696D62616C2E63000000000867696D62616C2E6300000000FFDC7800FFFFFFFF32443A5C79756E68615CD4C6CCA85CB4F3BDAEB5E7BBFA5C67696D62616C5C557365725C6D6F64756C655C67696D62616C2E68000000000867696D62616C2E6800000000BECEA100FFFFFFFF32443A5C79756E68615CD4C6CCA85CB4F3BDAEB5E7BBFA5C67696D62616C5C557365725C6D6F64756C655C636F6E6669672E630000000008636F6E6669672E6300000000F0A0A100FFFFFFFF32443A5C79756E68615CD4C6CCA85CB4F3BDAEB5E7BBFA5C67696D62616C5C557365725C636F6D706F6E656E745C636D642E630000000005636D642E6300000000BCA8E100FFFFFFFF32443A5C79756E68615CD4C6CCA85CB4F3BDAEB5E7BBFA5C67696D62616C5C557365725C636F6D706F6E656E745C636D642E680000000005636D642E68000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F700000066000000A00500006C020000 @@ -134,7 +134,7 @@ 16 - F783FFFF5985FFFFA088FFFF2A86FFFF + F700000070020000A005000041030000 @@ -1799,14 +1799,14 @@ 3430 - 000000000A000000000000000080000001000000FFFFFFFFFFFFFFFFF700000055020000A005000059020000010000000100001004000000010000007EFDFFFFEBFFFFFF00000000000000000000000001000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000FFFF02000B004354616262656450616E650080000001000000F783FFFF5985FFFFA088FFFF2A86FFFFF700000059020000A00500002A0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000020000000000000FFFFFFFFFFFFFFFFB8000000BF00000028040000C3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D60100004589000001800020000000000000B883FFFF4F83FFFF2887FFFFBF83FFFFB80000004F00000028040000BF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF700300004F00000074030000AC010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000007486FFFF4F83FFFF2887FFFFAC84FFFF740300004F00000028040000AC01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000080000000000000FFFFFFFFFFFFFFFF0000000098010000280400009C0100000000000001000000040000000100000000000000000000000000000000000000000000000100000000000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000009382FFFF2F82FFFF0183FFFF9D84FFFF93FFFFFF2FFFFFFF010000009D01000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF140200009C010000180200002002000000000000020000000400000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000010000001000000FFFFFFFFFFFFFFFFF30000004F000000F70000002A03000001000000020000100400000001000000B2FEFFFF4704000000000000000000000000000001000000FFFFFFFF05000000ED0300006D000000C400000073940000C3000000018000100000010000000083FFFF4F83FFFFF383FFFF2A86FFFF000000004F000000F30000002A0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED03000001000000FFFF02001400434D756C746950616E654672616D65576E64457800010084BE000000D5000000D20200004501000000000000000000000200000000000000C60000000000000000000000000000000000000001000000C60000000000000000000000 + 000000000A000000000000000080000001000000FFFFFFFFFFFFFFFFF700000055020000A005000059020000010000000100001004000000010000007EFDFFFFEBFFFFFF00000000000000000000000001000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000FFFF02000B004354616262656450616E650080000001000000F700000070020000A005000041030000F700000059020000A00500002A0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000020000000000000FFFFFFFFFFFFFFFFB8000000BF00000028040000C3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D60100004589000001800020000000000000B80000006600000028040000D6000000B80000004F00000028040000BF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF700300004F00000074030000AC010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000740300006600000028040000C3010000740300004F00000028040000AC01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000080000000000000FFFFFFFFFFFFFFFF0000000098010000280400009C0100000000000001000000040000000100000000000000000000000000000000000000000000000100000000000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000093FFFFFF46FFFFFF01000000B401000093FFFFFF2FFFFFFF010000009D01000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF140200009C010000180200002002000000000000020000000400000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000010000001000000FFFFFFFFFFFFFFFFF30000004F000000F70000002A03000001000000020000100400000001000000B2FEFFFF4704000000000000000000000000000001000000FFFFFFFF05000000ED0300006D000000C400000073940000C3000000018000100000010000000000000066000000F300000041030000000000004F000000F30000002A0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED03000001000000FFFF02001400434D756C746950616E654672616D65576E64457800010084BE000000D5000000D20200004501000000000000000000000200000000000000C60000000000000000000000000000000000000001000000C60000000000000000000000 59392 File 2873 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000400000000000000000000000000000000000001000000010000009600000002002050000000000A52435F72657374617274960000000000000014000A52435F726573746172741372656D6F74655F636F6E74726F6C5F696E69740C4253505F43414E5F496E69740A67696D62616C5F636D640F434D445F47696D62616C436D645F7401670543414E5F740B414852535F45756C725F740847696D62616C5F7412504F534954494F4E5F544F4C4552414E434512566973696F6E5F50726F63657373427974650A4D4F544F525F524D5F740F43414E5F636D645F545249474745520A434D445F486F73745F7408636D645F686F73740E41495F4E4F544943455F464952450A43524331365F43616C630A474D363032305F504944114253505F43414E5F46696E6451756575650571756575650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000A52435F72657374617274960000000000000014000A52435F726573746172741372656D6F74655F636F6E74726F6C5F696E69740C4253505F43414E5F496E69740A67696D62616C5F636D640F434D445F47696D62616C436D645F7401670543414E5F740B414852535F45756C725F740847696D62616C5F7412504F534954494F4E5F544F4C4552414E434512566973696F6E5F50726F63657373427974650A4D4F544F525F524D5F740F43414E5F636D645F545249474745520A434D445F486F73745F7408636D645F686F73740E41495F4E4F544943455F464952450A43524331365F43616C630A474D363032305F504944114253505F43414E5F46696E6451756575650571756575650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3598,4 +3598,67 @@ + + 1 + 0 + + 100 + 2 + + ..\User\bsp\can.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\module\gimbal.c + 7 + 263 + 246 + 1 + + 0 + + + ../User/module/gimbal.h + 16 + 25 + 28 + 1 + + 0 + + + ..\User\module\config.c + 3 + 127 + 51 + 1 + + 0 + + + ..\User\component\cmd.c + 13 + 1 + 5 + 1 + + 0 + + + ..\User\component\cmd.h + 17 + 40 + 49 + 1 + + 0 + + + + diff --git a/MDK-ARM/gimbal.uvoptx b/MDK-ARM/gimbal.uvoptx index 436245c..74a04aa 100644 --- a/MDK-ARM/gimbal.uvoptx +++ b/MDK-ARM/gimbal.uvoptx @@ -157,22 +157,6 @@ 0 0 - 39 - 1 -
0
- 0 - 0 - 0 - 0 - 0 - 0 - ..\User\module\gimbal.c - - -
- - 1 - 0 38 1
0
@@ -187,7 +171,7 @@
- 2 + 1 0 38 1 @@ -994,8 +978,8 @@ 0 0 0 - ..\User\component\crc8.c - crc8.c + ..\User\component\filter.c + filter.c 0 0 @@ -1006,8 +990,8 @@ 0 0 0 - ..\User\component\crc16.c - crc16.c + ..\User\component\crc8.c + crc8.c 0 0 @@ -1018,8 +1002,8 @@ 0 0 0 - ..\User\component\filter.c - filter.c + ..\User\component\crc16.c + crc16.c 0 0 diff --git a/MDK-ARM/gimbal.uvprojx b/MDK-ARM/gimbal.uvprojx index feb392c..a04986c 100644 --- a/MDK-ARM/gimbal.uvprojx +++ b/MDK-ARM/gimbal.uvprojx @@ -1920,6 +1920,11 @@ 1 ..\User\component\cmd.c + + filter.c + 1 + ..\User\component\filter.c + crc8.c 1 @@ -1930,11 +1935,6 @@ 1 ..\User\component\crc16.c - - filter.c - 1 - ..\User\component\filter.c - freertos_cli.c 1 diff --git a/MDK-ARM/gimbal/ai.crf b/MDK-ARM/gimbal/ai.crf index b3566da10a46238d823a723c667f390ebae86bc3..f7a2951279311c624f37c73f4fa84eb92fb36076 100644 GIT binary patch delta 4368 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 delta 1651 zcmZ|OT}+#06bJCdEC@2RXg>**26tugW# ze!HQp^0!6?d+VdhVO1$zVd_&5vPY$WEi~}dFEky-(F}m?u$!M)1QU7>G^`1;~zkj*V zYW1{qUhR9s-*~?2O}ocyM>tDs*RTJo-jT@_ww(pd_QE=6?K%I2wj%xUx+=&>eX-y< z3hPsqr8}N0cl16d+n%aSeMM?tC8Yh|0fm@O&<^WknwGiW2_q?5hW+@qeyFAR6VB+7V>8P~Hz0 z(|~Tm==(y6)ZN2B#1dr;v19n7MLQ;EkaU^$FN`S>6u5nc_IoKIr!dG=W1cWJjq~L@ z%>^J^X~SL0gam$Z(grsrDcFtJowGV(%#tD}*SQLd4*QcI~hs@g7RA(5sw=_X;g^Vvq@7p6SOLGYsh` zrjXCf!Oeuw$E;$Ssly7>fNiD;=^X@3&J3fC8OI1Shec)?8_YUPoy0$|5r)L?aiNo% z$-@9=otR~O2s1%Mm?>nxOXR`DoJKdZj0vV6OH2@(%p8)shy|1|K6sg73^L=GXXdcR zEJJn^>&R!Ea5FR@Ljy8qtS~en(}nb_^qz?il<3-f&(WRtq!!w!LYIy(RxC13Y%l?s zt`WnqF%~p3#Ta0kFw2+`X6g`O8j#&X&mw-p>pk==W^~ghy}$&sfF))fo6Hj=_43k( zDDB-@>ZMP*e~@uvo@v4w6N0=>tRkN&hMUPlAJc$ohNfkvu+2D;{+^br#3LoP_NGmg z__1AkNp7KyOR+!Gzh$pv-YZ$KNF|<~X@V(01Yl#P(8$bSfC*uiSw)!HLWHp(yN`GX L7t@aJKJCzd;cN9u diff --git a/MDK-ARM/gimbal/atti_esti.crf b/MDK-ARM/gimbal/atti_esti.crf index ea5be02a4d46e18136889da2ed4f025afbac2ad7..c6c0e8e58f3ad63f6291ac166bfafa110029ffe0 100644 GIT binary patch delta 3226 zcmZu!4RBP|6~1@(C2StMZ-Ychh#@zD2$6u1KuF*rntk~(f~{3dHIQY=zJw*&Y$hy) zWNh_TF*I|F$ZVbTQSbsM?CK;-aQ|Tjb$_Z{rpcenPb|J@aAn* zy!R} zfWJSmnGIcn?+rznY5II}bzy9TOX0v4rX;*pc!~-2uv~MePp+B$60*VHAC5#LeXNzT zU5Q;>#3R4Ox0w6?&tCr~Nl1^3yw0 z9uMvO1HC)a9*Xv}FB1i6QybY7vgz$Xe>(2$xH#G;6Ze%JmkJ}(#jrmna??2t2W~3$ zhJtMS&|k|7%;9=D>#DawMK(p*C*+kXI+(1^{=Nt^62h*KIj>&M=VO_$sxgF7Pd?2Q zn;2}&{%zknRoAfIzTQ8eBimh>;MMO~!5?RWiJ{<66H~2IfN{|sXp@!+Ecv!3E=wOT z7uT8;?F*n9?65hdL7p*q2GLXn`W}{MqBAVMiDlzhDm3{np2)(tHZjdQ6*9OfFP)71 z4`15yJp?^F&SZCzf}Xy#1u+N7lKS#+CHJj*)W0GW#&%IQx~oyHE&8+FnijjKZld%} z-Fin*&|?re3x>p;#4y#TksUdP<&8GYlfTH_#Ud zGY1{I6dVVa9`%qpa(hle4V}w zBh$rEHSD&&@5Dt@qxxU!x*l8?Xzyaf@$#GG0KZ{xj61fl|0F!t7e;zN`(m6vz&^Jx z;NBDC?r@;9#~oA$4^DlRme*++BbV8bIgq)Kc?Mq<-*TILq*&T$@Kg7dMPiZe_pA~ zce;Y$bc25wFJGvp3;=! zHa8oAS|(DZ8HN?V=;|C%4Rjo+Tr3270qAP6AX&y<1ez<xmXmMJL;8doYx7jd9q$9bNWQK`40k3;%hUnL8*0qM_e$!+n}_z zSV?LC3p|lCD%`q>T$KHeD7wS5MQLnXP zGytJ^dDVb8Z8{p2s(Ls35NfATpM=L+Sn=qp8^kEk-+{Ws8$cfcb&J=MZuT)ySg8Bp z+yVn;N9_~G&4EUxaN1^Z6x3&+2E-vCJf!Lm#Z%_7M&&B$ZY~}*|9~B(ZCpHHdYXV9 ziFpawq!R3sXbUUm>@hVaeAK``SR zV8a{X6XFJ-!$2isInWWHQn3u^+1Y?I#nR+db`)rqNIeaB6104SN70vKV3FypxxQH` zYQ~#!8ssp@s}24uz>ze32QUVR2j!Q5#{nx0J_h&#Ao868d@&7ACQI2%W};aUg9#iV z9>Zp$CYj4#1}YHRGD%w{Y2TN+k{`35&{XLFlsBQ232nKw8_MWBXx9pD0e>9Y2`JS SOQ1NlAph+-3IB_*(*Fapde8s> delta 3218 zcmZu!eQ;FO6~8z8$ZlSCUjhV4NJ1`w;75`s5*m}ZRUj`}2t>uk2#Lvd$-X2D*(4J- zlE94FYTLA;%pf(dSX2=CvSQgNEJ}@3sHLs7%CwH`QpIXpYilXC)<3Lmf9LIct083O zy!oBq`MBqvd(X}6=VR6T^=j8!GGi&6sV|Rnwl3m&TgkZp#Kg~28UE7F&1WgIcZiIv z`;?4PC4)m!AU22unFdLP*dY!`T2#r94_4&OVR@92&G4*fT()$TxA9iB4xgr5Z)Yd; zqs!zQYMzPkX~90f#`ec%F_BfsnFLDqYds;Kci6XyJ#+=WKM-PL`odbdGWXdCmx8__ z=89#Q;RX}vWf}UWTDj`#D6+xd8|(}94X_rKrB14D&=v}s&{KWeI0?&F#9x?^M$EJA)D6W_a@@b zPKu*-l5wAXIZh$d7h!M4G7~w&DcGgdAMmrSJKnuEr`TxkX;6KGA@(78S10&LRc1f-Xc&GDVWb zrEpJTsoUgRIhBQPRcy9d8ZtO3FO^6B2c}r=G)xFOG|6NgCk5@jvIQ~w$U>J=U|-I! zYa#EdKoHA?*o6LGy=6Z-qO$^4X`p-P_jkzC~LBCEO6fqR^hMv1zu3qssRM_L& zxWT*0w?P~1XRR^CY!WOse~77+Je%eiL~6fpz!zkk$}R-Q!6nAMTaPrSuzi8$aML*ZkZHE>mXI>#QmknEJc zy+NMaHaebo3ev2q1Thrlid~hcY6*hUI|Dr-ZNN*9%~s3RL0cr|n02yMVA47@&A-mq zv4QRc)N_|iwmdCCy`SIlMJF4BkDKPTy%*~eD>&Ryf&8T57adiy#%u|sxJf1^O2 zyW|NY&BbIG>BH>rll0Aagv_!jO}de0V}}n9{Zif8C|4~yIL__en$NEdu$XmNPLR{c zl^rC?xbZ|GF2E+DcQ?vwCD&OV=Cw9RS(q0`&##tSQx+Tn=RQH77wL0`T&{*(11W}- zhWYAfYm=$YEZQD=Ip|ykb3acp)Q@FmkE6VZKd& zqF5P{+QWQtbZ&|ATQ2XSr5?qnKKh?hg{Lg2fW8>=RY)bI3Q`TJf!v5JMPYtYpI5GY zx8z$C`fd7rhd!h9`5t}lr_WaUJb;gyALhrSzbjY1VsmKVI>Y?^X!>I19mP=&_4+Um zMn7JrJi>GB?CA)17l^ue20IKSgnK?bwuJe7{eY?z+-zqN&_$vq?quUY3x(08!*M&q zKX>=FVlmKjK-Y;yKu3X!MR~l49Rn&6V|7YSs{3KoRH`qiQyOiRB2N$1DP=adn6B@y zQ;KZMgk67)fJgjS|972IZM#KW(ihb$t#{g499h_>7N9%&`}Imiww?V6wk~lBJNq+G zw{Y)4;x@g^qs)T!LvTUyJgk2O>J{$Yur}#;d6eAQgMu1x5&V!i1oRJ}En*)Ydu5^Y zO)hro$304gG|I&`{UV_UxwubXxLj$H#yEC&&vNCOhR3-0W8A^Ej&r0Ie*k;{a1R$3 z;`7*pfP1+x_IlY3b-#{6Zi%O{ZSbL91ocbHm6;68vfa!j>1Me_#8}Rpm z>B_eNKWyT)z+)y}1FQqnM63e-fr(cF?=*1(@FT!f&eC|=2>YR_EI~&wytOk#3lLt5 z+L>Yv&|^SZq8aFMpjn~`XgAPR;&z}tK(obdKzJBxb3`N1UZ6Q*CD4;Vxnc#-KA=3| z0oo6gZ(Q92Kr7~oTHIZl-vEr5|5_oaltV!C#7#g?0Tl{2(2s!T<5JILPXjFw#?)il z)$B0es5dky`F9}C>o}7mu;V#+4KM-C z;IRZe6)$8_J<_0vk#nfv_&635H{fPJ50oR+uSx11lDbA(A9t}AK+Q3!bm%9b=L#6r zcK!kMpFqzS>P?c`CVh?+FG4S%D~}OS*GXlVf(cObgzA>|KzRvDkx*}zc0xH>3hjEK iF52Q0w`<$cvvFY7G>d>gT_COTupuR``FH0>&f& diff --git a/MDK-ARM/gimbal/atti_esti.o b/MDK-ARM/gimbal/atti_esti.o index acffe69b60e6b98e48bfa4657e35ed351c6a06e8..327bba8924319ada819392e319ad54fb4d266f46 100644 GIT binary patch delta 1185 zcmZwFPfS!-7zOZqhd%Go{TK4W#TG@8AtNTOSZrB;z+a79d4+JjGdcU6a zYKccuBq^4ZNJ=GJBxRCvNri;7l@gyj>oq@J)?-L~W3sic7ach?FxV4|+XuTlZAWcA zTB>*B<4F_HZ@XVkn!_G_0uQg7u(t8+x{2z39KB(Jde9xaVK#Khx4LNCFZk-FIaH+H zx`dURCgg5QnO)w}p3uH`LTWPjW836Vag}>1Z9ZtP4F~&L0s(tp&)H+)_rB;GY7N=` z7R>))YTSQ*H+OezeR073{+aoxy5_~g_G8#*)w_Ev>w;YEN0av_jh{Ymcr%Oekqi8TBvjzAuFz85UE>ks0Vd=^x)R>hWfO8xdL2 zQ6$JoOcR9#Qj9g?psru&MF&Y@fMhX29$-%Jt=~7QOeq!CN>!k{-+I;a^gb$1TW{!Q z1W(Ig7{^H`MoAQRNH3O%gAI~I;V*Oup8U@^6PJ%D#spWBm?LSdkY&F@1YiDFqpm(bJG*)I2o^YS4QnKe zx?#aV2bsYDxrYgI5_6l~3YkLrIU$W8$>KO!#;D-Q|Az0*6|QWFtCiRwel&h2>_-=g zVwl8{B1z1X8LW~gsCHzVr#ZAcvW*`xd6c^zC!NTUMdXMBeZJ5&k$OZ(ClaI=(y`fj)_ZbG delta 1703 zcmZ|PUuauZ7y$5dlBRaca!#}@2HI}1E$xs6k~DK!XC&(q+G)eGQK2H`u0q;WmoBqa zBT|UfXD(()J2#Eh+ntxmi1a66$yQHD+i{EA|2cRG37d;D=%WQ~-;mj50pp&@|udsip;X2hf{sFTo z)^BO*KN;vdKBxpv`TY1Xbm|N->dCX8!krZBxp9@X8|xh|m#v2^IBpzWh}M~N7d~fw zy-nvGV@|tWIpOm6IVb&Z2VV*)ouIVx=G^+PY-xY<|G5+9AF}zM1l6S) z<-7!ppwJ{-6e$HuqAr7V7PamGJQVZtP!Uo>DX7vdB?*DoQL?wS6FF4tNed~V)TX(l zlwnKAz}K2QFXb$F-asj!Y^&?|q-0@E$mTbUBvcuc5{3;S@oyQ4sWJrf6S(WgU^|CG zzSGuuMfO-=Mo6Zp$*7b(tP1gd&q!V`AE1faw6=(tw#tZAU1w5?6(T|oqGa)b6A#^# zoVErl)tBOp{Yq$$+5`SbXQtf!+vdIl2lQ=Gj5>^*V)Hb&y#9q>Rl2QhsA|!$0 zReMrWiV!%DvWb#WB_kycX(8J`GU8UZy(r}%YzfKyq^*;ck_S%|rMyG(Rnd`q@JSTE zQ1YJERFF-JupydCD0y`YMJWleT|g=PjOU}1Cs&eEgc%{xHEr5jt!Gt87NzzMZb->P z+nZvY9X$`Elp!L7{Gv_UlE0k=R)ko0$ltQZ4W=oS;12m$N*G2^XdEtzlz}BtSHQa3 zi@X=+r||jPh6;+#d>^`|c^CfI1g5djdtckc)3R_F(n2;-7S#hfASD4?)t+_jh3J-I d2hUr$`Y?nnU7zqysOWi5TPlBC_gbaccs{IxesP5Ml#zp6jl)|ssv%~lSJ zfyKg1usB#eECFVQB?iq_$v$3PKTDc0>C+Y-=k+;V?43}5CQ>swGl7zvE|1?~U+$=3 zYahZ_y8Uc}dJFoDFI%|D>v)58g_3l6gmG7}`|2#4l=FB8vLW8?_4$2OtcbD=!Y*dw zkzeO+>d=qP>9yn$U+W&9*Hz|V^9)6lcT|*lThffP650yy7NKMPS@JMAgKQ`cf!GuLF#kUW0bA^IdD7kCcTKt+`ycS<;3?Sv{Ik-v20G5#Nfx-Q~hmQ7%4sME}i^#~;J-FA6 zll>_cFN%IU+11EVMm|pFdbEQ^Bi(3FgrQRzOm~;MNQ@Z`ij2_WUM$5fF)kX#S}4{S zx$_V8kf#6l#$6dh$LXP)$xcQ}TNJsos$SY{qclMbNxMP=w9=+Q*=Moa<9Air>GQMF z2sP8Y5_8Bn<{U7Ii(M|~B1dUCYYK*nrDERiD2|}a?Oo*X*tPq#BbYl!+8UGi4G-`H z5#XJ{&biX({jH+|JfCcgX4%1}GRetPPasS=MN1nk9ayFY2fC%ZLrm2HJ}fw3vt%|U z7eQ141C_rKAuYktTcwg1vl9|mfER9Tte0SYV3uHGec!76W__>bVA5FmV4uMmEYQsJ zGDKc!fafiN4C$2Bu-X6*sOP509@D}A7r|+Y+{UHdRLdSL^MdhH4EO|(Yg`L6Ua1rU*UU>04t7M5` zKxcuT5Sc(<0gV(QJe;)yJt>rWDqOVrK6J`c;t@5*CKty}6p8Bd zHhFYxp6F87+vMS~GsG?RD1icTO}$`~b7SX-%c^y@{My`9_6M}{g;Ilbbgl`h0lo?; z@kLY?h<2dsKnulLpc_CX;!N1e{sOWKWf4Sl1qQ*1PoLrtr`5LEa(1nS{e#Ccq3naV z7+!q!lqKRA&~2b{aRlfNkVhO2Ti9J7uTYv0JQEIFTBS;ww5qRS!`2;Vnlm9PS>1zN3E6v&U7)^ZW2ZYz+pO`Ev5qjnH_i;ElTy#o0K(=IN; z>Pv-kR&5g(--gX>50v}3I2Rtu_5vQ@BGQltF1pf*BJ;wD>|MlA!xjQJ>39L~KHz5X z^MUv4JmCYtG&9cuAJlO%@O!m*pe7dK;e8z!0w2pjgBbfGt6j29s3@BBs3#YQncY6aIl^ng0WhEk#@a delta 2786 zcmZuz4Qx|Y6ux)s*0;CuHpYeQXl1c@L7YT4dKrQMd&!3KsE zR8SO^-$#&tL_|et6&vMm;15I%5)6v1Mxw^QfFjX|^5=K@-YeFz}@bmEkXK_2|sQ@{jMD9}6FovX)6%9F_!2 zhS^{#uvC~GCc)CeQkLwztDpxfpujANK`ClFLL+A!jyFa-HV!yPR#V`E2n`_-41CJ)wW$kcahrKgexfS1Y>`$u#9L#@)!S z=|vTC$$;aC27jlw$=~E-RTQlNr%1#jzR5fEK5t3+`qm0LrTt@br^%}|xY#61AuQh2 z*x=FFsELDw0pZ1 zV5!{X+pjYV-vNU)?cj_Ijq)Z5T&(vd~AaLOO-qmZzK7}_ zXQ-CJNLTYj=u(aO*ssqUCy(s;w<$UhZx%5m>d-$KCzn=TMUEcV+&Rwqt~pvuGaDCC z%rapoxz5juDR>@@GlEjeh2h53Q}eY-z}tXJcv}wO(YLH>Ptz0#EHU`~#hM!+()AeH15g zY87kxXlt5cb=ipbbApb}iBE0ze{~9N-I&_*R%_2D`?>X4hEP8}^fXy0mf9>jR;)Ku zyJV#nV@P@>(%neyZYb01-5$T@bJDlZ0?SpRyAre0>T?O0w0cdeo8_vV!#0NxR?F2q zdkxx9%TdXX=ew6T{KD0s^oLnZZ>-7~%zvOc9r~WK~N^wqqyFw{Vo*=%_ zFIFhiC)(LLgn3AO6wP7hfu;+!73onw?KuJ7h7<8ssLl}Y1N{axQyc}l0OS-M(Jb~m z(8EGSKVq%V(>GTt#qD_w7bgKX0dC{sM6?gv z47h`fSVjK#!qt<=a(Fb2ZGjI}Y&!5(6Hf!)1{?%G6?nVJ6W#$#!!jQD#ZbHP;XZuW zi47W{vA{2xxDt4mi7S9#2B!HM0leG9rNFP4xCHoBU`lQ<@M|U>gyLY#?cK!VK(7Pk yh$ZOy8^Zy+3wtjNWj1UjblcI1y`YI($wfglo#7wY@@!GQ3O|EqZ1|s+75)nbI!gZl diff --git a/MDK-ARM/gimbal/config.o b/MDK-ARM/gimbal/config.o index 468ec753f3f47ff476c1d6e1aee4bc3b5832450e..e91e5d4d8ffcdcf29d6eddd6bb176d34f4db9fb2 100644 GIT binary patch delta 1995 zcmZ|PUrbw77y$5lD22k-b1HuVhE-Z%f}7ngEeOnzK{mFc;EMbio8n!IGNz&xeIO32A{xlMqFuc!C? zzVn@bw;lMtd?j2Suo3B!{Z|ti8h&63;pf*$&TS<&r|c}wk%*)y4b`<(iek$tEZ*ZP z-BbL;d*JNL#-Or3CED)TZ_>(|Nji@ew~W zsz6xvX0;#Y8DKH6t(#7gv6kYAX9>`^OiT5rFYK&Hf10y1m;RKS!^-%RisM?hq;Ir) zCrti9T`-l+lHr59bT<@P*!hi)AYx&7u8>*p&uLm}I8)@@4@Ru`vvMO5soeONYms zn1uwOyou$-6HGR-EFy#BFfOGuMv{fJ zLpKWX!&%<+!W7R7U|w{G6fPac3a7!^j0qQ^iZ@~Cz{Wg_d2Vf{6j84LCU}AjbG#`9 z^AXIexPr%{4GsXftWEng#=-hODINMLS~@$D9Q?oO{?~# zkW3imB45R0#{1%Twok}7EONR16^b_IX(7!}{v3)Wq_52rtv1M|B1Rg8xZysRl}RcU zXw_O^iSN_~j^|MduIXps6Jsi%n@e+yyez~IQ(R_Hy0mJYLOft?L23VnN)?*CEhGpX zTozEGXZ@}a2`0FlzD^~-Hs&KC7BIhn;{HybXGlm0TDZ)hMBk-PgqUEAi|q!L0$Q~* zLN3B8moQ5749>4fT;v8kqu{F<3{$C88}y|ZGz+5&4qCWLrJyEPg#=)cOYjH%g02aX zq5K$%`<6b@O>x+M806B05t(ua~F-)%#I~(=&D$ke`0mYNSn^4GqiP?ZC2fF)YUpusa+X3 ze5f>I2*Ui^Zyke8mKULn1%x|CU^;xL!#xNVCZrESw^eX-j&4klvER?_O=W@a{gB`J zaen8X``3f|p~d=Php?rbnH(`P_IJ)4J-;=34^=t5Zg16LMJSpU358E;+Bc^M{@;|eoj>r;t$7GS{ z(a(&@En)gX7z=;FYZJ1e#MTfBpA0l=;d8;$^oX2mQu2&S`6n2jkUo83LjG*ds(Q!m z*T4Ks{^T!;wq5nQ-P*9wR^_>~Q}fP5K?7hV~t{ z(}FpJ`hU~@-Rp!=?abd}oSsruyC~ZIMs#z0sl~1^uj3HTcA*2uIW-;z#sG)R#<8CZtk=N5|D8CgrYF=1_lJbzz;BsL}c+b=-$k zY&#ud4l$~TGZEcxF^#i1z5F`+20p#G9tDk?C@4MC)sC9E=!Aubbflrb(`U@FkZ zL@>p)V3Dxoe>Az#U!!H zq#>>lL6k8qxWFXP#|&YLNn(*nW0P5dJw|LGKp3)qz`HRT(SZ@J_G6aGV2xRVxsBL{ zhoLuQf*4>nFwN9qnd!$CGY)4vaUUUO3B61Llgus5GvioiW?=0gT2aG{BG#cE{0EQm B%{~AC diff --git a/MDK-ARM/gimbal/gimbal.axf b/MDK-ARM/gimbal/gimbal.axf index 8b7b86b8923a6b5ee4b2bd56f7c5b858d028d61c..0b1ade19d9a2650d4c6da022d09ab82ef154bcef 100644 GIT binary patch delta 77675 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 delta 78264 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 diff --git a/MDK-ARM/gimbal/gimbal.build_log.htm b/MDK-ARM/gimbal/gimbal.build_log.htm index ffb8799..b39ef33 100644 --- a/MDK-ARM/gimbal/gimbal.build_log.htm +++ b/MDK-ARM/gimbal/gimbal.build_log.htm @@ -22,7 +22,7 @@ Dialog DLL: TCM.DLL V1.48.0.0

Project:

D:\yunha\̨\󽮵\gimbal\MDK-ARM\gimbal.uvprojx -Project File Date: 10/16/2025 +Project File Date: 10/17/2025

Output:

*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\KEIL_MDK\ARM\ARMCC\Bin' @@ -33,7 +33,7 @@ Note: source file '..\User\bsp\i2c.c' - object file renamed from 'gimbal\i2c.o' Note: source file '..\User\bsp\spi.c' - object file renamed from 'gimbal\spi.o' to 'gimbal\spi_1.o'. compiling gimbal.c... linking... -Program Size: Code=60476 RO-data=980 RW-data=544 ZI-data=34064 +Program Size: Code=60268 RO-data=980 RW-data=544 ZI-data=34064 FromELF: creating hex file... "gimbal\gimbal.axf" - 0 Error(s), 0 Warning(s). @@ -58,7 +58,7 @@ Package Vendor: Keil * Component: ARM::CMSIS:CORE:5.4.0 Include file: CMSIS\Core\Include\tz_context.h -Build Time Elapsed: 00:00:04 +Build Time Elapsed: 00:00:03 diff --git a/MDK-ARM/gimbal/gimbal.crf b/MDK-ARM/gimbal/gimbal.crf index 71479e0b2d066d2eaed2e79cde5c6a9ce475d44d..e4484311502877786e88de1fd3feec4347f1688f 100644 GIT binary patch delta 6997 zcmai333yc16~5=?1(KI!h?OlUa0ybdYC#epERqXUTeSVEaX}FoC&?rP5`xKK0MR!< zAP^7`)TadjS!~^jiqU}L3b>)DRGdc@geah*hzPZ){m)wllHeyF_szNgS?;;pIp@O0 z+JP%-2Bz&YgwRN+&2=Qk-<8(cShj!b)>Z<4a_h1y+ZYSK_PQfy)wQXqYeQ%nS^}Dm zmWb90tu$Op^HBjpw1I<|H$MoD5E z_B}jr>D~eDt(S6)By+RJC@%{aheXg$wp(Z#F;K~=Yz+L%ptfM?%Z%nKJ323@`FP4sx2xZd$5ddxbd_I@ngwHehgQGHTLp{Q9} z_hE+h?hqp}_YFYhlOy7DmU7k{NMiBSigIyVOrBbxcBSQ2!AYUY%3#6dNO@6Fu&5$@ zi+Ck&DC-><;!QdjUwua4iul@J2WO$n!Uf}k)55S{6;~d!!&7dID>K5%2V-Y@egR41 zS@9rwEl`%dF7`Xu;dD&2b)+JM^$}~F?fhgAw(}!c;I-jH(m!q?j^d!?G(ma!S+;LW z6tdZ|4xVSQkji%1JCz;EYIKSREENnODn{UR@xAwfAZ&8&XTgpqJh^un~kL(@YcM6*F28!I=&b? z%Nr1Ct=!wP&ANYxG5DOXJ*79|8^s7Ky<>ed#27g82wW@;RZa+2g(ie2PZFbI0dJMS zNhpj6#l}1GHwF}1w_IX$>GOj>k3aifrUKHj(qd<ac8h0Ynf*Ae*%zQ+6BnY#j0yU+=EkV%b%DvB|0C#b!I zFyczzS4XXjOUm*?rQ$1WUy@@IU|K~Pl7)#Z;;iabEqTo1$zB_`wd|BF4w3Ev0G(@@ z9(QCcD@`mx*kBG`9A{f7gL{%))H)35i z!sukSJ_XcK2UhWq$_ZLENFkplfbBfKb!col|{OsbwleOrN`|~qES;9 zMM>qM-3hi@%byMS9IyXkjPXU+)Jn*9LOVA~R())`@mfOXYap_a*kgq~F0+%w1ITOFM(Hd2cVdN0 zswFJF6rUXHxvW69%U7}U58~4X@~a^Phju}JjZ3N(%wLI*0sdNm6QcAk`0HF!#YgX8 zb(K2Y)nRnE*=LKV(CsQI6H}W8C0y^lI5c=C zP&YZnP7%+5%9LsoQN(T|HlWvCs#h@e*NH+vo&|EARIdWrg2RbpR==K1>LHx~;sl3v zFo>4}^^&D_mUtf2`BF{RRF$TtYU(!4yTE+W+=h$Fm({ypbP`$((E5W^w`yvNrlx6X zx_{mITDr}>(0mi=Z2la!dx(utyFk(+OxAj=Um(ML2fm={qd&@gT+J6i^_I%iu@^da zPsc***atlg%ooAzBh?)`c1y(~HYt!hj}a; zEW9dcgdAdh)IZR}{EN)Op1u!gq*U)g=Lpe$ARhp^T&hoi{EXB9wGV+@Auj^86VzYj z1&FNw2K6^rk0qhY(h*YiLy51X(A zeP}@z5`FBpVlN~{ORB=r=iG<1X3`coi&~$?$N(m^57bRkJ&eHrFeZao%u)J1yR+C2 z&RFCMQn{oa0sj&3IME4XZ z;9)q&V5nlK;9WrllI-^4AgDsg;mm?OhcrYnW*h<|?1Z}ez(Abi&~^-id+U~v>s zgdxp|G8|VBX*jktUz_Ih*k)&o@1b2K)hJDkAvKoN&7|^4g-I2YDj_w2+$(YVsn}=_ zWi{t;nBM77cOZBZ?mY)-!rkZ4PR@lm?O-EVa8RZWm?B%idhm=N$I&_lKc-35htvp7 zU9YLFxbB!ao?3Lf{Mc6FIH)_M8lrQ#k?Yqng}+|NG%H3L?R2)`)FfQvpf35*9wtt} ztcm^B)NswOd74){R`0=qb|y+5u2jaM?D;R0qI8-wuKI74R-Q-F{u5hhQYCpF{h9}; zp3H>i)l(x@k?nYn?M9-*tB+=q+>S)|KajKFW0tON)KLlO)c{WdtOl5^tDAHjPyKd) zKLMN#u%E7iI@U#>4De@wa{%_&RY=D%)y;`Ge!l>n3$#ebxz;ZO60PG>MXExs3H7Z& zW&o)LGG52Y)}I416UclZ<8&;b-eBj5SwI#5fpc&L17jF?37_Br#)CBs0eKjK>+GrN zde)J3*&iN`onVtZP$j01$0IEyIRNBrkc&w6133reVnUqmB5FY1g>jKckrj8~7;tmT zU>Xg9xe!wPCvbJ!Zh)bkeCOFrI0`tMoRS)ua`=+Il^%a z<0!{*j3XV#GC$h+G0nT>@8J^P1=Uqhb+f=Qr_l6+tQXOLEohk>eMe$Wu))DP#lA!= zfw|Qron+MPAx7_V5;^nROD%Wm!ep@&`kctt*~#K=k6sJ<9?9SwQ3tYA)i8TQ6IAn4y z$SzSj2y&fE9sv0e$Zkg-7ZFSWT{Kqx2Ng#-rAH z6}ZU64h}>4njdyZUsgsT-a*@Uv=}Na&amy9AVwpk}cBV5NY8SVBaVr?7 zh(R6WW~z}Wex7iB8b!At?>~vo)za!VDA2`>*yoA$=wny$5O0~)ym!nlWRyCH@nydk zVt`WtJq3ubH$!;sBqO;!4QMT(hX8R|gwp2#B%kqM5BdOkVFMs@14N&N7-xAm(-S`@ zTBLX6NL)g~B_urS-E6yqop9}dY#!qLP=^;kzxLg>8^4^S{b+ZtM||el@t+IMuXS>G zpp)qoc8$>C*S-J3M+KJdsT=}~V$5kwe~Wem%@0}rum1w^e@{T>BnolQ3~J$cR69M8 zS`Ul}v^F`OI?0a{AeU&|=AiLQ6>SXy4zDLeNZd~2N{`!oGz1Z+G3~}I_t%YET#q3o zNbxL8_&aj?E|^}GH5EHq51Gx_wS7)Fg#YQ{IS)GEL`VD+L%Mh#(94jjMv#P4#{o5X z&^#x0;+)SiT&P-=f+*F(tM7mA@)4Hz6F76{taD~N=gh~7 z*#kGu9oXhAPbo($`)s3D)eGC4;LY9m^h+%ie{N~)Goh{b#@^>6bpQ0mwzC`CYQO>V z02eq4XaTeY@_|-OjcvWBPW9XM_d2w^_~*laK1^-&Yx;Zr2R*u8A5~jdUZGZHJ1En> zyH+kFue_qBp|oU5>0~wk2=wvQ4QiqPZhx=e@f+4_x3=_pm7i@JtA~{8amw?5IKUfl z>L#oqUs7AwP*<-;h_x<^k}q`Z$Mm6#-tXVhA3eZpnKsYHoVwbIs!}yN(a6zD$5qu- zsA~?Q%LtMDwTICo`SNV1Xk@X|Mn;}gQBzk|-7rOcnLX|RYg9^j6=mfmk>1vW^kkfz z-rnYVDPbK@`)jscWHaM1Q+IrIxtito9^`c`{u5~3#0IrPB*F!Ua#Yon`Z_f=YYwbV zhnl*{CF4scOeiUv*ictlSyEYF@k{kwXr%DZ7?IuiB)9BB!3FhsGXHReYb(meluWI_ z_M}kps@G!0k8+Aa5yelk$He|X$(NbP07DO>itLE&(UGI=m|V+-`cl?Jt(HAZCq~}F zh%AX5j=nh~IVuOF|3Oq)b&>6TI2GB#?6I+PSSS#?;-JW{KA1BqVWD*2L9Aq3MQO#6 zIq0kujvP?K%nB~6Xeha;x)z%aYJ-1QkvH&!50lLrn(T0akSZqD)T>ect|G5rtB+aH z>e`8F!=lF5kLx4G+I<=?`vzI|97UFLQ}ze(fT*>IZplmjjf1_S<9EhNn{#_56j9pZ zzc$z#_|q?Ov8Hsw*pkVmV=E?(S0l5jc$MJfl{ctjG2TfoHG~%9OY2K()qe52J2VX~ zy8C6ab4BriE%;Y5ou4Gm3dv=`)$7^zk+Yr9Z8f2yVSHWnxCS-l!0jEpFTTCe?P-;q z#vDDmr7aJl%YH`kZ4RSH@~x9wD0U9My>}A_K>gk+kW`69Mn|KydL^D6zG4jl!*t)X1rlF#~M8eRlL^NM!DwM`# zlLtU)RasF{er;*lSoHuycap56T3t|Gdu?eAcjC3Ir+RgQ=KgkjvFD_J*QlK;B1t>d zD?DM~(Ft3gZG)g3L_ZYSkFgvcAIzUI?OtI(M5dsjw7!Zp34`7A5Md3a9*K)9dGZ#%c4K&gkMi;Ixdsx=H`U zo7eH2_0aT2X*Nl-Swy-5Cjvb(dTr2I?Qraw8EuCG^I+RG(mYDDujx-$c^`KxXh60z z&?TdnHf_4mdm-e1pE9WzpY}q&5K8?)w|JA&Lmd0E&a+#z1{}MU?^eEl(JofRQl8z$_dVcq z=sUH}4~|z~=h=Tk*$+44Xgdv<>A3bzM^6ok)!sbkIAhOs?77-n$G(YFfOLTVJAB{a z`ytUvsfYAj|Zs&VDU*FMtf)?suc}{2ZDL#CY=NxaG zvW#}FW6?{1G?3wMXMg;3uc#=czRPn?G4}76->Y>k${E)=)eH+#YMSfxH1>TsyS4rj z!Y!_InsG*9VRS~%Y1%g3Tc*8xFs7H&%=f3w^!)s>EM{#+_w&sxudBD5RkSN;p7k%B z<^9H>Y_9?^V6Opi%~k+aKy^mH;iqPMH=06B_5u0={eS_$KwuD1l+g|T14#9pAtTR} zW|lOwrI{nmTxo8TM$XZ*{w241XMf+wXZkB|^$P#%e6`c{cs=r24_%qjyJz>9>jABSf~FpG+q`<8dt*jl(X{u6sq(!1vykeY zLFd}DQ@!$+V%FFCIe+QdsX^W%@oX{8Cw}(q)Ucj6f!>_abwR#bPBt8o(VquLs})h# zE)3^EGsquam^#sWNG9?y%^p8pnCj@Q6Z}D%o&LRo=d2&+KU0_*m%beK^QZ?wfm**_ zYi`&}pu0gELAx6J3Fx0e9|7%V?6;sBgJab1L5T$4>jNQyk_d$o!1m$Ftwr@b1?Frt@7SqMe5vK)MIcvIAi7yPi`GW8&Mm5%refWc3tky^Mcu-_&vKw1lS@@r4>u|Hxe9r~9Tlq}LG+9(LR>iG9yN?``Z& zF1z8{MZkkFA9CD1DDnQ#9N@rH&(SM1_G84Xw$eK<<^*tfa_AqMLG)gw=coIn+NUoteZXG> z|EcNCrv4ATpBeiKHvgkp|F-INDF1Ej+fe2?x(MmNLAl7BLGKNE7n{?FhHuilB+?T} zbVYhQGCTnErRF52_%^+v?7zMaBnvW((=$<5fdycf89PargS-PW+}O#w6y#ly5yoDx zM}uqw8ENbkeI>|yAeS3ERbK(J9pnmQZ_p!HzV|_XAp>C@n^;00Eo71C7qnL&AaSM9 z*GoK>+$d@9d7R~GpszLs*!YOvXk+gu6Wq^aBo0fICKgMiuHuC4K%#^sqHVFZYmr+E zPqL6?4aq$ujmn^d`a5#h7)`7VlW&+<$1xV~2c5pw6T<&3wS z??aB>iPSEnYSYHP2zv+cHLwi!3dC0MeONpzP`eQuXY|VW223i1Drio<|yuzfwDve`A%p}u%D(IuW#_ILPj&$sm+Fq?~ ziMFNMmTOz7?HFyZ)6vyye%dw%=ZaeMLuYRy2WY|zISW_>EC$kY(VATtyAEF-baXv_ zhy~V47UB+$>|Xr1!Pv93Jwo3%ZDnu=tUJN(!L3pd#byF~NE2TZYJJ&WU4(IKD0-fP_^QCDCEU5S5k`M2%Ei z|3+;ZYB|?J{qL>n;;L*|@ME!XP;r*?&ttQx_{71({kb6M6lylF(PFm-lZ<(P>gn2S z;b!coI|C03T|3I9`fxGo4u$c*FlNH&^mXlMm$h0w0Rp!numk~$12X-BE*v4L1md)QMKD;+Lt<$- zhX2>WsgCJG+-N@P5~hoISS1`XR#IOimM`Ws@D|s1YjYx{*#f%vFi3ybj&+GyZa&1@ zAufkFz_qn55z2MAFX=m=u82foAPo-%;eX1VTnKw5Y>9;u=p-IWu#=c50Z-zh1id6S zCc!Vh_upaSPE4%AM3iTU-9w@nFA@6wG|iE6MYGV|KR8Kj9GX6oh?j)AnZY?~5ksxf zCd`P3ycTu%Dm(0fm=4Q4`vB$Xw?Qkl7z2_{*U(=Q_gB+jO1}~MO2QgH7Q`vnd=BeZ zpz<(XOu@nr17V*Bs1dchz~#Mq2mQO_{_V)|=#NurTANugmqU;@?Je|I#QkXq^3G3+ zQBwtPCAdsvGQ3rBALmUa`@gzT7k84n`DnFD2+SIYY! z|3dYfsQ)qK-_kuXqd%m3f7Jbe?pnG%GL&Zd>Vc@cjaA^67JH@?*BSi?NoJitr#N-y zAa>X44{&ZBZ1$Od=jlT52P1I_{(1oN4}nukU8e0wZ7bFB_q8lcOcj!w7R6Fk zVV0^66V=!-SJg_TDCsJykD?MOs*)z_Y19&8oO&rLnWCyGES#vFqBJ&)g6rYPgOQ}F zlht~VVaBFM@x0`9$>Wl@B~MFUmOL!AW#C$UGY7E|K?!E_i5d%m=DBbwIFG3Jf_CZ= z#3Yg|fdn}P>GzN%b_fZn)?~y-A#q&!-9d*n+S;^cd)leTV!G6A)MS4ne>@K9QA8hu zBo#wcHE4OxP&4N?J}rOZ+`1HWLTDB=GS&g!~2(!qD(7^d^X;^dtZ# z-#8GqjP1l|_}hh~GbvRBwgXc332gT_4M}xQUlglI6}SV4ZntFT2qXatNQEe{3)mfl z^yL=}ARU{L0#e{>fI>0^>F)#f15&&v0aL#ICFiBurn|)2(Jv`c)if6_WqvN4O0aGg zu#@mAzq*9L(|by6Mqc5I0eO52NS|^c1gT5~mH`x-A*2O~!esb;nT?iRjUs0F^#Y@s znr*afuDn;J5R|!5=Z&Evcmk29ISbo}owC?F`LaseU~Pz5A3~Ca-ouxbd6~nOelq55 zh9*aZeIJbv8zDc7wL6L8%pnWushH%4!Ck+K_NJJ$4`o^6nT|dO$)_Q|fwCMK*78Static Call Graph - [gimbal\gimbal.axf]

Static Call Graph for image gimbal\gimbal.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Thu Oct 16 22:04:10 2025 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Fri Oct 17 15:56:01 2025

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

Call chain for Maximum Stack Depth:

@@ -521,11 +521,11 @@ Global Symbols

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

[Called By]

  • >>   prvCopyDataToQueue -
  • >>   prvCopyDataFromQueue -
  • >>   BSP_CAN_Transmit +

    [Called By]
    • >>   BSP_CAN_Transmit
    • >>   BSP_CAN_RxFifo1Callback
    • >>   BSP_CAN_RxFifo0Callback +
    • >>   prvCopyDataToQueue +
    • >>   prvCopyDataFromQueue

    __rt_memcpy (Thumb, 138 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text), UNUSED) @@ -924,9 +924,9 @@ Global Symbols

    BSP_SPI_Receive (Thumb, 84 bytes, Stack size 24 bytes, spi_1.o(i.BSP_SPI_Receive))

    [Stack]

    • Max Depth = 168
    • Call Chain = BSP_SPI_Receive ⇒ HAL_SPI_Receive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
    -
    [Calls]
    • >>   HAL_SPI_Receive_DMA +
      [Calls]
      • >>   BSP_SPI_GetHandle +
      • >>   HAL_SPI_Receive_DMA
      • >>   HAL_SPI_Receive -
      • >>   BSP_SPI_GetHandle

      [Called By]
      • >>   BMI_ReadSingle
      • >>   BMI_Read @@ -939,9 +939,9 @@ Global Symbols

        BSP_SPI_Transmit (Thumb, 84 bytes, Stack size 24 bytes, spi_1.o(i.BSP_SPI_Transmit))

        [Stack]

        • Max Depth = 120
        • Call Chain = BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout
        -
        [Calls]
        • >>   HAL_SPI_Transmit_DMA +
          [Calls]
          • >>   BSP_SPI_GetHandle +
          • >>   HAL_SPI_Transmit_DMA
          • >>   HAL_SPI_Transmit -
          • >>   BSP_SPI_GetHandle

          [Called By]
          • >>   BMI_WriteSingle
          • >>   BMI_ReadSingle @@ -972,8 +972,8 @@ Global Symbols

            BSP_TIME_Get_us (Thumb, 144 bytes, Stack size 24 bytes, time.o(i.BSP_TIME_Get_us))

            [Stack]

            • Max Depth = 24
            • Call Chain = BSP_TIME_Get_us
            -
            [Calls]
            • >>   xTaskGetTickCount -
            • >>   osKernelGetTickFreq +
              [Calls]
              • >>   osKernelGetTickFreq +
              • >>   xTaskGetTickCount

              [Called By]
              • >>   Gimbal_Control
              @@ -1121,7 +1121,7 @@ Global Symbols
            • >>   SystemClock_Config
            -

            Gimbal_Control (Thumb, 1104 bytes, Stack size 56 bytes, gimbal.o(i.Gimbal_Control)) +

            Gimbal_Control (Thumb, 876 bytes, Stack size 56 bytes, gimbal.o(i.Gimbal_Control))

            [Stack]

            • Max Depth = 144
            • Call Chain = Gimbal_Control ⇒ PID_Calc ⇒ __hardfp_fmaxf ⇒ __ARM_fcmp4

            [Calls]
            • >>   BSP_TIME_Get_us @@ -1462,6 +1462,8 @@ Global Symbols
            • >>   HAL_CAN_Start
            • >>   HAL_Delay
            • >>   HAL_DMA_Abort +
            • >>   BSP_CAN_RxFifo1Callback +
            • >>   BSP_CAN_RxFifo0Callback
            • >>   HAL_SPI_TransmitReceive
            • >>   HAL_SPI_Transmit
            • >>   HAL_SPI_Receive @@ -1469,8 +1471,6 @@ Global Symbols
            • >>   SPI_DMATransmitReceiveCplt
            • >>   SPI_DMATransmitCplt
            • >>   SPI_DMAReceiveCplt -
            • >>   BSP_CAN_RxFifo1Callback -
            • >>   BSP_CAN_RxFifo0Callback

            HAL_I2C_AbortCpltCallback (Thumb, 46 bytes, Stack size 16 bytes, i2c_1.o(i.HAL_I2C_AbortCpltCallback)) @@ -1996,12 +1996,12 @@ Global Symbols


          [Calls]
          • >>   HAL_DMA_Abort_IT
          • >>   HAL_DMA_Abort +
          • >>   HAL_UART_ErrorCallback
          • >>   HAL_UARTEx_RxEventCallback
          • >>   UART_Transmit_IT
          • >>   UART_Receive_IT
          • >>   UART_EndTransmit_IT
          • >>   UART_EndRxTransfer -
          • >>   HAL_UART_ErrorCallback

          [Called By]
          • >>   USART3_IRQHandler
          @@ -2711,8 +2711,8 @@ Global Symbols

          osDelay (Thumb, 30 bytes, Stack size 16 bytes, cmsis_os2.o(i.osDelay))

          [Stack]

          • Max Depth = 72
          • Call Chain = osDelay ⇒ vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
          -
          [Calls]
          • >>   vTaskDelay -
          • >>   __get_IPSR +
            [Calls]
            • >>   __get_IPSR +
            • >>   vTaskDelay

            [Called By]
            • >>   BSP_TIME_Delay_ms
            • >>   Task_remote @@ -2723,9 +2723,9 @@ Global Symbols

              osDelayUntil (Thumb, 52 bytes, Stack size 24 bytes, cmsis_os2.o(i.osDelayUntil))

              [Stack]

              • Max Depth = 96
              • Call Chain = osDelayUntil ⇒ vTaskDelayUntil ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
              -
              [Calls]
              • >>   xTaskGetTickCount +
                [Calls]
                • >>   __get_IPSR +
                • >>   xTaskGetTickCount
                • >>   vTaskDelayUntil -
                • >>   __get_IPSR

                [Called By]
                • >>   Task_remote
                • >>   Task_gimbal_ctrl @@ -2741,9 +2741,9 @@ Global Symbols

                  osKernelGetTickCount (Thumb, 26 bytes, Stack size 8 bytes, cmsis_os2.o(i.osKernelGetTickCount))

                  [Stack]

                  • Max Depth = 40
                  • Call Chain = osKernelGetTickCount ⇒ xTaskGetTickCountFromISR ⇒ vPortValidateInterruptPriority
                  -
                  [Calls]
                  • >>   xTaskGetTickCountFromISR +
                    [Calls]
                    • >>   __get_IPSR +
                    • >>   xTaskGetTickCountFromISR
                    • >>   xTaskGetTickCount -
                    • >>   __get_IPSR

                    [Called By]
                    • >>   Task_remote
                    • >>   Task_gimbal_ctrl @@ -2770,8 +2770,8 @@ Global Symbols

                      [Stack]
                      • Max Depth = 8
                      • Call Chain = osKernelLock

                      [Calls]
                      • >>   xTaskGetSchedulerState -
                      • >>   vTaskSuspendAll
                      • >>   __get_IPSR +
                      • >>   vTaskSuspendAll

                      [Called By]
                      • >>   Task_Init
                      • >>   Task_atti_esti @@ -2781,8 +2781,8 @@ Global Symbols

                        [Stack]
                        • Max Depth = 176 + Unknown Stack Size
                        • Call Chain = osKernelStart ⇒ vTaskStartScheduler ⇒ xTimerCreateTimerTask ⇒ prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
                        -
                        [Calls]
                        • >>   vTaskStartScheduler -
                        • >>   __get_IPSR +
                          [Calls]
                          • >>   __get_IPSR +
                          • >>   vTaskStartScheduler

                          [Called By]
                          • >>   main
                          @@ -2791,8 +2791,8 @@ Global Symbols

                          [Stack]
                          • Max Depth = 48
                          • Call Chain = osKernelUnlock ⇒ xTaskResumeAll ⇒ xTaskIncrementTick

                          [Calls]
                          • >>   xTaskGetSchedulerState -
                          • >>   xTaskResumeAll
                          • >>   __get_IPSR +
                          • >>   xTaskResumeAll

                          [Called By]
                          • >>   Task_Init
                          • >>   Task_atti_esti @@ -2801,9 +2801,9 @@ Global Symbols

                            osMessageQueueGet (Thumb, 124 bytes, Stack size 32 bytes, cmsis_os2.o(i.osMessageQueueGet))

                            [Stack]

                            • Max Depth = 128
                            • Call Chain = osMessageQueueGet ⇒ xQueueReceive ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                            -
                            [Calls]
                            • >>   xQueueReceiveFromISR +
                              [Calls]
                              • >>   __get_IPSR +
                              • >>   xQueueReceiveFromISR
                              • >>   xQueueReceive -
                              • >>   __get_IPSR

                              [Called By]
                              • >>   BSP_CAN_GetMessage
                              • >>   Task_gimbal_ctrl @@ -2812,10 +2812,10 @@ Global Symbols

                                osMessageQueueNew (Thumb, 154 bytes, Stack size 32 bytes, cmsis_os2.o(i.osMessageQueueNew))

                                [Stack]

                                • Max Depth = 128
                                • Call Chain = osMessageQueueNew ⇒ xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                -
                                [Calls]
                                • >>   xQueueGenericCreateStatic +
                                  [Calls]
                                  • >>   __get_IPSR +
                                  • >>   xQueueGenericCreateStatic
                                  • >>   xQueueGenericCreate
                                  • >>   vQueueAddToRegistry -
                                  • >>   __get_IPSR

                                  [Called By]
                                  • >>   Task_Init
                                  • >>   BSP_CAN_CreateIdQueue @@ -2824,9 +2824,9 @@ Global Symbols

                                    osMessageQueuePut (Thumb, 128 bytes, Stack size 32 bytes, cmsis_os2.o(i.osMessageQueuePut))

                                    [Stack]

                                    • Max Depth = 136
                                    • Call Chain = osMessageQueuePut ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                    -
                                    [Calls]
                                    • >>   xQueueGenericSendFromISR +
                                      [Calls]
                                      • >>   __get_IPSR +
                                      • >>   xQueueGenericSendFromISR
                                      • >>   xQueueGenericSend -
                                      • >>   __get_IPSR

                                      [Called By]
                                      • >>   BSP_CAN_RxFifo1Callback
                                      • >>   BSP_CAN_RxFifo0Callback @@ -2837,8 +2837,8 @@ Global Symbols

                                        osMessageQueueReset (Thumb, 40 bytes, Stack size 16 bytes, cmsis_os2.o(i.osMessageQueueReset))

                                        [Stack]

                                        • Max Depth = 48
                                        • Call Chain = osMessageQueueReset ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
                                        -
                                        [Calls]
                                        • >>   xQueueGenericReset -
                                        • >>   __get_IPSR +
                                          [Calls]
                                          • >>   __get_IPSR +
                                          • >>   xQueueGenericReset

                                          [Called By]
                                          • >>   Task_remote
                                          • >>   Task_atti_esti @@ -2847,9 +2847,9 @@ Global Symbols

                                            osMutexAcquire (Thumb, 98 bytes, Stack size 24 bytes, cmsis_os2.o(i.osMutexAcquire))

                                            [Stack]

                                            • Max Depth = 136
                                            • Call Chain = osMutexAcquire ⇒ xQueueTakeMutexRecursive ⇒ xQueueSemaphoreTake ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                            -
                                            [Calls]
                                            • >>   xQueueTakeMutexRecursive +
                                              [Calls]
                                              • >>   __get_IPSR +
                                              • >>   xQueueTakeMutexRecursive
                                              • >>   xQueueSemaphoreTake -
                                              • >>   __get_IPSR

                                              [Called By]
                                              • >>   BSP_CAN_GetMessage
                                              • >>   BSP_CAN_CreateIdQueue @@ -2858,10 +2858,10 @@ Global Symbols

                                                osMutexNew (Thumb, 178 bytes, Stack size 32 bytes, cmsis_os2.o(i.osMutexNew))

                                                [Stack]

                                                • Max Depth = 176
                                                • Call Chain = osMutexNew ⇒ xQueueCreateMutexStatic ⇒ prvInitialiseMutex ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                -
                                                [Calls]
                                                • >>   xQueueCreateMutexStatic +
                                                  [Calls]
                                                  • >>   __get_IPSR +
                                                  • >>   xQueueCreateMutexStatic
                                                  • >>   xQueueCreateMutex
                                                  • >>   vQueueAddToRegistry -
                                                  • >>   __get_IPSR

                                                  [Called By]
                                                  • >>   BSP_CAN_Init
                                                  @@ -2869,9 +2869,9 @@ Global Symbols

                                                  osMutexRelease (Thumb, 78 bytes, Stack size 24 bytes, cmsis_os2.o(i.osMutexRelease))

                                                  [Stack]

                                                  • Max Depth = 144
                                                  • Call Chain = osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                  -
                                                  [Calls]
                                                  • >>   xQueueGiveMutexRecursive +
                                                    [Calls]
                                                    • >>   __get_IPSR +
                                                    • >>   xQueueGiveMutexRecursive
                                                    • >>   xQueueGenericSend -
                                                    • >>   __get_IPSR

                                                    [Called By]
                                                    • >>   BSP_CAN_GetMessage
                                                    • >>   BSP_CAN_CreateIdQueue @@ -2880,9 +2880,9 @@ Global Symbols

                                                      osThreadFlagsSet (Thumb, 122 bytes, Stack size 32 bytes, cmsis_os2.o(i.osThreadFlagsSet))

                                                      [Stack]

                                                      • Max Depth = 88
                                                      • Call Chain = osThreadFlagsSet ⇒ xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
                                                      -
                                                      [Calls]
                                                      • >>   xTaskGenericNotifyFromISR +
                                                        [Calls]
                                                        • >>   __get_IPSR +
                                                        • >>   xTaskGenericNotifyFromISR
                                                        • >>   xTaskGenericNotify -
                                                        • >>   __get_IPSR

                                                        [Called By]
                                                        • >>   BMI088_RxCpltCallback
                                                        • >>   BMI088_GyroIntCallback @@ -2892,9 +2892,9 @@ Global Symbols

                                                          osThreadFlagsWait (Thumb, 178 bytes, Stack size 48 bytes, cmsis_os2.o(i.osThreadFlagsWait))

                                                          [Stack]

                                                          • Max Depth = 104
                                                          • Call Chain = osThreadFlagsWait ⇒ xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                          -
                                                          [Calls]
                                                          • >>   xTaskGetTickCount +
                                                            [Calls]
                                                            • >>   __get_IPSR +
                                                            • >>   xTaskGetTickCount
                                                            • >>   xTaskNotifyWait -
                                                            • >>   __get_IPSR

                                                            [Called By]
                                                            • >>   BMI088_WaitNew
                                                            • >>   BMI088_GyroWaitDmaCplt @@ -2915,9 +2915,9 @@ Global Symbols

                                                              [Stack]
                                                              • Max Depth = 184 + Unknown Stack Size
                                                              • Call Chain = osThreadNew ⇒ xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                              -
                                                              [Calls]
                                                              • >>   xTaskCreateStatic +
                                                                [Calls]
                                                                • >>   __get_IPSR +
                                                                • >>   xTaskCreateStatic
                                                                • >>   xTaskCreate -
                                                                • >>   __get_IPSR

                                                                [Called By]
                                                                • >>   Task_Init
                                                                • >>   MX_FREERTOS_Init @@ -2926,9 +2926,9 @@ Global Symbols

                                                                  osThreadTerminate (Thumb, 60 bytes, Stack size 24 bytes, cmsis_os2.o(i.osThreadTerminate))

                                                                  [Stack]

                                                                  • Max Depth = 104
                                                                  • Call Chain = osThreadTerminate ⇒ vTaskDelete ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                                  -
                                                                  [Calls]
                                                                  • >>   vTaskDelete +
                                                                    [Calls]
                                                                    • >>   __get_IPSR +
                                                                    • >>   vTaskDelete
                                                                    • >>   eTaskGetState -
                                                                    • >>   __get_IPSR

                                                                    [Called By]
                                                                    • >>   Task_Init
                                                                    • >>   StartDefaultTask @@ -2937,14 +2937,14 @@ Global Symbols

                                                                      pvPortMalloc (Thumb, 306 bytes, Stack size 24 bytes, heap_4.o(i.pvPortMalloc))

                                                                      [Stack]

                                                                      • Max Depth = 64
                                                                      • Call Chain = pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                                      -
                                                                      [Calls]
                                                                      • >>   xTaskResumeAll -
                                                                      • >>   vTaskSuspendAll -
                                                                      • >>   prvInsertBlockIntoFreeList +
                                                                        [Calls]
                                                                        • >>   prvInsertBlockIntoFreeList
                                                                        • >>   prvHeapInit +
                                                                        • >>   xTaskResumeAll +
                                                                        • >>   vTaskSuspendAll
                                                                        -
                                                                        [Called By]
                                                                        • >>   xTaskCreate +
                                                                          [Called By]
                                                                          • >>   BSP_Malloc +
                                                                          • >>   xTaskCreate
                                                                          • >>   xQueueGenericCreate -
                                                                          • >>   BSP_Malloc

                                                                          pvTaskIncrementMutexHeldCount (Thumb, 26 bytes, Stack size 0 bytes, tasks.o(i.pvTaskIncrementMutexHeldCount)) @@ -2994,7 +2994,8 @@ Global Symbols

                                                                        uxListRemove (Thumb, 40 bytes, Stack size 0 bytes, list.o(i.uxListRemove)) -

                                                                        [Called By]

                                                                        • >>   prvSwitchTimerLists +

                                                                          [Called By]
                                                                          • >>   xTaskResumeAll +
                                                                          • >>   prvSwitchTimerLists
                                                                          • >>   prvProcessReceivedCommands
                                                                          • >>   prvProcessExpiredTimer
                                                                          • >>   xTaskIncrementTick @@ -3007,7 +3008,6 @@ Global Symbols
                                                                          • >>   xTaskPriorityInherit
                                                                          • >>   xTaskPriorityDisinherit
                                                                          • >>   vTaskPriorityDisinheritAfterTimeout -
                                                                          • >>   xTaskResumeAll

                                                                          vApplicationGetIdleTaskMemory (Thumb, 14 bytes, Stack size 0 bytes, cmsis_os2.o(i.vApplicationGetIdleTaskMemory)) @@ -3042,7 +3042,8 @@ Global Symbols

                                                                        vListInsertEnd (Thumb, 24 bytes, Stack size 0 bytes, list.o(i.vListInsertEnd)) -

                                                                        [Called By]

                                                                        • >>   xTaskIncrementTick +

                                                                          [Called By]
                                                                          • >>   xTaskResumeAll +
                                                                          • >>   xTaskIncrementTick
                                                                          • >>   vTaskDelete
                                                                          • >>   prvAddNewTaskToReadyList
                                                                          • >>   prvAddCurrentTaskToDelayedList @@ -3053,11 +3054,11 @@ Global Symbols
                                                                          • >>   xTaskPriorityDisinherit
                                                                          • >>   vTaskPriorityDisinheritAfterTimeout
                                                                          • >>   vTaskPlaceOnEventListRestricted -
                                                                          • >>   xTaskResumeAll

                                                                          vPortEnterCritical (Thumb, 76 bytes, Stack size 0 bytes, port.o(i.vPortEnterCritical)) -

                                                                          [Called By]

                                                                          • >>   prvCheckForValidListAndQueue +

                                                                            [Called By]
                                                                            • >>   xTaskResumeAll +
                                                                            • >>   prvCheckForValidListAndQueue
                                                                            • >>   vTaskDelete
                                                                            • >>   eTaskGetState
                                                                            • >>   prvCheckTasksWaitingTermination @@ -3073,11 +3074,11 @@ Global Symbols
                                                                            • >>   prvUnlockQueue
                                                                            • >>   prvIsQueueFull
                                                                            • >>   prvIsQueueEmpty -
                                                                            • >>   xTaskResumeAll

                                                                            vPortExitCritical (Thumb, 56 bytes, Stack size 0 bytes, port.o(i.vPortExitCritical)) -

                                                                            [Called By]

                                                                            • >>   prvCheckForValidListAndQueue +

                                                                              [Called By]
                                                                              • >>   xTaskResumeAll +
                                                                              • >>   prvCheckForValidListAndQueue
                                                                              • >>   vTaskDelete
                                                                              • >>   eTaskGetState
                                                                              • >>   prvCheckTasksWaitingTermination @@ -3093,20 +3094,19 @@ Global Symbols
                                                                              • >>   prvUnlockQueue
                                                                              • >>   prvIsQueueFull
                                                                              • >>   prvIsQueueEmpty -
                                                                              • >>   xTaskResumeAll

                                                                              vPortFree (Thumb, 150 bytes, Stack size 16 bytes, heap_4.o(i.vPortFree))

                                                                              [Stack]

                                                                              • Max Depth = 56
                                                                              • Call Chain = vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                                              -
                                                                              [Calls]
                                                                              • >>   xTaskResumeAll +
                                                                                [Calls]
                                                                                • >>   prvInsertBlockIntoFreeList +
                                                                                • >>   xTaskResumeAll
                                                                                • >>   vTaskSuspendAll -
                                                                                • >>   prvInsertBlockIntoFreeList
                                                                                -
                                                                                [Called By]
                                                                                • >>   prvProcessReceivedCommands +
                                                                                  [Called By]
                                                                                  • >>   BSP_Free +
                                                                                  • >>   prvProcessReceivedCommands
                                                                                  • >>   xTaskCreate
                                                                                  • >>   prvDeleteTCB -
                                                                                  • >>   BSP_Free

                                                                                  vPortSetupTimerInterrupt (Thumb, 36 bytes, Stack size 0 bytes, port.o(i.vPortSetupTimerInterrupt)) @@ -3125,18 +3125,18 @@ Global Symbols

                                                                                vQueueAddToRegistry (Thumb, 38 bytes, Stack size 0 bytes, queue.o(i.vQueueAddToRegistry)) -

                                                                                [Called By]

                                                                                • >>   prvCheckForValidListAndQueue -
                                                                                • >>   osMutexNew +

                                                                                  [Called By]
                                                                                  • >>   osMutexNew
                                                                                  • >>   osMessageQueueNew +
                                                                                  • >>   prvCheckForValidListAndQueue

                                                                                  vQueueWaitForMessageRestricted (Thumb, 74 bytes, Stack size 24 bytes, queue.o(i.vQueueWaitForMessageRestricted))

                                                                                  [Stack]

                                                                                  • Max Depth = 72
                                                                                  • Call Chain = vQueueWaitForMessageRestricted ⇒ vTaskPlaceOnEventListRestricted ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                                                  -
                                                                                  [Calls]
                                                                                  • >>   vTaskPlaceOnEventListRestricted -
                                                                                  • >>   prvUnlockQueue -
                                                                                  • >>   vPortExitCritical +
                                                                                    [Calls]
                                                                                    • >>   vPortExitCritical
                                                                                    • >>   vPortEnterCritical +
                                                                                    • >>   vTaskPlaceOnEventListRestricted +
                                                                                    • >>   prvUnlockQueue

                                                                                    [Called By]
                                                                                    • >>   prvProcessTimerOrBlockTask
                                                                                    @@ -3144,9 +3144,9 @@ Global Symbols

                                                                                    vTaskDelay (Thumb, 82 bytes, Stack size 16 bytes, tasks.o(i.vTaskDelay))

                                                                                    [Stack]

                                                                                    • Max Depth = 56
                                                                                    • Call Chain = vTaskDelay ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                                                    -
                                                                                    [Calls]
                                                                                    • >>   prvAddCurrentTaskToDelayedList -
                                                                                    • >>   xTaskResumeAll +
                                                                                      [Calls]
                                                                                      • >>   xTaskResumeAll
                                                                                      • >>   vTaskSuspendAll +
                                                                                      • >>   prvAddCurrentTaskToDelayedList

                                                                                      [Called By]
                                                                                      • >>   osDelay
                                                                                      @@ -3154,9 +3154,9 @@ Global Symbols

                                                                                      vTaskDelayUntil (Thumb, 200 bytes, Stack size 32 bytes, tasks.o(i.vTaskDelayUntil))

                                                                                      [Stack]

                                                                                      • Max Depth = 72
                                                                                      • Call Chain = vTaskDelayUntil ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                                                      -
                                                                                      [Calls]
                                                                                      • >>   prvAddCurrentTaskToDelayedList -
                                                                                      • >>   xTaskResumeAll +
                                                                                        [Calls]
                                                                                        • >>   xTaskResumeAll
                                                                                        • >>   vTaskSuspendAll +
                                                                                        • >>   prvAddCurrentTaskToDelayedList

                                                                                        [Called By]
                                                                                        • >>   osDelayUntil
                                                                                        @@ -3164,12 +3164,12 @@ Global Symbols

                                                                                        vTaskDelete (Thumb, 168 bytes, Stack size 16 bytes, tasks.o(i.vTaskDelete))

                                                                                        [Stack]

                                                                                        • Max Depth = 80
                                                                                        • Call Chain = vTaskDelete ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                                                        -
                                                                                        [Calls]
                                                                                        • >>   prvResetNextTaskUnblockTime -
                                                                                        • >>   prvDeleteTCB -
                                                                                        • >>   vListInsertEnd +
                                                                                          [Calls]
                                                                                          • >>   vListInsertEnd
                                                                                          • >>   uxListRemove
                                                                                          • >>   vPortExitCritical
                                                                                          • >>   vPortEnterCritical +
                                                                                          • >>   prvResetNextTaskUnblockTime +
                                                                                          • >>   prvDeleteTCB

                                                                                          [Called By]
                                                                                          • >>   osThreadTerminate
                                                                                          @@ -3188,8 +3188,8 @@ Global Symbols

                                                                                          vTaskPlaceOnEventList (Thumb, 52 bytes, Stack size 16 bytes, tasks.o(i.vTaskPlaceOnEventList))

                                                                                          [Stack]

                                                                                          • Max Depth = 48
                                                                                          • Call Chain = vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                                                          -
                                                                                          [Calls]
                                                                                          • >>   prvAddCurrentTaskToDelayedList -
                                                                                          • >>   vListInsert +
                                                                                            [Calls]
                                                                                            • >>   vListInsert +
                                                                                            • >>   prvAddCurrentTaskToDelayedList

                                                                                            [Called By]
                                                                                            • >>   xQueueSemaphoreTake
                                                                                            • >>   xQueueReceive @@ -3199,8 +3199,8 @@ Global Symbols

                                                                                              vTaskPlaceOnEventListRestricted (Thumb, 60 bytes, Stack size 16 bytes, tasks.o(i.vTaskPlaceOnEventListRestricted))

                                                                                              [Stack]

                                                                                              • Max Depth = 48
                                                                                              • Call Chain = vTaskPlaceOnEventListRestricted ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                                                              -
                                                                                              [Calls]
                                                                                              • >>   prvAddCurrentTaskToDelayedList -
                                                                                              • >>   vListInsertEnd +
                                                                                                [Calls]
                                                                                                • >>   vListInsertEnd +
                                                                                                • >>   prvAddCurrentTaskToDelayedList

                                                                                                [Called By]
                                                                                                • >>   vQueueWaitForMessageRestricted
                                                                                                @@ -3228,15 +3228,15 @@ Global Symbols

                                                                                              vTaskSuspendAll (Thumb, 12 bytes, Stack size 0 bytes, tasks.o(i.vTaskSuspendAll)) -

                                                                                              [Called By]

                                                                                              • >>   prvProcessTimerOrBlockTask +

                                                                                                [Called By]
                                                                                                • >>   osKernelLock +
                                                                                                • >>   vPortFree +
                                                                                                • >>   pvPortMalloc +
                                                                                                • >>   prvProcessTimerOrBlockTask
                                                                                                • >>   vTaskDelayUntil
                                                                                                • >>   vTaskDelay
                                                                                                • >>   xQueueSemaphoreTake
                                                                                                • >>   xQueueReceive
                                                                                                • >>   xQueueGenericSend -
                                                                                                • >>   vPortFree -
                                                                                                • >>   pvPortMalloc -
                                                                                                • >>   osKernelLock

                                                                                                vTaskSwitchContext (Thumb, 230 bytes, Stack size 16 bytes, tasks.o(i.vTaskSwitchContext)) @@ -3287,11 +3287,11 @@ Global Symbols

                                                                                                xQueueGenericCreate (Thumb, 90 bytes, Stack size 32 bytes, queue.o(i.xQueueGenericCreate))

                                                                                                [Stack]

                                                                                                • Max Depth = 96
                                                                                                • Call Chain = xQueueGenericCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                                                                -
                                                                                                [Calls]
                                                                                                • >>   prvInitialiseNewQueue -
                                                                                                • >>   pvPortMalloc +
                                                                                                  [Calls]
                                                                                                  • >>   pvPortMalloc +
                                                                                                  • >>   prvInitialiseNewQueue
                                                                                                  -
                                                                                                  [Called By]
                                                                                                  • >>   xQueueCreateMutex -
                                                                                                  • >>   osMessageQueueNew +
                                                                                                    [Called By]
                                                                                                    • >>   osMessageQueueNew +
                                                                                                    • >>   xQueueCreateMutex

                                                                                                    xQueueGenericCreateStatic (Thumb, 224 bytes, Stack size 32 bytes, queue.o(i.xQueueGenericCreateStatic)) @@ -3299,55 +3299,55 @@ Global Symbols


                                                                                                  [Calls]
                                                                                                  • >>   prvInitialiseNewQueue
                                                                                                  -
                                                                                                  [Called By]
                                                                                                  • >>   prvCheckForValidListAndQueue +
                                                                                                    [Called By]
                                                                                                    • >>   osMessageQueueNew +
                                                                                                    • >>   prvCheckForValidListAndQueue
                                                                                                    • >>   xQueueCreateMutexStatic -
                                                                                                    • >>   osMessageQueueNew

                                                                                                    xQueueGenericReset (Thumb, 146 bytes, Stack size 16 bytes, queue.o(i.xQueueGenericReset))

                                                                                                    [Stack]

                                                                                                    • Max Depth = 32
                                                                                                    • Call Chain = xQueueGenericReset ⇒ xTaskRemoveFromEventList
                                                                                                    -
                                                                                                    [Calls]
                                                                                                    • >>   xTaskRemoveFromEventList -
                                                                                                    • >>   vPortExitCritical +
                                                                                                      [Calls]
                                                                                                      • >>   vPortExitCritical
                                                                                                      • >>   vPortEnterCritical
                                                                                                      • >>   vListInitialise +
                                                                                                      • >>   xTaskRemoveFromEventList
                                                                                                      -
                                                                                                      [Called By]
                                                                                                      • >>   prvInitialiseNewQueue -
                                                                                                      • >>   osMessageQueueReset +
                                                                                                        [Called By]
                                                                                                        • >>   osMessageQueueReset +
                                                                                                        • >>   prvInitialiseNewQueue

                                                                                                        xQueueGenericSend (Thumb, 420 bytes, Stack size 56 bytes, queue.o(i.xQueueGenericSend))

                                                                                                        [Stack]

                                                                                                        • Max Depth = 104
                                                                                                        • Call Chain = xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert

                                                                                                        [Calls]
                                                                                                        • >>   xTaskGetSchedulerState +
                                                                                                        • >>   prvCopyDataToQueue +
                                                                                                        • >>   xTaskResumeAll +
                                                                                                        • >>   vTaskSuspendAll +
                                                                                                        • >>   vPortExitCritical +
                                                                                                        • >>   vPortEnterCritical
                                                                                                        • >>   xTaskRemoveFromEventList
                                                                                                        • >>   xTaskCheckForTimeOut
                                                                                                        • >>   vTaskPlaceOnEventList
                                                                                                        • >>   vTaskInternalSetTimeOutState
                                                                                                        • >>   prvUnlockQueue
                                                                                                        • >>   prvIsQueueFull -
                                                                                                        • >>   prvCopyDataToQueue -
                                                                                                        • >>   xTaskResumeAll -
                                                                                                        • >>   vTaskSuspendAll -
                                                                                                        • >>   vPortExitCritical -
                                                                                                        • >>   vPortEnterCritical
                                                                                                        -
                                                                                                        [Called By]
                                                                                                        • >>   xTimerGenericCommand +
                                                                                                          [Called By]
                                                                                                          • >>   osMutexRelease +
                                                                                                          • >>   osMessageQueuePut +
                                                                                                          • >>   xTimerGenericCommand
                                                                                                          • >>   xQueueGiveMutexRecursive
                                                                                                          • >>   prvInitialiseMutex -
                                                                                                          • >>   osMutexRelease -
                                                                                                          • >>   osMessageQueuePut

                                                                                                          xQueueGenericSendFromISR (Thumb, 252 bytes, Stack size 40 bytes, queue.o(i.xQueueGenericSendFromISR))

                                                                                                          [Stack]

                                                                                                          • Max Depth = 80
                                                                                                          • Call Chain = xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit
                                                                                                          -
                                                                                                          [Calls]
                                                                                                          • >>   xTaskRemoveFromEventList +
                                                                                                            [Calls]
                                                                                                            • >>   prvCopyDataToQueue +
                                                                                                            • >>   xTaskRemoveFromEventList
                                                                                                            • >>   vPortValidateInterruptPriority -
                                                                                                            • >>   prvCopyDataToQueue
                                                                                                            -
                                                                                                            [Called By]
                                                                                                            • >>   xTimerGenericCommand -
                                                                                                            • >>   osMessageQueuePut +
                                                                                                              [Called By]
                                                                                                              • >>   osMessageQueuePut +
                                                                                                              • >>   xTimerGenericCommand

                                                                                                              xQueueGiveMutexRecursive (Thumb, 72 bytes, Stack size 16 bytes, queue.o(i.xQueueGiveMutexRecursive)) @@ -3363,28 +3363,28 @@ Global Symbols

                                                                                                              [Stack]

                                                                                                              • Max Depth = 96
                                                                                                              • Call Chain = xQueueReceive ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert

                                                                                                              [Calls]
                                                                                                              • >>   xTaskGetSchedulerState +
                                                                                                              • >>   prvCopyDataFromQueue +
                                                                                                              • >>   xTaskResumeAll +
                                                                                                              • >>   vTaskSuspendAll +
                                                                                                              • >>   vPortExitCritical +
                                                                                                              • >>   vPortEnterCritical
                                                                                                              • >>   xTaskRemoveFromEventList
                                                                                                              • >>   xTaskCheckForTimeOut
                                                                                                              • >>   vTaskPlaceOnEventList
                                                                                                              • >>   vTaskInternalSetTimeOutState
                                                                                                              • >>   prvUnlockQueue
                                                                                                              • >>   prvIsQueueEmpty -
                                                                                                              • >>   prvCopyDataFromQueue -
                                                                                                              • >>   xTaskResumeAll -
                                                                                                              • >>   vTaskSuspendAll -
                                                                                                              • >>   vPortExitCritical -
                                                                                                              • >>   vPortEnterCritical
                                                                                                              -
                                                                                                              [Called By]
                                                                                                              • >>   prvProcessReceivedCommands -
                                                                                                              • >>   osMessageQueueGet +
                                                                                                                [Called By]
                                                                                                                • >>   osMessageQueueGet +
                                                                                                                • >>   prvProcessReceivedCommands

                                                                                                                xQueueReceiveFromISR (Thumb, 202 bytes, Stack size 40 bytes, queue.o(i.xQueueReceiveFromISR)) -

                                                                                                                [Stack]

                                                                                                                • Max Depth = 56
                                                                                                                • Call Chain = xQueueReceiveFromISR ⇒ xTaskRemoveFromEventList +

                                                                                                                  [Stack]
                                                                                                                  • Max Depth = 56
                                                                                                                  • Call Chain = xQueueReceiveFromISR ⇒ prvCopyDataFromQueue
                                                                                                                  -
                                                                                                                  [Calls]
                                                                                                                  • >>   xTaskRemoveFromEventList +
                                                                                                                    [Calls]
                                                                                                                    • >>   prvCopyDataFromQueue +
                                                                                                                    • >>   xTaskRemoveFromEventList
                                                                                                                    • >>   vPortValidateInterruptPriority -
                                                                                                                    • >>   prvCopyDataFromQueue

                                                                                                                    [Called By]
                                                                                                                    • >>   osMessageQueueGet
                                                                                                                    @@ -3393,6 +3393,10 @@ Global Symbols

                                                                                                                    [Stack]
                                                                                                                    • Max Depth = 88
                                                                                                                    • Call Chain = xQueueSemaphoreTake ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert

                                                                                                                    [Calls]
                                                                                                                    • >>   xTaskGetSchedulerState +
                                                                                                                    • >>   xTaskResumeAll +
                                                                                                                    • >>   vTaskSuspendAll +
                                                                                                                    • >>   vPortExitCritical +
                                                                                                                    • >>   vPortEnterCritical
                                                                                                                    • >>   xTaskRemoveFromEventList
                                                                                                                    • >>   xTaskPriorityInherit
                                                                                                                    • >>   xTaskCheckForTimeOut @@ -3403,13 +3407,9 @@ Global Symbols
                                                                                                                    • >>   prvUnlockQueue
                                                                                                                    • >>   prvIsQueueEmpty
                                                                                                                    • >>   prvGetDisinheritPriorityAfterTimeout -
                                                                                                                    • >>   xTaskResumeAll -
                                                                                                                    • >>   vTaskSuspendAll -
                                                                                                                    • >>   vPortExitCritical -
                                                                                                                    • >>   vPortEnterCritical
                                                                                                                    -
                                                                                                                    [Called By]
                                                                                                                    • >>   xQueueTakeMutexRecursive -
                                                                                                                    • >>   osMutexAcquire +
                                                                                                                      [Called By]
                                                                                                                      • >>   osMutexAcquire +
                                                                                                                      • >>   xQueueTakeMutexRecursive

                                                                                                                      xQueueTakeMutexRecursive (Thumb, 78 bytes, Stack size 24 bytes, queue.o(i.xQueueTakeMutexRecursive)) @@ -3424,9 +3424,9 @@ Global Symbols

                                                                                                                      xTaskCheckForTimeOut (Thumb, 132 bytes, Stack size 16 bytes, tasks.o(i.xTaskCheckForTimeOut))

                                                                                                                      [Stack]

                                                                                                                      • Max Depth = 16
                                                                                                                      • Call Chain = xTaskCheckForTimeOut
                                                                                                                      -
                                                                                                                      [Calls]
                                                                                                                      • >>   vTaskInternalSetTimeOutState -
                                                                                                                      • >>   vPortExitCritical +
                                                                                                                        [Calls]
                                                                                                                        • >>   vPortExitCritical
                                                                                                                        • >>   vPortEnterCritical +
                                                                                                                        • >>   vTaskInternalSetTimeOutState

                                                                                                                        [Called By]
                                                                                                                        • >>   xQueueSemaphoreTake
                                                                                                                        • >>   xQueueReceive @@ -3437,10 +3437,10 @@ Global Symbols

                                                                                                                          [Stack]
                                                                                                                          • Max Depth = 136 + Unknown Stack Size
                                                                                                                          • Call Chain = xTaskCreate ⇒ pvPortMalloc ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                                                                                          -
                                                                                                                          [Calls]
                                                                                                                          • >>   prvInitialiseNewTask -
                                                                                                                          • >>   prvAddNewTaskToReadyList -
                                                                                                                          • >>   vPortFree +
                                                                                                                            [Calls]
                                                                                                                            • >>   vPortFree
                                                                                                                            • >>   pvPortMalloc +
                                                                                                                            • >>   prvInitialiseNewTask +
                                                                                                                            • >>   prvAddNewTaskToReadyList

                                                                                                                            [Called By]
                                                                                                                            • >>   osThreadNew
                                                                                                                            @@ -3471,9 +3471,9 @@ Global Symbols

                                                                                                                            xTaskGenericNotifyFromISR (Thumb, 332 bytes, Stack size 40 bytes, tasks.o(i.xTaskGenericNotifyFromISR))

                                                                                                                            [Stack]

                                                                                                                            • Max Depth = 56
                                                                                                                            • Call Chain = xTaskGenericNotifyFromISR ⇒ vPortValidateInterruptPriority
                                                                                                                            -
                                                                                                                            [Calls]
                                                                                                                            • >>   vPortValidateInterruptPriority -
                                                                                                                            • >>   vListInsertEnd +
                                                                                                                              [Calls]
                                                                                                                              • >>   vListInsertEnd
                                                                                                                              • >>   uxListRemove +
                                                                                                                              • >>   vPortValidateInterruptPriority

                                                                                                                              [Called By]
                                                                                                                              • >>   osThreadFlagsSet
                                                                                                                              @@ -3486,21 +3486,21 @@ Global Symbols

                                                                                                                              xTaskGetSchedulerState (Thumb, 24 bytes, Stack size 0 bytes, tasks.o(i.xTaskGetSchedulerState))

                                                                                                                              [Called By]

                                                                                                                              • >>   SysTick_Handler +
                                                                                                                              • >>   osKernelUnlock +
                                                                                                                              • >>   osKernelLock +
                                                                                                                              • >>   osKernelGetState
                                                                                                                              • >>   xTimerGenericCommand
                                                                                                                              • >>   xQueueSemaphoreTake
                                                                                                                              • >>   xQueueReceive
                                                                                                                              • >>   xQueueGenericSend -
                                                                                                                              • >>   osKernelUnlock -
                                                                                                                              • >>   osKernelLock -
                                                                                                                              • >>   osKernelGetState

                                                                                                                              xTaskGetTickCount (Thumb, 6 bytes, Stack size 0 bytes, tasks.o(i.xTaskGetTickCount)) -

                                                                                                                              [Called By]

                                                                                                                              • >>   prvSampleTimeNow -
                                                                                                                              • >>   BSP_TIME_Get_us +

                                                                                                                                [Called By]
                                                                                                                                • >>   BSP_TIME_Get_us
                                                                                                                                • >>   osThreadFlagsWait
                                                                                                                                • >>   osKernelGetTickCount
                                                                                                                                • >>   osDelayUntil +
                                                                                                                                • >>   prvSampleTimeNow

                                                                                                                                xTaskGetTickCountFromISR (Thumb, 16 bytes, Stack size 16 bytes, tasks.o(i.xTaskGetTickCountFromISR)) @@ -3514,9 +3514,9 @@ Global Symbols

                                                                                                                                xTaskIncrementTick (Thumb, 280 bytes, Stack size 24 bytes, tasks.o(i.xTaskIncrementTick))

                                                                                                                                [Stack]

                                                                                                                                • Max Depth = 24
                                                                                                                                • Call Chain = xTaskIncrementTick
                                                                                                                                -
                                                                                                                                [Calls]
                                                                                                                                • >>   prvResetNextTaskUnblockTime -
                                                                                                                                • >>   vListInsertEnd +
                                                                                                                                  [Calls]
                                                                                                                                  • >>   vListInsertEnd
                                                                                                                                  • >>   uxListRemove +
                                                                                                                                  • >>   prvResetNextTaskUnblockTime

                                                                                                                                  [Called By]
                                                                                                                                  • >>   xPortSysTickHandler
                                                                                                                                  • >>   xTaskResumeAll @@ -3525,9 +3525,9 @@ Global Symbols

                                                                                                                                    xTaskNotifyWait (Thumb, 150 bytes, Stack size 24 bytes, tasks.o(i.xTaskNotifyWait))

                                                                                                                                    [Stack]

                                                                                                                                    • Max Depth = 56
                                                                                                                                    • Call Chain = xTaskNotifyWait ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                                                                                                    -
                                                                                                                                    [Calls]
                                                                                                                                    • >>   prvAddCurrentTaskToDelayedList -
                                                                                                                                    • >>   vPortExitCritical +
                                                                                                                                      [Calls]
                                                                                                                                      • >>   vPortExitCritical
                                                                                                                                      • >>   vPortEnterCritical +
                                                                                                                                      • >>   prvAddCurrentTaskToDelayedList

                                                                                                                                      [Called By]
                                                                                                                                      • >>   osThreadFlagsWait
                                                                                                                                      @@ -3568,22 +3568,22 @@ Global Symbols

                                                                                                                                      xTaskResumeAll (Thumb, 222 bytes, Stack size 16 bytes, tasks.o(i.xTaskResumeAll))

                                                                                                                                      [Stack]

                                                                                                                                      • Max Depth = 40
                                                                                                                                      • Call Chain = xTaskResumeAll ⇒ xTaskIncrementTick
                                                                                                                                      -
                                                                                                                                      [Calls]
                                                                                                                                      • >>   xTaskIncrementTick -
                                                                                                                                      • >>   prvResetNextTaskUnblockTime -
                                                                                                                                      • >>   vListInsertEnd +
                                                                                                                                        [Calls]
                                                                                                                                        • >>   vListInsertEnd
                                                                                                                                        • >>   uxListRemove
                                                                                                                                        • >>   vPortExitCritical
                                                                                                                                        • >>   vPortEnterCritical +
                                                                                                                                        • >>   xTaskIncrementTick +
                                                                                                                                        • >>   prvResetNextTaskUnblockTime
                                                                                                                                        -
                                                                                                                                        [Called By]
                                                                                                                                        • >>   prvProcessTimerOrBlockTask +
                                                                                                                                          [Called By]
                                                                                                                                          • >>   osKernelUnlock +
                                                                                                                                          • >>   vPortFree +
                                                                                                                                          • >>   pvPortMalloc +
                                                                                                                                          • >>   prvProcessTimerOrBlockTask
                                                                                                                                          • >>   vTaskDelayUntil
                                                                                                                                          • >>   vTaskDelay
                                                                                                                                          • >>   xQueueSemaphoreTake
                                                                                                                                          • >>   xQueueReceive
                                                                                                                                          • >>   xQueueGenericSend -
                                                                                                                                          • >>   vPortFree -
                                                                                                                                          • >>   pvPortMalloc -
                                                                                                                                          • >>   osKernelUnlock

                                                                                                                                          xTimerCreateTimerTask (Thumb, 100 bytes, Stack size 32 bytes, timers.o(i.xTimerCreateTimerTask)) @@ -3904,10 +3904,10 @@ Local Symbols

                                                                                                                                          I2C_MasterReceive_RXNE (Thumb, 260 bytes, Stack size 16 bytes, stm32f4xx_hal_i2c.o(i.I2C_MasterReceive_RXNE))

                                                                                                                                          [Stack]

                                                                                                                                          • Max Depth = 32
                                                                                                                                          • Call Chain = I2C_MasterReceive_RXNE ⇒ HAL_I2C_MemRxCpltCallback
                                                                                                                                          -
                                                                                                                                          [Calls]
                                                                                                                                          • >>   I2C_WaitOnSTOPRequestThroughIT -
                                                                                                                                          • >>   HAL_I2C_MemRxCpltCallback +
                                                                                                                                            [Calls]
                                                                                                                                            • >>   HAL_I2C_MemRxCpltCallback
                                                                                                                                            • >>   HAL_I2C_MasterRxCpltCallback
                                                                                                                                            • >>   HAL_I2C_ErrorCallback +
                                                                                                                                            • >>   I2C_WaitOnSTOPRequestThroughIT

                                                                                                                                            [Called By]
                                                                                                                                            • >>   HAL_I2C_EV_IRQHandler
                                                                                                                                            @@ -3924,9 +3924,9 @@ Local Symbols

                                                                                                                                            I2C_MasterTransmit_TXE (Thumb, 216 bytes, Stack size 24 bytes, stm32f4xx_hal_i2c.o(i.I2C_MasterTransmit_TXE))

                                                                                                                                            [Stack]

                                                                                                                                            • Max Depth = 56
                                                                                                                                            • Call Chain = I2C_MasterTransmit_TXE ⇒ I2C_MemoryTransmit_TXE_BTF ⇒ HAL_I2C_MemTxCpltCallback
                                                                                                                                            -
                                                                                                                                            [Calls]
                                                                                                                                            • >>   I2C_MemoryTransmit_TXE_BTF -
                                                                                                                                            • >>   HAL_I2C_MemTxCpltCallback +
                                                                                                                                              [Calls]
                                                                                                                                              • >>   HAL_I2C_MemTxCpltCallback
                                                                                                                                              • >>   HAL_I2C_MasterTxCpltCallback +
                                                                                                                                              • >>   I2C_MemoryTransmit_TXE_BTF

                                                                                                                                              [Called By]
                                                                                                                                              • >>   HAL_I2C_EV_IRQHandler
                                                                                                                                              @@ -4050,9 +4050,9 @@ Local Symbols

                                                                                                                                              [Stack]
                                                                                                                                              • Max Depth = 80
                                                                                                                                              • Call Chain = SPI_DMAReceiveCplt ⇒ SPI_EndRxTransaction ⇒ SPI_WaitFlagStateUntilTimeout

                                                                                                                                              [Calls]
                                                                                                                                              • >>   HAL_GetTick -
                                                                                                                                              • >>   SPI_EndRxTransaction
                                                                                                                                              • >>   HAL_SPI_RxCpltCallback
                                                                                                                                              • >>   HAL_SPI_ErrorCallback +
                                                                                                                                              • >>   SPI_EndRxTransaction

                                                                                                                                              [Address Reference Count : 2]
                                                                                                                                              • stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA)
                                                                                                                                              • stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) @@ -4061,9 +4061,9 @@ Local Symbols

                                                                                                                                                [Stack]
                                                                                                                                                • Max Depth = 88
                                                                                                                                                • Call Chain = SPI_DMATransmitCplt ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout

                                                                                                                                                [Calls]
                                                                                                                                                • >>   HAL_GetTick -
                                                                                                                                                • >>   SPI_EndRxTxTransaction
                                                                                                                                                • >>   HAL_SPI_TxCpltCallback
                                                                                                                                                • >>   HAL_SPI_ErrorCallback +
                                                                                                                                                • >>   SPI_EndRxTxTransaction

                                                                                                                                                [Address Reference Count : 1]
                                                                                                                                                • stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit_DMA)
                                                                                                                                                @@ -4071,9 +4071,9 @@ Local Symbols

                                                                                                                                                [Stack]
                                                                                                                                                • Max Depth = 80
                                                                                                                                                • Call Chain = SPI_DMATransmitReceiveCplt ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout

                                                                                                                                                [Calls]
                                                                                                                                                • >>   HAL_GetTick -
                                                                                                                                                • >>   SPI_EndRxTxTransaction
                                                                                                                                                • >>   HAL_SPI_TxRxCpltCallback
                                                                                                                                                • >>   HAL_SPI_ErrorCallback +
                                                                                                                                                • >>   SPI_EndRxTxTransaction

                                                                                                                                                [Address Reference Count : 1]
                                                                                                                                                • stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)
                                                                                                                                                @@ -4146,8 +4146,8 @@ Local Symbols

                                                                                                                                                UART_Receive_IT (Thumb, 252 bytes, Stack size 24 bytes, stm32f4xx_hal_uart.o(i.UART_Receive_IT))

                                                                                                                                                [Stack]

                                                                                                                                                • Max Depth = 40
                                                                                                                                                • Call Chain = UART_Receive_IT ⇒ HAL_UART_RxCpltCallback
                                                                                                                                                -
                                                                                                                                                [Calls]
                                                                                                                                                • >>   HAL_UARTEx_RxEventCallback -
                                                                                                                                                • >>   HAL_UART_RxCpltCallback +
                                                                                                                                                  [Calls]
                                                                                                                                                  • >>   HAL_UART_RxCpltCallback +
                                                                                                                                                  • >>   HAL_UARTEx_RxEventCallback

                                                                                                                                                  [Called By]
                                                                                                                                                  • >>   HAL_UART_IRQHandler
                                                                                                                                                  @@ -4229,10 +4229,10 @@ Local Symbols

                                                                                                                                                  prvUnlockQueue (Thumb, 126 bytes, Stack size 16 bytes, queue.o(i.prvUnlockQueue))

                                                                                                                                                  [Stack]

                                                                                                                                                  • Max Depth = 32
                                                                                                                                                  • Call Chain = prvUnlockQueue ⇒ xTaskRemoveFromEventList
                                                                                                                                                  -
                                                                                                                                                  [Calls]
                                                                                                                                                  • >>   xTaskRemoveFromEventList -
                                                                                                                                                  • >>   vTaskMissedYield -
                                                                                                                                                  • >>   vPortExitCritical +
                                                                                                                                                    [Calls]
                                                                                                                                                    • >>   vPortExitCritical
                                                                                                                                                    • >>   vPortEnterCritical +
                                                                                                                                                    • >>   xTaskRemoveFromEventList +
                                                                                                                                                    • >>   vTaskMissedYield

                                                                                                                                                    [Called By]
                                                                                                                                                    • >>   xQueueSemaphoreTake
                                                                                                                                                    • >>   xQueueReceive @@ -4257,10 +4257,10 @@ Local Symbols

                                                                                                                                                      prvAddNewTaskToReadyList (Thumb, 154 bytes, Stack size 8 bytes, tasks.o(i.prvAddNewTaskToReadyList))

                                                                                                                                                      [Stack]

                                                                                                                                                      • Max Depth = 16
                                                                                                                                                      • Call Chain = prvAddNewTaskToReadyList ⇒ prvInitialiseTaskLists
                                                                                                                                                      -
                                                                                                                                                      [Calls]
                                                                                                                                                      • >>   prvInitialiseTaskLists -
                                                                                                                                                      • >>   vListInsertEnd +
                                                                                                                                                        [Calls]
                                                                                                                                                        • >>   vListInsertEnd
                                                                                                                                                        • >>   vPortExitCritical
                                                                                                                                                        • >>   vPortEnterCritical +
                                                                                                                                                        • >>   prvInitialiseTaskLists

                                                                                                                                                        [Called By]
                                                                                                                                                        • >>   xTaskCreateStatic
                                                                                                                                                        • >>   xTaskCreate @@ -4269,10 +4269,10 @@ Local Symbols

                                                                                                                                                          prvCheckTasksWaitingTermination (Thumb, 60 bytes, Stack size 8 bytes, tasks.o(i.prvCheckTasksWaitingTermination))

                                                                                                                                                          [Stack]

                                                                                                                                                          • Max Depth = 72
                                                                                                                                                          • Call Chain = prvCheckTasksWaitingTermination ⇒ prvDeleteTCB ⇒ vPortFree ⇒ xTaskResumeAll ⇒ xTaskIncrementTick
                                                                                                                                                          -
                                                                                                                                                          [Calls]
                                                                                                                                                          • >>   prvDeleteTCB -
                                                                                                                                                          • >>   uxListRemove +
                                                                                                                                                            [Calls]
                                                                                                                                                            • >>   uxListRemove
                                                                                                                                                            • >>   vPortExitCritical
                                                                                                                                                            • >>   vPortEnterCritical +
                                                                                                                                                            • >>   prvDeleteTCB

                                                                                                                                                            [Called By]
                                                                                                                                                            • >>   prvIdleTask
                                                                                                                                                            @@ -4297,8 +4297,8 @@ Local Symbols

                                                                                                                                                            [Stack]
                                                                                                                                                            • Max Depth = 40 + Unknown Stack Size
                                                                                                                                                            • Call Chain = prvInitialiseNewTask
                                                                                                                                                            -
                                                                                                                                                            [Calls]
                                                                                                                                                            • >>   pxPortInitialiseStack -
                                                                                                                                                            • >>   vListInitialiseItem +
                                                                                                                                                              [Calls]
                                                                                                                                                              • >>   vListInitialiseItem +
                                                                                                                                                              • >>   pxPortInitialiseStack
                                                                                                                                                              • >>   __aeabi_memset

                                                                                                                                                              [Called By]
                                                                                                                                                              • >>   xTaskCreateStatic @@ -4314,19 +4314,19 @@ Local Symbols

                                                                                                                                                              prvResetNextTaskUnblockTime (Thumb, 42 bytes, Stack size 0 bytes, tasks.o(i.prvResetNextTaskUnblockTime)) -

                                                                                                                                                              [Called By]

                                                                                                                                                              • >>   xTaskIncrementTick +

                                                                                                                                                                [Called By]
                                                                                                                                                                • >>   xTaskResumeAll +
                                                                                                                                                                • >>   xTaskIncrementTick
                                                                                                                                                                • >>   vTaskDelete -
                                                                                                                                                                • >>   xTaskResumeAll

                                                                                                                                                                prvCheckForValidListAndQueue (Thumb, 78 bytes, Stack size 8 bytes, timers.o(i.prvCheckForValidListAndQueue))

                                                                                                                                                                [Stack]

                                                                                                                                                                • Max Depth = 96
                                                                                                                                                                • Call Chain = prvCheckForValidListAndQueue ⇒ xQueueGenericCreateStatic ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
                                                                                                                                                                -
                                                                                                                                                                [Calls]
                                                                                                                                                                • >>   xQueueGenericCreateStatic -
                                                                                                                                                                • >>   vQueueAddToRegistry -
                                                                                                                                                                • >>   vPortExitCritical +
                                                                                                                                                                  [Calls]
                                                                                                                                                                  • >>   vPortExitCritical
                                                                                                                                                                  • >>   vPortEnterCritical
                                                                                                                                                                  • >>   vListInitialise +
                                                                                                                                                                  • >>   xQueueGenericCreateStatic +
                                                                                                                                                                  • >>   vQueueAddToRegistry

                                                                                                                                                                  [Called By]
                                                                                                                                                                  • >>   xTimerCreateTimerTask
                                                                                                                                                                  @@ -4347,9 +4347,9 @@ Local Symbols

                                                                                                                                                                  prvProcessExpiredTimer (Thumb, 110 bytes, Stack size 24 bytes, timers.o(i.prvProcessExpiredTimer))

                                                                                                                                                                  [Stack]

                                                                                                                                                                  • Max Depth = 176
                                                                                                                                                                  • Call Chain = prvProcessExpiredTimer ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                                                                                                                                  -
                                                                                                                                                                  [Calls]
                                                                                                                                                                  • >>   xTimerGenericCommand +
                                                                                                                                                                    [Calls]
                                                                                                                                                                    • >>   uxListRemove +
                                                                                                                                                                    • >>   xTimerGenericCommand
                                                                                                                                                                    • >>   prvInsertTimerInActiveList -
                                                                                                                                                                    • >>   uxListRemove

                                                                                                                                                                    [Called By]
                                                                                                                                                                    • >>   prvProcessTimerOrBlockTask
                                                                                                                                                                    @@ -4357,12 +4357,12 @@ Local Symbols

                                                                                                                                                                    prvProcessReceivedCommands (Thumb, 350 bytes, Stack size 48 bytes, timers.o(i.prvProcessReceivedCommands))

                                                                                                                                                                    [Stack]

                                                                                                                                                                    • Max Depth = 248
                                                                                                                                                                    • Call Chain = prvProcessReceivedCommands ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                                                                                                                                    -
                                                                                                                                                                    [Calls]
                                                                                                                                                                    • >>   xTimerGenericCommand +
                                                                                                                                                                      [Calls]
                                                                                                                                                                      • >>   uxListRemove +
                                                                                                                                                                      • >>   vPortFree +
                                                                                                                                                                      • >>   xTimerGenericCommand
                                                                                                                                                                      • >>   prvSampleTimeNow
                                                                                                                                                                      • >>   prvInsertTimerInActiveList
                                                                                                                                                                      • >>   xQueueReceive -
                                                                                                                                                                      • >>   uxListRemove -
                                                                                                                                                                      • >>   vPortFree

                                                                                                                                                                      [Called By]
                                                                                                                                                                      • >>   prvTimerTask
                                                                                                                                                                      @@ -4370,11 +4370,11 @@ Local Symbols

                                                                                                                                                                      prvProcessTimerOrBlockTask (Thumb, 102 bytes, Stack size 24 bytes, timers.o(i.prvProcessTimerOrBlockTask))

                                                                                                                                                                      [Stack]

                                                                                                                                                                      • Max Depth = 224
                                                                                                                                                                      • Call Chain = prvProcessTimerOrBlockTask ⇒ prvSampleTimeNow ⇒ prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                                                                                                                                      -
                                                                                                                                                                      [Calls]
                                                                                                                                                                      • >>   prvSampleTimeNow +
                                                                                                                                                                        [Calls]
                                                                                                                                                                        • >>   xTaskResumeAll +
                                                                                                                                                                        • >>   vTaskSuspendAll +
                                                                                                                                                                        • >>   prvSampleTimeNow
                                                                                                                                                                        • >>   prvProcessExpiredTimer
                                                                                                                                                                        • >>   vQueueWaitForMessageRestricted -
                                                                                                                                                                        • >>   xTaskResumeAll -
                                                                                                                                                                        • >>   vTaskSuspendAll

                                                                                                                                                                        [Called By]
                                                                                                                                                                        • >>   prvTimerTask
                                                                                                                                                                        @@ -4392,9 +4392,9 @@ Local Symbols

                                                                                                                                                                        prvSwitchTimerLists (Thumb, 154 bytes, Stack size 32 bytes, timers.o(i.prvSwitchTimerLists))

                                                                                                                                                                        [Stack]

                                                                                                                                                                        • Max Depth = 184
                                                                                                                                                                        • Call Chain = prvSwitchTimerLists ⇒ xTimerGenericCommand ⇒ xQueueGenericSend ⇒ vTaskPlaceOnEventList ⇒ prvAddCurrentTaskToDelayedList ⇒ vListInsert
                                                                                                                                                                        -
                                                                                                                                                                        [Calls]
                                                                                                                                                                        • >>   xTimerGenericCommand -
                                                                                                                                                                        • >>   vListInsert +
                                                                                                                                                                          [Calls]
                                                                                                                                                                          • >>   vListInsert
                                                                                                                                                                          • >>   uxListRemove +
                                                                                                                                                                          • >>   xTimerGenericCommand

                                                                                                                                                                          [Called By]
                                                                                                                                                                          • >>   prvSampleTimeNow
                                                                                                                                                                          diff --git a/MDK-ARM/gimbal/gimbal.lnp b/MDK-ARM/gimbal/gimbal.lnp index 59df1e7..4aabbec 100644 --- a/MDK-ARM/gimbal/gimbal.lnp +++ b/MDK-ARM/gimbal/gimbal.lnp @@ -52,9 +52,9 @@ "gimbal\uart.o" "gimbal\ahrs.o" "gimbal\cmd.o" +"gimbal\filter.o" "gimbal\crc8.o" "gimbal\crc16.o" -"gimbal\filter.o" "gimbal\freertos_cli.o" "gimbal\limiter.o" "gimbal\mixer.o" diff --git a/MDK-ARM/gimbal/gimbal.map b/MDK-ARM/gimbal/gimbal.map index 187595e..f5748c3 100644 --- a/MDK-ARM/gimbal/gimbal.map +++ b/MDK-ARM/gimbal/gimbal.map @@ -1820,16 +1820,16 @@ Section Cross References cmd.o(i.CMD_ParseRc) refers to cmd.o(i.CMD_RcLogic) for CMD_RcLogic cmd.o(i.CMD_PcLogic) refers to cmd.o(i.CMD_BehaviorOccurredRc) for CMD_BehaviorOccurredRc cmd.o(i.CMD_PcLogic) refers to cmd.o(i.CMD_RefereeAdd) for CMD_RefereeAdd - crc8.o(i.CRC8_Calc) refers to crc8.o(.constdata) for crc8_tab - crc8.o(i.CRC8_Verify) refers to crc8.o(i.CRC8_Calc) for CRC8_Calc - crc16.o(i.CRC16_Calc) refers to crc16.o(.constdata) for crc16_tab - crc16.o(i.CRC16_Verify) refers to crc16.o(i.CRC16_Calc) for CRC16_Calc filter.o(i.LowPassFilter2p_Init) refers to tanf.o(i.__hardfp_tanf) for __hardfp_tanf filter.o(i.LowPassFilter2p_Init) refers to cosf.o(i.__hardfp_cosf) for __hardfp_cosf filter.o(i.LowPassFilter2p_Reset) refers to filter.o(i.LowPassFilter2p_Apply) for LowPassFilter2p_Apply filter.o(i.NotchFilter_Init) refers to tanf.o(i.__hardfp_tanf) for __hardfp_tanf filter.o(i.NotchFilter_Init) refers to cosf.o(i.__hardfp_cosf) for __hardfp_cosf filter.o(i.NotchFilter_Reset) refers to filter.o(i.NotchFilter_Apply) for NotchFilter_Apply + crc8.o(i.CRC8_Calc) refers to crc8.o(.constdata) for crc8_tab + crc8.o(i.CRC8_Verify) refers to crc8.o(i.CRC8_Calc) for CRC8_Calc + crc16.o(i.CRC16_Calc) refers to crc16.o(.constdata) for crc16_tab + crc16.o(i.CRC16_Verify) refers to crc16.o(i.CRC16_Calc) for CRC16_Calc freertos_cli.o(i.FreeRTOS_CLIGetOutputBuffer) refers to freertos_cli.o(.bss) for cOutputBuffer freertos_cli.o(i.FreeRTOS_CLIProcessCommand) refers to strlen.o(.text) for strlen freertos_cli.o(i.FreeRTOS_CLIProcessCommand) refers to strncmp.o(.text) for strncmp @@ -3288,14 +3288,14 @@ Removing Unused input sections from the image. Removing cmd.o(i.CMD_RcLogic), (200 bytes). Removing cmd.o(i.CMD_RcLostLogic), (14 bytes). Removing cmd.o(i.CMD_RefereeAdd), (42 bytes). + Removing filter.o(i.NotchFilter_Init), (240 bytes). + Removing filter.o(i.NotchFilter_Reset), (124 bytes). Removing crc8.o(i.CRC8_Calc), (36 bytes). Removing crc8.o(i.CRC8_Verify), (42 bytes). Removing crc8.o(.constdata), (256 bytes). Removing crc16.o(i.CRC16_Calc), (48 bytes). Removing crc16.o(i.CRC16_Verify), (56 bytes). Removing crc16.o(.constdata), (512 bytes). - Removing filter.o(i.NotchFilter_Init), (240 bytes). - Removing filter.o(i.NotchFilter_Reset), (124 bytes). Removing freertos_cli.o(i.FreeRTOS_CLIGetOutputBuffer), (8 bytes). Removing freertos_cli.o(i.FreeRTOS_CLIGetParameter), (92 bytes). Removing freertos_cli.o(i.FreeRTOS_CLIProcessCommand), (216 bytes). @@ -3865,505 +3865,505 @@ Image Symbol Table i.EXTI9_5_IRQHandler 0x08002a72 Section 0 stm32f4xx_it.o(i.EXTI9_5_IRQHandler) i.Error_Handler 0x08002a7c Section 0 main.o(i.Error_Handler) i.Gimbal_Control 0x08002a84 Section 0 gimbal.o(i.Gimbal_Control) - i.Gimbal_Init 0x08002ed4 Section 0 gimbal.o(i.Gimbal_Init) - i.Gimbal_Output 0x08003028 Section 0 gimbal.o(i.Gimbal_Output) - i.Gimbal_SetMode 0x08003060 Section 0 gimbal.o(i.Gimbal_SetMode) - Gimbal_SetMode 0x08003061 Thumb Code 126 gimbal.o(i.Gimbal_SetMode) - i.Gimbal_UpdateFeedback 0x080030e4 Section 0 gimbal.o(i.Gimbal_UpdateFeedback) - i.Gimbal_UpdateIMU 0x0800313a Section 0 gimbal.o(i.Gimbal_UpdateIMU) - i.HAL_CAN_ActivateNotification 0x08003164 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_ActivateNotification) - i.HAL_CAN_AddTxMessage 0x0800318e Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_AddTxMessage) - i.HAL_CAN_ConfigFilter 0x080032d8 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_ConfigFilter) - i.HAL_CAN_ErrorCallback 0x080033f8 Section 0 can_1.o(i.HAL_CAN_ErrorCallback) - i.HAL_CAN_GetRxFifoFillLevel 0x08003434 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_GetRxFifoFillLevel) - i.HAL_CAN_GetRxMessage 0x0800345c Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_GetRxMessage) - i.HAL_CAN_GetTxMailboxesFreeLevel 0x080035f0 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_GetTxMailboxesFreeLevel) - i.HAL_CAN_IRQHandler 0x08003626 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_IRQHandler) - i.HAL_CAN_Init 0x08003874 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_Init) - i.HAL_CAN_MspInit 0x080039e8 Section 0 can.o(i.HAL_CAN_MspInit) - i.HAL_CAN_RxFifo0FullCallback 0x08003b88 Section 0 can_1.o(i.HAL_CAN_RxFifo0FullCallback) - i.HAL_CAN_RxFifo0MsgPendingCallback 0x08003bc4 Section 0 can_1.o(i.HAL_CAN_RxFifo0MsgPendingCallback) - i.HAL_CAN_RxFifo1FullCallback 0x08003c00 Section 0 can_1.o(i.HAL_CAN_RxFifo1FullCallback) - i.HAL_CAN_RxFifo1MsgPendingCallback 0x08003c3c Section 0 can_1.o(i.HAL_CAN_RxFifo1MsgPendingCallback) - i.HAL_CAN_SleepCallback 0x08003c78 Section 0 can_1.o(i.HAL_CAN_SleepCallback) - i.HAL_CAN_Start 0x08003cb4 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_Start) - i.HAL_CAN_TxMailbox0AbortCallback 0x08003d14 Section 0 can_1.o(i.HAL_CAN_TxMailbox0AbortCallback) - i.HAL_CAN_TxMailbox0CompleteCallback 0x08003d50 Section 0 can_1.o(i.HAL_CAN_TxMailbox0CompleteCallback) - i.HAL_CAN_TxMailbox1AbortCallback 0x08003d88 Section 0 can_1.o(i.HAL_CAN_TxMailbox1AbortCallback) - i.HAL_CAN_TxMailbox1CompleteCallback 0x08003dc4 Section 0 can_1.o(i.HAL_CAN_TxMailbox1CompleteCallback) - i.HAL_CAN_TxMailbox2AbortCallback 0x08003e00 Section 0 can_1.o(i.HAL_CAN_TxMailbox2AbortCallback) - i.HAL_CAN_TxMailbox2CompleteCallback 0x08003e3c Section 0 can_1.o(i.HAL_CAN_TxMailbox2CompleteCallback) - i.HAL_CAN_WakeUpFromRxMsgCallback 0x08003e78 Section 0 can_1.o(i.HAL_CAN_WakeUpFromRxMsgCallback) - i.HAL_DMA_Abort 0x08003eb4 Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_Abort) - i.HAL_DMA_Abort_IT 0x08003f60 Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_Abort_IT) - i.HAL_DMA_GetState 0x08003f88 Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_GetState) - i.HAL_DMA_IRQHandler 0x08003f90 Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_IRQHandler) - i.HAL_DMA_Init 0x080041d0 Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_Init) - i.HAL_DMA_Start_IT 0x080042bc Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_Start_IT) - i.HAL_Delay 0x08004350 Section 0 stm32f4xx_hal.o(i.HAL_Delay) - i.HAL_GPIO_EXTI_Callback 0x08004378 Section 0 gpio_1.o(i.HAL_GPIO_EXTI_Callback) - i.HAL_GPIO_EXTI_IRQHandler 0x080043a8 Section 0 stm32f4xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) - i.HAL_GPIO_Init 0x080043c4 Section 0 stm32f4xx_hal_gpio.o(i.HAL_GPIO_Init) - i.HAL_GPIO_ReadPin 0x080045b8 Section 0 stm32f4xx_hal_gpio.o(i.HAL_GPIO_ReadPin) - i.HAL_GPIO_WritePin 0x080045c8 Section 0 stm32f4xx_hal_gpio.o(i.HAL_GPIO_WritePin) - i.HAL_GetTick 0x080045d4 Section 0 stm32f4xx_hal.o(i.HAL_GetTick) - i.HAL_I2C_AbortCpltCallback 0x080045e0 Section 0 i2c_1.o(i.HAL_I2C_AbortCpltCallback) - i.HAL_I2C_AddrCallback 0x08004614 Section 0 stm32f4xx_hal_i2c.o(i.HAL_I2C_AddrCallback) - i.HAL_I2C_ER_IRQHandler 0x08004616 Section 0 stm32f4xx_hal_i2c.o(i.HAL_I2C_ER_IRQHandler) - i.HAL_I2C_EV_IRQHandler 0x080046ea Section 0 stm32f4xx_hal_i2c.o(i.HAL_I2C_EV_IRQHandler) - i.HAL_I2C_ErrorCallback 0x080048c4 Section 0 i2c_1.o(i.HAL_I2C_ErrorCallback) - i.HAL_I2C_Init 0x080048f8 Section 0 stm32f4xx_hal_i2c.o(i.HAL_I2C_Init) - i.HAL_I2C_ListenCpltCallback 0x08004ac8 Section 0 i2c_1.o(i.HAL_I2C_ListenCpltCallback) - i.HAL_I2C_MasterRxCpltCallback 0x08004afc Section 0 i2c_1.o(i.HAL_I2C_MasterRxCpltCallback) - i.HAL_I2C_MasterTxCpltCallback 0x08004b30 Section 0 i2c_1.o(i.HAL_I2C_MasterTxCpltCallback) - i.HAL_I2C_MemRxCpltCallback 0x08004b60 Section 0 i2c_1.o(i.HAL_I2C_MemRxCpltCallback) - i.HAL_I2C_MemTxCpltCallback 0x08004b94 Section 0 i2c_1.o(i.HAL_I2C_MemTxCpltCallback) - i.HAL_I2C_MspInit 0x08004bc8 Section 0 i2c.o(i.HAL_I2C_MspInit) - i.HAL_I2C_SlaveRxCpltCallback 0x08004ce4 Section 0 i2c_1.o(i.HAL_I2C_SlaveRxCpltCallback) - i.HAL_I2C_SlaveTxCpltCallback 0x08004d18 Section 0 i2c_1.o(i.HAL_I2C_SlaveTxCpltCallback) - i.HAL_IncTick 0x08004d4c Section 0 stm32f4xx_hal.o(i.HAL_IncTick) - i.HAL_Init 0x08004d64 Section 0 stm32f4xx_hal.o(i.HAL_Init) - i.HAL_InitTick 0x08004da0 Section 0 stm32f4xx_hal.o(i.HAL_InitTick) - i.HAL_MspInit 0x08004dec Section 0 stm32f4xx_hal_msp.o(i.HAL_MspInit) - i.HAL_NVIC_DisableIRQ 0x08004e40 Section 0 stm32f4xx_hal_cortex.o(i.HAL_NVIC_DisableIRQ) - i.HAL_NVIC_EnableIRQ 0x08004e6c Section 0 stm32f4xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) - i.HAL_NVIC_SetPriority 0x08004e94 Section 0 stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriority) - i.HAL_NVIC_SetPriorityGrouping 0x08004f10 Section 0 stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) - i.HAL_RCC_ClockConfig 0x08004f38 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_ClockConfig) - i.HAL_RCC_GetHCLKFreq 0x080050bc Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq) - i.HAL_RCC_GetPCLK1Freq 0x080050c8 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) - i.HAL_RCC_GetPCLK2Freq 0x080050e8 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) - i.HAL_RCC_GetSysClockFreq 0x08005108 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) - i.HAL_RCC_OscConfig 0x080051b8 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_OscConfig) - i.HAL_SPI_ErrorCallback 0x08005654 Section 0 spi_1.o(i.HAL_SPI_ErrorCallback) - i.HAL_SPI_Init 0x0800568c Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Init) - i.HAL_SPI_MspInit 0x08005754 Section 0 spi.o(i.HAL_SPI_MspInit) - i.HAL_SPI_Receive 0x08005920 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Receive) - i.HAL_SPI_Receive_DMA 0x08005aa4 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA) - i.HAL_SPI_RxCpltCallback 0x08005bbc Section 0 spi_1.o(i.HAL_SPI_RxCpltCallback) - i.HAL_SPI_RxHalfCpltCallback 0x08005bf4 Section 0 spi_1.o(i.HAL_SPI_RxHalfCpltCallback) - i.HAL_SPI_Transmit 0x08005c2c Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit) - i.HAL_SPI_TransmitReceive 0x08005dea Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive) - i.HAL_SPI_TransmitReceive_DMA 0x08006034 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) - i.HAL_SPI_Transmit_DMA 0x08006198 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) - i.HAL_SPI_TxCpltCallback 0x08006294 Section 0 spi_1.o(i.HAL_SPI_TxCpltCallback) - i.HAL_SPI_TxHalfCpltCallback 0x080062c0 Section 0 spi_1.o(i.HAL_SPI_TxHalfCpltCallback) - i.HAL_SPI_TxRxCpltCallback 0x080062f8 Section 0 spi_1.o(i.HAL_SPI_TxRxCpltCallback) - i.HAL_SPI_TxRxHalfCpltCallback 0x08006330 Section 0 spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback) - i.HAL_SYSTICK_Config 0x08006368 Section 0 stm32f4xx_hal_cortex.o(i.HAL_SYSTICK_Config) - i.HAL_TIMEx_BreakCallback 0x0800639c Section 0 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_BreakCallback) - i.HAL_TIMEx_CommutCallback 0x0800639e Section 0 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_CommutCallback) - i.HAL_TIMEx_MasterConfigSynchronization 0x080063a0 Section 0 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization) - i.HAL_TIM_Base_Init 0x08006454 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_Base_Init) - i.HAL_TIM_Base_MspInit 0x080064bc Section 0 tim.o(i.HAL_TIM_Base_MspInit) - i.HAL_TIM_IC_CaptureCallback 0x08006534 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback) - i.HAL_TIM_IRQHandler 0x08006536 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_IRQHandler) - i.HAL_TIM_MspPostInit 0x080066a4 Section 0 tim.o(i.HAL_TIM_MspPostInit) - i.HAL_TIM_OC_DelayElapsedCallback 0x08006704 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback) - i.HAL_TIM_PWM_ConfigChannel 0x08006706 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel) - i.HAL_TIM_PWM_Init 0x0800680a Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Init) - i.HAL_TIM_PWM_MspInit 0x08006870 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_MspInit) - i.HAL_TIM_PWM_PulseFinishedCallback 0x08006872 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback) - i.HAL_TIM_PWM_Start 0x08006874 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Start) - i.HAL_TIM_PeriodElapsedCallback 0x08006980 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PeriodElapsedCallback) - i.HAL_TIM_TriggerCallback 0x08006982 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_TriggerCallback) - i.HAL_UARTEx_RxEventCallback 0x08006984 Section 0 stm32f4xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback) - i.HAL_UART_ErrorCallback 0x08006988 Section 0 uart.o(i.HAL_UART_ErrorCallback) - i.HAL_UART_IRQHandler 0x080069bc Section 0 stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler) - i.HAL_UART_Init 0x08006cc4 Section 0 stm32f4xx_hal_uart.o(i.HAL_UART_Init) - i.HAL_UART_MspInit 0x08006d3c Section 0 usart.o(i.HAL_UART_MspInit) - i.HAL_UART_RxCpltCallback 0x08006ed4 Section 0 uart.o(i.HAL_UART_RxCpltCallback) - i.HAL_UART_TxCpltCallback 0x08006f08 Section 0 uart.o(i.HAL_UART_TxCpltCallback) - i.HardFault_Handler 0x08006f3c Section 0 stm32f4xx_it.o(i.HardFault_Handler) - i.I2C1_ER_IRQHandler 0x08006f40 Section 0 stm32f4xx_it.o(i.I2C1_ER_IRQHandler) - i.I2C1_EV_IRQHandler 0x08006f50 Section 0 stm32f4xx_it.o(i.I2C1_EV_IRQHandler) - i.I2C_ConvertOtherXferOptions 0x08006f60 Section 0 stm32f4xx_hal_i2c.o(i.I2C_ConvertOtherXferOptions) - I2C_ConvertOtherXferOptions 0x08006f61 Thumb Code 28 stm32f4xx_hal_i2c.o(i.I2C_ConvertOtherXferOptions) - i.I2C_DMAAbort 0x08006f7c Section 0 stm32f4xx_hal_i2c.o(i.I2C_DMAAbort) - I2C_DMAAbort 0x08006f7d Thumb Code 242 stm32f4xx_hal_i2c.o(i.I2C_DMAAbort) - i.I2C_Flush_DR 0x08007074 Section 0 stm32f4xx_hal_i2c.o(i.I2C_Flush_DR) - I2C_Flush_DR 0x08007075 Thumb Code 18 stm32f4xx_hal_i2c.o(i.I2C_Flush_DR) - i.I2C_Get 0x08007088 Section 0 i2c_1.o(i.I2C_Get) - I2C_Get 0x08007089 Thumb Code 30 i2c_1.o(i.I2C_Get) - i.I2C_ITError 0x080070b0 Section 0 stm32f4xx_hal_i2c.o(i.I2C_ITError) - I2C_ITError 0x080070b1 Thumb Code 420 stm32f4xx_hal_i2c.o(i.I2C_ITError) - i.I2C_MasterReceive_BTF 0x0800725c Section 0 stm32f4xx_hal_i2c.o(i.I2C_MasterReceive_BTF) - I2C_MasterReceive_BTF 0x0800725d Thumb Code 304 stm32f4xx_hal_i2c.o(i.I2C_MasterReceive_BTF) - i.I2C_MasterReceive_RXNE 0x0800738c Section 0 stm32f4xx_hal_i2c.o(i.I2C_MasterReceive_RXNE) - I2C_MasterReceive_RXNE 0x0800738d Thumb Code 260 stm32f4xx_hal_i2c.o(i.I2C_MasterReceive_RXNE) - i.I2C_MasterTransmit_BTF 0x08007490 Section 0 stm32f4xx_hal_i2c.o(i.I2C_MasterTransmit_BTF) - I2C_MasterTransmit_BTF 0x08007491 Thumb Code 160 stm32f4xx_hal_i2c.o(i.I2C_MasterTransmit_BTF) - i.I2C_MasterTransmit_TXE 0x08007530 Section 0 stm32f4xx_hal_i2c.o(i.I2C_MasterTransmit_TXE) - I2C_MasterTransmit_TXE 0x08007531 Thumb Code 216 stm32f4xx_hal_i2c.o(i.I2C_MasterTransmit_TXE) - i.I2C_Master_ADD10 0x08007608 Section 0 stm32f4xx_hal_i2c.o(i.I2C_Master_ADD10) - I2C_Master_ADD10 0x08007609 Thumb Code 42 stm32f4xx_hal_i2c.o(i.I2C_Master_ADD10) - i.I2C_Master_ADDR 0x08007632 Section 0 stm32f4xx_hal_i2c.o(i.I2C_Master_ADDR) - I2C_Master_ADDR 0x08007633 Thumb Code 616 stm32f4xx_hal_i2c.o(i.I2C_Master_ADDR) - i.I2C_Master_SB 0x0800789a Section 0 stm32f4xx_hal_i2c.o(i.I2C_Master_SB) - I2C_Master_SB 0x0800789b Thumb Code 158 stm32f4xx_hal_i2c.o(i.I2C_Master_SB) - i.I2C_MemoryTransmit_TXE_BTF 0x08007938 Section 0 stm32f4xx_hal_i2c.o(i.I2C_MemoryTransmit_TXE_BTF) - I2C_MemoryTransmit_TXE_BTF 0x08007939 Thumb Code 198 stm32f4xx_hal_i2c.o(i.I2C_MemoryTransmit_TXE_BTF) - i.I2C_SlaveReceive_BTF 0x080079fe Section 0 stm32f4xx_hal_i2c.o(i.I2C_SlaveReceive_BTF) - I2C_SlaveReceive_BTF 0x080079ff Thumb Code 26 stm32f4xx_hal_i2c.o(i.I2C_SlaveReceive_BTF) - i.I2C_SlaveReceive_RXNE 0x08007a18 Section 0 stm32f4xx_hal_i2c.o(i.I2C_SlaveReceive_RXNE) - I2C_SlaveReceive_RXNE 0x08007a19 Thumb Code 70 stm32f4xx_hal_i2c.o(i.I2C_SlaveReceive_RXNE) - i.I2C_SlaveTransmit_BTF 0x08007a5e Section 0 stm32f4xx_hal_i2c.o(i.I2C_SlaveTransmit_BTF) - I2C_SlaveTransmit_BTF 0x08007a5f Thumb Code 26 stm32f4xx_hal_i2c.o(i.I2C_SlaveTransmit_BTF) - i.I2C_SlaveTransmit_TXE 0x08007a78 Section 0 stm32f4xx_hal_i2c.o(i.I2C_SlaveTransmit_TXE) - I2C_SlaveTransmit_TXE 0x08007a79 Thumb Code 70 stm32f4xx_hal_i2c.o(i.I2C_SlaveTransmit_TXE) - i.I2C_Slave_ADDR 0x08007abe Section 0 stm32f4xx_hal_i2c.o(i.I2C_Slave_ADDR) - I2C_Slave_ADDR 0x08007abf Thumb Code 112 stm32f4xx_hal_i2c.o(i.I2C_Slave_ADDR) - i.I2C_Slave_AF 0x08007b30 Section 0 stm32f4xx_hal_i2c.o(i.I2C_Slave_AF) - I2C_Slave_AF 0x08007b31 Thumb Code 162 stm32f4xx_hal_i2c.o(i.I2C_Slave_AF) - i.I2C_Slave_STOPF 0x08007bd8 Section 0 stm32f4xx_hal_i2c.o(i.I2C_Slave_STOPF) - I2C_Slave_STOPF 0x08007bd9 Thumb Code 386 stm32f4xx_hal_i2c.o(i.I2C_Slave_STOPF) - i.I2C_WaitOnSTOPRequestThroughIT 0x08007d64 Section 0 stm32f4xx_hal_i2c.o(i.I2C_WaitOnSTOPRequestThroughIT) - I2C_WaitOnSTOPRequestThroughIT 0x08007d65 Thumb Code 74 stm32f4xx_hal_i2c.o(i.I2C_WaitOnSTOPRequestThroughIT) - i.InvSqrt 0x08007db4 Section 0 user_math.o(i.InvSqrt) - i.LowPassFilter2p_Apply 0x08007e04 Section 0 filter.o(i.LowPassFilter2p_Apply) - i.LowPassFilter2p_Init 0x08007e84 Section 0 filter.o(i.LowPassFilter2p_Init) - i.LowPassFilter2p_Reset 0x08007f98 Section 0 filter.o(i.LowPassFilter2p_Reset) - i.MOTOR_RM_CreateCANManager 0x08007ff8 Section 0 motor_rm.o(i.MOTOR_RM_CreateCANManager) - MOTOR_RM_CreateCANManager 0x08007ff9 Thumb Code 76 motor_rm.o(i.MOTOR_RM_CreateCANManager) - i.MOTOR_RM_Ctrl 0x08008048 Section 0 motor_rm.o(i.MOTOR_RM_Ctrl) - i.MOTOR_RM_GetCANManager 0x0800816c Section 0 motor_rm.o(i.MOTOR_RM_GetCANManager) - MOTOR_RM_GetCANManager 0x0800816d Thumb Code 18 motor_rm.o(i.MOTOR_RM_GetCANManager) - i.MOTOR_RM_GetLSB 0x08008184 Section 0 motor_rm.o(i.MOTOR_RM_GetLSB) - MOTOR_RM_GetLSB 0x08008185 Thumb Code 38 motor_rm.o(i.MOTOR_RM_GetLSB) - i.MOTOR_RM_GetLogicalIndex 0x080081aa Section 0 motor_rm.o(i.MOTOR_RM_GetLogicalIndex) - MOTOR_RM_GetLogicalIndex 0x080081ab Thumb Code 68 motor_rm.o(i.MOTOR_RM_GetLogicalIndex) - i.MOTOR_RM_GetMotor 0x080081ee Section 0 motor_rm.o(i.MOTOR_RM_GetMotor) - i.MOTOR_RM_GetRatio 0x0800822c Section 0 motor_rm.o(i.MOTOR_RM_GetRatio) - MOTOR_RM_GetRatio 0x0800822d Thumb Code 36 motor_rm.o(i.MOTOR_RM_GetRatio) - i.MOTOR_RM_Register 0x08008254 Section 0 motor_rm.o(i.MOTOR_RM_Register) - i.MOTOR_RM_SetOutput 0x08008314 Section 0 motor_rm.o(i.MOTOR_RM_SetOutput) - i.MOTOR_RM_Update 0x080083c6 Section 0 motor_rm.o(i.MOTOR_RM_Update) - i.MX_CAN1_Init 0x08008474 Section 0 can.o(i.MX_CAN1_Init) - i.MX_CAN2_Init 0x080084bc Section 0 can.o(i.MX_CAN2_Init) - i.MX_DMA_Init 0x08008504 Section 0 dma.o(i.MX_DMA_Init) - i.MX_FREERTOS_Init 0x0800857c Section 0 freertos.o(i.MX_FREERTOS_Init) - i.MX_GPIO_Init 0x080085ac Section 0 gpio.o(i.MX_GPIO_Init) - i.MX_I2C1_Init 0x0800879c Section 0 i2c.o(i.MX_I2C1_Init) - i.MX_I2C2_Init 0x080087d8 Section 0 i2c.o(i.MX_I2C2_Init) - i.MX_SPI1_Init 0x08008814 Section 0 spi.o(i.MX_SPI1_Init) - i.MX_SPI2_Init 0x0800885c Section 0 spi.o(i.MX_SPI2_Init) - i.MX_TIM10_Init 0x080088a4 Section 0 tim.o(i.MX_TIM10_Init) - i.MX_TIM7_Init 0x08008910 Section 0 tim.o(i.MX_TIM7_Init) - i.MX_USART1_UART_Init 0x0800895c Section 0 usart.o(i.MX_USART1_UART_Init) - i.MX_USART3_UART_Init 0x08008994 Section 0 usart.o(i.MX_USART3_UART_Init) - i.MemManage_Handler 0x080089d4 Section 0 stm32f4xx_it.o(i.MemManage_Handler) - i.Motor_RM_Decode 0x080089d8 Section 0 motor_rm.o(i.Motor_RM_Decode) - Motor_RM_Decode 0x080089d9 Thumb Code 384 motor_rm.o(i.Motor_RM_Decode) - i.NMI_Handler 0x08008b68 Section 0 stm32f4xx_it.o(i.NMI_Handler) - i.PID_Calc 0x08008b6c Section 0 pid.o(i.PID_Calc) - i.PID_Init 0x08008d10 Section 0 pid.o(i.PID_Init) - i.PID_Reset 0x08008ddc Section 0 pid.o(i.PID_Reset) - i.RC_Init 0x08008e1c Section 0 bsp_rc.o(i.RC_Init) - i.RC_restart 0x08008ea0 Section 0 bsp_rc.o(i.RC_restart) - i.SPI_DMAError 0x08008efc Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAError) - SPI_DMAError 0x08008efd Thumb Code 40 stm32f4xx_hal_spi.o(i.SPI_DMAError) - i.SPI_DMAHalfReceiveCplt 0x08008f24 Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) - SPI_DMAHalfReceiveCplt 0x08008f25 Thumb Code 14 stm32f4xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) - i.SPI_DMAHalfTransmitCplt 0x08008f32 Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt) - SPI_DMAHalfTransmitCplt 0x08008f33 Thumb Code 14 stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt) - i.SPI_DMAHalfTransmitReceiveCplt 0x08008f40 Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt) - SPI_DMAHalfTransmitReceiveCplt 0x08008f41 Thumb Code 14 stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt) - i.SPI_DMAReceiveCplt 0x08008f4e Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAReceiveCplt) - SPI_DMAReceiveCplt 0x08008f4f Thumb Code 124 stm32f4xx_hal_spi.o(i.SPI_DMAReceiveCplt) - i.SPI_DMATransmitCplt 0x08008fca Section 0 stm32f4xx_hal_spi.o(i.SPI_DMATransmitCplt) - SPI_DMATransmitCplt 0x08008fcb Thumb Code 128 stm32f4xx_hal_spi.o(i.SPI_DMATransmitCplt) - i.SPI_DMATransmitReceiveCplt 0x0800904a Section 0 stm32f4xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt) - SPI_DMATransmitReceiveCplt 0x0800904b Thumb Code 104 stm32f4xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt) - i.SPI_EndRxTransaction 0x080090b2 Section 0 stm32f4xx_hal_spi.o(i.SPI_EndRxTransaction) - SPI_EndRxTransaction 0x080090b3 Thumb Code 148 stm32f4xx_hal_spi.o(i.SPI_EndRxTransaction) - i.SPI_EndRxTxTransaction 0x08009148 Section 0 stm32f4xx_hal_spi.o(i.SPI_EndRxTxTransaction) - SPI_EndRxTxTransaction 0x08009149 Thumb Code 128 stm32f4xx_hal_spi.o(i.SPI_EndRxTxTransaction) - i.SPI_Get 0x080091d0 Section 0 spi_1.o(i.SPI_Get) - SPI_Get 0x080091d1 Thumb Code 18 spi_1.o(i.SPI_Get) - i.SPI_WaitFlagStateUntilTimeout 0x080091e8 Section 0 stm32f4xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) - SPI_WaitFlagStateUntilTimeout 0x080091e9 Thumb Code 212 stm32f4xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) - i.StartDefaultTask 0x080092c0 Section 0 freertos.o(i.StartDefaultTask) - i.SysTick_Handler 0x080092d0 Section 0 stm32f4xx_it.o(i.SysTick_Handler) - i.SystemClock_Config 0x080092e4 Section 0 main.o(i.SystemClock_Config) - i.SystemInit 0x08009398 Section 0 system_stm32f4xx.o(i.SystemInit) - i.TIM7_IRQHandler 0x080093ac Section 0 stm32f4xx_it.o(i.TIM7_IRQHandler) - i.TIM_Base_SetConfig 0x080093bc Section 0 stm32f4xx_hal_tim.o(i.TIM_Base_SetConfig) - i.TIM_CCxChannelCmd 0x0800949c Section 0 stm32f4xx_hal_tim.o(i.TIM_CCxChannelCmd) - i.TIM_OC1_SetConfig 0x080094c0 Section 0 stm32f4xx_hal_tim.o(i.TIM_OC1_SetConfig) - TIM_OC1_SetConfig 0x080094c1 Thumb Code 104 stm32f4xx_hal_tim.o(i.TIM_OC1_SetConfig) - i.TIM_OC2_SetConfig 0x08009530 Section 0 stm32f4xx_hal_tim.o(i.TIM_OC2_SetConfig) - i.TIM_OC3_SetConfig 0x080095ac Section 0 stm32f4xx_hal_tim.o(i.TIM_OC3_SetConfig) - TIM_OC3_SetConfig 0x080095ad Thumb Code 112 stm32f4xx_hal_tim.o(i.TIM_OC3_SetConfig) - i.TIM_OC4_SetConfig 0x08009624 Section 0 stm32f4xx_hal_tim.o(i.TIM_OC4_SetConfig) - TIM_OC4_SetConfig 0x08009625 Thumb Code 74 stm32f4xx_hal_tim.o(i.TIM_OC4_SetConfig) - i.Task_Init 0x08009678 Section 0 init.o(i.Task_Init) - i.Task_atti_esti 0x08009714 Section 0 atti_esti.o(i.Task_atti_esti) - i.Task_gimbal_ctrl 0x08009858 Section 0 gimbal_ctrl.o(i.Task_gimbal_ctrl) - i.Task_remote 0x08009900 Section 0 remote.o(i.Task_remote) - i.UART_DMAAbortOnError 0x08009980 Section 0 stm32f4xx_hal_uart.o(i.UART_DMAAbortOnError) - UART_DMAAbortOnError 0x08009981 Thumb Code 18 stm32f4xx_hal_uart.o(i.UART_DMAAbortOnError) - i.UART_EndRxTransfer 0x08009992 Section 0 stm32f4xx_hal_uart.o(i.UART_EndRxTransfer) - UART_EndRxTransfer 0x08009993 Thumb Code 108 stm32f4xx_hal_uart.o(i.UART_EndRxTransfer) - i.UART_EndTransmit_IT 0x080099fe Section 0 stm32f4xx_hal_uart.o(i.UART_EndTransmit_IT) - UART_EndTransmit_IT 0x080099ff Thumb Code 32 stm32f4xx_hal_uart.o(i.UART_EndTransmit_IT) - i.UART_Get 0x08009a20 Section 0 uart.o(i.UART_Get) - UART_Get 0x08009a21 Thumb Code 18 uart.o(i.UART_Get) - i.UART_Receive_IT 0x08009a38 Section 0 stm32f4xx_hal_uart.o(i.UART_Receive_IT) - UART_Receive_IT 0x08009a39 Thumb Code 252 stm32f4xx_hal_uart.o(i.UART_Receive_IT) - i.UART_SetConfig 0x08009b34 Section 0 stm32f4xx_hal_uart.o(i.UART_SetConfig) - UART_SetConfig 0x08009b35 Thumb Code 546 stm32f4xx_hal_uart.o(i.UART_SetConfig) - i.UART_Transmit_IT 0x08009d60 Section 0 stm32f4xx_hal_uart.o(i.UART_Transmit_IT) - UART_Transmit_IT 0x08009d61 Thumb Code 96 stm32f4xx_hal_uart.o(i.UART_Transmit_IT) - i.USART3_IRQHandler 0x08009dc0 Section 0 stm32f4xx_it.o(i.USART3_IRQHandler) - i.USART3_IRQHandler1 0x08009dd8 Section 0 remote_control.o(i.USART3_IRQHandler1) - i.UsageFault_Handler 0x08009df0 Section 0 stm32f4xx_it.o(i.UsageFault_Handler) - i.__ARM_fpclassify 0x08009df4 Section 0 fpclassify.o(i.__ARM_fpclassify) - i.__ARM_fpclassifyf 0x08009e24 Section 0 fpclassifyf.o(i.__ARM_fpclassifyf) - i.__ARM_isfinitef 0x08009e4a Section 0 pid.o(i.__ARM_isfinitef) - __ARM_isfinitef 0x08009e4b Thumb Code 18 pid.o(i.__ARM_isfinitef) - i.__NVIC_GetPriorityGrouping 0x08009e5c Section 0 stm32f4xx_hal_cortex.o(i.__NVIC_GetPriorityGrouping) - __NVIC_GetPriorityGrouping 0x08009e5d Thumb Code 10 stm32f4xx_hal_cortex.o(i.__NVIC_GetPriorityGrouping) - i.__NVIC_SetPriority 0x08009e6c Section 0 stm32f4xx_hal_cortex.o(i.__NVIC_SetPriority) - __NVIC_SetPriority 0x08009e6d Thumb Code 32 stm32f4xx_hal_cortex.o(i.__NVIC_SetPriority) - i.__get_IPSR 0x08009e94 Section 0 cmsis_os2.o(i.__get_IPSR) - __get_IPSR 0x08009e95 Thumb Code 6 cmsis_os2.o(i.__get_IPSR) - i.__hardfp_asinf 0x08009e9c Section 0 asinf.o(i.__hardfp_asinf) - i.__hardfp_atan 0x08009fc8 Section 0 atan.o(i.__hardfp_atan) - i.__hardfp_atan2 0x0800a2a0 Section 0 atan2.o(i.__hardfp_atan2) - i.__hardfp_atan2f 0x0800a4a0 Section 0 atan2f.o(i.__hardfp_atan2f) - i.__hardfp_cosf 0x0800a74c Section 0 cosf.o(i.__hardfp_cosf) - i.__hardfp_fmaxf 0x0800a89c Section 0 fmaxf.o(i.__hardfp_fmaxf) - i.__hardfp_tanf 0x0800a8e4 Section 0 tanf.o(i.__hardfp_tanf) - i.__kernel_poly 0x0800aa60 Section 0 poly.o(i.__kernel_poly) - i.__mathlib_dbl_infnan 0x0800ab58 Section 0 dunder.o(i.__mathlib_dbl_infnan) - i.__mathlib_dbl_infnan2 0x0800ab6c Section 0 dunder.o(i.__mathlib_dbl_infnan2) - i.__mathlib_dbl_underflow 0x0800ab80 Section 0 dunder.o(i.__mathlib_dbl_underflow) - i.__mathlib_flt_infnan 0x0800aba0 Section 0 funder.o(i.__mathlib_flt_infnan) - i.__mathlib_flt_infnan2 0x0800aba6 Section 0 funder.o(i.__mathlib_flt_infnan2) - i.__mathlib_flt_invalid 0x0800abac Section 0 funder.o(i.__mathlib_flt_invalid) - i.__mathlib_flt_underflow 0x0800abbc Section 0 funder.o(i.__mathlib_flt_underflow) - i.__mathlib_rredf2 0x0800abcc Section 0 rredf.o(i.__mathlib_rredf2) - i.atan 0x0800ad20 Section 0 atan.o(i.atan) - i.configureTimerForRunTimeStats 0x0800ad30 Section 0 freertos.o(i.configureTimerForRunTimeStats) - i.delay_init 0x0800ad34 Section 0 bsp_delay.o(i.delay_init) - i.eTaskGetState 0x0800ad64 Section 0 tasks.o(i.eTaskGetState) - i.fabs 0x0800adf8 Section 0 fabs.o(i.fabs) - i.getRunTimeCounterValue 0x0800ae10 Section 0 freertos.o(i.getRunTimeCounterValue) - i.main 0x0800ae14 Section 0 main.o(i.main) - i.map 0x0800ae5c Section 0 calc_lib.o(i.map) - i.osDelay 0x0800ae72 Section 0 cmsis_os2.o(i.osDelay) - i.osDelayUntil 0x0800ae90 Section 0 cmsis_os2.o(i.osDelayUntil) - i.osKernelGetState 0x0800aec4 Section 0 cmsis_os2.o(i.osKernelGetState) - i.osKernelGetTickCount 0x0800aef8 Section 0 cmsis_os2.o(i.osKernelGetTickCount) - i.osKernelGetTickFreq 0x0800af12 Section 0 cmsis_os2.o(i.osKernelGetTickFreq) - i.osKernelInitialize 0x0800af18 Section 0 cmsis_os2.o(i.osKernelInitialize) - i.osKernelLock 0x0800af44 Section 0 cmsis_os2.o(i.osKernelLock) - i.osKernelStart 0x0800af7c Section 0 cmsis_os2.o(i.osKernelStart) - i.osKernelUnlock 0x0800afdc Section 0 cmsis_os2.o(i.osKernelUnlock) - i.osMessageQueueGet 0x0800b020 Section 0 cmsis_os2.o(i.osMessageQueueGet) - i.osMessageQueueNew 0x0800b0a0 Section 0 cmsis_os2.o(i.osMessageQueueNew) - i.osMessageQueuePut 0x0800b13c Section 0 cmsis_os2.o(i.osMessageQueuePut) - i.osMessageQueueReset 0x0800b1c0 Section 0 cmsis_os2.o(i.osMessageQueueReset) - i.osMutexAcquire 0x0800b1e8 Section 0 cmsis_os2.o(i.osMutexAcquire) - i.osMutexNew 0x0800b24a Section 0 cmsis_os2.o(i.osMutexNew) - i.osMutexRelease 0x0800b2fc Section 0 cmsis_os2.o(i.osMutexRelease) - i.osThreadFlagsSet 0x0800b34c Section 0 cmsis_os2.o(i.osThreadFlagsSet) - i.osThreadFlagsWait 0x0800b3cc Section 0 cmsis_os2.o(i.osThreadFlagsWait) - i.osThreadGetId 0x0800b47e Section 0 cmsis_os2.o(i.osThreadGetId) - i.osThreadNew 0x0800b48a Section 0 cmsis_os2.o(i.osThreadNew) - i.osThreadTerminate 0x0800b542 Section 0 cmsis_os2.o(i.osThreadTerminate) - i.prvAddCurrentTaskToDelayedList 0x0800b580 Section 0 tasks.o(i.prvAddCurrentTaskToDelayedList) - prvAddCurrentTaskToDelayedList 0x0800b581 Thumb Code 100 tasks.o(i.prvAddCurrentTaskToDelayedList) - i.prvAddNewTaskToReadyList 0x0800b5fc Section 0 tasks.o(i.prvAddNewTaskToReadyList) - prvAddNewTaskToReadyList 0x0800b5fd Thumb Code 154 tasks.o(i.prvAddNewTaskToReadyList) - i.prvCheckForValidListAndQueue 0x0800b6b4 Section 0 timers.o(i.prvCheckForValidListAndQueue) - prvCheckForValidListAndQueue 0x0800b6b5 Thumb Code 78 timers.o(i.prvCheckForValidListAndQueue) - i.prvCheckTasksWaitingTermination 0x0800b728 Section 0 tasks.o(i.prvCheckTasksWaitingTermination) - prvCheckTasksWaitingTermination 0x0800b729 Thumb Code 60 tasks.o(i.prvCheckTasksWaitingTermination) - i.prvCopyDataFromQueue 0x0800b770 Section 0 queue.o(i.prvCopyDataFromQueue) - prvCopyDataFromQueue 0x0800b771 Thumb Code 42 queue.o(i.prvCopyDataFromQueue) - i.prvCopyDataToQueue 0x0800b79a Section 0 queue.o(i.prvCopyDataToQueue) - prvCopyDataToQueue 0x0800b79b Thumb Code 126 queue.o(i.prvCopyDataToQueue) - i.prvDeleteTCB 0x0800b818 Section 0 tasks.o(i.prvDeleteTCB) - prvDeleteTCB 0x0800b819 Thumb Code 80 tasks.o(i.prvDeleteTCB) - i.prvGetDisinheritPriorityAfterTimeout 0x0800b868 Section 0 queue.o(i.prvGetDisinheritPriorityAfterTimeout) - prvGetDisinheritPriorityAfterTimeout 0x0800b869 Thumb Code 20 queue.o(i.prvGetDisinheritPriorityAfterTimeout) - i.prvGetNextExpireTime 0x0800b87c Section 0 timers.o(i.prvGetNextExpireTime) - prvGetNextExpireTime 0x0800b87d Thumb Code 36 timers.o(i.prvGetNextExpireTime) - i.prvHeapInit 0x0800b8a4 Section 0 heap_4.o(i.prvHeapInit) - prvHeapInit 0x0800b8a5 Thumb Code 98 heap_4.o(i.prvHeapInit) - i.prvIdleTask 0x0800b920 Section 0 tasks.o(i.prvIdleTask) - prvIdleTask 0x0800b921 Thumb Code 32 tasks.o(i.prvIdleTask) - i.prvInitialiseMutex 0x0800b948 Section 0 queue.o(i.prvInitialiseMutex) - prvInitialiseMutex 0x0800b949 Thumb Code 30 queue.o(i.prvInitialiseMutex) - i.prvInitialiseNewQueue 0x0800b966 Section 0 queue.o(i.prvInitialiseNewQueue) - prvInitialiseNewQueue 0x0800b967 Thumb Code 42 queue.o(i.prvInitialiseNewQueue) - i.prvInitialiseNewTask 0x0800b990 Section 0 tasks.o(i.prvInitialiseNewTask) - prvInitialiseNewTask 0x0800b991 Thumb Code 196 tasks.o(i.prvInitialiseNewTask) - i.prvInitialiseTaskLists 0x0800ba54 Section 0 tasks.o(i.prvInitialiseTaskLists) - prvInitialiseTaskLists 0x0800ba55 Thumb Code 70 tasks.o(i.prvInitialiseTaskLists) - i.prvInsertBlockIntoFreeList 0x0800babc Section 0 heap_4.o(i.prvInsertBlockIntoFreeList) - prvInsertBlockIntoFreeList 0x0800babd Thumb Code 96 heap_4.o(i.prvInsertBlockIntoFreeList) - i.prvInsertTimerInActiveList 0x0800bb24 Section 0 timers.o(i.prvInsertTimerInActiveList) - prvInsertTimerInActiveList 0x0800bb25 Thumb Code 80 timers.o(i.prvInsertTimerInActiveList) - i.prvIsQueueEmpty 0x0800bb7c Section 0 queue.o(i.prvIsQueueEmpty) - prvIsQueueEmpty 0x0800bb7d Thumb Code 26 queue.o(i.prvIsQueueEmpty) - i.prvIsQueueFull 0x0800bb96 Section 0 queue.o(i.prvIsQueueFull) - prvIsQueueFull 0x0800bb97 Thumb Code 30 queue.o(i.prvIsQueueFull) - i.prvProcessExpiredTimer 0x0800bbb4 Section 0 timers.o(i.prvProcessExpiredTimer) - prvProcessExpiredTimer 0x0800bbb5 Thumb Code 110 timers.o(i.prvProcessExpiredTimer) - i.prvProcessReceivedCommands 0x0800bc28 Section 0 timers.o(i.prvProcessReceivedCommands) - prvProcessReceivedCommands 0x0800bc29 Thumb Code 350 timers.o(i.prvProcessReceivedCommands) - i.prvProcessTimerOrBlockTask 0x0800bd8c Section 0 timers.o(i.prvProcessTimerOrBlockTask) - prvProcessTimerOrBlockTask 0x0800bd8d Thumb Code 102 timers.o(i.prvProcessTimerOrBlockTask) - i.prvResetNextTaskUnblockTime 0x0800be00 Section 0 tasks.o(i.prvResetNextTaskUnblockTime) - prvResetNextTaskUnblockTime 0x0800be01 Thumb Code 42 tasks.o(i.prvResetNextTaskUnblockTime) - i.prvSampleTimeNow 0x0800be34 Section 0 timers.o(i.prvSampleTimeNow) - prvSampleTimeNow 0x0800be35 Thumb Code 40 timers.o(i.prvSampleTimeNow) - i.prvSwitchTimerLists 0x0800be60 Section 0 timers.o(i.prvSwitchTimerLists) - prvSwitchTimerLists 0x0800be61 Thumb Code 154 timers.o(i.prvSwitchTimerLists) - i.prvTaskExitError 0x0800bf04 Section 0 port.o(i.prvTaskExitError) - prvTaskExitError 0x0800bf05 Thumb Code 60 port.o(i.prvTaskExitError) - i.prvTimerTask 0x0800bf44 Section 0 timers.o(i.prvTimerTask) - prvTimerTask 0x0800bf45 Thumb Code 26 timers.o(i.prvTimerTask) - i.prvUnlockQueue 0x0800bf5e Section 0 queue.o(i.prvUnlockQueue) - prvUnlockQueue 0x0800bf5f Thumb Code 126 queue.o(i.prvUnlockQueue) - i.pvPortMalloc 0x0800bfdc Section 0 heap_4.o(i.pvPortMalloc) - i.pvTaskIncrementMutexHeldCount 0x0800c128 Section 0 tasks.o(i.pvTaskIncrementMutexHeldCount) - i.pxPortInitialiseStack 0x0800c148 Section 0 port.o(i.pxPortInitialiseStack) - i.remote_ParseHost 0x0800c174 Section 0 ai.o(i.remote_ParseHost) - i.remote_control_init 0x0800c1fc Section 0 remote_control.o(i.remote_control_init) - i.sbus_to_rc 0x0800c20c Section 0 remote_control.o(i.sbus_to_rc) - sbus_to_rc 0x0800c20d Thumb Code 510 remote_control.o(i.sbus_to_rc) - i.sqrtf 0x0800c418 Section 0 sqrtf.o(i.sqrtf) - i.user_delay_ms 0x0800c456 Section 0 calc_lib.o(i.user_delay_ms) - i.user_delay_us 0x0800c46e Section 0 calc_lib.o(i.user_delay_us) - i.uxListRemove 0x0800c486 Section 0 list.o(i.uxListRemove) - i.vApplicationGetIdleTaskMemory 0x0800c4b0 Section 0 cmsis_os2.o(i.vApplicationGetIdleTaskMemory) - i.vApplicationGetTimerTaskMemory 0x0800c4c8 Section 0 cmsis_os2.o(i.vApplicationGetTimerTaskMemory) - i.vApplicationStackOverflowHook 0x0800c4e0 Section 0 freertos.o(i.vApplicationStackOverflowHook) - i.vListInitialise 0x0800c4e2 Section 0 list.o(i.vListInitialise) - i.vListInitialiseItem 0x0800c4fc Section 0 list.o(i.vListInitialiseItem) - i.vListInsert 0x0800c502 Section 0 list.o(i.vListInsert) - i.vListInsertEnd 0x0800c536 Section 0 list.o(i.vListInsertEnd) - i.vPortEnterCritical 0x0800c550 Section 0 port.o(i.vPortEnterCritical) - i.vPortExitCritical 0x0800c5a4 Section 0 port.o(i.vPortExitCritical) - i.vPortFree 0x0800c5e0 Section 0 heap_4.o(i.vPortFree) - i.vPortSetupTimerInterrupt 0x0800c684 Section 0 port.o(i.vPortSetupTimerInterrupt) - i.vPortValidateInterruptPriority 0x0800c6ac Section 0 port.o(i.vPortValidateInterruptPriority) - i.vQueueAddToRegistry 0x0800c724 Section 0 queue.o(i.vQueueAddToRegistry) - i.vQueueWaitForMessageRestricted 0x0800c750 Section 0 queue.o(i.vQueueWaitForMessageRestricted) - i.vTaskDelay 0x0800c79c Section 0 tasks.o(i.vTaskDelay) - i.vTaskDelayUntil 0x0800c7f8 Section 0 tasks.o(i.vTaskDelayUntil) - i.vTaskDelete 0x0800c8cc Section 0 tasks.o(i.vTaskDelete) - i.vTaskInternalSetTimeOutState 0x0800c994 Section 0 tasks.o(i.vTaskInternalSetTimeOutState) - i.vTaskMissedYield 0x0800c9ac Section 0 tasks.o(i.vTaskMissedYield) - i.vTaskPlaceOnEventList 0x0800c9b8 Section 0 tasks.o(i.vTaskPlaceOnEventList) - i.vTaskPlaceOnEventListRestricted 0x0800c9f0 Section 0 tasks.o(i.vTaskPlaceOnEventListRestricted) - i.vTaskPriorityDisinheritAfterTimeout 0x0800ca30 Section 0 tasks.o(i.vTaskPriorityDisinheritAfterTimeout) - i.vTaskStartScheduler 0x0800cb00 Section 0 tasks.o(i.vTaskStartScheduler) - i.vTaskSuspendAll 0x0800cbbc Section 0 tasks.o(i.vTaskSuspendAll) - i.vTaskSwitchContext 0x0800cbcc Section 0 tasks.o(i.vTaskSwitchContext) - i.xPortStartScheduler 0x0800ccd0 Section 0 port.o(i.xPortStartScheduler) - i.xPortSysTickHandler 0x0800ce38 Section 0 port.o(i.xPortSysTickHandler) - i.xQueueCreateMutex 0x0800ce6c Section 0 queue.o(i.xQueueCreateMutex) - i.xQueueCreateMutexStatic 0x0800ce8e Section 0 queue.o(i.xQueueCreateMutexStatic) - i.xQueueGenericCreate 0x0800ceb8 Section 0 queue.o(i.xQueueGenericCreate) - i.xQueueGenericCreateStatic 0x0800cf12 Section 0 queue.o(i.xQueueGenericCreateStatic) - i.xQueueGenericReset 0x0800cff4 Section 0 queue.o(i.xQueueGenericReset) - i.xQueueGenericSend 0x0800d08c Section 0 queue.o(i.xQueueGenericSend) - i.xQueueGenericSendFromISR 0x0800d234 Section 0 queue.o(i.xQueueGenericSendFromISR) - i.xQueueGiveMutexRecursive 0x0800d330 Section 0 queue.o(i.xQueueGiveMutexRecursive) - i.xQueueReceive 0x0800d378 Section 0 queue.o(i.xQueueReceive) - i.xQueueReceiveFromISR 0x0800d4e0 Section 0 queue.o(i.xQueueReceiveFromISR) - i.xQueueSemaphoreTake 0x0800d5ac Section 0 queue.o(i.xQueueSemaphoreTake) - i.xQueueTakeMutexRecursive 0x0800d764 Section 0 queue.o(i.xQueueTakeMutexRecursive) - i.xTaskCheckForTimeOut 0x0800d7b4 Section 0 tasks.o(i.xTaskCheckForTimeOut) - i.xTaskCreate 0x0800d840 Section 0 tasks.o(i.xTaskCreate) - i.xTaskCreateStatic 0x0800d8a4 Section 0 tasks.o(i.xTaskCreateStatic) - i.xTaskGenericNotify 0x0800d960 Section 0 tasks.o(i.xTaskGenericNotify) - i.xTaskGenericNotifyFromISR 0x0800da88 Section 0 tasks.o(i.xTaskGenericNotifyFromISR) - i.xTaskGetCurrentTaskHandle 0x0800dbec Section 0 tasks.o(i.xTaskGetCurrentTaskHandle) - i.xTaskGetSchedulerState 0x0800dbf8 Section 0 tasks.o(i.xTaskGetSchedulerState) - i.xTaskGetTickCount 0x0800dc18 Section 0 tasks.o(i.xTaskGetTickCount) - i.xTaskGetTickCountFromISR 0x0800dc24 Section 0 tasks.o(i.xTaskGetTickCountFromISR) - i.xTaskIncrementTick 0x0800dc38 Section 0 tasks.o(i.xTaskIncrementTick) - i.xTaskNotifyWait 0x0800dd7c Section 0 tasks.o(i.xTaskNotifyWait) - i.xTaskPriorityDisinherit 0x0800de1c Section 0 tasks.o(i.xTaskPriorityDisinherit) - i.xTaskPriorityInherit 0x0800dec0 Section 0 tasks.o(i.xTaskPriorityInherit) - i.xTaskRemoveFromEventList 0x0800df64 Section 0 tasks.o(i.xTaskRemoveFromEventList) - i.xTaskResumeAll 0x0800dffc Section 0 tasks.o(i.xTaskResumeAll) - i.xTimerCreateTimerTask 0x0800e100 Section 0 timers.o(i.xTimerCreateTimerTask) - i.xTimerGenericCommand 0x0800e178 Section 0 timers.o(i.xTimerGenericCommand) - x$fpl$basic 0x0800e1fc Section 24 basic.o(x$fpl$basic) - $v0 0x0800e1fc Number 0 basic.o(x$fpl$basic) - x$fpl$d2f 0x0800e214 Section 98 d2f.o(x$fpl$d2f) - $v0 0x0800e214 Number 0 d2f.o(x$fpl$d2f) - x$fpl$dadd 0x0800e278 Section 336 daddsub_clz.o(x$fpl$dadd) - $v0 0x0800e278 Number 0 daddsub_clz.o(x$fpl$dadd) - _dadd1 0x0800e289 Thumb Code 0 daddsub_clz.o(x$fpl$dadd) - x$fpl$dcmpinf 0x0800e3c8 Section 24 dcmpi.o(x$fpl$dcmpinf) - $v0 0x0800e3c8 Number 0 dcmpi.o(x$fpl$dcmpinf) - x$fpl$ddiv 0x0800e3e0 Section 688 ddiv.o(x$fpl$ddiv) - $v0 0x0800e3e0 Number 0 ddiv.o(x$fpl$ddiv) - ddiv_entry 0x0800e3e7 Thumb Code 0 ddiv.o(x$fpl$ddiv) - x$fpl$deqf 0x0800e690 Section 120 deqf.o(x$fpl$deqf) - $v0 0x0800e690 Number 0 deqf.o(x$fpl$deqf) - x$fpl$dfix 0x0800e708 Section 94 dfix.o(x$fpl$dfix) - $v0 0x0800e708 Number 0 dfix.o(x$fpl$dfix) - x$fpl$dfixu 0x0800e768 Section 90 dfixu.o(x$fpl$dfixu) - $v0 0x0800e768 Number 0 dfixu.o(x$fpl$dfixu) - x$fpl$dflt 0x0800e7c2 Section 46 dflt_clz.o(x$fpl$dflt) - $v0 0x0800e7c2 Number 0 dflt_clz.o(x$fpl$dflt) - x$fpl$dfltu 0x0800e7f0 Section 38 dflt_clz.o(x$fpl$dfltu) - $v0 0x0800e7f0 Number 0 dflt_clz.o(x$fpl$dfltu) - x$fpl$dmul 0x0800e818 Section 340 dmul.o(x$fpl$dmul) - $v0 0x0800e818 Number 0 dmul.o(x$fpl$dmul) - x$fpl$dnaninf 0x0800e96c Section 156 dnaninf.o(x$fpl$dnaninf) - $v0 0x0800e96c Number 0 dnaninf.o(x$fpl$dnaninf) - x$fpl$dretinf 0x0800ea08 Section 12 dretinf.o(x$fpl$dretinf) - $v0 0x0800ea08 Number 0 dretinf.o(x$fpl$dretinf) - x$fpl$drsb 0x0800ea14 Section 22 daddsub_clz.o(x$fpl$drsb) - $v0 0x0800ea14 Number 0 daddsub_clz.o(x$fpl$drsb) - x$fpl$dsub 0x0800ea2c Section 468 daddsub_clz.o(x$fpl$dsub) - $v0 0x0800ea2c Number 0 daddsub_clz.o(x$fpl$dsub) - _dsub1 0x0800ea3d Thumb Code 0 daddsub_clz.o(x$fpl$dsub) - x$fpl$f2d 0x0800ec00 Section 86 f2d.o(x$fpl$f2d) - $v0 0x0800ec00 Number 0 f2d.o(x$fpl$f2d) - x$fpl$fcmp4 0x0800ec58 Section 82 fcmp4.o(x$fpl$fcmp4) - $v0 0x0800ec58 Number 0 fcmp4.o(x$fpl$fcmp4) - x$fpl$fcmpinf 0x0800ecaa Section 24 fcmpi.o(x$fpl$fcmpinf) - $v0 0x0800ecaa Number 0 fcmpi.o(x$fpl$fcmpinf) - x$fpl$ffltll 0x0800ecc2 Section 96 ffltll_clz.o(x$fpl$ffltll) - $v0 0x0800ecc2 Number 0 ffltll_clz.o(x$fpl$ffltll) - x$fpl$fnaninf 0x0800ed22 Section 140 fnaninf.o(x$fpl$fnaninf) - $v0 0x0800ed22 Number 0 fnaninf.o(x$fpl$fnaninf) - x$fpl$fpinit 0x0800edae Section 10 fpinit.o(x$fpl$fpinit) - $v0 0x0800edae Number 0 fpinit.o(x$fpl$fpinit) - x$fpl$fretinf 0x0800edb8 Section 10 fretinf.o(x$fpl$fretinf) - $v0 0x0800edb8 Number 0 fretinf.o(x$fpl$fretinf) - x$fpl$usenofp 0x0800edc2 Section 0 usenofp.o(x$fpl$usenofp) - .constdata 0x0800edc4 Section 36 freertos.o(.constdata) - .constdata 0x0800ede8 Section 8 stm32f4xx_hal_dma.o(.constdata) - flagBitshiftOffset 0x0800ede8 Data 8 stm32f4xx_hal_dma.o(.constdata) - .constdata 0x0800edf0 Section 24 system_stm32f4xx.o(.constdata) - .constdata 0x0800ee08 Section 56 gpio_1.o(.constdata) - GPIO_Map 0x0800ee08 Data 56 gpio_1.o(.constdata) - .constdata 0x0800ee40 Section 8 pwm.o(.constdata) - PWM_Map 0x0800ee40 Data 8 pwm.o(.constdata) - .constdata 0x0800ee48 Section 32 atti_esti.o(.constdata) - imu_temp_ctrl_pid_param 0x0800ee48 Data 32 atti_esti.o(.constdata) - .constdata 0x0800ee68 Section 144 user_task.o(.constdata) - .constdata 0x0800eef8 Section 152 atan.o(.constdata) - atanhi 0x0800eef8 Data 32 atan.o(.constdata) - atanlo 0x0800ef18 Data 32 atan.o(.constdata) - aTodd 0x0800ef38 Data 40 atan.o(.constdata) - aTeven 0x0800ef60 Data 48 atan.o(.constdata) - .constdata 0x0800ef90 Section 8 qnan.o(.constdata) - .constdata 0x0800ef98 Section 32 rredf.o(.constdata) - twooverpi 0x0800ef98 Data 32 rredf.o(.constdata) - .conststring 0x0800efb8 Section 12 freertos.o(.conststring) - .conststring 0x0800efc4 Section 42 user_task.o(.conststring) + i.Gimbal_Init 0x08002e00 Section 0 gimbal.o(i.Gimbal_Init) + i.Gimbal_Output 0x08002f54 Section 0 gimbal.o(i.Gimbal_Output) + i.Gimbal_SetMode 0x08002f8c Section 0 gimbal.o(i.Gimbal_SetMode) + Gimbal_SetMode 0x08002f8d Thumb Code 126 gimbal.o(i.Gimbal_SetMode) + i.Gimbal_UpdateFeedback 0x08003010 Section 0 gimbal.o(i.Gimbal_UpdateFeedback) + i.Gimbal_UpdateIMU 0x08003066 Section 0 gimbal.o(i.Gimbal_UpdateIMU) + i.HAL_CAN_ActivateNotification 0x08003090 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_ActivateNotification) + i.HAL_CAN_AddTxMessage 0x080030ba Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_AddTxMessage) + i.HAL_CAN_ConfigFilter 0x08003204 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_ConfigFilter) + i.HAL_CAN_ErrorCallback 0x08003324 Section 0 can_1.o(i.HAL_CAN_ErrorCallback) + i.HAL_CAN_GetRxFifoFillLevel 0x08003360 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_GetRxFifoFillLevel) + i.HAL_CAN_GetRxMessage 0x08003388 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_GetRxMessage) + i.HAL_CAN_GetTxMailboxesFreeLevel 0x0800351c Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_GetTxMailboxesFreeLevel) + i.HAL_CAN_IRQHandler 0x08003552 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_IRQHandler) + i.HAL_CAN_Init 0x080037a0 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_Init) + i.HAL_CAN_MspInit 0x08003914 Section 0 can.o(i.HAL_CAN_MspInit) + i.HAL_CAN_RxFifo0FullCallback 0x08003ab4 Section 0 can_1.o(i.HAL_CAN_RxFifo0FullCallback) + i.HAL_CAN_RxFifo0MsgPendingCallback 0x08003af0 Section 0 can_1.o(i.HAL_CAN_RxFifo0MsgPendingCallback) + i.HAL_CAN_RxFifo1FullCallback 0x08003b2c Section 0 can_1.o(i.HAL_CAN_RxFifo1FullCallback) + i.HAL_CAN_RxFifo1MsgPendingCallback 0x08003b68 Section 0 can_1.o(i.HAL_CAN_RxFifo1MsgPendingCallback) + i.HAL_CAN_SleepCallback 0x08003ba4 Section 0 can_1.o(i.HAL_CAN_SleepCallback) + i.HAL_CAN_Start 0x08003be0 Section 0 stm32f4xx_hal_can.o(i.HAL_CAN_Start) + i.HAL_CAN_TxMailbox0AbortCallback 0x08003c40 Section 0 can_1.o(i.HAL_CAN_TxMailbox0AbortCallback) + i.HAL_CAN_TxMailbox0CompleteCallback 0x08003c7c Section 0 can_1.o(i.HAL_CAN_TxMailbox0CompleteCallback) + i.HAL_CAN_TxMailbox1AbortCallback 0x08003cb4 Section 0 can_1.o(i.HAL_CAN_TxMailbox1AbortCallback) + i.HAL_CAN_TxMailbox1CompleteCallback 0x08003cf0 Section 0 can_1.o(i.HAL_CAN_TxMailbox1CompleteCallback) + i.HAL_CAN_TxMailbox2AbortCallback 0x08003d2c Section 0 can_1.o(i.HAL_CAN_TxMailbox2AbortCallback) + i.HAL_CAN_TxMailbox2CompleteCallback 0x08003d68 Section 0 can_1.o(i.HAL_CAN_TxMailbox2CompleteCallback) + i.HAL_CAN_WakeUpFromRxMsgCallback 0x08003da4 Section 0 can_1.o(i.HAL_CAN_WakeUpFromRxMsgCallback) + i.HAL_DMA_Abort 0x08003de0 Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_Abort) + i.HAL_DMA_Abort_IT 0x08003e8c Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_Abort_IT) + i.HAL_DMA_GetState 0x08003eb4 Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_GetState) + i.HAL_DMA_IRQHandler 0x08003ebc Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_IRQHandler) + i.HAL_DMA_Init 0x080040fc Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_Init) + i.HAL_DMA_Start_IT 0x080041e8 Section 0 stm32f4xx_hal_dma.o(i.HAL_DMA_Start_IT) + i.HAL_Delay 0x0800427c Section 0 stm32f4xx_hal.o(i.HAL_Delay) + i.HAL_GPIO_EXTI_Callback 0x080042a4 Section 0 gpio_1.o(i.HAL_GPIO_EXTI_Callback) + i.HAL_GPIO_EXTI_IRQHandler 0x080042d4 Section 0 stm32f4xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) + i.HAL_GPIO_Init 0x080042f0 Section 0 stm32f4xx_hal_gpio.o(i.HAL_GPIO_Init) + i.HAL_GPIO_ReadPin 0x080044e4 Section 0 stm32f4xx_hal_gpio.o(i.HAL_GPIO_ReadPin) + i.HAL_GPIO_WritePin 0x080044f4 Section 0 stm32f4xx_hal_gpio.o(i.HAL_GPIO_WritePin) + i.HAL_GetTick 0x08004500 Section 0 stm32f4xx_hal.o(i.HAL_GetTick) + i.HAL_I2C_AbortCpltCallback 0x0800450c Section 0 i2c_1.o(i.HAL_I2C_AbortCpltCallback) + i.HAL_I2C_AddrCallback 0x08004540 Section 0 stm32f4xx_hal_i2c.o(i.HAL_I2C_AddrCallback) + i.HAL_I2C_ER_IRQHandler 0x08004542 Section 0 stm32f4xx_hal_i2c.o(i.HAL_I2C_ER_IRQHandler) + i.HAL_I2C_EV_IRQHandler 0x08004616 Section 0 stm32f4xx_hal_i2c.o(i.HAL_I2C_EV_IRQHandler) + i.HAL_I2C_ErrorCallback 0x080047f0 Section 0 i2c_1.o(i.HAL_I2C_ErrorCallback) + i.HAL_I2C_Init 0x08004824 Section 0 stm32f4xx_hal_i2c.o(i.HAL_I2C_Init) + i.HAL_I2C_ListenCpltCallback 0x080049f4 Section 0 i2c_1.o(i.HAL_I2C_ListenCpltCallback) + i.HAL_I2C_MasterRxCpltCallback 0x08004a28 Section 0 i2c_1.o(i.HAL_I2C_MasterRxCpltCallback) + i.HAL_I2C_MasterTxCpltCallback 0x08004a5c Section 0 i2c_1.o(i.HAL_I2C_MasterTxCpltCallback) + i.HAL_I2C_MemRxCpltCallback 0x08004a8c Section 0 i2c_1.o(i.HAL_I2C_MemRxCpltCallback) + i.HAL_I2C_MemTxCpltCallback 0x08004ac0 Section 0 i2c_1.o(i.HAL_I2C_MemTxCpltCallback) + i.HAL_I2C_MspInit 0x08004af4 Section 0 i2c.o(i.HAL_I2C_MspInit) + i.HAL_I2C_SlaveRxCpltCallback 0x08004c10 Section 0 i2c_1.o(i.HAL_I2C_SlaveRxCpltCallback) + i.HAL_I2C_SlaveTxCpltCallback 0x08004c44 Section 0 i2c_1.o(i.HAL_I2C_SlaveTxCpltCallback) + i.HAL_IncTick 0x08004c78 Section 0 stm32f4xx_hal.o(i.HAL_IncTick) + i.HAL_Init 0x08004c90 Section 0 stm32f4xx_hal.o(i.HAL_Init) + i.HAL_InitTick 0x08004ccc Section 0 stm32f4xx_hal.o(i.HAL_InitTick) + i.HAL_MspInit 0x08004d18 Section 0 stm32f4xx_hal_msp.o(i.HAL_MspInit) + i.HAL_NVIC_DisableIRQ 0x08004d6c Section 0 stm32f4xx_hal_cortex.o(i.HAL_NVIC_DisableIRQ) + i.HAL_NVIC_EnableIRQ 0x08004d98 Section 0 stm32f4xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) + i.HAL_NVIC_SetPriority 0x08004dc0 Section 0 stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriority) + i.HAL_NVIC_SetPriorityGrouping 0x08004e3c Section 0 stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) + i.HAL_RCC_ClockConfig 0x08004e64 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_ClockConfig) + i.HAL_RCC_GetHCLKFreq 0x08004fe8 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq) + i.HAL_RCC_GetPCLK1Freq 0x08004ff4 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) + i.HAL_RCC_GetPCLK2Freq 0x08005014 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) + i.HAL_RCC_GetSysClockFreq 0x08005034 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) + i.HAL_RCC_OscConfig 0x080050e4 Section 0 stm32f4xx_hal_rcc.o(i.HAL_RCC_OscConfig) + i.HAL_SPI_ErrorCallback 0x08005580 Section 0 spi_1.o(i.HAL_SPI_ErrorCallback) + i.HAL_SPI_Init 0x080055b8 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Init) + i.HAL_SPI_MspInit 0x08005680 Section 0 spi.o(i.HAL_SPI_MspInit) + i.HAL_SPI_Receive 0x0800584c Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Receive) + i.HAL_SPI_Receive_DMA 0x080059d0 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA) + i.HAL_SPI_RxCpltCallback 0x08005ae8 Section 0 spi_1.o(i.HAL_SPI_RxCpltCallback) + i.HAL_SPI_RxHalfCpltCallback 0x08005b20 Section 0 spi_1.o(i.HAL_SPI_RxHalfCpltCallback) + i.HAL_SPI_Transmit 0x08005b58 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit) + i.HAL_SPI_TransmitReceive 0x08005d16 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive) + i.HAL_SPI_TransmitReceive_DMA 0x08005f60 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) + i.HAL_SPI_Transmit_DMA 0x080060c4 Section 0 stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) + i.HAL_SPI_TxCpltCallback 0x080061c0 Section 0 spi_1.o(i.HAL_SPI_TxCpltCallback) + i.HAL_SPI_TxHalfCpltCallback 0x080061ec Section 0 spi_1.o(i.HAL_SPI_TxHalfCpltCallback) + i.HAL_SPI_TxRxCpltCallback 0x08006224 Section 0 spi_1.o(i.HAL_SPI_TxRxCpltCallback) + i.HAL_SPI_TxRxHalfCpltCallback 0x0800625c Section 0 spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback) + i.HAL_SYSTICK_Config 0x08006294 Section 0 stm32f4xx_hal_cortex.o(i.HAL_SYSTICK_Config) + i.HAL_TIMEx_BreakCallback 0x080062c8 Section 0 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_BreakCallback) + i.HAL_TIMEx_CommutCallback 0x080062ca Section 0 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_CommutCallback) + i.HAL_TIMEx_MasterConfigSynchronization 0x080062cc Section 0 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization) + i.HAL_TIM_Base_Init 0x08006380 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_Base_Init) + i.HAL_TIM_Base_MspInit 0x080063e8 Section 0 tim.o(i.HAL_TIM_Base_MspInit) + i.HAL_TIM_IC_CaptureCallback 0x08006460 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback) + i.HAL_TIM_IRQHandler 0x08006462 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_IRQHandler) + i.HAL_TIM_MspPostInit 0x080065d0 Section 0 tim.o(i.HAL_TIM_MspPostInit) + i.HAL_TIM_OC_DelayElapsedCallback 0x08006630 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback) + i.HAL_TIM_PWM_ConfigChannel 0x08006632 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel) + i.HAL_TIM_PWM_Init 0x08006736 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Init) + i.HAL_TIM_PWM_MspInit 0x0800679c Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_MspInit) + i.HAL_TIM_PWM_PulseFinishedCallback 0x0800679e Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback) + i.HAL_TIM_PWM_Start 0x080067a0 Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Start) + i.HAL_TIM_PeriodElapsedCallback 0x080068ac Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_PeriodElapsedCallback) + i.HAL_TIM_TriggerCallback 0x080068ae Section 0 stm32f4xx_hal_tim.o(i.HAL_TIM_TriggerCallback) + i.HAL_UARTEx_RxEventCallback 0x080068b0 Section 0 stm32f4xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback) + i.HAL_UART_ErrorCallback 0x080068b4 Section 0 uart.o(i.HAL_UART_ErrorCallback) + i.HAL_UART_IRQHandler 0x080068e8 Section 0 stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler) + i.HAL_UART_Init 0x08006bf0 Section 0 stm32f4xx_hal_uart.o(i.HAL_UART_Init) + i.HAL_UART_MspInit 0x08006c68 Section 0 usart.o(i.HAL_UART_MspInit) + i.HAL_UART_RxCpltCallback 0x08006e00 Section 0 uart.o(i.HAL_UART_RxCpltCallback) + i.HAL_UART_TxCpltCallback 0x08006e34 Section 0 uart.o(i.HAL_UART_TxCpltCallback) + i.HardFault_Handler 0x08006e68 Section 0 stm32f4xx_it.o(i.HardFault_Handler) + i.I2C1_ER_IRQHandler 0x08006e6c Section 0 stm32f4xx_it.o(i.I2C1_ER_IRQHandler) + i.I2C1_EV_IRQHandler 0x08006e7c Section 0 stm32f4xx_it.o(i.I2C1_EV_IRQHandler) + i.I2C_ConvertOtherXferOptions 0x08006e8c Section 0 stm32f4xx_hal_i2c.o(i.I2C_ConvertOtherXferOptions) + I2C_ConvertOtherXferOptions 0x08006e8d Thumb Code 28 stm32f4xx_hal_i2c.o(i.I2C_ConvertOtherXferOptions) + i.I2C_DMAAbort 0x08006ea8 Section 0 stm32f4xx_hal_i2c.o(i.I2C_DMAAbort) + I2C_DMAAbort 0x08006ea9 Thumb Code 242 stm32f4xx_hal_i2c.o(i.I2C_DMAAbort) + i.I2C_Flush_DR 0x08006fa0 Section 0 stm32f4xx_hal_i2c.o(i.I2C_Flush_DR) + I2C_Flush_DR 0x08006fa1 Thumb Code 18 stm32f4xx_hal_i2c.o(i.I2C_Flush_DR) + i.I2C_Get 0x08006fb4 Section 0 i2c_1.o(i.I2C_Get) + I2C_Get 0x08006fb5 Thumb Code 30 i2c_1.o(i.I2C_Get) + i.I2C_ITError 0x08006fdc Section 0 stm32f4xx_hal_i2c.o(i.I2C_ITError) + I2C_ITError 0x08006fdd Thumb Code 420 stm32f4xx_hal_i2c.o(i.I2C_ITError) + i.I2C_MasterReceive_BTF 0x08007188 Section 0 stm32f4xx_hal_i2c.o(i.I2C_MasterReceive_BTF) + I2C_MasterReceive_BTF 0x08007189 Thumb Code 304 stm32f4xx_hal_i2c.o(i.I2C_MasterReceive_BTF) + i.I2C_MasterReceive_RXNE 0x080072b8 Section 0 stm32f4xx_hal_i2c.o(i.I2C_MasterReceive_RXNE) + I2C_MasterReceive_RXNE 0x080072b9 Thumb Code 260 stm32f4xx_hal_i2c.o(i.I2C_MasterReceive_RXNE) + i.I2C_MasterTransmit_BTF 0x080073bc Section 0 stm32f4xx_hal_i2c.o(i.I2C_MasterTransmit_BTF) + I2C_MasterTransmit_BTF 0x080073bd Thumb Code 160 stm32f4xx_hal_i2c.o(i.I2C_MasterTransmit_BTF) + i.I2C_MasterTransmit_TXE 0x0800745c Section 0 stm32f4xx_hal_i2c.o(i.I2C_MasterTransmit_TXE) + I2C_MasterTransmit_TXE 0x0800745d Thumb Code 216 stm32f4xx_hal_i2c.o(i.I2C_MasterTransmit_TXE) + i.I2C_Master_ADD10 0x08007534 Section 0 stm32f4xx_hal_i2c.o(i.I2C_Master_ADD10) + I2C_Master_ADD10 0x08007535 Thumb Code 42 stm32f4xx_hal_i2c.o(i.I2C_Master_ADD10) + i.I2C_Master_ADDR 0x0800755e Section 0 stm32f4xx_hal_i2c.o(i.I2C_Master_ADDR) + I2C_Master_ADDR 0x0800755f Thumb Code 616 stm32f4xx_hal_i2c.o(i.I2C_Master_ADDR) + i.I2C_Master_SB 0x080077c6 Section 0 stm32f4xx_hal_i2c.o(i.I2C_Master_SB) + I2C_Master_SB 0x080077c7 Thumb Code 158 stm32f4xx_hal_i2c.o(i.I2C_Master_SB) + i.I2C_MemoryTransmit_TXE_BTF 0x08007864 Section 0 stm32f4xx_hal_i2c.o(i.I2C_MemoryTransmit_TXE_BTF) + I2C_MemoryTransmit_TXE_BTF 0x08007865 Thumb Code 198 stm32f4xx_hal_i2c.o(i.I2C_MemoryTransmit_TXE_BTF) + i.I2C_SlaveReceive_BTF 0x0800792a Section 0 stm32f4xx_hal_i2c.o(i.I2C_SlaveReceive_BTF) + I2C_SlaveReceive_BTF 0x0800792b Thumb Code 26 stm32f4xx_hal_i2c.o(i.I2C_SlaveReceive_BTF) + i.I2C_SlaveReceive_RXNE 0x08007944 Section 0 stm32f4xx_hal_i2c.o(i.I2C_SlaveReceive_RXNE) + I2C_SlaveReceive_RXNE 0x08007945 Thumb Code 70 stm32f4xx_hal_i2c.o(i.I2C_SlaveReceive_RXNE) + i.I2C_SlaveTransmit_BTF 0x0800798a Section 0 stm32f4xx_hal_i2c.o(i.I2C_SlaveTransmit_BTF) + I2C_SlaveTransmit_BTF 0x0800798b Thumb Code 26 stm32f4xx_hal_i2c.o(i.I2C_SlaveTransmit_BTF) + i.I2C_SlaveTransmit_TXE 0x080079a4 Section 0 stm32f4xx_hal_i2c.o(i.I2C_SlaveTransmit_TXE) + I2C_SlaveTransmit_TXE 0x080079a5 Thumb Code 70 stm32f4xx_hal_i2c.o(i.I2C_SlaveTransmit_TXE) + i.I2C_Slave_ADDR 0x080079ea Section 0 stm32f4xx_hal_i2c.o(i.I2C_Slave_ADDR) + I2C_Slave_ADDR 0x080079eb Thumb Code 112 stm32f4xx_hal_i2c.o(i.I2C_Slave_ADDR) + i.I2C_Slave_AF 0x08007a5c Section 0 stm32f4xx_hal_i2c.o(i.I2C_Slave_AF) + I2C_Slave_AF 0x08007a5d Thumb Code 162 stm32f4xx_hal_i2c.o(i.I2C_Slave_AF) + i.I2C_Slave_STOPF 0x08007b04 Section 0 stm32f4xx_hal_i2c.o(i.I2C_Slave_STOPF) + I2C_Slave_STOPF 0x08007b05 Thumb Code 386 stm32f4xx_hal_i2c.o(i.I2C_Slave_STOPF) + i.I2C_WaitOnSTOPRequestThroughIT 0x08007c90 Section 0 stm32f4xx_hal_i2c.o(i.I2C_WaitOnSTOPRequestThroughIT) + I2C_WaitOnSTOPRequestThroughIT 0x08007c91 Thumb Code 74 stm32f4xx_hal_i2c.o(i.I2C_WaitOnSTOPRequestThroughIT) + i.InvSqrt 0x08007ce0 Section 0 user_math.o(i.InvSqrt) + i.LowPassFilter2p_Apply 0x08007d30 Section 0 filter.o(i.LowPassFilter2p_Apply) + i.LowPassFilter2p_Init 0x08007db0 Section 0 filter.o(i.LowPassFilter2p_Init) + i.LowPassFilter2p_Reset 0x08007ec4 Section 0 filter.o(i.LowPassFilter2p_Reset) + i.MOTOR_RM_CreateCANManager 0x08007f24 Section 0 motor_rm.o(i.MOTOR_RM_CreateCANManager) + MOTOR_RM_CreateCANManager 0x08007f25 Thumb Code 76 motor_rm.o(i.MOTOR_RM_CreateCANManager) + i.MOTOR_RM_Ctrl 0x08007f74 Section 0 motor_rm.o(i.MOTOR_RM_Ctrl) + i.MOTOR_RM_GetCANManager 0x08008098 Section 0 motor_rm.o(i.MOTOR_RM_GetCANManager) + MOTOR_RM_GetCANManager 0x08008099 Thumb Code 18 motor_rm.o(i.MOTOR_RM_GetCANManager) + i.MOTOR_RM_GetLSB 0x080080b0 Section 0 motor_rm.o(i.MOTOR_RM_GetLSB) + MOTOR_RM_GetLSB 0x080080b1 Thumb Code 38 motor_rm.o(i.MOTOR_RM_GetLSB) + i.MOTOR_RM_GetLogicalIndex 0x080080d6 Section 0 motor_rm.o(i.MOTOR_RM_GetLogicalIndex) + MOTOR_RM_GetLogicalIndex 0x080080d7 Thumb Code 68 motor_rm.o(i.MOTOR_RM_GetLogicalIndex) + i.MOTOR_RM_GetMotor 0x0800811a Section 0 motor_rm.o(i.MOTOR_RM_GetMotor) + i.MOTOR_RM_GetRatio 0x08008158 Section 0 motor_rm.o(i.MOTOR_RM_GetRatio) + MOTOR_RM_GetRatio 0x08008159 Thumb Code 36 motor_rm.o(i.MOTOR_RM_GetRatio) + i.MOTOR_RM_Register 0x08008180 Section 0 motor_rm.o(i.MOTOR_RM_Register) + i.MOTOR_RM_SetOutput 0x08008240 Section 0 motor_rm.o(i.MOTOR_RM_SetOutput) + i.MOTOR_RM_Update 0x080082f2 Section 0 motor_rm.o(i.MOTOR_RM_Update) + i.MX_CAN1_Init 0x080083a0 Section 0 can.o(i.MX_CAN1_Init) + i.MX_CAN2_Init 0x080083e8 Section 0 can.o(i.MX_CAN2_Init) + i.MX_DMA_Init 0x08008430 Section 0 dma.o(i.MX_DMA_Init) + i.MX_FREERTOS_Init 0x080084a8 Section 0 freertos.o(i.MX_FREERTOS_Init) + i.MX_GPIO_Init 0x080084d8 Section 0 gpio.o(i.MX_GPIO_Init) + i.MX_I2C1_Init 0x080086c8 Section 0 i2c.o(i.MX_I2C1_Init) + i.MX_I2C2_Init 0x08008704 Section 0 i2c.o(i.MX_I2C2_Init) + i.MX_SPI1_Init 0x08008740 Section 0 spi.o(i.MX_SPI1_Init) + i.MX_SPI2_Init 0x08008788 Section 0 spi.o(i.MX_SPI2_Init) + i.MX_TIM10_Init 0x080087d0 Section 0 tim.o(i.MX_TIM10_Init) + i.MX_TIM7_Init 0x0800883c Section 0 tim.o(i.MX_TIM7_Init) + i.MX_USART1_UART_Init 0x08008888 Section 0 usart.o(i.MX_USART1_UART_Init) + i.MX_USART3_UART_Init 0x080088c0 Section 0 usart.o(i.MX_USART3_UART_Init) + i.MemManage_Handler 0x08008900 Section 0 stm32f4xx_it.o(i.MemManage_Handler) + i.Motor_RM_Decode 0x08008904 Section 0 motor_rm.o(i.Motor_RM_Decode) + Motor_RM_Decode 0x08008905 Thumb Code 384 motor_rm.o(i.Motor_RM_Decode) + i.NMI_Handler 0x08008a94 Section 0 stm32f4xx_it.o(i.NMI_Handler) + i.PID_Calc 0x08008a98 Section 0 pid.o(i.PID_Calc) + i.PID_Init 0x08008c3c Section 0 pid.o(i.PID_Init) + i.PID_Reset 0x08008d08 Section 0 pid.o(i.PID_Reset) + i.RC_Init 0x08008d48 Section 0 bsp_rc.o(i.RC_Init) + i.RC_restart 0x08008dcc Section 0 bsp_rc.o(i.RC_restart) + i.SPI_DMAError 0x08008e28 Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAError) + SPI_DMAError 0x08008e29 Thumb Code 40 stm32f4xx_hal_spi.o(i.SPI_DMAError) + i.SPI_DMAHalfReceiveCplt 0x08008e50 Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) + SPI_DMAHalfReceiveCplt 0x08008e51 Thumb Code 14 stm32f4xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) + i.SPI_DMAHalfTransmitCplt 0x08008e5e Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt) + SPI_DMAHalfTransmitCplt 0x08008e5f Thumb Code 14 stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt) + i.SPI_DMAHalfTransmitReceiveCplt 0x08008e6c Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt) + SPI_DMAHalfTransmitReceiveCplt 0x08008e6d Thumb Code 14 stm32f4xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt) + i.SPI_DMAReceiveCplt 0x08008e7a Section 0 stm32f4xx_hal_spi.o(i.SPI_DMAReceiveCplt) + SPI_DMAReceiveCplt 0x08008e7b Thumb Code 124 stm32f4xx_hal_spi.o(i.SPI_DMAReceiveCplt) + i.SPI_DMATransmitCplt 0x08008ef6 Section 0 stm32f4xx_hal_spi.o(i.SPI_DMATransmitCplt) + SPI_DMATransmitCplt 0x08008ef7 Thumb Code 128 stm32f4xx_hal_spi.o(i.SPI_DMATransmitCplt) + i.SPI_DMATransmitReceiveCplt 0x08008f76 Section 0 stm32f4xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt) + SPI_DMATransmitReceiveCplt 0x08008f77 Thumb Code 104 stm32f4xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt) + i.SPI_EndRxTransaction 0x08008fde Section 0 stm32f4xx_hal_spi.o(i.SPI_EndRxTransaction) + SPI_EndRxTransaction 0x08008fdf Thumb Code 148 stm32f4xx_hal_spi.o(i.SPI_EndRxTransaction) + i.SPI_EndRxTxTransaction 0x08009074 Section 0 stm32f4xx_hal_spi.o(i.SPI_EndRxTxTransaction) + SPI_EndRxTxTransaction 0x08009075 Thumb Code 128 stm32f4xx_hal_spi.o(i.SPI_EndRxTxTransaction) + i.SPI_Get 0x080090fc Section 0 spi_1.o(i.SPI_Get) + SPI_Get 0x080090fd Thumb Code 18 spi_1.o(i.SPI_Get) + i.SPI_WaitFlagStateUntilTimeout 0x08009114 Section 0 stm32f4xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) + SPI_WaitFlagStateUntilTimeout 0x08009115 Thumb Code 212 stm32f4xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) + i.StartDefaultTask 0x080091ec Section 0 freertos.o(i.StartDefaultTask) + i.SysTick_Handler 0x080091fc Section 0 stm32f4xx_it.o(i.SysTick_Handler) + i.SystemClock_Config 0x08009210 Section 0 main.o(i.SystemClock_Config) + i.SystemInit 0x080092c4 Section 0 system_stm32f4xx.o(i.SystemInit) + i.TIM7_IRQHandler 0x080092d8 Section 0 stm32f4xx_it.o(i.TIM7_IRQHandler) + i.TIM_Base_SetConfig 0x080092e8 Section 0 stm32f4xx_hal_tim.o(i.TIM_Base_SetConfig) + i.TIM_CCxChannelCmd 0x080093c8 Section 0 stm32f4xx_hal_tim.o(i.TIM_CCxChannelCmd) + i.TIM_OC1_SetConfig 0x080093ec Section 0 stm32f4xx_hal_tim.o(i.TIM_OC1_SetConfig) + TIM_OC1_SetConfig 0x080093ed Thumb Code 104 stm32f4xx_hal_tim.o(i.TIM_OC1_SetConfig) + i.TIM_OC2_SetConfig 0x0800945c Section 0 stm32f4xx_hal_tim.o(i.TIM_OC2_SetConfig) + i.TIM_OC3_SetConfig 0x080094d8 Section 0 stm32f4xx_hal_tim.o(i.TIM_OC3_SetConfig) + TIM_OC3_SetConfig 0x080094d9 Thumb Code 112 stm32f4xx_hal_tim.o(i.TIM_OC3_SetConfig) + i.TIM_OC4_SetConfig 0x08009550 Section 0 stm32f4xx_hal_tim.o(i.TIM_OC4_SetConfig) + TIM_OC4_SetConfig 0x08009551 Thumb Code 74 stm32f4xx_hal_tim.o(i.TIM_OC4_SetConfig) + i.Task_Init 0x080095a4 Section 0 init.o(i.Task_Init) + i.Task_atti_esti 0x08009640 Section 0 atti_esti.o(i.Task_atti_esti) + i.Task_gimbal_ctrl 0x08009784 Section 0 gimbal_ctrl.o(i.Task_gimbal_ctrl) + i.Task_remote 0x0800982c Section 0 remote.o(i.Task_remote) + i.UART_DMAAbortOnError 0x080098ac Section 0 stm32f4xx_hal_uart.o(i.UART_DMAAbortOnError) + UART_DMAAbortOnError 0x080098ad Thumb Code 18 stm32f4xx_hal_uart.o(i.UART_DMAAbortOnError) + i.UART_EndRxTransfer 0x080098be Section 0 stm32f4xx_hal_uart.o(i.UART_EndRxTransfer) + UART_EndRxTransfer 0x080098bf Thumb Code 108 stm32f4xx_hal_uart.o(i.UART_EndRxTransfer) + i.UART_EndTransmit_IT 0x0800992a Section 0 stm32f4xx_hal_uart.o(i.UART_EndTransmit_IT) + UART_EndTransmit_IT 0x0800992b Thumb Code 32 stm32f4xx_hal_uart.o(i.UART_EndTransmit_IT) + i.UART_Get 0x0800994c Section 0 uart.o(i.UART_Get) + UART_Get 0x0800994d Thumb Code 18 uart.o(i.UART_Get) + i.UART_Receive_IT 0x08009964 Section 0 stm32f4xx_hal_uart.o(i.UART_Receive_IT) + UART_Receive_IT 0x08009965 Thumb Code 252 stm32f4xx_hal_uart.o(i.UART_Receive_IT) + i.UART_SetConfig 0x08009a60 Section 0 stm32f4xx_hal_uart.o(i.UART_SetConfig) + UART_SetConfig 0x08009a61 Thumb Code 546 stm32f4xx_hal_uart.o(i.UART_SetConfig) + i.UART_Transmit_IT 0x08009c8c Section 0 stm32f4xx_hal_uart.o(i.UART_Transmit_IT) + UART_Transmit_IT 0x08009c8d Thumb Code 96 stm32f4xx_hal_uart.o(i.UART_Transmit_IT) + i.USART3_IRQHandler 0x08009cec Section 0 stm32f4xx_it.o(i.USART3_IRQHandler) + i.USART3_IRQHandler1 0x08009d04 Section 0 remote_control.o(i.USART3_IRQHandler1) + i.UsageFault_Handler 0x08009d1c Section 0 stm32f4xx_it.o(i.UsageFault_Handler) + i.__ARM_fpclassify 0x08009d20 Section 0 fpclassify.o(i.__ARM_fpclassify) + i.__ARM_fpclassifyf 0x08009d50 Section 0 fpclassifyf.o(i.__ARM_fpclassifyf) + i.__ARM_isfinitef 0x08009d76 Section 0 pid.o(i.__ARM_isfinitef) + __ARM_isfinitef 0x08009d77 Thumb Code 18 pid.o(i.__ARM_isfinitef) + i.__NVIC_GetPriorityGrouping 0x08009d88 Section 0 stm32f4xx_hal_cortex.o(i.__NVIC_GetPriorityGrouping) + __NVIC_GetPriorityGrouping 0x08009d89 Thumb Code 10 stm32f4xx_hal_cortex.o(i.__NVIC_GetPriorityGrouping) + i.__NVIC_SetPriority 0x08009d98 Section 0 stm32f4xx_hal_cortex.o(i.__NVIC_SetPriority) + __NVIC_SetPriority 0x08009d99 Thumb Code 32 stm32f4xx_hal_cortex.o(i.__NVIC_SetPriority) + i.__get_IPSR 0x08009dc0 Section 0 cmsis_os2.o(i.__get_IPSR) + __get_IPSR 0x08009dc1 Thumb Code 6 cmsis_os2.o(i.__get_IPSR) + i.__hardfp_asinf 0x08009dc8 Section 0 asinf.o(i.__hardfp_asinf) + i.__hardfp_atan 0x08009ef8 Section 0 atan.o(i.__hardfp_atan) + i.__hardfp_atan2 0x0800a1d0 Section 0 atan2.o(i.__hardfp_atan2) + i.__hardfp_atan2f 0x0800a3d0 Section 0 atan2f.o(i.__hardfp_atan2f) + i.__hardfp_cosf 0x0800a67c Section 0 cosf.o(i.__hardfp_cosf) + i.__hardfp_fmaxf 0x0800a7cc Section 0 fmaxf.o(i.__hardfp_fmaxf) + i.__hardfp_tanf 0x0800a814 Section 0 tanf.o(i.__hardfp_tanf) + i.__kernel_poly 0x0800a990 Section 0 poly.o(i.__kernel_poly) + i.__mathlib_dbl_infnan 0x0800aa88 Section 0 dunder.o(i.__mathlib_dbl_infnan) + i.__mathlib_dbl_infnan2 0x0800aa9c Section 0 dunder.o(i.__mathlib_dbl_infnan2) + i.__mathlib_dbl_underflow 0x0800aab0 Section 0 dunder.o(i.__mathlib_dbl_underflow) + i.__mathlib_flt_infnan 0x0800aad0 Section 0 funder.o(i.__mathlib_flt_infnan) + i.__mathlib_flt_infnan2 0x0800aad6 Section 0 funder.o(i.__mathlib_flt_infnan2) + i.__mathlib_flt_invalid 0x0800aadc Section 0 funder.o(i.__mathlib_flt_invalid) + i.__mathlib_flt_underflow 0x0800aaec Section 0 funder.o(i.__mathlib_flt_underflow) + i.__mathlib_rredf2 0x0800aafc Section 0 rredf.o(i.__mathlib_rredf2) + i.atan 0x0800ac50 Section 0 atan.o(i.atan) + i.configureTimerForRunTimeStats 0x0800ac60 Section 0 freertos.o(i.configureTimerForRunTimeStats) + i.delay_init 0x0800ac64 Section 0 bsp_delay.o(i.delay_init) + i.eTaskGetState 0x0800ac94 Section 0 tasks.o(i.eTaskGetState) + i.fabs 0x0800ad28 Section 0 fabs.o(i.fabs) + i.getRunTimeCounterValue 0x0800ad40 Section 0 freertos.o(i.getRunTimeCounterValue) + i.main 0x0800ad44 Section 0 main.o(i.main) + i.map 0x0800ad8c Section 0 calc_lib.o(i.map) + i.osDelay 0x0800ada2 Section 0 cmsis_os2.o(i.osDelay) + i.osDelayUntil 0x0800adc0 Section 0 cmsis_os2.o(i.osDelayUntil) + i.osKernelGetState 0x0800adf4 Section 0 cmsis_os2.o(i.osKernelGetState) + i.osKernelGetTickCount 0x0800ae28 Section 0 cmsis_os2.o(i.osKernelGetTickCount) + i.osKernelGetTickFreq 0x0800ae42 Section 0 cmsis_os2.o(i.osKernelGetTickFreq) + i.osKernelInitialize 0x0800ae48 Section 0 cmsis_os2.o(i.osKernelInitialize) + i.osKernelLock 0x0800ae74 Section 0 cmsis_os2.o(i.osKernelLock) + i.osKernelStart 0x0800aeac Section 0 cmsis_os2.o(i.osKernelStart) + i.osKernelUnlock 0x0800af0c Section 0 cmsis_os2.o(i.osKernelUnlock) + i.osMessageQueueGet 0x0800af50 Section 0 cmsis_os2.o(i.osMessageQueueGet) + i.osMessageQueueNew 0x0800afd0 Section 0 cmsis_os2.o(i.osMessageQueueNew) + i.osMessageQueuePut 0x0800b06c Section 0 cmsis_os2.o(i.osMessageQueuePut) + i.osMessageQueueReset 0x0800b0f0 Section 0 cmsis_os2.o(i.osMessageQueueReset) + i.osMutexAcquire 0x0800b118 Section 0 cmsis_os2.o(i.osMutexAcquire) + i.osMutexNew 0x0800b17a Section 0 cmsis_os2.o(i.osMutexNew) + i.osMutexRelease 0x0800b22c Section 0 cmsis_os2.o(i.osMutexRelease) + i.osThreadFlagsSet 0x0800b27c Section 0 cmsis_os2.o(i.osThreadFlagsSet) + i.osThreadFlagsWait 0x0800b2fc Section 0 cmsis_os2.o(i.osThreadFlagsWait) + i.osThreadGetId 0x0800b3ae Section 0 cmsis_os2.o(i.osThreadGetId) + i.osThreadNew 0x0800b3ba Section 0 cmsis_os2.o(i.osThreadNew) + i.osThreadTerminate 0x0800b472 Section 0 cmsis_os2.o(i.osThreadTerminate) + i.prvAddCurrentTaskToDelayedList 0x0800b4b0 Section 0 tasks.o(i.prvAddCurrentTaskToDelayedList) + prvAddCurrentTaskToDelayedList 0x0800b4b1 Thumb Code 100 tasks.o(i.prvAddCurrentTaskToDelayedList) + i.prvAddNewTaskToReadyList 0x0800b52c Section 0 tasks.o(i.prvAddNewTaskToReadyList) + prvAddNewTaskToReadyList 0x0800b52d Thumb Code 154 tasks.o(i.prvAddNewTaskToReadyList) + i.prvCheckForValidListAndQueue 0x0800b5e4 Section 0 timers.o(i.prvCheckForValidListAndQueue) + prvCheckForValidListAndQueue 0x0800b5e5 Thumb Code 78 timers.o(i.prvCheckForValidListAndQueue) + i.prvCheckTasksWaitingTermination 0x0800b658 Section 0 tasks.o(i.prvCheckTasksWaitingTermination) + prvCheckTasksWaitingTermination 0x0800b659 Thumb Code 60 tasks.o(i.prvCheckTasksWaitingTermination) + i.prvCopyDataFromQueue 0x0800b6a0 Section 0 queue.o(i.prvCopyDataFromQueue) + prvCopyDataFromQueue 0x0800b6a1 Thumb Code 42 queue.o(i.prvCopyDataFromQueue) + i.prvCopyDataToQueue 0x0800b6ca Section 0 queue.o(i.prvCopyDataToQueue) + prvCopyDataToQueue 0x0800b6cb Thumb Code 126 queue.o(i.prvCopyDataToQueue) + i.prvDeleteTCB 0x0800b748 Section 0 tasks.o(i.prvDeleteTCB) + prvDeleteTCB 0x0800b749 Thumb Code 80 tasks.o(i.prvDeleteTCB) + i.prvGetDisinheritPriorityAfterTimeout 0x0800b798 Section 0 queue.o(i.prvGetDisinheritPriorityAfterTimeout) + prvGetDisinheritPriorityAfterTimeout 0x0800b799 Thumb Code 20 queue.o(i.prvGetDisinheritPriorityAfterTimeout) + i.prvGetNextExpireTime 0x0800b7ac Section 0 timers.o(i.prvGetNextExpireTime) + prvGetNextExpireTime 0x0800b7ad Thumb Code 36 timers.o(i.prvGetNextExpireTime) + i.prvHeapInit 0x0800b7d4 Section 0 heap_4.o(i.prvHeapInit) + prvHeapInit 0x0800b7d5 Thumb Code 98 heap_4.o(i.prvHeapInit) + i.prvIdleTask 0x0800b850 Section 0 tasks.o(i.prvIdleTask) + prvIdleTask 0x0800b851 Thumb Code 32 tasks.o(i.prvIdleTask) + i.prvInitialiseMutex 0x0800b878 Section 0 queue.o(i.prvInitialiseMutex) + prvInitialiseMutex 0x0800b879 Thumb Code 30 queue.o(i.prvInitialiseMutex) + i.prvInitialiseNewQueue 0x0800b896 Section 0 queue.o(i.prvInitialiseNewQueue) + prvInitialiseNewQueue 0x0800b897 Thumb Code 42 queue.o(i.prvInitialiseNewQueue) + i.prvInitialiseNewTask 0x0800b8c0 Section 0 tasks.o(i.prvInitialiseNewTask) + prvInitialiseNewTask 0x0800b8c1 Thumb Code 196 tasks.o(i.prvInitialiseNewTask) + i.prvInitialiseTaskLists 0x0800b984 Section 0 tasks.o(i.prvInitialiseTaskLists) + prvInitialiseTaskLists 0x0800b985 Thumb Code 70 tasks.o(i.prvInitialiseTaskLists) + i.prvInsertBlockIntoFreeList 0x0800b9ec Section 0 heap_4.o(i.prvInsertBlockIntoFreeList) + prvInsertBlockIntoFreeList 0x0800b9ed Thumb Code 96 heap_4.o(i.prvInsertBlockIntoFreeList) + i.prvInsertTimerInActiveList 0x0800ba54 Section 0 timers.o(i.prvInsertTimerInActiveList) + prvInsertTimerInActiveList 0x0800ba55 Thumb Code 80 timers.o(i.prvInsertTimerInActiveList) + i.prvIsQueueEmpty 0x0800baac Section 0 queue.o(i.prvIsQueueEmpty) + prvIsQueueEmpty 0x0800baad Thumb Code 26 queue.o(i.prvIsQueueEmpty) + i.prvIsQueueFull 0x0800bac6 Section 0 queue.o(i.prvIsQueueFull) + prvIsQueueFull 0x0800bac7 Thumb Code 30 queue.o(i.prvIsQueueFull) + i.prvProcessExpiredTimer 0x0800bae4 Section 0 timers.o(i.prvProcessExpiredTimer) + prvProcessExpiredTimer 0x0800bae5 Thumb Code 110 timers.o(i.prvProcessExpiredTimer) + i.prvProcessReceivedCommands 0x0800bb58 Section 0 timers.o(i.prvProcessReceivedCommands) + prvProcessReceivedCommands 0x0800bb59 Thumb Code 350 timers.o(i.prvProcessReceivedCommands) + i.prvProcessTimerOrBlockTask 0x0800bcbc Section 0 timers.o(i.prvProcessTimerOrBlockTask) + prvProcessTimerOrBlockTask 0x0800bcbd Thumb Code 102 timers.o(i.prvProcessTimerOrBlockTask) + i.prvResetNextTaskUnblockTime 0x0800bd30 Section 0 tasks.o(i.prvResetNextTaskUnblockTime) + prvResetNextTaskUnblockTime 0x0800bd31 Thumb Code 42 tasks.o(i.prvResetNextTaskUnblockTime) + i.prvSampleTimeNow 0x0800bd64 Section 0 timers.o(i.prvSampleTimeNow) + prvSampleTimeNow 0x0800bd65 Thumb Code 40 timers.o(i.prvSampleTimeNow) + i.prvSwitchTimerLists 0x0800bd90 Section 0 timers.o(i.prvSwitchTimerLists) + prvSwitchTimerLists 0x0800bd91 Thumb Code 154 timers.o(i.prvSwitchTimerLists) + i.prvTaskExitError 0x0800be34 Section 0 port.o(i.prvTaskExitError) + prvTaskExitError 0x0800be35 Thumb Code 60 port.o(i.prvTaskExitError) + i.prvTimerTask 0x0800be74 Section 0 timers.o(i.prvTimerTask) + prvTimerTask 0x0800be75 Thumb Code 26 timers.o(i.prvTimerTask) + i.prvUnlockQueue 0x0800be8e Section 0 queue.o(i.prvUnlockQueue) + prvUnlockQueue 0x0800be8f Thumb Code 126 queue.o(i.prvUnlockQueue) + i.pvPortMalloc 0x0800bf0c Section 0 heap_4.o(i.pvPortMalloc) + i.pvTaskIncrementMutexHeldCount 0x0800c058 Section 0 tasks.o(i.pvTaskIncrementMutexHeldCount) + i.pxPortInitialiseStack 0x0800c078 Section 0 port.o(i.pxPortInitialiseStack) + i.remote_ParseHost 0x0800c0a4 Section 0 ai.o(i.remote_ParseHost) + i.remote_control_init 0x0800c12c Section 0 remote_control.o(i.remote_control_init) + i.sbus_to_rc 0x0800c13c Section 0 remote_control.o(i.sbus_to_rc) + sbus_to_rc 0x0800c13d Thumb Code 510 remote_control.o(i.sbus_to_rc) + i.sqrtf 0x0800c348 Section 0 sqrtf.o(i.sqrtf) + i.user_delay_ms 0x0800c386 Section 0 calc_lib.o(i.user_delay_ms) + i.user_delay_us 0x0800c39e Section 0 calc_lib.o(i.user_delay_us) + i.uxListRemove 0x0800c3b6 Section 0 list.o(i.uxListRemove) + i.vApplicationGetIdleTaskMemory 0x0800c3e0 Section 0 cmsis_os2.o(i.vApplicationGetIdleTaskMemory) + i.vApplicationGetTimerTaskMemory 0x0800c3f8 Section 0 cmsis_os2.o(i.vApplicationGetTimerTaskMemory) + i.vApplicationStackOverflowHook 0x0800c410 Section 0 freertos.o(i.vApplicationStackOverflowHook) + i.vListInitialise 0x0800c412 Section 0 list.o(i.vListInitialise) + i.vListInitialiseItem 0x0800c42c Section 0 list.o(i.vListInitialiseItem) + i.vListInsert 0x0800c432 Section 0 list.o(i.vListInsert) + i.vListInsertEnd 0x0800c466 Section 0 list.o(i.vListInsertEnd) + i.vPortEnterCritical 0x0800c480 Section 0 port.o(i.vPortEnterCritical) + i.vPortExitCritical 0x0800c4d4 Section 0 port.o(i.vPortExitCritical) + i.vPortFree 0x0800c510 Section 0 heap_4.o(i.vPortFree) + i.vPortSetupTimerInterrupt 0x0800c5b4 Section 0 port.o(i.vPortSetupTimerInterrupt) + i.vPortValidateInterruptPriority 0x0800c5dc Section 0 port.o(i.vPortValidateInterruptPriority) + i.vQueueAddToRegistry 0x0800c654 Section 0 queue.o(i.vQueueAddToRegistry) + i.vQueueWaitForMessageRestricted 0x0800c680 Section 0 queue.o(i.vQueueWaitForMessageRestricted) + i.vTaskDelay 0x0800c6cc Section 0 tasks.o(i.vTaskDelay) + i.vTaskDelayUntil 0x0800c728 Section 0 tasks.o(i.vTaskDelayUntil) + i.vTaskDelete 0x0800c7fc Section 0 tasks.o(i.vTaskDelete) + i.vTaskInternalSetTimeOutState 0x0800c8c4 Section 0 tasks.o(i.vTaskInternalSetTimeOutState) + i.vTaskMissedYield 0x0800c8dc Section 0 tasks.o(i.vTaskMissedYield) + i.vTaskPlaceOnEventList 0x0800c8e8 Section 0 tasks.o(i.vTaskPlaceOnEventList) + i.vTaskPlaceOnEventListRestricted 0x0800c920 Section 0 tasks.o(i.vTaskPlaceOnEventListRestricted) + i.vTaskPriorityDisinheritAfterTimeout 0x0800c960 Section 0 tasks.o(i.vTaskPriorityDisinheritAfterTimeout) + i.vTaskStartScheduler 0x0800ca30 Section 0 tasks.o(i.vTaskStartScheduler) + i.vTaskSuspendAll 0x0800caec Section 0 tasks.o(i.vTaskSuspendAll) + i.vTaskSwitchContext 0x0800cafc Section 0 tasks.o(i.vTaskSwitchContext) + i.xPortStartScheduler 0x0800cc00 Section 0 port.o(i.xPortStartScheduler) + i.xPortSysTickHandler 0x0800cd68 Section 0 port.o(i.xPortSysTickHandler) + i.xQueueCreateMutex 0x0800cd9c Section 0 queue.o(i.xQueueCreateMutex) + i.xQueueCreateMutexStatic 0x0800cdbe Section 0 queue.o(i.xQueueCreateMutexStatic) + i.xQueueGenericCreate 0x0800cde8 Section 0 queue.o(i.xQueueGenericCreate) + i.xQueueGenericCreateStatic 0x0800ce42 Section 0 queue.o(i.xQueueGenericCreateStatic) + i.xQueueGenericReset 0x0800cf24 Section 0 queue.o(i.xQueueGenericReset) + i.xQueueGenericSend 0x0800cfbc Section 0 queue.o(i.xQueueGenericSend) + i.xQueueGenericSendFromISR 0x0800d164 Section 0 queue.o(i.xQueueGenericSendFromISR) + i.xQueueGiveMutexRecursive 0x0800d260 Section 0 queue.o(i.xQueueGiveMutexRecursive) + i.xQueueReceive 0x0800d2a8 Section 0 queue.o(i.xQueueReceive) + i.xQueueReceiveFromISR 0x0800d410 Section 0 queue.o(i.xQueueReceiveFromISR) + i.xQueueSemaphoreTake 0x0800d4dc Section 0 queue.o(i.xQueueSemaphoreTake) + i.xQueueTakeMutexRecursive 0x0800d694 Section 0 queue.o(i.xQueueTakeMutexRecursive) + i.xTaskCheckForTimeOut 0x0800d6e4 Section 0 tasks.o(i.xTaskCheckForTimeOut) + i.xTaskCreate 0x0800d770 Section 0 tasks.o(i.xTaskCreate) + i.xTaskCreateStatic 0x0800d7d4 Section 0 tasks.o(i.xTaskCreateStatic) + i.xTaskGenericNotify 0x0800d890 Section 0 tasks.o(i.xTaskGenericNotify) + i.xTaskGenericNotifyFromISR 0x0800d9b8 Section 0 tasks.o(i.xTaskGenericNotifyFromISR) + i.xTaskGetCurrentTaskHandle 0x0800db1c Section 0 tasks.o(i.xTaskGetCurrentTaskHandle) + i.xTaskGetSchedulerState 0x0800db28 Section 0 tasks.o(i.xTaskGetSchedulerState) + i.xTaskGetTickCount 0x0800db48 Section 0 tasks.o(i.xTaskGetTickCount) + i.xTaskGetTickCountFromISR 0x0800db54 Section 0 tasks.o(i.xTaskGetTickCountFromISR) + i.xTaskIncrementTick 0x0800db68 Section 0 tasks.o(i.xTaskIncrementTick) + i.xTaskNotifyWait 0x0800dcac Section 0 tasks.o(i.xTaskNotifyWait) + i.xTaskPriorityDisinherit 0x0800dd4c Section 0 tasks.o(i.xTaskPriorityDisinherit) + i.xTaskPriorityInherit 0x0800ddf0 Section 0 tasks.o(i.xTaskPriorityInherit) + i.xTaskRemoveFromEventList 0x0800de94 Section 0 tasks.o(i.xTaskRemoveFromEventList) + i.xTaskResumeAll 0x0800df2c Section 0 tasks.o(i.xTaskResumeAll) + i.xTimerCreateTimerTask 0x0800e030 Section 0 timers.o(i.xTimerCreateTimerTask) + i.xTimerGenericCommand 0x0800e0a8 Section 0 timers.o(i.xTimerGenericCommand) + x$fpl$basic 0x0800e12c Section 24 basic.o(x$fpl$basic) + $v0 0x0800e12c Number 0 basic.o(x$fpl$basic) + x$fpl$d2f 0x0800e144 Section 98 d2f.o(x$fpl$d2f) + $v0 0x0800e144 Number 0 d2f.o(x$fpl$d2f) + x$fpl$dadd 0x0800e1a8 Section 336 daddsub_clz.o(x$fpl$dadd) + $v0 0x0800e1a8 Number 0 daddsub_clz.o(x$fpl$dadd) + _dadd1 0x0800e1b9 Thumb Code 0 daddsub_clz.o(x$fpl$dadd) + x$fpl$dcmpinf 0x0800e2f8 Section 24 dcmpi.o(x$fpl$dcmpinf) + $v0 0x0800e2f8 Number 0 dcmpi.o(x$fpl$dcmpinf) + x$fpl$ddiv 0x0800e310 Section 688 ddiv.o(x$fpl$ddiv) + $v0 0x0800e310 Number 0 ddiv.o(x$fpl$ddiv) + ddiv_entry 0x0800e317 Thumb Code 0 ddiv.o(x$fpl$ddiv) + x$fpl$deqf 0x0800e5c0 Section 120 deqf.o(x$fpl$deqf) + $v0 0x0800e5c0 Number 0 deqf.o(x$fpl$deqf) + x$fpl$dfix 0x0800e638 Section 94 dfix.o(x$fpl$dfix) + $v0 0x0800e638 Number 0 dfix.o(x$fpl$dfix) + x$fpl$dfixu 0x0800e698 Section 90 dfixu.o(x$fpl$dfixu) + $v0 0x0800e698 Number 0 dfixu.o(x$fpl$dfixu) + x$fpl$dflt 0x0800e6f2 Section 46 dflt_clz.o(x$fpl$dflt) + $v0 0x0800e6f2 Number 0 dflt_clz.o(x$fpl$dflt) + x$fpl$dfltu 0x0800e720 Section 38 dflt_clz.o(x$fpl$dfltu) + $v0 0x0800e720 Number 0 dflt_clz.o(x$fpl$dfltu) + x$fpl$dmul 0x0800e748 Section 340 dmul.o(x$fpl$dmul) + $v0 0x0800e748 Number 0 dmul.o(x$fpl$dmul) + x$fpl$dnaninf 0x0800e89c Section 156 dnaninf.o(x$fpl$dnaninf) + $v0 0x0800e89c Number 0 dnaninf.o(x$fpl$dnaninf) + x$fpl$dretinf 0x0800e938 Section 12 dretinf.o(x$fpl$dretinf) + $v0 0x0800e938 Number 0 dretinf.o(x$fpl$dretinf) + x$fpl$drsb 0x0800e944 Section 22 daddsub_clz.o(x$fpl$drsb) + $v0 0x0800e944 Number 0 daddsub_clz.o(x$fpl$drsb) + x$fpl$dsub 0x0800e95c Section 468 daddsub_clz.o(x$fpl$dsub) + $v0 0x0800e95c Number 0 daddsub_clz.o(x$fpl$dsub) + _dsub1 0x0800e96d Thumb Code 0 daddsub_clz.o(x$fpl$dsub) + x$fpl$f2d 0x0800eb30 Section 86 f2d.o(x$fpl$f2d) + $v0 0x0800eb30 Number 0 f2d.o(x$fpl$f2d) + x$fpl$fcmp4 0x0800eb88 Section 82 fcmp4.o(x$fpl$fcmp4) + $v0 0x0800eb88 Number 0 fcmp4.o(x$fpl$fcmp4) + x$fpl$fcmpinf 0x0800ebda Section 24 fcmpi.o(x$fpl$fcmpinf) + $v0 0x0800ebda Number 0 fcmpi.o(x$fpl$fcmpinf) + x$fpl$ffltll 0x0800ebf2 Section 96 ffltll_clz.o(x$fpl$ffltll) + $v0 0x0800ebf2 Number 0 ffltll_clz.o(x$fpl$ffltll) + x$fpl$fnaninf 0x0800ec52 Section 140 fnaninf.o(x$fpl$fnaninf) + $v0 0x0800ec52 Number 0 fnaninf.o(x$fpl$fnaninf) + x$fpl$fpinit 0x0800ecde Section 10 fpinit.o(x$fpl$fpinit) + $v0 0x0800ecde Number 0 fpinit.o(x$fpl$fpinit) + x$fpl$fretinf 0x0800ece8 Section 10 fretinf.o(x$fpl$fretinf) + $v0 0x0800ece8 Number 0 fretinf.o(x$fpl$fretinf) + x$fpl$usenofp 0x0800ecf2 Section 0 usenofp.o(x$fpl$usenofp) + .constdata 0x0800ecf4 Section 36 freertos.o(.constdata) + .constdata 0x0800ed18 Section 8 stm32f4xx_hal_dma.o(.constdata) + flagBitshiftOffset 0x0800ed18 Data 8 stm32f4xx_hal_dma.o(.constdata) + .constdata 0x0800ed20 Section 24 system_stm32f4xx.o(.constdata) + .constdata 0x0800ed38 Section 56 gpio_1.o(.constdata) + GPIO_Map 0x0800ed38 Data 56 gpio_1.o(.constdata) + .constdata 0x0800ed70 Section 8 pwm.o(.constdata) + PWM_Map 0x0800ed70 Data 8 pwm.o(.constdata) + .constdata 0x0800ed78 Section 32 atti_esti.o(.constdata) + imu_temp_ctrl_pid_param 0x0800ed78 Data 32 atti_esti.o(.constdata) + .constdata 0x0800ed98 Section 144 user_task.o(.constdata) + .constdata 0x0800ee28 Section 152 atan.o(.constdata) + atanhi 0x0800ee28 Data 32 atan.o(.constdata) + atanlo 0x0800ee48 Data 32 atan.o(.constdata) + aTodd 0x0800ee68 Data 40 atan.o(.constdata) + aTeven 0x0800ee90 Data 48 atan.o(.constdata) + .constdata 0x0800eec0 Section 8 qnan.o(.constdata) + .constdata 0x0800eec8 Section 32 rredf.o(.constdata) + twooverpi 0x0800eec8 Data 32 rredf.o(.constdata) + .conststring 0x0800eee8 Section 12 freertos.o(.conststring) + .conststring 0x0800eef4 Section 42 user_task.o(.conststring) .data 0x20000000 Section 4 freertos.o(.data) .data 0x20000004 Section 4 can.o(.data) HAL_RCC_CAN1_CLK_ENABLED 0x20000004 Data 4 can.o(.data) @@ -4732,330 +4732,330 @@ Image Symbol Table EXTI4_IRQHandler 0x08002a69 Thumb Code 10 stm32f4xx_it.o(i.EXTI4_IRQHandler) EXTI9_5_IRQHandler 0x08002a73 Thumb Code 10 stm32f4xx_it.o(i.EXTI9_5_IRQHandler) Error_Handler 0x08002a7d Thumb Code 6 main.o(i.Error_Handler) - Gimbal_Control 0x08002a85 Thumb Code 1104 gimbal.o(i.Gimbal_Control) - Gimbal_Init 0x08002ed5 Thumb Code 340 gimbal.o(i.Gimbal_Init) - Gimbal_Output 0x08003029 Thumb Code 54 gimbal.o(i.Gimbal_Output) - Gimbal_UpdateFeedback 0x080030e5 Thumb Code 86 gimbal.o(i.Gimbal_UpdateFeedback) - Gimbal_UpdateIMU 0x0800313b Thumb Code 42 gimbal.o(i.Gimbal_UpdateIMU) - HAL_CAN_ActivateNotification 0x08003165 Thumb Code 42 stm32f4xx_hal_can.o(i.HAL_CAN_ActivateNotification) - HAL_CAN_AddTxMessage 0x0800318f Thumb Code 330 stm32f4xx_hal_can.o(i.HAL_CAN_AddTxMessage) - HAL_CAN_ConfigFilter 0x080032d9 Thumb Code 284 stm32f4xx_hal_can.o(i.HAL_CAN_ConfigFilter) - HAL_CAN_ErrorCallback 0x080033f9 Thumb Code 54 can_1.o(i.HAL_CAN_ErrorCallback) - HAL_CAN_GetRxFifoFillLevel 0x08003435 Thumb Code 40 stm32f4xx_hal_can.o(i.HAL_CAN_GetRxFifoFillLevel) - HAL_CAN_GetRxMessage 0x0800345d Thumb Code 404 stm32f4xx_hal_can.o(i.HAL_CAN_GetRxMessage) - HAL_CAN_GetTxMailboxesFreeLevel 0x080035f1 Thumb Code 54 stm32f4xx_hal_can.o(i.HAL_CAN_GetTxMailboxesFreeLevel) - HAL_CAN_IRQHandler 0x08003627 Thumb Code 590 stm32f4xx_hal_can.o(i.HAL_CAN_IRQHandler) - HAL_CAN_Init 0x08003875 Thumb Code 372 stm32f4xx_hal_can.o(i.HAL_CAN_Init) - HAL_CAN_MspInit 0x080039e9 Thumb Code 392 can.o(i.HAL_CAN_MspInit) - HAL_CAN_RxFifo0FullCallback 0x08003b89 Thumb Code 54 can_1.o(i.HAL_CAN_RxFifo0FullCallback) - HAL_CAN_RxFifo0MsgPendingCallback 0x08003bc5 Thumb Code 54 can_1.o(i.HAL_CAN_RxFifo0MsgPendingCallback) - HAL_CAN_RxFifo1FullCallback 0x08003c01 Thumb Code 54 can_1.o(i.HAL_CAN_RxFifo1FullCallback) - HAL_CAN_RxFifo1MsgPendingCallback 0x08003c3d Thumb Code 54 can_1.o(i.HAL_CAN_RxFifo1MsgPendingCallback) - HAL_CAN_SleepCallback 0x08003c79 Thumb Code 54 can_1.o(i.HAL_CAN_SleepCallback) - HAL_CAN_Start 0x08003cb5 Thumb Code 94 stm32f4xx_hal_can.o(i.HAL_CAN_Start) - HAL_CAN_TxMailbox0AbortCallback 0x08003d15 Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox0AbortCallback) - HAL_CAN_TxMailbox0CompleteCallback 0x08003d51 Thumb Code 50 can_1.o(i.HAL_CAN_TxMailbox0CompleteCallback) - HAL_CAN_TxMailbox1AbortCallback 0x08003d89 Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox1AbortCallback) - HAL_CAN_TxMailbox1CompleteCallback 0x08003dc5 Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox1CompleteCallback) - HAL_CAN_TxMailbox2AbortCallback 0x08003e01 Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox2AbortCallback) - HAL_CAN_TxMailbox2CompleteCallback 0x08003e3d Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox2CompleteCallback) - HAL_CAN_WakeUpFromRxMsgCallback 0x08003e79 Thumb Code 54 can_1.o(i.HAL_CAN_WakeUpFromRxMsgCallback) - HAL_DMA_Abort 0x08003eb5 Thumb Code 172 stm32f4xx_hal_dma.o(i.HAL_DMA_Abort) - HAL_DMA_Abort_IT 0x08003f61 Thumb Code 40 stm32f4xx_hal_dma.o(i.HAL_DMA_Abort_IT) - HAL_DMA_GetState 0x08003f89 Thumb Code 8 stm32f4xx_hal_dma.o(i.HAL_DMA_GetState) - HAL_DMA_IRQHandler 0x08003f91 Thumb Code 570 stm32f4xx_hal_dma.o(i.HAL_DMA_IRQHandler) - HAL_DMA_Init 0x080041d1 Thumb Code 232 stm32f4xx_hal_dma.o(i.HAL_DMA_Init) - HAL_DMA_Start_IT 0x080042bd Thumb Code 146 stm32f4xx_hal_dma.o(i.HAL_DMA_Start_IT) - HAL_Delay 0x08004351 Thumb Code 36 stm32f4xx_hal.o(i.HAL_Delay) - HAL_GPIO_EXTI_Callback 0x08004379 Thumb Code 42 gpio_1.o(i.HAL_GPIO_EXTI_Callback) - HAL_GPIO_EXTI_IRQHandler 0x080043a9 Thumb Code 24 stm32f4xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) - HAL_GPIO_Init 0x080043c5 Thumb Code 454 stm32f4xx_hal_gpio.o(i.HAL_GPIO_Init) - HAL_GPIO_ReadPin 0x080045b9 Thumb Code 16 stm32f4xx_hal_gpio.o(i.HAL_GPIO_ReadPin) - HAL_GPIO_WritePin 0x080045c9 Thumb Code 12 stm32f4xx_hal_gpio.o(i.HAL_GPIO_WritePin) - HAL_GetTick 0x080045d5 Thumb Code 6 stm32f4xx_hal.o(i.HAL_GetTick) - HAL_I2C_AbortCpltCallback 0x080045e1 Thumb Code 46 i2c_1.o(i.HAL_I2C_AbortCpltCallback) - HAL_I2C_AddrCallback 0x08004615 Thumb Code 2 stm32f4xx_hal_i2c.o(i.HAL_I2C_AddrCallback) - HAL_I2C_ER_IRQHandler 0x08004617 Thumb Code 212 stm32f4xx_hal_i2c.o(i.HAL_I2C_ER_IRQHandler) - HAL_I2C_EV_IRQHandler 0x080046eb Thumb Code 474 stm32f4xx_hal_i2c.o(i.HAL_I2C_EV_IRQHandler) - HAL_I2C_ErrorCallback 0x080048c5 Thumb Code 46 i2c_1.o(i.HAL_I2C_ErrorCallback) - HAL_I2C_Init 0x080048f9 Thumb Code 446 stm32f4xx_hal_i2c.o(i.HAL_I2C_Init) - HAL_I2C_ListenCpltCallback 0x08004ac9 Thumb Code 46 i2c_1.o(i.HAL_I2C_ListenCpltCallback) - HAL_I2C_MasterRxCpltCallback 0x08004afd Thumb Code 46 i2c_1.o(i.HAL_I2C_MasterRxCpltCallback) - HAL_I2C_MasterTxCpltCallback 0x08004b31 Thumb Code 42 i2c_1.o(i.HAL_I2C_MasterTxCpltCallback) - HAL_I2C_MemRxCpltCallback 0x08004b61 Thumb Code 46 i2c_1.o(i.HAL_I2C_MemRxCpltCallback) - HAL_I2C_MemTxCpltCallback 0x08004b95 Thumb Code 46 i2c_1.o(i.HAL_I2C_MemTxCpltCallback) - HAL_I2C_MspInit 0x08004bc9 Thumb Code 262 i2c.o(i.HAL_I2C_MspInit) - HAL_I2C_SlaveRxCpltCallback 0x08004ce5 Thumb Code 46 i2c_1.o(i.HAL_I2C_SlaveRxCpltCallback) - HAL_I2C_SlaveTxCpltCallback 0x08004d19 Thumb Code 46 i2c_1.o(i.HAL_I2C_SlaveTxCpltCallback) - HAL_IncTick 0x08004d4d Thumb Code 16 stm32f4xx_hal.o(i.HAL_IncTick) - HAL_Init 0x08004d65 Thumb Code 54 stm32f4xx_hal.o(i.HAL_Init) - HAL_InitTick 0x08004da1 Thumb Code 64 stm32f4xx_hal.o(i.HAL_InitTick) - HAL_MspInit 0x08004ded Thumb Code 78 stm32f4xx_hal_msp.o(i.HAL_MspInit) - HAL_NVIC_DisableIRQ 0x08004e41 Thumb Code 38 stm32f4xx_hal_cortex.o(i.HAL_NVIC_DisableIRQ) - HAL_NVIC_EnableIRQ 0x08004e6d Thumb Code 40 stm32f4xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) - HAL_NVIC_SetPriority 0x08004e95 Thumb Code 124 stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriority) - HAL_NVIC_SetPriorityGrouping 0x08004f11 Thumb Code 32 stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) - HAL_RCC_ClockConfig 0x08004f39 Thumb Code 368 stm32f4xx_hal_rcc.o(i.HAL_RCC_ClockConfig) - HAL_RCC_GetHCLKFreq 0x080050bd Thumb Code 6 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq) - HAL_RCC_GetPCLK1Freq 0x080050c9 Thumb Code 22 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) - HAL_RCC_GetPCLK2Freq 0x080050e9 Thumb Code 22 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) - HAL_RCC_GetSysClockFreq 0x08005109 Thumb Code 162 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) - HAL_RCC_OscConfig 0x080051b9 Thumb Code 1172 stm32f4xx_hal_rcc.o(i.HAL_RCC_OscConfig) - HAL_SPI_ErrorCallback 0x08005655 Thumb Code 50 spi_1.o(i.HAL_SPI_ErrorCallback) - HAL_SPI_Init 0x0800568d Thumb Code 200 stm32f4xx_hal_spi.o(i.HAL_SPI_Init) - HAL_SPI_MspInit 0x08005755 Thumb Code 424 spi.o(i.HAL_SPI_MspInit) - HAL_SPI_Receive 0x08005921 Thumb Code 386 stm32f4xx_hal_spi.o(i.HAL_SPI_Receive) - HAL_SPI_Receive_DMA 0x08005aa5 Thumb Code 268 stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA) - HAL_SPI_RxCpltCallback 0x08005bbd Thumb Code 50 spi_1.o(i.HAL_SPI_RxCpltCallback) - HAL_SPI_RxHalfCpltCallback 0x08005bf5 Thumb Code 50 spi_1.o(i.HAL_SPI_RxHalfCpltCallback) - HAL_SPI_Transmit 0x08005c2d Thumb Code 446 stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit) - HAL_SPI_TransmitReceive 0x08005deb Thumb Code 584 stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive) - HAL_SPI_TransmitReceive_DMA 0x08006035 Thumb Code 336 stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) - HAL_SPI_Transmit_DMA 0x08006199 Thumb Code 238 stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) - HAL_SPI_TxCpltCallback 0x08006295 Thumb Code 38 spi_1.o(i.HAL_SPI_TxCpltCallback) - HAL_SPI_TxHalfCpltCallback 0x080062c1 Thumb Code 50 spi_1.o(i.HAL_SPI_TxHalfCpltCallback) - HAL_SPI_TxRxCpltCallback 0x080062f9 Thumb Code 50 spi_1.o(i.HAL_SPI_TxRxCpltCallback) - HAL_SPI_TxRxHalfCpltCallback 0x08006331 Thumb Code 50 spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback) - HAL_SYSTICK_Config 0x08006369 Thumb Code 52 stm32f4xx_hal_cortex.o(i.HAL_SYSTICK_Config) - HAL_TIMEx_BreakCallback 0x0800639d Thumb Code 2 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_BreakCallback) - HAL_TIMEx_CommutCallback 0x0800639f Thumb Code 2 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_CommutCallback) - HAL_TIMEx_MasterConfigSynchronization 0x080063a1 Thumb Code 150 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization) - HAL_TIM_Base_Init 0x08006455 Thumb Code 102 stm32f4xx_hal_tim.o(i.HAL_TIM_Base_Init) - HAL_TIM_Base_MspInit 0x080064bd Thumb Code 108 tim.o(i.HAL_TIM_Base_MspInit) - HAL_TIM_IC_CaptureCallback 0x08006535 Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback) - HAL_TIM_IRQHandler 0x08006537 Thumb Code 364 stm32f4xx_hal_tim.o(i.HAL_TIM_IRQHandler) - HAL_TIM_MspPostInit 0x080066a5 Thumb Code 84 tim.o(i.HAL_TIM_MspPostInit) - HAL_TIM_OC_DelayElapsedCallback 0x08006705 Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback) - HAL_TIM_PWM_ConfigChannel 0x08006707 Thumb Code 260 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel) - HAL_TIM_PWM_Init 0x0800680b Thumb Code 102 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Init) - HAL_TIM_PWM_MspInit 0x08006871 Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_MspInit) - HAL_TIM_PWM_PulseFinishedCallback 0x08006873 Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback) - HAL_TIM_PWM_Start 0x08006875 Thumb Code 238 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Start) - HAL_TIM_PeriodElapsedCallback 0x08006981 Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_PeriodElapsedCallback) - HAL_TIM_TriggerCallback 0x08006983 Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_TriggerCallback) - HAL_UARTEx_RxEventCallback 0x08006985 Thumb Code 2 stm32f4xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback) - HAL_UART_ErrorCallback 0x08006989 Thumb Code 46 uart.o(i.HAL_UART_ErrorCallback) - HAL_UART_IRQHandler 0x080069bd Thumb Code 772 stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler) - HAL_UART_Init 0x08006cc5 Thumb Code 118 stm32f4xx_hal_uart.o(i.HAL_UART_Init) - HAL_UART_MspInit 0x08006d3d Thumb Code 374 usart.o(i.HAL_UART_MspInit) - HAL_UART_RxCpltCallback 0x08006ed5 Thumb Code 46 uart.o(i.HAL_UART_RxCpltCallback) - HAL_UART_TxCpltCallback 0x08006f09 Thumb Code 46 uart.o(i.HAL_UART_TxCpltCallback) - HardFault_Handler 0x08006f3d Thumb Code 4 stm32f4xx_it.o(i.HardFault_Handler) - I2C1_ER_IRQHandler 0x08006f41 Thumb Code 10 stm32f4xx_it.o(i.I2C1_ER_IRQHandler) - I2C1_EV_IRQHandler 0x08006f51 Thumb Code 10 stm32f4xx_it.o(i.I2C1_EV_IRQHandler) - InvSqrt 0x08007db5 Thumb Code 76 user_math.o(i.InvSqrt) - LowPassFilter2p_Apply 0x08007e05 Thumb Code 124 filter.o(i.LowPassFilter2p_Apply) - LowPassFilter2p_Init 0x08007e85 Thumb Code 264 filter.o(i.LowPassFilter2p_Init) - LowPassFilter2p_Reset 0x08007f99 Thumb Code 90 filter.o(i.LowPassFilter2p_Reset) - MOTOR_RM_Ctrl 0x08008049 Thumb Code 290 motor_rm.o(i.MOTOR_RM_Ctrl) - MOTOR_RM_GetMotor 0x080081ef Thumb Code 62 motor_rm.o(i.MOTOR_RM_GetMotor) - MOTOR_RM_Register 0x08008255 Thumb Code 192 motor_rm.o(i.MOTOR_RM_Register) - MOTOR_RM_SetOutput 0x08008315 Thumb Code 178 motor_rm.o(i.MOTOR_RM_SetOutput) - MOTOR_RM_Update 0x080083c7 Thumb Code 174 motor_rm.o(i.MOTOR_RM_Update) - MX_CAN1_Init 0x08008475 Thumb Code 62 can.o(i.MX_CAN1_Init) - MX_CAN2_Init 0x080084bd Thumb Code 62 can.o(i.MX_CAN2_Init) - MX_DMA_Init 0x08008505 Thumb Code 114 dma.o(i.MX_DMA_Init) - MX_FREERTOS_Init 0x0800857d Thumb Code 28 freertos.o(i.MX_FREERTOS_Init) - MX_GPIO_Init 0x080085ad Thumb Code 476 gpio.o(i.MX_GPIO_Init) - MX_I2C1_Init 0x0800879d Thumb Code 48 i2c.o(i.MX_I2C1_Init) - MX_I2C2_Init 0x080087d9 Thumb Code 48 i2c.o(i.MX_I2C2_Init) - MX_SPI1_Init 0x08008815 Thumb Code 62 spi.o(i.MX_SPI1_Init) - MX_SPI2_Init 0x0800885d Thumb Code 64 spi.o(i.MX_SPI2_Init) - MX_TIM10_Init 0x080088a5 Thumb Code 100 tim.o(i.MX_TIM10_Init) - MX_TIM7_Init 0x08008911 Thumb Code 66 tim.o(i.MX_TIM7_Init) - MX_USART1_UART_Init 0x0800895d Thumb Code 46 usart.o(i.MX_USART1_UART_Init) - MX_USART3_UART_Init 0x08008995 Thumb Code 50 usart.o(i.MX_USART3_UART_Init) - MemManage_Handler 0x080089d5 Thumb Code 4 stm32f4xx_it.o(i.MemManage_Handler) - NMI_Handler 0x08008b69 Thumb Code 4 stm32f4xx_it.o(i.NMI_Handler) - PID_Calc 0x08008b6d Thumb Code 412 pid.o(i.PID_Calc) - PID_Init 0x08008d11 Thumb Code 204 pid.o(i.PID_Init) - PID_Reset 0x08008ddd Thumb Code 60 pid.o(i.PID_Reset) - RC_Init 0x08008e1d Thumb Code 114 bsp_rc.o(i.RC_Init) - RC_restart 0x08008ea1 Thumb Code 82 bsp_rc.o(i.RC_restart) - StartDefaultTask 0x080092c1 Thumb Code 16 freertos.o(i.StartDefaultTask) - SysTick_Handler 0x080092d1 Thumb Code 20 stm32f4xx_it.o(i.SysTick_Handler) - SystemClock_Config 0x080092e5 Thumb Code 170 main.o(i.SystemClock_Config) - SystemInit 0x08009399 Thumb Code 14 system_stm32f4xx.o(i.SystemInit) - TIM7_IRQHandler 0x080093ad Thumb Code 10 stm32f4xx_it.o(i.TIM7_IRQHandler) - TIM_Base_SetConfig 0x080093bd Thumb Code 178 stm32f4xx_hal_tim.o(i.TIM_Base_SetConfig) - TIM_CCxChannelCmd 0x0800949d Thumb Code 34 stm32f4xx_hal_tim.o(i.TIM_CCxChannelCmd) - TIM_OC2_SetConfig 0x08009531 Thumb Code 114 stm32f4xx_hal_tim.o(i.TIM_OC2_SetConfig) - Task_Init 0x08009679 Thumb Code 126 init.o(i.Task_Init) - Task_atti_esti 0x08009715 Thumb Code 272 atti_esti.o(i.Task_atti_esti) - Task_gimbal_ctrl 0x08009859 Thumb Code 140 gimbal_ctrl.o(i.Task_gimbal_ctrl) - Task_remote 0x08009901 Thumb Code 104 remote.o(i.Task_remote) - USART3_IRQHandler 0x08009dc1 Thumb Code 20 stm32f4xx_it.o(i.USART3_IRQHandler) - USART3_IRQHandler1 0x08009dd9 Thumb Code 20 remote_control.o(i.USART3_IRQHandler1) - UsageFault_Handler 0x08009df1 Thumb Code 4 stm32f4xx_it.o(i.UsageFault_Handler) - __ARM_fpclassify 0x08009df5 Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) - __ARM_fpclassifyf 0x08009e25 Thumb Code 38 fpclassifyf.o(i.__ARM_fpclassifyf) - __hardfp_asinf 0x08009e9d Thumb Code 258 asinf.o(i.__hardfp_asinf) - __hardfp_atan 0x08009fc9 Thumb Code 622 atan.o(i.__hardfp_atan) - __hardfp_atan2 0x0800a2a1 Thumb Code 448 atan2.o(i.__hardfp_atan2) - __hardfp_atan2f 0x0800a4a1 Thumb Code 594 atan2f.o(i.__hardfp_atan2f) - __hardfp_cosf 0x0800a74d Thumb Code 280 cosf.o(i.__hardfp_cosf) - __hardfp_fmaxf 0x0800a89d Thumb Code 72 fmaxf.o(i.__hardfp_fmaxf) - __hardfp_tanf 0x0800a8e5 Thumb Code 322 tanf.o(i.__hardfp_tanf) - __kernel_poly 0x0800aa61 Thumb Code 248 poly.o(i.__kernel_poly) - __mathlib_dbl_infnan 0x0800ab59 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan) - __mathlib_dbl_infnan2 0x0800ab6d Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan2) - __mathlib_dbl_underflow 0x0800ab81 Thumb Code 24 dunder.o(i.__mathlib_dbl_underflow) - __mathlib_flt_infnan 0x0800aba1 Thumb Code 6 funder.o(i.__mathlib_flt_infnan) - __mathlib_flt_infnan2 0x0800aba7 Thumb Code 6 funder.o(i.__mathlib_flt_infnan2) - __mathlib_flt_invalid 0x0800abad Thumb Code 10 funder.o(i.__mathlib_flt_invalid) - __mathlib_flt_underflow 0x0800abbd Thumb Code 10 funder.o(i.__mathlib_flt_underflow) - __mathlib_rredf2 0x0800abcd Thumb Code 316 rredf.o(i.__mathlib_rredf2) - atan 0x0800ad21 Thumb Code 16 atan.o(i.atan) - configureTimerForRunTimeStats 0x0800ad31 Thumb Code 2 freertos.o(i.configureTimerForRunTimeStats) - delay_init 0x0800ad35 Thumb Code 32 bsp_delay.o(i.delay_init) - eTaskGetState 0x0800ad65 Thumb Code 128 tasks.o(i.eTaskGetState) - fabs 0x0800adf9 Thumb Code 24 fabs.o(i.fabs) - getRunTimeCounterValue 0x0800ae11 Thumb Code 4 freertos.o(i.getRunTimeCounterValue) - main 0x0800ae15 Thumb Code 72 main.o(i.main) - map 0x0800ae5d Thumb Code 22 calc_lib.o(i.map) - osDelay 0x0800ae73 Thumb Code 30 cmsis_os2.o(i.osDelay) - osDelayUntil 0x0800ae91 Thumb Code 52 cmsis_os2.o(i.osDelayUntil) - osKernelGetState 0x0800aec5 Thumb Code 48 cmsis_os2.o(i.osKernelGetState) - osKernelGetTickCount 0x0800aef9 Thumb Code 26 cmsis_os2.o(i.osKernelGetTickCount) - osKernelGetTickFreq 0x0800af13 Thumb Code 6 cmsis_os2.o(i.osKernelGetTickFreq) - osKernelInitialize 0x0800af19 Thumb Code 38 cmsis_os2.o(i.osKernelInitialize) - osKernelLock 0x0800af45 Thumb Code 56 cmsis_os2.o(i.osKernelLock) - osKernelStart 0x0800af7d Thumb Code 82 cmsis_os2.o(i.osKernelStart) - osKernelUnlock 0x0800afdd Thumb Code 68 cmsis_os2.o(i.osKernelUnlock) - osMessageQueueGet 0x0800b021 Thumb Code 124 cmsis_os2.o(i.osMessageQueueGet) - osMessageQueueNew 0x0800b0a1 Thumb Code 154 cmsis_os2.o(i.osMessageQueueNew) - osMessageQueuePut 0x0800b13d Thumb Code 128 cmsis_os2.o(i.osMessageQueuePut) - osMessageQueueReset 0x0800b1c1 Thumb Code 40 cmsis_os2.o(i.osMessageQueueReset) - osMutexAcquire 0x0800b1e9 Thumb Code 98 cmsis_os2.o(i.osMutexAcquire) - osMutexNew 0x0800b24b Thumb Code 178 cmsis_os2.o(i.osMutexNew) - osMutexRelease 0x0800b2fd Thumb Code 78 cmsis_os2.o(i.osMutexRelease) - osThreadFlagsSet 0x0800b34d Thumb Code 122 cmsis_os2.o(i.osThreadFlagsSet) - osThreadFlagsWait 0x0800b3cd Thumb Code 178 cmsis_os2.o(i.osThreadFlagsWait) - osThreadGetId 0x0800b47f Thumb Code 12 cmsis_os2.o(i.osThreadGetId) - osThreadNew 0x0800b48b Thumb Code 184 cmsis_os2.o(i.osThreadNew) - osThreadTerminate 0x0800b543 Thumb Code 60 cmsis_os2.o(i.osThreadTerminate) - pvPortMalloc 0x0800bfdd Thumb Code 306 heap_4.o(i.pvPortMalloc) - pvTaskIncrementMutexHeldCount 0x0800c129 Thumb Code 26 tasks.o(i.pvTaskIncrementMutexHeldCount) - pxPortInitialiseStack 0x0800c149 Thumb Code 38 port.o(i.pxPortInitialiseStack) - remote_ParseHost 0x0800c175 Thumb Code 118 ai.o(i.remote_ParseHost) - remote_control_init 0x0800c1fd Thumb Code 12 remote_control.o(i.remote_control_init) - sqrtf 0x0800c419 Thumb Code 62 sqrtf.o(i.sqrtf) - user_delay_ms 0x0800c457 Thumb Code 24 calc_lib.o(i.user_delay_ms) - user_delay_us 0x0800c46f Thumb Code 24 calc_lib.o(i.user_delay_us) - uxListRemove 0x0800c487 Thumb Code 40 list.o(i.uxListRemove) - vApplicationGetIdleTaskMemory 0x0800c4b1 Thumb Code 14 cmsis_os2.o(i.vApplicationGetIdleTaskMemory) - vApplicationGetTimerTaskMemory 0x0800c4c9 Thumb Code 16 cmsis_os2.o(i.vApplicationGetTimerTaskMemory) - vApplicationStackOverflowHook 0x0800c4e1 Thumb Code 2 freertos.o(i.vApplicationStackOverflowHook) - vListInitialise 0x0800c4e3 Thumb Code 26 list.o(i.vListInitialise) - vListInitialiseItem 0x0800c4fd Thumb Code 6 list.o(i.vListInitialiseItem) - vListInsert 0x0800c503 Thumb Code 52 list.o(i.vListInsert) - vListInsertEnd 0x0800c537 Thumb Code 24 list.o(i.vListInsertEnd) - vPortEnterCritical 0x0800c551 Thumb Code 76 port.o(i.vPortEnterCritical) - vPortExitCritical 0x0800c5a5 Thumb Code 56 port.o(i.vPortExitCritical) - vPortFree 0x0800c5e1 Thumb Code 150 heap_4.o(i.vPortFree) - vPortSetupTimerInterrupt 0x0800c685 Thumb Code 36 port.o(i.vPortSetupTimerInterrupt) - vPortValidateInterruptPriority 0x0800c6ad Thumb Code 106 port.o(i.vPortValidateInterruptPriority) - vQueueAddToRegistry 0x0800c725 Thumb Code 38 queue.o(i.vQueueAddToRegistry) - vQueueWaitForMessageRestricted 0x0800c751 Thumb Code 74 queue.o(i.vQueueWaitForMessageRestricted) - vTaskDelay 0x0800c79d Thumb Code 82 tasks.o(i.vTaskDelay) - vTaskDelayUntil 0x0800c7f9 Thumb Code 200 tasks.o(i.vTaskDelayUntil) - vTaskDelete 0x0800c8cd Thumb Code 168 tasks.o(i.vTaskDelete) - vTaskInternalSetTimeOutState 0x0800c995 Thumb Code 14 tasks.o(i.vTaskInternalSetTimeOutState) - vTaskMissedYield 0x0800c9ad Thumb Code 8 tasks.o(i.vTaskMissedYield) - vTaskPlaceOnEventList 0x0800c9b9 Thumb Code 52 tasks.o(i.vTaskPlaceOnEventList) - vTaskPlaceOnEventListRestricted 0x0800c9f1 Thumb Code 60 tasks.o(i.vTaskPlaceOnEventListRestricted) - vTaskPriorityDisinheritAfterTimeout 0x0800ca31 Thumb Code 194 tasks.o(i.vTaskPriorityDisinheritAfterTimeout) - vTaskStartScheduler 0x0800cb01 Thumb Code 160 tasks.o(i.vTaskStartScheduler) - vTaskSuspendAll 0x0800cbbd Thumb Code 12 tasks.o(i.vTaskSuspendAll) - vTaskSwitchContext 0x0800cbcd Thumb Code 230 tasks.o(i.vTaskSwitchContext) - xPortStartScheduler 0x0800ccd1 Thumb Code 330 port.o(i.xPortStartScheduler) - xPortSysTickHandler 0x0800ce39 Thumb Code 46 port.o(i.xPortSysTickHandler) - xQueueCreateMutex 0x0800ce6d Thumb Code 34 queue.o(i.xQueueCreateMutex) - xQueueCreateMutexStatic 0x0800ce8f Thumb Code 42 queue.o(i.xQueueCreateMutexStatic) - xQueueGenericCreate 0x0800ceb9 Thumb Code 90 queue.o(i.xQueueGenericCreate) - xQueueGenericCreateStatic 0x0800cf13 Thumb Code 224 queue.o(i.xQueueGenericCreateStatic) - xQueueGenericReset 0x0800cff5 Thumb Code 146 queue.o(i.xQueueGenericReset) - xQueueGenericSend 0x0800d08d Thumb Code 420 queue.o(i.xQueueGenericSend) - xQueueGenericSendFromISR 0x0800d235 Thumb Code 252 queue.o(i.xQueueGenericSendFromISR) - xQueueGiveMutexRecursive 0x0800d331 Thumb Code 72 queue.o(i.xQueueGiveMutexRecursive) - xQueueReceive 0x0800d379 Thumb Code 356 queue.o(i.xQueueReceive) - xQueueReceiveFromISR 0x0800d4e1 Thumb Code 202 queue.o(i.xQueueReceiveFromISR) - xQueueSemaphoreTake 0x0800d5ad Thumb Code 434 queue.o(i.xQueueSemaphoreTake) - xQueueTakeMutexRecursive 0x0800d765 Thumb Code 78 queue.o(i.xQueueTakeMutexRecursive) - xTaskCheckForTimeOut 0x0800d7b5 Thumb Code 132 tasks.o(i.xTaskCheckForTimeOut) - xTaskCreate 0x0800d841 Thumb Code 100 tasks.o(i.xTaskCreate) - xTaskCreateStatic 0x0800d8a5 Thumb Code 186 tasks.o(i.xTaskCreateStatic) - xTaskGenericNotify 0x0800d961 Thumb Code 278 tasks.o(i.xTaskGenericNotify) - xTaskGenericNotifyFromISR 0x0800da89 Thumb Code 332 tasks.o(i.xTaskGenericNotifyFromISR) - xTaskGetCurrentTaskHandle 0x0800dbed Thumb Code 6 tasks.o(i.xTaskGetCurrentTaskHandle) - xTaskGetSchedulerState 0x0800dbf9 Thumb Code 24 tasks.o(i.xTaskGetSchedulerState) - xTaskGetTickCount 0x0800dc19 Thumb Code 6 tasks.o(i.xTaskGetTickCount) - xTaskGetTickCountFromISR 0x0800dc25 Thumb Code 16 tasks.o(i.xTaskGetTickCountFromISR) - xTaskIncrementTick 0x0800dc39 Thumb Code 280 tasks.o(i.xTaskIncrementTick) - xTaskNotifyWait 0x0800dd7d Thumb Code 150 tasks.o(i.xTaskNotifyWait) - xTaskPriorityDisinherit 0x0800de1d Thumb Code 152 tasks.o(i.xTaskPriorityDisinherit) - xTaskPriorityInherit 0x0800dec1 Thumb Code 150 tasks.o(i.xTaskPriorityInherit) - xTaskRemoveFromEventList 0x0800df65 Thumb Code 126 tasks.o(i.xTaskRemoveFromEventList) - xTaskResumeAll 0x0800dffd Thumb Code 222 tasks.o(i.xTaskResumeAll) - xTimerCreateTimerTask 0x0800e101 Thumb Code 100 timers.o(i.xTimerCreateTimerTask) - xTimerGenericCommand 0x0800e179 Thumb Code 128 timers.o(i.xTimerGenericCommand) - __aeabi_dneg 0x0800e1fd Thumb Code 0 basic.o(x$fpl$basic) - _dneg 0x0800e1fd Thumb Code 6 basic.o(x$fpl$basic) - __aeabi_fneg 0x0800e203 Thumb Code 0 basic.o(x$fpl$basic) - _fneg 0x0800e203 Thumb Code 6 basic.o(x$fpl$basic) - _dabs 0x0800e209 Thumb Code 6 basic.o(x$fpl$basic) - _fabs 0x0800e20f Thumb Code 6 basic.o(x$fpl$basic) - __aeabi_d2f 0x0800e215 Thumb Code 0 d2f.o(x$fpl$d2f) - _d2f 0x0800e215 Thumb Code 98 d2f.o(x$fpl$d2f) - __aeabi_dadd 0x0800e279 Thumb Code 0 daddsub_clz.o(x$fpl$dadd) - _dadd 0x0800e279 Thumb Code 332 daddsub_clz.o(x$fpl$dadd) - __fpl_dcmp_Inf 0x0800e3c9 Thumb Code 24 dcmpi.o(x$fpl$dcmpinf) - __aeabi_ddiv 0x0800e3e1 Thumb Code 0 ddiv.o(x$fpl$ddiv) - _ddiv 0x0800e3e1 Thumb Code 552 ddiv.o(x$fpl$ddiv) - __aeabi_cdcmpeq 0x0800e691 Thumb Code 0 deqf.o(x$fpl$deqf) - _dcmpeq 0x0800e691 Thumb Code 120 deqf.o(x$fpl$deqf) - __aeabi_d2iz 0x0800e709 Thumb Code 0 dfix.o(x$fpl$dfix) - _dfix 0x0800e709 Thumb Code 94 dfix.o(x$fpl$dfix) - __aeabi_d2uiz 0x0800e769 Thumb Code 0 dfixu.o(x$fpl$dfixu) - _dfixu 0x0800e769 Thumb Code 90 dfixu.o(x$fpl$dfixu) - __aeabi_i2d 0x0800e7c3 Thumb Code 0 dflt_clz.o(x$fpl$dflt) - _dflt 0x0800e7c3 Thumb Code 46 dflt_clz.o(x$fpl$dflt) - __aeabi_ui2d 0x0800e7f1 Thumb Code 0 dflt_clz.o(x$fpl$dfltu) - _dfltu 0x0800e7f1 Thumb Code 38 dflt_clz.o(x$fpl$dfltu) - __aeabi_dmul 0x0800e819 Thumb Code 0 dmul.o(x$fpl$dmul) - _dmul 0x0800e819 Thumb Code 332 dmul.o(x$fpl$dmul) - __fpl_dnaninf 0x0800e96d Thumb Code 156 dnaninf.o(x$fpl$dnaninf) - __fpl_dretinf 0x0800ea09 Thumb Code 12 dretinf.o(x$fpl$dretinf) - __aeabi_drsub 0x0800ea15 Thumb Code 0 daddsub_clz.o(x$fpl$drsb) - _drsb 0x0800ea15 Thumb Code 22 daddsub_clz.o(x$fpl$drsb) - __aeabi_dsub 0x0800ea2d Thumb Code 0 daddsub_clz.o(x$fpl$dsub) - _dsub 0x0800ea2d Thumb Code 464 daddsub_clz.o(x$fpl$dsub) - __aeabi_f2d 0x0800ec01 Thumb Code 0 f2d.o(x$fpl$f2d) - _f2d 0x0800ec01 Thumb Code 86 f2d.o(x$fpl$f2d) - __fcmp4 0x0800ec59 Thumb Code 24 fcmp4.o(x$fpl$fcmp4) - __ARM_fcmp4 0x0800ec71 Thumb Code 0 fcmp4.o(x$fpl$fcmp4) - _fcmp4 0x0800ec71 Thumb Code 58 fcmp4.o(x$fpl$fcmp4) - __fpl_fcmp_Inf 0x0800ecab Thumb Code 24 fcmpi.o(x$fpl$fcmpinf) - __aeabi_ul2f 0x0800ecc3 Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) - _ll_uto_f 0x0800ecc3 Thumb Code 6 ffltll_clz.o(x$fpl$ffltll) - __aeabi_l2f 0x0800ecc9 Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) - _ll_sto_f 0x0800ecc9 Thumb Code 90 ffltll_clz.o(x$fpl$ffltll) - __fpl_fnaninf 0x0800ed23 Thumb Code 140 fnaninf.o(x$fpl$fnaninf) - _fp_init 0x0800edaf Thumb Code 10 fpinit.o(x$fpl$fpinit) - __fplib_config_fpu_vfp 0x0800edb7 Thumb Code 0 fpinit.o(x$fpl$fpinit) - __fplib_config_pureend_doubles 0x0800edb7 Thumb Code 0 fpinit.o(x$fpl$fpinit) - __fpl_fretinf 0x0800edb9 Thumb Code 10 fretinf.o(x$fpl$fretinf) - __I$use$fp 0x0800edc2 Number 0 usenofp.o(x$fpl$usenofp) - defaultTask_attributes 0x0800edc4 Data 36 freertos.o(.constdata) - AHBPrescTable 0x0800edf0 Data 16 system_stm32f4xx.o(.constdata) - APBPrescTable 0x0800ee00 Data 8 system_stm32f4xx.o(.constdata) - attr_init 0x0800ee68 Data 36 user_task.o(.constdata) - attr_atti_esti 0x0800ee8c Data 36 user_task.o(.constdata) - attr_gimbal_ctrl 0x0800eeb0 Data 36 user_task.o(.constdata) - attr_remote 0x0800eed4 Data 36 user_task.o(.constdata) - __mathlib_zero 0x0800ef90 Data 8 qnan.o(.constdata) - Region$$Table$$Base 0x0800eff0 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x0800f010 Number 0 anon$$obj.o(Region$$Table) + Gimbal_Control 0x08002a85 Thumb Code 876 gimbal.o(i.Gimbal_Control) + Gimbal_Init 0x08002e01 Thumb Code 340 gimbal.o(i.Gimbal_Init) + Gimbal_Output 0x08002f55 Thumb Code 54 gimbal.o(i.Gimbal_Output) + Gimbal_UpdateFeedback 0x08003011 Thumb Code 86 gimbal.o(i.Gimbal_UpdateFeedback) + Gimbal_UpdateIMU 0x08003067 Thumb Code 42 gimbal.o(i.Gimbal_UpdateIMU) + HAL_CAN_ActivateNotification 0x08003091 Thumb Code 42 stm32f4xx_hal_can.o(i.HAL_CAN_ActivateNotification) + HAL_CAN_AddTxMessage 0x080030bb Thumb Code 330 stm32f4xx_hal_can.o(i.HAL_CAN_AddTxMessage) + HAL_CAN_ConfigFilter 0x08003205 Thumb Code 284 stm32f4xx_hal_can.o(i.HAL_CAN_ConfigFilter) + HAL_CAN_ErrorCallback 0x08003325 Thumb Code 54 can_1.o(i.HAL_CAN_ErrorCallback) + HAL_CAN_GetRxFifoFillLevel 0x08003361 Thumb Code 40 stm32f4xx_hal_can.o(i.HAL_CAN_GetRxFifoFillLevel) + HAL_CAN_GetRxMessage 0x08003389 Thumb Code 404 stm32f4xx_hal_can.o(i.HAL_CAN_GetRxMessage) + HAL_CAN_GetTxMailboxesFreeLevel 0x0800351d Thumb Code 54 stm32f4xx_hal_can.o(i.HAL_CAN_GetTxMailboxesFreeLevel) + HAL_CAN_IRQHandler 0x08003553 Thumb Code 590 stm32f4xx_hal_can.o(i.HAL_CAN_IRQHandler) + HAL_CAN_Init 0x080037a1 Thumb Code 372 stm32f4xx_hal_can.o(i.HAL_CAN_Init) + HAL_CAN_MspInit 0x08003915 Thumb Code 392 can.o(i.HAL_CAN_MspInit) + HAL_CAN_RxFifo0FullCallback 0x08003ab5 Thumb Code 54 can_1.o(i.HAL_CAN_RxFifo0FullCallback) + HAL_CAN_RxFifo0MsgPendingCallback 0x08003af1 Thumb Code 54 can_1.o(i.HAL_CAN_RxFifo0MsgPendingCallback) + HAL_CAN_RxFifo1FullCallback 0x08003b2d Thumb Code 54 can_1.o(i.HAL_CAN_RxFifo1FullCallback) + HAL_CAN_RxFifo1MsgPendingCallback 0x08003b69 Thumb Code 54 can_1.o(i.HAL_CAN_RxFifo1MsgPendingCallback) + HAL_CAN_SleepCallback 0x08003ba5 Thumb Code 54 can_1.o(i.HAL_CAN_SleepCallback) + HAL_CAN_Start 0x08003be1 Thumb Code 94 stm32f4xx_hal_can.o(i.HAL_CAN_Start) + HAL_CAN_TxMailbox0AbortCallback 0x08003c41 Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox0AbortCallback) + HAL_CAN_TxMailbox0CompleteCallback 0x08003c7d Thumb Code 50 can_1.o(i.HAL_CAN_TxMailbox0CompleteCallback) + HAL_CAN_TxMailbox1AbortCallback 0x08003cb5 Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox1AbortCallback) + HAL_CAN_TxMailbox1CompleteCallback 0x08003cf1 Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox1CompleteCallback) + HAL_CAN_TxMailbox2AbortCallback 0x08003d2d Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox2AbortCallback) + HAL_CAN_TxMailbox2CompleteCallback 0x08003d69 Thumb Code 54 can_1.o(i.HAL_CAN_TxMailbox2CompleteCallback) + HAL_CAN_WakeUpFromRxMsgCallback 0x08003da5 Thumb Code 54 can_1.o(i.HAL_CAN_WakeUpFromRxMsgCallback) + HAL_DMA_Abort 0x08003de1 Thumb Code 172 stm32f4xx_hal_dma.o(i.HAL_DMA_Abort) + HAL_DMA_Abort_IT 0x08003e8d Thumb Code 40 stm32f4xx_hal_dma.o(i.HAL_DMA_Abort_IT) + HAL_DMA_GetState 0x08003eb5 Thumb Code 8 stm32f4xx_hal_dma.o(i.HAL_DMA_GetState) + HAL_DMA_IRQHandler 0x08003ebd Thumb Code 570 stm32f4xx_hal_dma.o(i.HAL_DMA_IRQHandler) + HAL_DMA_Init 0x080040fd Thumb Code 232 stm32f4xx_hal_dma.o(i.HAL_DMA_Init) + HAL_DMA_Start_IT 0x080041e9 Thumb Code 146 stm32f4xx_hal_dma.o(i.HAL_DMA_Start_IT) + HAL_Delay 0x0800427d Thumb Code 36 stm32f4xx_hal.o(i.HAL_Delay) + HAL_GPIO_EXTI_Callback 0x080042a5 Thumb Code 42 gpio_1.o(i.HAL_GPIO_EXTI_Callback) + HAL_GPIO_EXTI_IRQHandler 0x080042d5 Thumb Code 24 stm32f4xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) + HAL_GPIO_Init 0x080042f1 Thumb Code 454 stm32f4xx_hal_gpio.o(i.HAL_GPIO_Init) + HAL_GPIO_ReadPin 0x080044e5 Thumb Code 16 stm32f4xx_hal_gpio.o(i.HAL_GPIO_ReadPin) + HAL_GPIO_WritePin 0x080044f5 Thumb Code 12 stm32f4xx_hal_gpio.o(i.HAL_GPIO_WritePin) + HAL_GetTick 0x08004501 Thumb Code 6 stm32f4xx_hal.o(i.HAL_GetTick) + HAL_I2C_AbortCpltCallback 0x0800450d Thumb Code 46 i2c_1.o(i.HAL_I2C_AbortCpltCallback) + HAL_I2C_AddrCallback 0x08004541 Thumb Code 2 stm32f4xx_hal_i2c.o(i.HAL_I2C_AddrCallback) + HAL_I2C_ER_IRQHandler 0x08004543 Thumb Code 212 stm32f4xx_hal_i2c.o(i.HAL_I2C_ER_IRQHandler) + HAL_I2C_EV_IRQHandler 0x08004617 Thumb Code 474 stm32f4xx_hal_i2c.o(i.HAL_I2C_EV_IRQHandler) + HAL_I2C_ErrorCallback 0x080047f1 Thumb Code 46 i2c_1.o(i.HAL_I2C_ErrorCallback) + HAL_I2C_Init 0x08004825 Thumb Code 446 stm32f4xx_hal_i2c.o(i.HAL_I2C_Init) + HAL_I2C_ListenCpltCallback 0x080049f5 Thumb Code 46 i2c_1.o(i.HAL_I2C_ListenCpltCallback) + HAL_I2C_MasterRxCpltCallback 0x08004a29 Thumb Code 46 i2c_1.o(i.HAL_I2C_MasterRxCpltCallback) + HAL_I2C_MasterTxCpltCallback 0x08004a5d Thumb Code 42 i2c_1.o(i.HAL_I2C_MasterTxCpltCallback) + HAL_I2C_MemRxCpltCallback 0x08004a8d Thumb Code 46 i2c_1.o(i.HAL_I2C_MemRxCpltCallback) + HAL_I2C_MemTxCpltCallback 0x08004ac1 Thumb Code 46 i2c_1.o(i.HAL_I2C_MemTxCpltCallback) + HAL_I2C_MspInit 0x08004af5 Thumb Code 262 i2c.o(i.HAL_I2C_MspInit) + HAL_I2C_SlaveRxCpltCallback 0x08004c11 Thumb Code 46 i2c_1.o(i.HAL_I2C_SlaveRxCpltCallback) + HAL_I2C_SlaveTxCpltCallback 0x08004c45 Thumb Code 46 i2c_1.o(i.HAL_I2C_SlaveTxCpltCallback) + HAL_IncTick 0x08004c79 Thumb Code 16 stm32f4xx_hal.o(i.HAL_IncTick) + HAL_Init 0x08004c91 Thumb Code 54 stm32f4xx_hal.o(i.HAL_Init) + HAL_InitTick 0x08004ccd Thumb Code 64 stm32f4xx_hal.o(i.HAL_InitTick) + HAL_MspInit 0x08004d19 Thumb Code 78 stm32f4xx_hal_msp.o(i.HAL_MspInit) + HAL_NVIC_DisableIRQ 0x08004d6d Thumb Code 38 stm32f4xx_hal_cortex.o(i.HAL_NVIC_DisableIRQ) + HAL_NVIC_EnableIRQ 0x08004d99 Thumb Code 40 stm32f4xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) + HAL_NVIC_SetPriority 0x08004dc1 Thumb Code 124 stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriority) + HAL_NVIC_SetPriorityGrouping 0x08004e3d Thumb Code 32 stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) + HAL_RCC_ClockConfig 0x08004e65 Thumb Code 368 stm32f4xx_hal_rcc.o(i.HAL_RCC_ClockConfig) + HAL_RCC_GetHCLKFreq 0x08004fe9 Thumb Code 6 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq) + HAL_RCC_GetPCLK1Freq 0x08004ff5 Thumb Code 22 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) + HAL_RCC_GetPCLK2Freq 0x08005015 Thumb Code 22 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) + HAL_RCC_GetSysClockFreq 0x08005035 Thumb Code 162 stm32f4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) + HAL_RCC_OscConfig 0x080050e5 Thumb Code 1172 stm32f4xx_hal_rcc.o(i.HAL_RCC_OscConfig) + HAL_SPI_ErrorCallback 0x08005581 Thumb Code 50 spi_1.o(i.HAL_SPI_ErrorCallback) + HAL_SPI_Init 0x080055b9 Thumb Code 200 stm32f4xx_hal_spi.o(i.HAL_SPI_Init) + HAL_SPI_MspInit 0x08005681 Thumb Code 424 spi.o(i.HAL_SPI_MspInit) + HAL_SPI_Receive 0x0800584d Thumb Code 386 stm32f4xx_hal_spi.o(i.HAL_SPI_Receive) + HAL_SPI_Receive_DMA 0x080059d1 Thumb Code 268 stm32f4xx_hal_spi.o(i.HAL_SPI_Receive_DMA) + HAL_SPI_RxCpltCallback 0x08005ae9 Thumb Code 50 spi_1.o(i.HAL_SPI_RxCpltCallback) + HAL_SPI_RxHalfCpltCallback 0x08005b21 Thumb Code 50 spi_1.o(i.HAL_SPI_RxHalfCpltCallback) + HAL_SPI_Transmit 0x08005b59 Thumb Code 446 stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit) + HAL_SPI_TransmitReceive 0x08005d17 Thumb Code 584 stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive) + HAL_SPI_TransmitReceive_DMA 0x08005f61 Thumb Code 336 stm32f4xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) + HAL_SPI_Transmit_DMA 0x080060c5 Thumb Code 238 stm32f4xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) + HAL_SPI_TxCpltCallback 0x080061c1 Thumb Code 38 spi_1.o(i.HAL_SPI_TxCpltCallback) + HAL_SPI_TxHalfCpltCallback 0x080061ed Thumb Code 50 spi_1.o(i.HAL_SPI_TxHalfCpltCallback) + HAL_SPI_TxRxCpltCallback 0x08006225 Thumb Code 50 spi_1.o(i.HAL_SPI_TxRxCpltCallback) + HAL_SPI_TxRxHalfCpltCallback 0x0800625d Thumb Code 50 spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback) + HAL_SYSTICK_Config 0x08006295 Thumb Code 52 stm32f4xx_hal_cortex.o(i.HAL_SYSTICK_Config) + HAL_TIMEx_BreakCallback 0x080062c9 Thumb Code 2 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_BreakCallback) + HAL_TIMEx_CommutCallback 0x080062cb Thumb Code 2 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_CommutCallback) + HAL_TIMEx_MasterConfigSynchronization 0x080062cd Thumb Code 150 stm32f4xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization) + HAL_TIM_Base_Init 0x08006381 Thumb Code 102 stm32f4xx_hal_tim.o(i.HAL_TIM_Base_Init) + HAL_TIM_Base_MspInit 0x080063e9 Thumb Code 108 tim.o(i.HAL_TIM_Base_MspInit) + HAL_TIM_IC_CaptureCallback 0x08006461 Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback) + HAL_TIM_IRQHandler 0x08006463 Thumb Code 364 stm32f4xx_hal_tim.o(i.HAL_TIM_IRQHandler) + HAL_TIM_MspPostInit 0x080065d1 Thumb Code 84 tim.o(i.HAL_TIM_MspPostInit) + HAL_TIM_OC_DelayElapsedCallback 0x08006631 Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback) + HAL_TIM_PWM_ConfigChannel 0x08006633 Thumb Code 260 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel) + HAL_TIM_PWM_Init 0x08006737 Thumb Code 102 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Init) + HAL_TIM_PWM_MspInit 0x0800679d Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_MspInit) + HAL_TIM_PWM_PulseFinishedCallback 0x0800679f Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback) + HAL_TIM_PWM_Start 0x080067a1 Thumb Code 238 stm32f4xx_hal_tim.o(i.HAL_TIM_PWM_Start) + HAL_TIM_PeriodElapsedCallback 0x080068ad Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_PeriodElapsedCallback) + HAL_TIM_TriggerCallback 0x080068af Thumb Code 2 stm32f4xx_hal_tim.o(i.HAL_TIM_TriggerCallback) + HAL_UARTEx_RxEventCallback 0x080068b1 Thumb Code 2 stm32f4xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback) + HAL_UART_ErrorCallback 0x080068b5 Thumb Code 46 uart.o(i.HAL_UART_ErrorCallback) + HAL_UART_IRQHandler 0x080068e9 Thumb Code 772 stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler) + HAL_UART_Init 0x08006bf1 Thumb Code 118 stm32f4xx_hal_uart.o(i.HAL_UART_Init) + HAL_UART_MspInit 0x08006c69 Thumb Code 374 usart.o(i.HAL_UART_MspInit) + HAL_UART_RxCpltCallback 0x08006e01 Thumb Code 46 uart.o(i.HAL_UART_RxCpltCallback) + HAL_UART_TxCpltCallback 0x08006e35 Thumb Code 46 uart.o(i.HAL_UART_TxCpltCallback) + HardFault_Handler 0x08006e69 Thumb Code 4 stm32f4xx_it.o(i.HardFault_Handler) + I2C1_ER_IRQHandler 0x08006e6d Thumb Code 10 stm32f4xx_it.o(i.I2C1_ER_IRQHandler) + I2C1_EV_IRQHandler 0x08006e7d Thumb Code 10 stm32f4xx_it.o(i.I2C1_EV_IRQHandler) + InvSqrt 0x08007ce1 Thumb Code 76 user_math.o(i.InvSqrt) + LowPassFilter2p_Apply 0x08007d31 Thumb Code 124 filter.o(i.LowPassFilter2p_Apply) + LowPassFilter2p_Init 0x08007db1 Thumb Code 264 filter.o(i.LowPassFilter2p_Init) + LowPassFilter2p_Reset 0x08007ec5 Thumb Code 90 filter.o(i.LowPassFilter2p_Reset) + MOTOR_RM_Ctrl 0x08007f75 Thumb Code 290 motor_rm.o(i.MOTOR_RM_Ctrl) + MOTOR_RM_GetMotor 0x0800811b Thumb Code 62 motor_rm.o(i.MOTOR_RM_GetMotor) + MOTOR_RM_Register 0x08008181 Thumb Code 192 motor_rm.o(i.MOTOR_RM_Register) + MOTOR_RM_SetOutput 0x08008241 Thumb Code 178 motor_rm.o(i.MOTOR_RM_SetOutput) + MOTOR_RM_Update 0x080082f3 Thumb Code 174 motor_rm.o(i.MOTOR_RM_Update) + MX_CAN1_Init 0x080083a1 Thumb Code 62 can.o(i.MX_CAN1_Init) + MX_CAN2_Init 0x080083e9 Thumb Code 62 can.o(i.MX_CAN2_Init) + MX_DMA_Init 0x08008431 Thumb Code 114 dma.o(i.MX_DMA_Init) + MX_FREERTOS_Init 0x080084a9 Thumb Code 28 freertos.o(i.MX_FREERTOS_Init) + MX_GPIO_Init 0x080084d9 Thumb Code 476 gpio.o(i.MX_GPIO_Init) + MX_I2C1_Init 0x080086c9 Thumb Code 48 i2c.o(i.MX_I2C1_Init) + MX_I2C2_Init 0x08008705 Thumb Code 48 i2c.o(i.MX_I2C2_Init) + MX_SPI1_Init 0x08008741 Thumb Code 62 spi.o(i.MX_SPI1_Init) + MX_SPI2_Init 0x08008789 Thumb Code 64 spi.o(i.MX_SPI2_Init) + MX_TIM10_Init 0x080087d1 Thumb Code 100 tim.o(i.MX_TIM10_Init) + MX_TIM7_Init 0x0800883d Thumb Code 66 tim.o(i.MX_TIM7_Init) + MX_USART1_UART_Init 0x08008889 Thumb Code 46 usart.o(i.MX_USART1_UART_Init) + MX_USART3_UART_Init 0x080088c1 Thumb Code 50 usart.o(i.MX_USART3_UART_Init) + MemManage_Handler 0x08008901 Thumb Code 4 stm32f4xx_it.o(i.MemManage_Handler) + NMI_Handler 0x08008a95 Thumb Code 4 stm32f4xx_it.o(i.NMI_Handler) + PID_Calc 0x08008a99 Thumb Code 412 pid.o(i.PID_Calc) + PID_Init 0x08008c3d Thumb Code 204 pid.o(i.PID_Init) + PID_Reset 0x08008d09 Thumb Code 60 pid.o(i.PID_Reset) + RC_Init 0x08008d49 Thumb Code 114 bsp_rc.o(i.RC_Init) + RC_restart 0x08008dcd Thumb Code 82 bsp_rc.o(i.RC_restart) + StartDefaultTask 0x080091ed Thumb Code 16 freertos.o(i.StartDefaultTask) + SysTick_Handler 0x080091fd Thumb Code 20 stm32f4xx_it.o(i.SysTick_Handler) + SystemClock_Config 0x08009211 Thumb Code 170 main.o(i.SystemClock_Config) + SystemInit 0x080092c5 Thumb Code 14 system_stm32f4xx.o(i.SystemInit) + TIM7_IRQHandler 0x080092d9 Thumb Code 10 stm32f4xx_it.o(i.TIM7_IRQHandler) + TIM_Base_SetConfig 0x080092e9 Thumb Code 178 stm32f4xx_hal_tim.o(i.TIM_Base_SetConfig) + TIM_CCxChannelCmd 0x080093c9 Thumb Code 34 stm32f4xx_hal_tim.o(i.TIM_CCxChannelCmd) + TIM_OC2_SetConfig 0x0800945d Thumb Code 114 stm32f4xx_hal_tim.o(i.TIM_OC2_SetConfig) + Task_Init 0x080095a5 Thumb Code 126 init.o(i.Task_Init) + Task_atti_esti 0x08009641 Thumb Code 272 atti_esti.o(i.Task_atti_esti) + Task_gimbal_ctrl 0x08009785 Thumb Code 140 gimbal_ctrl.o(i.Task_gimbal_ctrl) + Task_remote 0x0800982d Thumb Code 104 remote.o(i.Task_remote) + USART3_IRQHandler 0x08009ced Thumb Code 20 stm32f4xx_it.o(i.USART3_IRQHandler) + USART3_IRQHandler1 0x08009d05 Thumb Code 20 remote_control.o(i.USART3_IRQHandler1) + UsageFault_Handler 0x08009d1d Thumb Code 4 stm32f4xx_it.o(i.UsageFault_Handler) + __ARM_fpclassify 0x08009d21 Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) + __ARM_fpclassifyf 0x08009d51 Thumb Code 38 fpclassifyf.o(i.__ARM_fpclassifyf) + __hardfp_asinf 0x08009dc9 Thumb Code 258 asinf.o(i.__hardfp_asinf) + __hardfp_atan 0x08009ef9 Thumb Code 622 atan.o(i.__hardfp_atan) + __hardfp_atan2 0x0800a1d1 Thumb Code 448 atan2.o(i.__hardfp_atan2) + __hardfp_atan2f 0x0800a3d1 Thumb Code 594 atan2f.o(i.__hardfp_atan2f) + __hardfp_cosf 0x0800a67d Thumb Code 280 cosf.o(i.__hardfp_cosf) + __hardfp_fmaxf 0x0800a7cd Thumb Code 72 fmaxf.o(i.__hardfp_fmaxf) + __hardfp_tanf 0x0800a815 Thumb Code 322 tanf.o(i.__hardfp_tanf) + __kernel_poly 0x0800a991 Thumb Code 248 poly.o(i.__kernel_poly) + __mathlib_dbl_infnan 0x0800aa89 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan) + __mathlib_dbl_infnan2 0x0800aa9d Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan2) + __mathlib_dbl_underflow 0x0800aab1 Thumb Code 24 dunder.o(i.__mathlib_dbl_underflow) + __mathlib_flt_infnan 0x0800aad1 Thumb Code 6 funder.o(i.__mathlib_flt_infnan) + __mathlib_flt_infnan2 0x0800aad7 Thumb Code 6 funder.o(i.__mathlib_flt_infnan2) + __mathlib_flt_invalid 0x0800aadd Thumb Code 10 funder.o(i.__mathlib_flt_invalid) + __mathlib_flt_underflow 0x0800aaed Thumb Code 10 funder.o(i.__mathlib_flt_underflow) + __mathlib_rredf2 0x0800aafd Thumb Code 316 rredf.o(i.__mathlib_rredf2) + atan 0x0800ac51 Thumb Code 16 atan.o(i.atan) + configureTimerForRunTimeStats 0x0800ac61 Thumb Code 2 freertos.o(i.configureTimerForRunTimeStats) + delay_init 0x0800ac65 Thumb Code 32 bsp_delay.o(i.delay_init) + eTaskGetState 0x0800ac95 Thumb Code 128 tasks.o(i.eTaskGetState) + fabs 0x0800ad29 Thumb Code 24 fabs.o(i.fabs) + getRunTimeCounterValue 0x0800ad41 Thumb Code 4 freertos.o(i.getRunTimeCounterValue) + main 0x0800ad45 Thumb Code 72 main.o(i.main) + map 0x0800ad8d Thumb Code 22 calc_lib.o(i.map) + osDelay 0x0800ada3 Thumb Code 30 cmsis_os2.o(i.osDelay) + osDelayUntil 0x0800adc1 Thumb Code 52 cmsis_os2.o(i.osDelayUntil) + osKernelGetState 0x0800adf5 Thumb Code 48 cmsis_os2.o(i.osKernelGetState) + osKernelGetTickCount 0x0800ae29 Thumb Code 26 cmsis_os2.o(i.osKernelGetTickCount) + osKernelGetTickFreq 0x0800ae43 Thumb Code 6 cmsis_os2.o(i.osKernelGetTickFreq) + osKernelInitialize 0x0800ae49 Thumb Code 38 cmsis_os2.o(i.osKernelInitialize) + osKernelLock 0x0800ae75 Thumb Code 56 cmsis_os2.o(i.osKernelLock) + osKernelStart 0x0800aead Thumb Code 82 cmsis_os2.o(i.osKernelStart) + osKernelUnlock 0x0800af0d Thumb Code 68 cmsis_os2.o(i.osKernelUnlock) + osMessageQueueGet 0x0800af51 Thumb Code 124 cmsis_os2.o(i.osMessageQueueGet) + osMessageQueueNew 0x0800afd1 Thumb Code 154 cmsis_os2.o(i.osMessageQueueNew) + osMessageQueuePut 0x0800b06d Thumb Code 128 cmsis_os2.o(i.osMessageQueuePut) + osMessageQueueReset 0x0800b0f1 Thumb Code 40 cmsis_os2.o(i.osMessageQueueReset) + osMutexAcquire 0x0800b119 Thumb Code 98 cmsis_os2.o(i.osMutexAcquire) + osMutexNew 0x0800b17b Thumb Code 178 cmsis_os2.o(i.osMutexNew) + osMutexRelease 0x0800b22d Thumb Code 78 cmsis_os2.o(i.osMutexRelease) + osThreadFlagsSet 0x0800b27d Thumb Code 122 cmsis_os2.o(i.osThreadFlagsSet) + osThreadFlagsWait 0x0800b2fd Thumb Code 178 cmsis_os2.o(i.osThreadFlagsWait) + osThreadGetId 0x0800b3af Thumb Code 12 cmsis_os2.o(i.osThreadGetId) + osThreadNew 0x0800b3bb Thumb Code 184 cmsis_os2.o(i.osThreadNew) + osThreadTerminate 0x0800b473 Thumb Code 60 cmsis_os2.o(i.osThreadTerminate) + pvPortMalloc 0x0800bf0d Thumb Code 306 heap_4.o(i.pvPortMalloc) + pvTaskIncrementMutexHeldCount 0x0800c059 Thumb Code 26 tasks.o(i.pvTaskIncrementMutexHeldCount) + pxPortInitialiseStack 0x0800c079 Thumb Code 38 port.o(i.pxPortInitialiseStack) + remote_ParseHost 0x0800c0a5 Thumb Code 118 ai.o(i.remote_ParseHost) + remote_control_init 0x0800c12d Thumb Code 12 remote_control.o(i.remote_control_init) + sqrtf 0x0800c349 Thumb Code 62 sqrtf.o(i.sqrtf) + user_delay_ms 0x0800c387 Thumb Code 24 calc_lib.o(i.user_delay_ms) + user_delay_us 0x0800c39f Thumb Code 24 calc_lib.o(i.user_delay_us) + uxListRemove 0x0800c3b7 Thumb Code 40 list.o(i.uxListRemove) + vApplicationGetIdleTaskMemory 0x0800c3e1 Thumb Code 14 cmsis_os2.o(i.vApplicationGetIdleTaskMemory) + vApplicationGetTimerTaskMemory 0x0800c3f9 Thumb Code 16 cmsis_os2.o(i.vApplicationGetTimerTaskMemory) + vApplicationStackOverflowHook 0x0800c411 Thumb Code 2 freertos.o(i.vApplicationStackOverflowHook) + vListInitialise 0x0800c413 Thumb Code 26 list.o(i.vListInitialise) + vListInitialiseItem 0x0800c42d Thumb Code 6 list.o(i.vListInitialiseItem) + vListInsert 0x0800c433 Thumb Code 52 list.o(i.vListInsert) + vListInsertEnd 0x0800c467 Thumb Code 24 list.o(i.vListInsertEnd) + vPortEnterCritical 0x0800c481 Thumb Code 76 port.o(i.vPortEnterCritical) + vPortExitCritical 0x0800c4d5 Thumb Code 56 port.o(i.vPortExitCritical) + vPortFree 0x0800c511 Thumb Code 150 heap_4.o(i.vPortFree) + vPortSetupTimerInterrupt 0x0800c5b5 Thumb Code 36 port.o(i.vPortSetupTimerInterrupt) + vPortValidateInterruptPriority 0x0800c5dd Thumb Code 106 port.o(i.vPortValidateInterruptPriority) + vQueueAddToRegistry 0x0800c655 Thumb Code 38 queue.o(i.vQueueAddToRegistry) + vQueueWaitForMessageRestricted 0x0800c681 Thumb Code 74 queue.o(i.vQueueWaitForMessageRestricted) + vTaskDelay 0x0800c6cd Thumb Code 82 tasks.o(i.vTaskDelay) + vTaskDelayUntil 0x0800c729 Thumb Code 200 tasks.o(i.vTaskDelayUntil) + vTaskDelete 0x0800c7fd Thumb Code 168 tasks.o(i.vTaskDelete) + vTaskInternalSetTimeOutState 0x0800c8c5 Thumb Code 14 tasks.o(i.vTaskInternalSetTimeOutState) + vTaskMissedYield 0x0800c8dd Thumb Code 8 tasks.o(i.vTaskMissedYield) + vTaskPlaceOnEventList 0x0800c8e9 Thumb Code 52 tasks.o(i.vTaskPlaceOnEventList) + vTaskPlaceOnEventListRestricted 0x0800c921 Thumb Code 60 tasks.o(i.vTaskPlaceOnEventListRestricted) + vTaskPriorityDisinheritAfterTimeout 0x0800c961 Thumb Code 194 tasks.o(i.vTaskPriorityDisinheritAfterTimeout) + vTaskStartScheduler 0x0800ca31 Thumb Code 160 tasks.o(i.vTaskStartScheduler) + vTaskSuspendAll 0x0800caed Thumb Code 12 tasks.o(i.vTaskSuspendAll) + vTaskSwitchContext 0x0800cafd Thumb Code 230 tasks.o(i.vTaskSwitchContext) + xPortStartScheduler 0x0800cc01 Thumb Code 330 port.o(i.xPortStartScheduler) + xPortSysTickHandler 0x0800cd69 Thumb Code 46 port.o(i.xPortSysTickHandler) + xQueueCreateMutex 0x0800cd9d Thumb Code 34 queue.o(i.xQueueCreateMutex) + xQueueCreateMutexStatic 0x0800cdbf Thumb Code 42 queue.o(i.xQueueCreateMutexStatic) + xQueueGenericCreate 0x0800cde9 Thumb Code 90 queue.o(i.xQueueGenericCreate) + xQueueGenericCreateStatic 0x0800ce43 Thumb Code 224 queue.o(i.xQueueGenericCreateStatic) + xQueueGenericReset 0x0800cf25 Thumb Code 146 queue.o(i.xQueueGenericReset) + xQueueGenericSend 0x0800cfbd Thumb Code 420 queue.o(i.xQueueGenericSend) + xQueueGenericSendFromISR 0x0800d165 Thumb Code 252 queue.o(i.xQueueGenericSendFromISR) + xQueueGiveMutexRecursive 0x0800d261 Thumb Code 72 queue.o(i.xQueueGiveMutexRecursive) + xQueueReceive 0x0800d2a9 Thumb Code 356 queue.o(i.xQueueReceive) + xQueueReceiveFromISR 0x0800d411 Thumb Code 202 queue.o(i.xQueueReceiveFromISR) + xQueueSemaphoreTake 0x0800d4dd Thumb Code 434 queue.o(i.xQueueSemaphoreTake) + xQueueTakeMutexRecursive 0x0800d695 Thumb Code 78 queue.o(i.xQueueTakeMutexRecursive) + xTaskCheckForTimeOut 0x0800d6e5 Thumb Code 132 tasks.o(i.xTaskCheckForTimeOut) + xTaskCreate 0x0800d771 Thumb Code 100 tasks.o(i.xTaskCreate) + xTaskCreateStatic 0x0800d7d5 Thumb Code 186 tasks.o(i.xTaskCreateStatic) + xTaskGenericNotify 0x0800d891 Thumb Code 278 tasks.o(i.xTaskGenericNotify) + xTaskGenericNotifyFromISR 0x0800d9b9 Thumb Code 332 tasks.o(i.xTaskGenericNotifyFromISR) + xTaskGetCurrentTaskHandle 0x0800db1d Thumb Code 6 tasks.o(i.xTaskGetCurrentTaskHandle) + xTaskGetSchedulerState 0x0800db29 Thumb Code 24 tasks.o(i.xTaskGetSchedulerState) + xTaskGetTickCount 0x0800db49 Thumb Code 6 tasks.o(i.xTaskGetTickCount) + xTaskGetTickCountFromISR 0x0800db55 Thumb Code 16 tasks.o(i.xTaskGetTickCountFromISR) + xTaskIncrementTick 0x0800db69 Thumb Code 280 tasks.o(i.xTaskIncrementTick) + xTaskNotifyWait 0x0800dcad Thumb Code 150 tasks.o(i.xTaskNotifyWait) + xTaskPriorityDisinherit 0x0800dd4d Thumb Code 152 tasks.o(i.xTaskPriorityDisinherit) + xTaskPriorityInherit 0x0800ddf1 Thumb Code 150 tasks.o(i.xTaskPriorityInherit) + xTaskRemoveFromEventList 0x0800de95 Thumb Code 126 tasks.o(i.xTaskRemoveFromEventList) + xTaskResumeAll 0x0800df2d Thumb Code 222 tasks.o(i.xTaskResumeAll) + xTimerCreateTimerTask 0x0800e031 Thumb Code 100 timers.o(i.xTimerCreateTimerTask) + xTimerGenericCommand 0x0800e0a9 Thumb Code 128 timers.o(i.xTimerGenericCommand) + __aeabi_dneg 0x0800e12d Thumb Code 0 basic.o(x$fpl$basic) + _dneg 0x0800e12d Thumb Code 6 basic.o(x$fpl$basic) + __aeabi_fneg 0x0800e133 Thumb Code 0 basic.o(x$fpl$basic) + _fneg 0x0800e133 Thumb Code 6 basic.o(x$fpl$basic) + _dabs 0x0800e139 Thumb Code 6 basic.o(x$fpl$basic) + _fabs 0x0800e13f Thumb Code 6 basic.o(x$fpl$basic) + __aeabi_d2f 0x0800e145 Thumb Code 0 d2f.o(x$fpl$d2f) + _d2f 0x0800e145 Thumb Code 98 d2f.o(x$fpl$d2f) + __aeabi_dadd 0x0800e1a9 Thumb Code 0 daddsub_clz.o(x$fpl$dadd) + _dadd 0x0800e1a9 Thumb Code 332 daddsub_clz.o(x$fpl$dadd) + __fpl_dcmp_Inf 0x0800e2f9 Thumb Code 24 dcmpi.o(x$fpl$dcmpinf) + __aeabi_ddiv 0x0800e311 Thumb Code 0 ddiv.o(x$fpl$ddiv) + _ddiv 0x0800e311 Thumb Code 552 ddiv.o(x$fpl$ddiv) + __aeabi_cdcmpeq 0x0800e5c1 Thumb Code 0 deqf.o(x$fpl$deqf) + _dcmpeq 0x0800e5c1 Thumb Code 120 deqf.o(x$fpl$deqf) + __aeabi_d2iz 0x0800e639 Thumb Code 0 dfix.o(x$fpl$dfix) + _dfix 0x0800e639 Thumb Code 94 dfix.o(x$fpl$dfix) + __aeabi_d2uiz 0x0800e699 Thumb Code 0 dfixu.o(x$fpl$dfixu) + _dfixu 0x0800e699 Thumb Code 90 dfixu.o(x$fpl$dfixu) + __aeabi_i2d 0x0800e6f3 Thumb Code 0 dflt_clz.o(x$fpl$dflt) + _dflt 0x0800e6f3 Thumb Code 46 dflt_clz.o(x$fpl$dflt) + __aeabi_ui2d 0x0800e721 Thumb Code 0 dflt_clz.o(x$fpl$dfltu) + _dfltu 0x0800e721 Thumb Code 38 dflt_clz.o(x$fpl$dfltu) + __aeabi_dmul 0x0800e749 Thumb Code 0 dmul.o(x$fpl$dmul) + _dmul 0x0800e749 Thumb Code 332 dmul.o(x$fpl$dmul) + __fpl_dnaninf 0x0800e89d Thumb Code 156 dnaninf.o(x$fpl$dnaninf) + __fpl_dretinf 0x0800e939 Thumb Code 12 dretinf.o(x$fpl$dretinf) + __aeabi_drsub 0x0800e945 Thumb Code 0 daddsub_clz.o(x$fpl$drsb) + _drsb 0x0800e945 Thumb Code 22 daddsub_clz.o(x$fpl$drsb) + __aeabi_dsub 0x0800e95d Thumb Code 0 daddsub_clz.o(x$fpl$dsub) + _dsub 0x0800e95d Thumb Code 464 daddsub_clz.o(x$fpl$dsub) + __aeabi_f2d 0x0800eb31 Thumb Code 0 f2d.o(x$fpl$f2d) + _f2d 0x0800eb31 Thumb Code 86 f2d.o(x$fpl$f2d) + __fcmp4 0x0800eb89 Thumb Code 24 fcmp4.o(x$fpl$fcmp4) + __ARM_fcmp4 0x0800eba1 Thumb Code 0 fcmp4.o(x$fpl$fcmp4) + _fcmp4 0x0800eba1 Thumb Code 58 fcmp4.o(x$fpl$fcmp4) + __fpl_fcmp_Inf 0x0800ebdb Thumb Code 24 fcmpi.o(x$fpl$fcmpinf) + __aeabi_ul2f 0x0800ebf3 Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) + _ll_uto_f 0x0800ebf3 Thumb Code 6 ffltll_clz.o(x$fpl$ffltll) + __aeabi_l2f 0x0800ebf9 Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) + _ll_sto_f 0x0800ebf9 Thumb Code 90 ffltll_clz.o(x$fpl$ffltll) + __fpl_fnaninf 0x0800ec53 Thumb Code 140 fnaninf.o(x$fpl$fnaninf) + _fp_init 0x0800ecdf Thumb Code 10 fpinit.o(x$fpl$fpinit) + __fplib_config_fpu_vfp 0x0800ece7 Thumb Code 0 fpinit.o(x$fpl$fpinit) + __fplib_config_pureend_doubles 0x0800ece7 Thumb Code 0 fpinit.o(x$fpl$fpinit) + __fpl_fretinf 0x0800ece9 Thumb Code 10 fretinf.o(x$fpl$fretinf) + __I$use$fp 0x0800ecf2 Number 0 usenofp.o(x$fpl$usenofp) + defaultTask_attributes 0x0800ecf4 Data 36 freertos.o(.constdata) + AHBPrescTable 0x0800ed20 Data 16 system_stm32f4xx.o(.constdata) + APBPrescTable 0x0800ed30 Data 8 system_stm32f4xx.o(.constdata) + attr_init 0x0800ed98 Data 36 user_task.o(.constdata) + attr_atti_esti 0x0800edbc Data 36 user_task.o(.constdata) + attr_gimbal_ctrl 0x0800ede0 Data 36 user_task.o(.constdata) + attr_remote 0x0800ee04 Data 36 user_task.o(.constdata) + __mathlib_zero 0x0800eec0 Data 8 qnan.o(.constdata) + Region$$Table$$Base 0x0800ef20 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x0800ef40 Number 0 anon$$obj.o(Region$$Table) defaultTaskHandle 0x20000000 Data 4 freertos.o(.data) uwTick 0x20000008 Data 4 stm32f4xx_hal.o(.data) uwTickPrio 0x2000000c Data 4 stm32f4xx_hal.o(.data) @@ -5103,9 +5103,9 @@ Memory Map of the image Image Entry point : 0x08000189 - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000f230, Max: 0x00100000, ABSOLUTE, COMPRESSED[0x0000f080]) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000f160, Max: 0x00100000, ABSOLUTE, COMPRESSED[0x0000efb0]) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000f010, Max: 0x00100000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000ef40, Max: 0x00100000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object @@ -5265,428 +5265,429 @@ Memory Map of the image 0x08002a72 0x08002a72 0x0000000a Code RO 591 i.EXTI9_5_IRQHandler stm32f4xx_it.o 0x08002a7c 0x08002a7c 0x00000006 Code RO 13 i.Error_Handler main.o 0x08002a82 0x08002a82 0x00000002 PAD - 0x08002a84 0x08002a84 0x00000450 Code RO 8548 i.Gimbal_Control gimbal.o - 0x08002ed4 0x08002ed4 0x00000154 Code RO 8549 i.Gimbal_Init gimbal.o - 0x08003028 0x08003028 0x00000036 Code RO 8550 i.Gimbal_Output gimbal.o - 0x0800305e 0x0800305e 0x00000002 PAD - 0x08003060 0x08003060 0x00000084 Code RO 8551 i.Gimbal_SetMode gimbal.o - 0x080030e4 0x080030e4 0x00000056 Code RO 8552 i.Gimbal_UpdateFeedback gimbal.o - 0x0800313a 0x0800313a 0x0000002a Code RO 8553 i.Gimbal_UpdateIMU gimbal.o - 0x08003164 0x08003164 0x0000002a Code RO 786 i.HAL_CAN_ActivateNotification stm32f4xx_hal_can.o - 0x0800318e 0x0800318e 0x0000014a Code RO 787 i.HAL_CAN_AddTxMessage stm32f4xx_hal_can.o - 0x080032d8 0x080032d8 0x00000120 Code RO 788 i.HAL_CAN_ConfigFilter stm32f4xx_hal_can.o - 0x080033f8 0x080033f8 0x0000003c Code RO 6290 i.HAL_CAN_ErrorCallback can_1.o - 0x08003434 0x08003434 0x00000028 Code RO 793 i.HAL_CAN_GetRxFifoFillLevel stm32f4xx_hal_can.o - 0x0800345c 0x0800345c 0x00000194 Code RO 794 i.HAL_CAN_GetRxMessage stm32f4xx_hal_can.o - 0x080035f0 0x080035f0 0x00000036 Code RO 796 i.HAL_CAN_GetTxMailboxesFreeLevel stm32f4xx_hal_can.o - 0x08003626 0x08003626 0x0000024e Code RO 798 i.HAL_CAN_IRQHandler stm32f4xx_hal_can.o - 0x08003874 0x08003874 0x00000174 Code RO 799 i.HAL_CAN_Init stm32f4xx_hal_can.o - 0x080039e8 0x080039e8 0x000001a0 Code RO 307 i.HAL_CAN_MspInit can.o - 0x08003b88 0x08003b88 0x0000003c Code RO 6291 i.HAL_CAN_RxFifo0FullCallback can_1.o - 0x08003bc4 0x08003bc4 0x0000003c Code RO 6292 i.HAL_CAN_RxFifo0MsgPendingCallback can_1.o - 0x08003c00 0x08003c00 0x0000003c Code RO 6293 i.HAL_CAN_RxFifo1FullCallback can_1.o - 0x08003c3c 0x08003c3c 0x0000003c Code RO 6294 i.HAL_CAN_RxFifo1MsgPendingCallback can_1.o - 0x08003c78 0x08003c78 0x0000003c Code RO 6295 i.HAL_CAN_SleepCallback can_1.o - 0x08003cb4 0x08003cb4 0x0000005e Code RO 811 i.HAL_CAN_Start stm32f4xx_hal_can.o - 0x08003d12 0x08003d12 0x00000002 PAD - 0x08003d14 0x08003d14 0x0000003c Code RO 6296 i.HAL_CAN_TxMailbox0AbortCallback can_1.o - 0x08003d50 0x08003d50 0x00000038 Code RO 6297 i.HAL_CAN_TxMailbox0CompleteCallback can_1.o - 0x08003d88 0x08003d88 0x0000003c Code RO 6298 i.HAL_CAN_TxMailbox1AbortCallback can_1.o - 0x08003dc4 0x08003dc4 0x0000003c Code RO 6299 i.HAL_CAN_TxMailbox1CompleteCallback can_1.o - 0x08003e00 0x08003e00 0x0000003c Code RO 6300 i.HAL_CAN_TxMailbox2AbortCallback can_1.o - 0x08003e3c 0x08003e3c 0x0000003c Code RO 6301 i.HAL_CAN_TxMailbox2CompleteCallback can_1.o - 0x08003e78 0x08003e78 0x0000003c Code RO 6302 i.HAL_CAN_WakeUpFromRxMsgCallback can_1.o - 0x08003eb4 0x08003eb4 0x000000ac Code RO 1526 i.HAL_DMA_Abort stm32f4xx_hal_dma.o - 0x08003f60 0x08003f60 0x00000028 Code RO 1527 i.HAL_DMA_Abort_IT stm32f4xx_hal_dma.o - 0x08003f88 0x08003f88 0x00000008 Code RO 1530 i.HAL_DMA_GetState stm32f4xx_hal_dma.o - 0x08003f90 0x08003f90 0x00000240 Code RO 1531 i.HAL_DMA_IRQHandler stm32f4xx_hal_dma.o - 0x080041d0 0x080041d0 0x000000ec Code RO 1532 i.HAL_DMA_Init stm32f4xx_hal_dma.o - 0x080042bc 0x080042bc 0x00000092 Code RO 1536 i.HAL_DMA_Start_IT stm32f4xx_hal_dma.o - 0x0800434e 0x0800434e 0x00000002 PAD - 0x08004350 0x08004350 0x00000028 Code RO 1968 i.HAL_Delay stm32f4xx_hal.o - 0x08004378 0x08004378 0x00000030 Code RO 6517 i.HAL_GPIO_EXTI_Callback gpio_1.o - 0x080043a8 0x080043a8 0x0000001c Code RO 1418 i.HAL_GPIO_EXTI_IRQHandler stm32f4xx_hal_gpio.o - 0x080043c4 0x080043c4 0x000001f4 Code RO 1419 i.HAL_GPIO_Init stm32f4xx_hal_gpio.o - 0x080045b8 0x080045b8 0x00000010 Code RO 1421 i.HAL_GPIO_ReadPin stm32f4xx_hal_gpio.o - 0x080045c8 0x080045c8 0x0000000c Code RO 1423 i.HAL_GPIO_WritePin stm32f4xx_hal_gpio.o - 0x080045d4 0x080045d4 0x0000000c Code RO 1974 i.HAL_GetTick stm32f4xx_hal.o - 0x080045e0 0x080045e0 0x00000034 Code RO 6585 i.HAL_I2C_AbortCpltCallback i2c_1.o - 0x08004614 0x08004614 0x00000002 Code RO 2220 i.HAL_I2C_AddrCallback stm32f4xx_hal_i2c.o - 0x08004616 0x08004616 0x000000d4 Code RO 2223 i.HAL_I2C_ER_IRQHandler stm32f4xx_hal_i2c.o - 0x080046ea 0x080046ea 0x000001da Code RO 2224 i.HAL_I2C_EV_IRQHandler stm32f4xx_hal_i2c.o - 0x080048c4 0x080048c4 0x00000034 Code RO 6586 i.HAL_I2C_ErrorCallback i2c_1.o - 0x080048f8 0x080048f8 0x000001d0 Code RO 2230 i.HAL_I2C_Init stm32f4xx_hal_i2c.o - 0x08004ac8 0x08004ac8 0x00000034 Code RO 6587 i.HAL_I2C_ListenCpltCallback i2c_1.o - 0x08004afc 0x08004afc 0x00000034 Code RO 6588 i.HAL_I2C_MasterRxCpltCallback i2c_1.o - 0x08004b30 0x08004b30 0x00000030 Code RO 6589 i.HAL_I2C_MasterTxCpltCallback i2c_1.o - 0x08004b60 0x08004b60 0x00000034 Code RO 6590 i.HAL_I2C_MemRxCpltCallback i2c_1.o - 0x08004b94 0x08004b94 0x00000034 Code RO 6591 i.HAL_I2C_MemTxCpltCallback i2c_1.o - 0x08004bc8 0x08004bc8 0x0000011c Code RO 380 i.HAL_I2C_MspInit i2c.o - 0x08004ce4 0x08004ce4 0x00000034 Code RO 6592 i.HAL_I2C_SlaveRxCpltCallback i2c_1.o - 0x08004d18 0x08004d18 0x00000034 Code RO 6593 i.HAL_I2C_SlaveTxCpltCallback i2c_1.o - 0x08004d4c 0x08004d4c 0x00000018 Code RO 1980 i.HAL_IncTick stm32f4xx_hal.o - 0x08004d64 0x08004d64 0x0000003c Code RO 1981 i.HAL_Init stm32f4xx_hal.o - 0x08004da0 0x08004da0 0x0000004c Code RO 1982 i.HAL_InitTick stm32f4xx_hal.o - 0x08004dec 0x08004dec 0x00000054 Code RO 761 i.HAL_MspInit stm32f4xx_hal_msp.o - 0x08004e40 0x08004e40 0x0000002c Code RO 1810 i.HAL_NVIC_DisableIRQ stm32f4xx_hal_cortex.o - 0x08004e6c 0x08004e6c 0x00000028 Code RO 1811 i.HAL_NVIC_EnableIRQ stm32f4xx_hal_cortex.o - 0x08004e94 0x08004e94 0x0000007c Code RO 1817 i.HAL_NVIC_SetPriority stm32f4xx_hal_cortex.o - 0x08004f10 0x08004f10 0x00000028 Code RO 1818 i.HAL_NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o - 0x08004f38 0x08004f38 0x00000184 Code RO 1020 i.HAL_RCC_ClockConfig stm32f4xx_hal_rcc.o - 0x080050bc 0x080050bc 0x0000000c Code RO 1025 i.HAL_RCC_GetHCLKFreq stm32f4xx_hal_rcc.o - 0x080050c8 0x080050c8 0x00000020 Code RO 1027 i.HAL_RCC_GetPCLK1Freq stm32f4xx_hal_rcc.o - 0x080050e8 0x080050e8 0x00000020 Code RO 1028 i.HAL_RCC_GetPCLK2Freq stm32f4xx_hal_rcc.o - 0x08005108 0x08005108 0x000000b0 Code RO 1029 i.HAL_RCC_GetSysClockFreq stm32f4xx_hal_rcc.o - 0x080051b8 0x080051b8 0x0000049c Code RO 1032 i.HAL_RCC_OscConfig stm32f4xx_hal_rcc.o - 0x08005654 0x08005654 0x00000038 Code RO 6815 i.HAL_SPI_ErrorCallback spi_1.o - 0x0800568c 0x0800568c 0x000000c8 Code RO 2725 i.HAL_SPI_Init stm32f4xx_hal_spi.o - 0x08005754 0x08005754 0x000001cc Code RO 428 i.HAL_SPI_MspInit spi.o - 0x08005920 0x08005920 0x00000182 Code RO 2728 i.HAL_SPI_Receive stm32f4xx_hal_spi.o - 0x08005aa2 0x08005aa2 0x00000002 PAD - 0x08005aa4 0x08005aa4 0x00000118 Code RO 2729 i.HAL_SPI_Receive_DMA stm32f4xx_hal_spi.o - 0x08005bbc 0x08005bbc 0x00000038 Code RO 6816 i.HAL_SPI_RxCpltCallback spi_1.o - 0x08005bf4 0x08005bf4 0x00000038 Code RO 6817 i.HAL_SPI_RxHalfCpltCallback spi_1.o - 0x08005c2c 0x08005c2c 0x000001be Code RO 2733 i.HAL_SPI_Transmit stm32f4xx_hal_spi.o - 0x08005dea 0x08005dea 0x00000248 Code RO 2734 i.HAL_SPI_TransmitReceive stm32f4xx_hal_spi.o - 0x08006032 0x08006032 0x00000002 PAD - 0x08006034 0x08006034 0x00000164 Code RO 2735 i.HAL_SPI_TransmitReceive_DMA stm32f4xx_hal_spi.o - 0x08006198 0x08006198 0x000000fc Code RO 2737 i.HAL_SPI_Transmit_DMA stm32f4xx_hal_spi.o - 0x08006294 0x08006294 0x0000002c Code RO 6818 i.HAL_SPI_TxCpltCallback spi_1.o - 0x080062c0 0x080062c0 0x00000038 Code RO 6819 i.HAL_SPI_TxHalfCpltCallback spi_1.o - 0x080062f8 0x080062f8 0x00000038 Code RO 6820 i.HAL_SPI_TxRxCpltCallback spi_1.o - 0x08006330 0x08006330 0x00000038 Code RO 6821 i.HAL_SPI_TxRxHalfCpltCallback spi_1.o - 0x08006368 0x08006368 0x00000034 Code RO 1822 i.HAL_SYSTICK_Config stm32f4xx_hal_cortex.o - 0x0800639c 0x0800639c 0x00000002 Code RO 3753 i.HAL_TIMEx_BreakCallback stm32f4xx_hal_tim_ex.o - 0x0800639e 0x0800639e 0x00000002 Code RO 3754 i.HAL_TIMEx_CommutCallback stm32f4xx_hal_tim_ex.o - 0x080063a0 0x080063a0 0x000000b4 Code RO 3772 i.HAL_TIMEx_MasterConfigSynchronization stm32f4xx_hal_tim_ex.o - 0x08006454 0x08006454 0x00000066 Code RO 3038 i.HAL_TIM_Base_Init stm32f4xx_hal_tim.o - 0x080064ba 0x080064ba 0x00000002 PAD - 0x080064bc 0x080064bc 0x00000078 Code RO 476 i.HAL_TIM_Base_MspInit tim.o - 0x08006534 0x08006534 0x00000002 Code RO 3072 i.HAL_TIM_IC_CaptureCallback stm32f4xx_hal_tim.o - 0x08006536 0x08006536 0x0000016c Code RO 3086 i.HAL_TIM_IRQHandler stm32f4xx_hal_tim.o - 0x080066a2 0x080066a2 0x00000002 PAD - 0x080066a4 0x080066a4 0x00000060 Code RO 477 i.HAL_TIM_MspPostInit tim.o - 0x08006704 0x08006704 0x00000002 Code RO 3089 i.HAL_TIM_OC_DelayElapsedCallback stm32f4xx_hal_tim.o - 0x08006706 0x08006706 0x00000104 Code RO 3110 i.HAL_TIM_PWM_ConfigChannel stm32f4xx_hal_tim.o - 0x0800680a 0x0800680a 0x00000066 Code RO 3113 i.HAL_TIM_PWM_Init stm32f4xx_hal_tim.o - 0x08006870 0x08006870 0x00000002 Code RO 3115 i.HAL_TIM_PWM_MspInit stm32f4xx_hal_tim.o - 0x08006872 0x08006872 0x00000002 Code RO 3116 i.HAL_TIM_PWM_PulseFinishedCallback stm32f4xx_hal_tim.o - 0x08006874 0x08006874 0x0000010c Code RO 3118 i.HAL_TIM_PWM_Start stm32f4xx_hal_tim.o - 0x08006980 0x08006980 0x00000002 Code RO 3124 i.HAL_TIM_PeriodElapsedCallback stm32f4xx_hal_tim.o - 0x08006982 0x08006982 0x00000002 Code RO 3129 i.HAL_TIM_TriggerCallback stm32f4xx_hal_tim.o - 0x08006984 0x08006984 0x00000002 Code RO 4032 i.HAL_UARTEx_RxEventCallback stm32f4xx_hal_uart.o - 0x08006986 0x08006986 0x00000002 PAD - 0x08006988 0x08006988 0x00000034 Code RO 6991 i.HAL_UART_ErrorCallback uart.o - 0x080069bc 0x080069bc 0x00000308 Code RO 4049 i.HAL_UART_IRQHandler stm32f4xx_hal_uart.o - 0x08006cc4 0x08006cc4 0x00000076 Code RO 4050 i.HAL_UART_Init stm32f4xx_hal_uart.o - 0x08006d3a 0x08006d3a 0x00000002 PAD - 0x08006d3c 0x08006d3c 0x00000198 Code RO 530 i.HAL_UART_MspInit usart.o - 0x08006ed4 0x08006ed4 0x00000034 Code RO 6992 i.HAL_UART_RxCpltCallback uart.o - 0x08006f08 0x08006f08 0x00000034 Code RO 6994 i.HAL_UART_TxCpltCallback uart.o - 0x08006f3c 0x08006f3c 0x00000004 Code RO 592 i.HardFault_Handler stm32f4xx_it.o - 0x08006f40 0x08006f40 0x00000010 Code RO 593 i.I2C1_ER_IRQHandler stm32f4xx_it.o - 0x08006f50 0x08006f50 0x00000010 Code RO 594 i.I2C1_EV_IRQHandler stm32f4xx_it.o - 0x08006f60 0x08006f60 0x0000001c Code RO 2268 i.I2C_ConvertOtherXferOptions stm32f4xx_hal_i2c.o - 0x08006f7c 0x08006f7c 0x000000f8 Code RO 2269 i.I2C_DMAAbort stm32f4xx_hal_i2c.o - 0x08007074 0x08007074 0x00000012 Code RO 2272 i.I2C_Flush_DR stm32f4xx_hal_i2c.o - 0x08007086 0x08007086 0x00000002 PAD - 0x08007088 0x08007088 0x00000028 Code RO 6594 i.I2C_Get i2c_1.o - 0x080070b0 0x080070b0 0x000001ac Code RO 2273 i.I2C_ITError stm32f4xx_hal_i2c.o - 0x0800725c 0x0800725c 0x00000130 Code RO 2275 i.I2C_MasterReceive_BTF stm32f4xx_hal_i2c.o - 0x0800738c 0x0800738c 0x00000104 Code RO 2276 i.I2C_MasterReceive_RXNE stm32f4xx_hal_i2c.o - 0x08007490 0x08007490 0x000000a0 Code RO 2279 i.I2C_MasterTransmit_BTF stm32f4xx_hal_i2c.o - 0x08007530 0x08007530 0x000000d8 Code RO 2280 i.I2C_MasterTransmit_TXE stm32f4xx_hal_i2c.o - 0x08007608 0x08007608 0x0000002a Code RO 2281 i.I2C_Master_ADD10 stm32f4xx_hal_i2c.o - 0x08007632 0x08007632 0x00000268 Code RO 2282 i.I2C_Master_ADDR stm32f4xx_hal_i2c.o - 0x0800789a 0x0800789a 0x0000009e Code RO 2283 i.I2C_Master_SB stm32f4xx_hal_i2c.o - 0x08007938 0x08007938 0x000000c6 Code RO 2284 i.I2C_MemoryTransmit_TXE_BTF stm32f4xx_hal_i2c.o - 0x080079fe 0x080079fe 0x0000001a Code RO 2287 i.I2C_SlaveReceive_BTF stm32f4xx_hal_i2c.o - 0x08007a18 0x08007a18 0x00000046 Code RO 2288 i.I2C_SlaveReceive_RXNE stm32f4xx_hal_i2c.o - 0x08007a5e 0x08007a5e 0x0000001a Code RO 2289 i.I2C_SlaveTransmit_BTF stm32f4xx_hal_i2c.o - 0x08007a78 0x08007a78 0x00000046 Code RO 2290 i.I2C_SlaveTransmit_TXE stm32f4xx_hal_i2c.o - 0x08007abe 0x08007abe 0x00000070 Code RO 2291 i.I2C_Slave_ADDR stm32f4xx_hal_i2c.o - 0x08007b2e 0x08007b2e 0x00000002 PAD - 0x08007b30 0x08007b30 0x000000a8 Code RO 2292 i.I2C_Slave_AF stm32f4xx_hal_i2c.o - 0x08007bd8 0x08007bd8 0x0000018c Code RO 2293 i.I2C_Slave_STOPF stm32f4xx_hal_i2c.o - 0x08007d64 0x08007d64 0x00000050 Code RO 2299 i.I2C_WaitOnSTOPRequestThroughIT stm32f4xx_hal_i2c.o - 0x08007db4 0x08007db4 0x00000050 Code RO 7538 i.InvSqrt user_math.o - 0x08007e04 0x08007e04 0x00000080 Code RO 7259 i.LowPassFilter2p_Apply filter.o - 0x08007e84 0x08007e84 0x00000114 Code RO 7260 i.LowPassFilter2p_Init filter.o - 0x08007f98 0x08007f98 0x00000060 Code RO 7261 i.LowPassFilter2p_Reset filter.o - 0x08007ff8 0x08007ff8 0x00000050 Code RO 8040 i.MOTOR_RM_CreateCANManager motor_rm.o - 0x08008048 0x08008048 0x00000122 Code RO 8041 i.MOTOR_RM_Ctrl motor_rm.o - 0x0800816a 0x0800816a 0x00000002 PAD - 0x0800816c 0x0800816c 0x00000018 Code RO 8042 i.MOTOR_RM_GetCANManager motor_rm.o - 0x08008184 0x08008184 0x00000026 Code RO 8043 i.MOTOR_RM_GetLSB motor_rm.o - 0x080081aa 0x080081aa 0x00000044 Code RO 8044 i.MOTOR_RM_GetLogicalIndex motor_rm.o - 0x080081ee 0x080081ee 0x0000003e Code RO 8045 i.MOTOR_RM_GetMotor motor_rm.o - 0x0800822c 0x0800822c 0x00000028 Code RO 8046 i.MOTOR_RM_GetRatio motor_rm.o - 0x08008254 0x08008254 0x000000c0 Code RO 8048 i.MOTOR_RM_Register motor_rm.o - 0x08008314 0x08008314 0x000000b2 Code RO 8050 i.MOTOR_RM_SetOutput motor_rm.o - 0x080083c6 0x080083c6 0x000000ae Code RO 8051 i.MOTOR_RM_Update motor_rm.o - 0x08008474 0x08008474 0x00000048 Code RO 308 i.MX_CAN1_Init can.o - 0x080084bc 0x080084bc 0x00000048 Code RO 309 i.MX_CAN2_Init can.o - 0x08008504 0x08008504 0x00000078 Code RO 355 i.MX_DMA_Init dma.o - 0x0800857c 0x0800857c 0x00000030 Code RO 241 i.MX_FREERTOS_Init freertos.o - 0x080085ac 0x080085ac 0x000001f0 Code RO 217 i.MX_GPIO_Init gpio.o - 0x0800879c 0x0800879c 0x0000003c Code RO 381 i.MX_I2C1_Init i2c.o - 0x080087d8 0x080087d8 0x0000003c Code RO 382 i.MX_I2C2_Init i2c.o - 0x08008814 0x08008814 0x00000048 Code RO 429 i.MX_SPI1_Init spi.o - 0x0800885c 0x0800885c 0x00000048 Code RO 430 i.MX_SPI2_Init spi.o - 0x080088a4 0x080088a4 0x0000006c Code RO 478 i.MX_TIM10_Init tim.o - 0x08008910 0x08008910 0x0000004c Code RO 479 i.MX_TIM7_Init tim.o - 0x0800895c 0x0800895c 0x00000038 Code RO 531 i.MX_USART1_UART_Init usart.o - 0x08008994 0x08008994 0x00000040 Code RO 532 i.MX_USART3_UART_Init usart.o - 0x080089d4 0x080089d4 0x00000004 Code RO 595 i.MemManage_Handler stm32f4xx_it.o - 0x080089d8 0x080089d8 0x00000190 Code RO 8053 i.Motor_RM_Decode motor_rm.o - 0x08008b68 0x08008b68 0x00000004 Code RO 596 i.NMI_Handler stm32f4xx_it.o - 0x08008b6c 0x08008b6c 0x000001a4 Code RO 7417 i.PID_Calc pid.o - 0x08008d10 0x08008d10 0x000000cc Code RO 7418 i.PID_Init pid.o - 0x08008ddc 0x08008ddc 0x00000040 Code RO 7419 i.PID_Reset pid.o - 0x08008e1c 0x08008e1c 0x00000084 Code RO 7711 i.RC_Init bsp_rc.o - 0x08008ea0 0x08008ea0 0x0000005c Code RO 7712 i.RC_restart bsp_rc.o - 0x08008efc 0x08008efc 0x00000028 Code RO 2753 i.SPI_DMAError stm32f4xx_hal_spi.o - 0x08008f24 0x08008f24 0x0000000e Code RO 2754 i.SPI_DMAHalfReceiveCplt stm32f4xx_hal_spi.o - 0x08008f32 0x08008f32 0x0000000e Code RO 2755 i.SPI_DMAHalfTransmitCplt stm32f4xx_hal_spi.o - 0x08008f40 0x08008f40 0x0000000e Code RO 2756 i.SPI_DMAHalfTransmitReceiveCplt stm32f4xx_hal_spi.o - 0x08008f4e 0x08008f4e 0x0000007c Code RO 2757 i.SPI_DMAReceiveCplt stm32f4xx_hal_spi.o - 0x08008fca 0x08008fca 0x00000080 Code RO 2759 i.SPI_DMATransmitCplt stm32f4xx_hal_spi.o - 0x0800904a 0x0800904a 0x00000068 Code RO 2760 i.SPI_DMATransmitReceiveCplt stm32f4xx_hal_spi.o - 0x080090b2 0x080090b2 0x00000094 Code RO 2762 i.SPI_EndRxTransaction stm32f4xx_hal_spi.o - 0x08009146 0x08009146 0x00000002 PAD - 0x08009148 0x08009148 0x00000088 Code RO 2763 i.SPI_EndRxTxTransaction stm32f4xx_hal_spi.o - 0x080091d0 0x080091d0 0x00000018 Code RO 6822 i.SPI_Get spi_1.o - 0x080091e8 0x080091e8 0x000000d8 Code RO 2768 i.SPI_WaitFlagStateUntilTimeout stm32f4xx_hal_spi.o - 0x080092c0 0x080092c0 0x00000010 Code RO 242 i.StartDefaultTask freertos.o - 0x080092d0 0x080092d0 0x00000014 Code RO 597 i.SysTick_Handler stm32f4xx_it.o - 0x080092e4 0x080092e4 0x000000b4 Code RO 14 i.SystemClock_Config main.o - 0x08009398 0x08009398 0x00000014 Code RO 4394 i.SystemInit system_stm32f4xx.o - 0x080093ac 0x080093ac 0x00000010 Code RO 598 i.TIM7_IRQHandler stm32f4xx_it.o - 0x080093bc 0x080093bc 0x000000e0 Code RO 3131 i.TIM_Base_SetConfig stm32f4xx_hal_tim.o - 0x0800949c 0x0800949c 0x00000022 Code RO 3132 i.TIM_CCxChannelCmd stm32f4xx_hal_tim.o - 0x080094be 0x080094be 0x00000002 PAD - 0x080094c0 0x080094c0 0x00000070 Code RO 3144 i.TIM_OC1_SetConfig stm32f4xx_hal_tim.o - 0x08009530 0x08009530 0x0000007c Code RO 3145 i.TIM_OC2_SetConfig stm32f4xx_hal_tim.o - 0x080095ac 0x080095ac 0x00000078 Code RO 3146 i.TIM_OC3_SetConfig stm32f4xx_hal_tim.o - 0x08009624 0x08009624 0x00000054 Code RO 3147 i.TIM_OC4_SetConfig stm32f4xx_hal_tim.o - 0x08009678 0x08009678 0x0000009c Code RO 8369 i.Task_Init init.o - 0x08009714 0x08009714 0x00000144 Code RO 8403 i.Task_atti_esti atti_esti.o - 0x08009858 0x08009858 0x000000a8 Code RO 8498 i.Task_gimbal_ctrl gimbal_ctrl.o - 0x08009900 0x08009900 0x00000080 Code RO 8449 i.Task_remote remote.o - 0x08009980 0x08009980 0x00000012 Code RO 4063 i.UART_DMAAbortOnError stm32f4xx_hal_uart.o - 0x08009992 0x08009992 0x0000006c Code RO 4073 i.UART_EndRxTransfer stm32f4xx_hal_uart.o - 0x080099fe 0x080099fe 0x00000020 Code RO 4074 i.UART_EndTransmit_IT stm32f4xx_hal_uart.o - 0x08009a1e 0x08009a1e 0x00000002 PAD - 0x08009a20 0x08009a20 0x00000018 Code RO 6996 i.UART_Get uart.o - 0x08009a38 0x08009a38 0x000000fc Code RO 4076 i.UART_Receive_IT stm32f4xx_hal_uart.o - 0x08009b34 0x08009b34 0x0000022c Code RO 4077 i.UART_SetConfig stm32f4xx_hal_uart.o - 0x08009d60 0x08009d60 0x00000060 Code RO 4080 i.UART_Transmit_IT stm32f4xx_hal_uart.o - 0x08009dc0 0x08009dc0 0x00000018 Code RO 599 i.USART3_IRQHandler stm32f4xx_it.o - 0x08009dd8 0x08009dd8 0x00000018 Code RO 8253 i.USART3_IRQHandler1 remote_control.o - 0x08009df0 0x08009df0 0x00000004 Code RO 600 i.UsageFault_Handler stm32f4xx_it.o - 0x08009df4 0x08009df4 0x00000030 Code RO 8943 i.__ARM_fpclassify m_wm.l(fpclassify.o) - 0x08009e24 0x08009e24 0x00000026 Code RO 8883 i.__ARM_fpclassifyf m_wm.l(fpclassifyf.o) - 0x08009e4a 0x08009e4a 0x00000012 Code RO 7421 i.__ARM_isfinitef pid.o - 0x08009e5c 0x08009e5c 0x00000010 Code RO 1824 i.__NVIC_GetPriorityGrouping stm32f4xx_hal_cortex.o - 0x08009e6c 0x08009e6c 0x00000028 Code RO 1825 i.__NVIC_SetPriority stm32f4xx_hal_cortex.o - 0x08009e94 0x08009e94 0x00000006 Code RO 5613 i.__get_IPSR cmsis_os2.o - 0x08009e9a 0x08009e9a 0x00000002 PAD - 0x08009e9c 0x08009e9c 0x0000012c Code RO 8744 i.__hardfp_asinf m_wm.l(asinf.o) - 0x08009fc8 0x08009fc8 0x000002d8 Code RO 8849 i.__hardfp_atan m_wm.l(atan.o) - 0x0800a2a0 0x0800a2a0 0x00000200 Code RO 8756 i.__hardfp_atan2 m_wm.l(atan2.o) - 0x0800a4a0 0x0800a4a0 0x000002ac Code RO 8768 i.__hardfp_atan2f m_wm.l(atan2f.o) - 0x0800a74c 0x0800a74c 0x00000150 Code RO 8780 i.__hardfp_cosf m_wm.l(cosf.o) - 0x0800a89c 0x0800a89c 0x00000048 Code RO 8804 i.__hardfp_fmaxf m_wm.l(fmaxf.o) - 0x0800a8e4 0x0800a8e4 0x0000017c Code RO 8792 i.__hardfp_tanf m_wm.l(tanf.o) - 0x0800aa60 0x0800aa60 0x000000f8 Code RO 8945 i.__kernel_poly m_wm.l(poly.o) - 0x0800ab58 0x0800ab58 0x00000014 Code RO 8864 i.__mathlib_dbl_infnan m_wm.l(dunder.o) - 0x0800ab6c 0x0800ab6c 0x00000014 Code RO 8865 i.__mathlib_dbl_infnan2 m_wm.l(dunder.o) - 0x0800ab80 0x0800ab80 0x00000020 Code RO 8869 i.__mathlib_dbl_underflow m_wm.l(dunder.o) - 0x0800aba0 0x0800aba0 0x00000006 Code RO 8886 i.__mathlib_flt_infnan m_wm.l(funder.o) - 0x0800aba6 0x0800aba6 0x00000006 Code RO 8887 i.__mathlib_flt_infnan2 m_wm.l(funder.o) - 0x0800abac 0x0800abac 0x00000010 Code RO 8888 i.__mathlib_flt_invalid m_wm.l(funder.o) - 0x0800abbc 0x0800abbc 0x00000010 Code RO 8891 i.__mathlib_flt_underflow m_wm.l(funder.o) - 0x0800abcc 0x0800abcc 0x00000154 Code RO 8900 i.__mathlib_rredf2 m_wm.l(rredf.o) - 0x0800ad20 0x0800ad20 0x00000010 Code RO 8851 i.atan m_wm.l(atan.o) - 0x0800ad30 0x0800ad30 0x00000002 Code RO 243 i.configureTimerForRunTimeStats freertos.o - 0x0800ad32 0x0800ad32 0x00000002 PAD - 0x0800ad34 0x0800ad34 0x00000030 Code RO 7598 i.delay_init bsp_delay.o - 0x0800ad64 0x0800ad64 0x00000094 Code RO 5009 i.eTaskGetState tasks.o - 0x0800adf8 0x0800adf8 0x00000018 Code RO 8879 i.fabs m_wm.l(fabs.o) - 0x0800ae10 0x0800ae10 0x00000004 Code RO 244 i.getRunTimeCounterValue freertos.o - 0x0800ae14 0x0800ae14 0x00000048 Code RO 15 i.main main.o - 0x0800ae5c 0x0800ae5c 0x00000016 Code RO 7755 i.map calc_lib.o - 0x0800ae72 0x0800ae72 0x0000001e Code RO 5614 i.osDelay cmsis_os2.o - 0x0800ae90 0x0800ae90 0x00000034 Code RO 5615 i.osDelayUntil cmsis_os2.o - 0x0800aec4 0x0800aec4 0x00000034 Code RO 5623 i.osKernelGetState cmsis_os2.o - 0x0800aef8 0x0800aef8 0x0000001a Code RO 5626 i.osKernelGetTickCount cmsis_os2.o - 0x0800af12 0x0800af12 0x00000006 Code RO 5627 i.osKernelGetTickFreq cmsis_os2.o - 0x0800af18 0x0800af18 0x0000002c Code RO 5628 i.osKernelInitialize cmsis_os2.o - 0x0800af44 0x0800af44 0x00000038 Code RO 5629 i.osKernelLock cmsis_os2.o - 0x0800af7c 0x0800af7c 0x00000060 Code RO 5631 i.osKernelStart cmsis_os2.o - 0x0800afdc 0x0800afdc 0x00000044 Code RO 5632 i.osKernelUnlock cmsis_os2.o - 0x0800b020 0x0800b020 0x00000080 Code RO 5643 i.osMessageQueueGet cmsis_os2.o - 0x0800b0a0 0x0800b0a0 0x0000009a Code RO 5648 i.osMessageQueueNew cmsis_os2.o - 0x0800b13a 0x0800b13a 0x00000002 PAD - 0x0800b13c 0x0800b13c 0x00000084 Code RO 5649 i.osMessageQueuePut cmsis_os2.o - 0x0800b1c0 0x0800b1c0 0x00000028 Code RO 5650 i.osMessageQueueReset cmsis_os2.o - 0x0800b1e8 0x0800b1e8 0x00000062 Code RO 5651 i.osMutexAcquire cmsis_os2.o - 0x0800b24a 0x0800b24a 0x000000b2 Code RO 5654 i.osMutexNew cmsis_os2.o - 0x0800b2fc 0x0800b2fc 0x0000004e Code RO 5655 i.osMutexRelease cmsis_os2.o - 0x0800b34a 0x0800b34a 0x00000002 PAD - 0x0800b34c 0x0800b34c 0x00000080 Code RO 5665 i.osThreadFlagsSet cmsis_os2.o - 0x0800b3cc 0x0800b3cc 0x000000b2 Code RO 5666 i.osThreadFlagsWait cmsis_os2.o - 0x0800b47e 0x0800b47e 0x0000000c Code RO 5668 i.osThreadGetId cmsis_os2.o - 0x0800b48a 0x0800b48a 0x000000b8 Code RO 5673 i.osThreadNew cmsis_os2.o - 0x0800b542 0x0800b542 0x0000003c Code RO 5677 i.osThreadTerminate cmsis_os2.o - 0x0800b57e 0x0800b57e 0x00000002 PAD - 0x0800b580 0x0800b580 0x0000007c Code RO 5011 i.prvAddCurrentTaskToDelayedList tasks.o - 0x0800b5fc 0x0800b5fc 0x000000b8 Code RO 5012 i.prvAddNewTaskToReadyList tasks.o - 0x0800b6b4 0x0800b6b4 0x00000074 Code RO 5425 i.prvCheckForValidListAndQueue timers.o - 0x0800b728 0x0800b728 0x00000048 Code RO 5013 i.prvCheckTasksWaitingTermination tasks.o - 0x0800b770 0x0800b770 0x0000002a Code RO 4598 i.prvCopyDataFromQueue queue.o - 0x0800b79a 0x0800b79a 0x0000007e Code RO 4599 i.prvCopyDataToQueue queue.o - 0x0800b818 0x0800b818 0x00000050 Code RO 5014 i.prvDeleteTCB tasks.o - 0x0800b868 0x0800b868 0x00000014 Code RO 4600 i.prvGetDisinheritPriorityAfterTimeout queue.o - 0x0800b87c 0x0800b87c 0x00000028 Code RO 5426 i.prvGetNextExpireTime timers.o - 0x0800b8a4 0x0800b8a4 0x0000007c Code RO 6130 i.prvHeapInit heap_4.o - 0x0800b920 0x0800b920 0x00000028 Code RO 5015 i.prvIdleTask tasks.o - 0x0800b948 0x0800b948 0x0000001e Code RO 4601 i.prvInitialiseMutex queue.o - 0x0800b966 0x0800b966 0x0000002a Code RO 4602 i.prvInitialiseNewQueue queue.o - 0x0800b990 0x0800b990 0x000000c4 Code RO 5016 i.prvInitialiseNewTask tasks.o - 0x0800ba54 0x0800ba54 0x00000068 Code RO 5017 i.prvInitialiseTaskLists tasks.o - 0x0800babc 0x0800babc 0x00000068 Code RO 6131 i.prvInsertBlockIntoFreeList heap_4.o - 0x0800bb24 0x0800bb24 0x00000058 Code RO 5428 i.prvInsertTimerInActiveList timers.o - 0x0800bb7c 0x0800bb7c 0x0000001a Code RO 4603 i.prvIsQueueEmpty queue.o - 0x0800bb96 0x0800bb96 0x0000001e Code RO 4604 i.prvIsQueueFull queue.o - 0x0800bbb4 0x0800bbb4 0x00000074 Code RO 5429 i.prvProcessExpiredTimer timers.o - 0x0800bc28 0x0800bc28 0x00000164 Code RO 5430 i.prvProcessReceivedCommands timers.o - 0x0800bd8c 0x0800bd8c 0x00000074 Code RO 5431 i.prvProcessTimerOrBlockTask timers.o - 0x0800be00 0x0800be00 0x00000034 Code RO 5019 i.prvResetNextTaskUnblockTime tasks.o - 0x0800be34 0x0800be34 0x0000002c Code RO 5432 i.prvSampleTimeNow timers.o - 0x0800be60 0x0800be60 0x000000a4 Code RO 5433 i.prvSwitchTimerLists timers.o - 0x0800bf04 0x0800bf04 0x00000040 Code RO 6186 i.prvTaskExitError port.o - 0x0800bf44 0x0800bf44 0x0000001a Code RO 5434 i.prvTimerTask timers.o - 0x0800bf5e 0x0800bf5e 0x0000007e Code RO 4605 i.prvUnlockQueue queue.o - 0x0800bfdc 0x0800bfdc 0x0000014c Code RO 6132 i.pvPortMalloc heap_4.o - 0x0800c128 0x0800c128 0x00000020 Code RO 5024 i.pvTaskIncrementMutexHeldCount tasks.o - 0x0800c148 0x0800c148 0x0000002c Code RO 6187 i.pxPortInitialiseStack port.o - 0x0800c174 0x0800c174 0x00000088 Code RO 8309 i.remote_ParseHost ai.o - 0x0800c1fc 0x0800c1fc 0x00000010 Code RO 8255 i.remote_control_init remote_control.o - 0x0800c20c 0x0800c20c 0x0000020c Code RO 8256 i.sbus_to_rc remote_control.o - 0x0800c418 0x0800c418 0x0000003e Code RO 8905 i.sqrtf m_wm.l(sqrtf.o) - 0x0800c456 0x0800c456 0x00000018 Code RO 7757 i.user_delay_ms calc_lib.o - 0x0800c46e 0x0800c46e 0x00000018 Code RO 7758 i.user_delay_us calc_lib.o - 0x0800c486 0x0800c486 0x00000028 Code RO 4558 i.uxListRemove list.o - 0x0800c4ae 0x0800c4ae 0x00000002 PAD - 0x0800c4b0 0x0800c4b0 0x00000018 Code RO 5685 i.vApplicationGetIdleTaskMemory cmsis_os2.o - 0x0800c4c8 0x0800c4c8 0x00000018 Code RO 5686 i.vApplicationGetTimerTaskMemory cmsis_os2.o - 0x0800c4e0 0x0800c4e0 0x00000002 Code RO 245 i.vApplicationStackOverflowHook freertos.o - 0x0800c4e2 0x0800c4e2 0x0000001a Code RO 4559 i.vListInitialise list.o - 0x0800c4fc 0x0800c4fc 0x00000006 Code RO 4560 i.vListInitialiseItem list.o - 0x0800c502 0x0800c502 0x00000034 Code RO 4561 i.vListInsert list.o - 0x0800c536 0x0800c536 0x00000018 Code RO 4562 i.vListInsertEnd list.o - 0x0800c54e 0x0800c54e 0x00000002 PAD - 0x0800c550 0x0800c550 0x00000054 Code RO 6189 i.vPortEnterCritical port.o - 0x0800c5a4 0x0800c5a4 0x0000003c Code RO 6190 i.vPortExitCritical port.o - 0x0800c5e0 0x0800c5e0 0x000000a4 Code RO 6133 i.vPortFree heap_4.o - 0x0800c684 0x0800c684 0x00000028 Code RO 6191 i.vPortSetupTimerInterrupt port.o - 0x0800c6ac 0x0800c6ac 0x00000078 Code RO 6192 i.vPortValidateInterruptPriority port.o - 0x0800c724 0x0800c724 0x0000002c Code RO 4611 i.vQueueAddToRegistry queue.o - 0x0800c750 0x0800c750 0x0000004a Code RO 4615 i.vQueueWaitForMessageRestricted queue.o - 0x0800c79a 0x0800c79a 0x00000002 PAD - 0x0800c79c 0x0800c79c 0x0000005c Code RO 5035 i.vTaskDelay tasks.o - 0x0800c7f8 0x0800c7f8 0x000000d4 Code RO 5036 i.vTaskDelayUntil tasks.o - 0x0800c8cc 0x0800c8cc 0x000000c8 Code RO 5037 i.vTaskDelete tasks.o - 0x0800c994 0x0800c994 0x00000018 Code RO 5041 i.vTaskInternalSetTimeOutState tasks.o - 0x0800c9ac 0x0800c9ac 0x0000000c Code RO 5043 i.vTaskMissedYield tasks.o - 0x0800c9b8 0x0800c9b8 0x00000038 Code RO 5045 i.vTaskPlaceOnEventList tasks.o - 0x0800c9f0 0x0800c9f0 0x00000040 Code RO 5046 i.vTaskPlaceOnEventListRestricted tasks.o - 0x0800ca30 0x0800ca30 0x000000d0 Code RO 5048 i.vTaskPriorityDisinheritAfterTimeout tasks.o - 0x0800cb00 0x0800cb00 0x000000bc Code RO 5054 i.vTaskStartScheduler tasks.o - 0x0800cbbc 0x0800cbbc 0x00000010 Code RO 5056 i.vTaskSuspendAll tasks.o - 0x0800cbcc 0x0800cbcc 0x00000104 Code RO 5057 i.vTaskSwitchContext tasks.o - 0x0800ccd0 0x0800ccd0 0x00000168 Code RO 6193 i.xPortStartScheduler port.o - 0x0800ce38 0x0800ce38 0x00000034 Code RO 6194 i.xPortSysTickHandler port.o - 0x0800ce6c 0x0800ce6c 0x00000022 Code RO 4618 i.xQueueCreateMutex queue.o - 0x0800ce8e 0x0800ce8e 0x0000002a Code RO 4619 i.xQueueCreateMutexStatic queue.o - 0x0800ceb8 0x0800ceb8 0x0000005a Code RO 4620 i.xQueueGenericCreate queue.o - 0x0800cf12 0x0800cf12 0x000000e0 Code RO 4621 i.xQueueGenericCreateStatic queue.o - 0x0800cff2 0x0800cff2 0x00000002 PAD - 0x0800cff4 0x0800cff4 0x00000098 Code RO 4622 i.xQueueGenericReset queue.o - 0x0800d08c 0x0800d08c 0x000001a8 Code RO 4623 i.xQueueGenericSend queue.o - 0x0800d234 0x0800d234 0x000000fc Code RO 4624 i.xQueueGenericSendFromISR queue.o - 0x0800d330 0x0800d330 0x00000048 Code RO 4628 i.xQueueGiveMutexRecursive queue.o - 0x0800d378 0x0800d378 0x00000168 Code RO 4633 i.xQueueReceive queue.o - 0x0800d4e0 0x0800d4e0 0x000000ca Code RO 4634 i.xQueueReceiveFromISR queue.o - 0x0800d5aa 0x0800d5aa 0x00000002 PAD - 0x0800d5ac 0x0800d5ac 0x000001b8 Code RO 4635 i.xQueueSemaphoreTake queue.o - 0x0800d764 0x0800d764 0x0000004e Code RO 4636 i.xQueueTakeMutexRecursive queue.o - 0x0800d7b2 0x0800d7b2 0x00000002 PAD - 0x0800d7b4 0x0800d7b4 0x0000008c Code RO 5059 i.xTaskCheckForTimeOut tasks.o - 0x0800d840 0x0800d840 0x00000064 Code RO 5060 i.xTaskCreate tasks.o - 0x0800d8a4 0x0800d8a4 0x000000ba Code RO 5061 i.xTaskCreateStatic tasks.o - 0x0800d95e 0x0800d95e 0x00000002 PAD - 0x0800d960 0x0800d960 0x00000128 Code RO 5062 i.xTaskGenericNotify tasks.o - 0x0800da88 0x0800da88 0x00000164 Code RO 5063 i.xTaskGenericNotifyFromISR tasks.o - 0x0800dbec 0x0800dbec 0x0000000c Code RO 5064 i.xTaskGetCurrentTaskHandle tasks.o - 0x0800dbf8 0x0800dbf8 0x00000020 Code RO 5066 i.xTaskGetSchedulerState tasks.o - 0x0800dc18 0x0800dc18 0x0000000c Code RO 5067 i.xTaskGetTickCount tasks.o - 0x0800dc24 0x0800dc24 0x00000014 Code RO 5068 i.xTaskGetTickCountFromISR tasks.o - 0x0800dc38 0x0800dc38 0x00000144 Code RO 5069 i.xTaskIncrementTick tasks.o - 0x0800dd7c 0x0800dd7c 0x000000a0 Code RO 5071 i.xTaskNotifyWait tasks.o - 0x0800de1c 0x0800de1c 0x000000a4 Code RO 5072 i.xTaskPriorityDisinherit tasks.o - 0x0800dec0 0x0800dec0 0x000000a4 Code RO 5073 i.xTaskPriorityInherit tasks.o - 0x0800df64 0x0800df64 0x00000098 Code RO 5074 i.xTaskRemoveFromEventList tasks.o - 0x0800dffc 0x0800dffc 0x00000104 Code RO 5075 i.xTaskResumeAll tasks.o - 0x0800e100 0x0800e100 0x00000078 Code RO 5443 i.xTimerCreateTimerTask timers.o - 0x0800e178 0x0800e178 0x00000084 Code RO 5444 i.xTimerGenericCommand timers.o - 0x0800e1fc 0x0800e1fc 0x00000018 Code RO 8716 x$fpl$basic fz_wm.l(basic.o) - 0x0800e214 0x0800e214 0x00000062 Code RO 8718 x$fpl$d2f fz_wm.l(d2f.o) - 0x0800e276 0x0800e276 0x00000002 PAD - 0x0800e278 0x0800e278 0x00000150 Code RO 8828 x$fpl$dadd fz_wm.l(daddsub_clz.o) - 0x0800e3c8 0x0800e3c8 0x00000018 Code RO 8939 x$fpl$dcmpinf fz_wm.l(dcmpi.o) - 0x0800e3e0 0x0800e3e0 0x000002b0 Code RO 8721 x$fpl$ddiv fz_wm.l(ddiv.o) - 0x0800e690 0x0800e690 0x00000078 Code RO 8834 x$fpl$deqf fz_wm.l(deqf.o) - 0x0800e708 0x0800e708 0x0000005e Code RO 8724 x$fpl$dfix fz_wm.l(dfix.o) - 0x0800e766 0x0800e766 0x00000002 PAD - 0x0800e768 0x0800e768 0x0000005a Code RO 8728 x$fpl$dfixu fz_wm.l(dfixu.o) - 0x0800e7c2 0x0800e7c2 0x0000002e Code RO 8733 x$fpl$dflt fz_wm.l(dflt_clz.o) - 0x0800e7f0 0x0800e7f0 0x00000026 Code RO 8732 x$fpl$dfltu fz_wm.l(dflt_clz.o) - 0x0800e816 0x0800e816 0x00000002 PAD - 0x0800e818 0x0800e818 0x00000154 Code RO 8738 x$fpl$dmul fz_wm.l(dmul.o) - 0x0800e96c 0x0800e96c 0x0000009c Code RO 8836 x$fpl$dnaninf fz_wm.l(dnaninf.o) - 0x0800ea08 0x0800ea08 0x0000000c Code RO 8838 x$fpl$dretinf fz_wm.l(dretinf.o) - 0x0800ea14 0x0800ea14 0x00000016 Code RO 8829 x$fpl$drsb fz_wm.l(daddsub_clz.o) - 0x0800ea2a 0x0800ea2a 0x00000002 PAD - 0x0800ea2c 0x0800ea2c 0x000001d4 Code RO 8830 x$fpl$dsub fz_wm.l(daddsub_clz.o) - 0x0800ec00 0x0800ec00 0x00000056 Code RO 8740 x$fpl$f2d fz_wm.l(f2d.o) - 0x0800ec56 0x0800ec56 0x00000002 PAD - 0x0800ec58 0x0800ec58 0x00000052 Code RO 8840 x$fpl$fcmp4 fz_wm.l(fcmp4.o) - 0x0800ecaa 0x0800ecaa 0x00000018 Code RO 8941 x$fpl$fcmpinf fz_wm.l(fcmpi.o) - 0x0800ecc2 0x0800ecc2 0x00000060 Code RO 8742 x$fpl$ffltll fz_wm.l(ffltll_clz.o) - 0x0800ed22 0x0800ed22 0x0000008c Code RO 8844 x$fpl$fnaninf fz_wm.l(fnaninf.o) - 0x0800edae 0x0800edae 0x0000000a Code RO 9032 x$fpl$fpinit fz_wm.l(fpinit.o) - 0x0800edb8 0x0800edb8 0x0000000a Code RO 8846 x$fpl$fretinf fz_wm.l(fretinf.o) - 0x0800edc2 0x0800edc2 0x00000000 Code RO 8848 x$fpl$usenofp fz_wm.l(usenofp.o) - 0x0800edc2 0x0800edc2 0x00000002 PAD - 0x0800edc4 0x0800edc4 0x00000024 Data RO 246 .constdata freertos.o - 0x0800ede8 0x0800ede8 0x00000008 Data RO 1538 .constdata stm32f4xx_hal_dma.o - 0x0800edf0 0x0800edf0 0x00000018 Data RO 4395 .constdata system_stm32f4xx.o - 0x0800ee08 0x0800ee08 0x00000038 Data RO 6519 .constdata gpio_1.o - 0x0800ee40 0x0800ee40 0x00000008 Data RO 6734 .constdata pwm.o - 0x0800ee48 0x0800ee48 0x00000020 Data RO 8405 .constdata atti_esti.o - 0x0800ee68 0x0800ee68 0x00000090 Data RO 8532 .constdata user_task.o - 0x0800eef8 0x0800eef8 0x00000098 Data RO 8852 .constdata m_wm.l(atan.o) - 0x0800ef90 0x0800ef90 0x00000008 Data RO 8899 .constdata m_wm.l(qnan.o) - 0x0800ef98 0x0800ef98 0x00000020 Data RO 8901 .constdata m_wm.l(rredf.o) - 0x0800efb8 0x0800efb8 0x0000000c Data RO 247 .conststring freertos.o - 0x0800efc4 0x0800efc4 0x0000002a Data RO 8533 .conststring user_task.o - 0x0800efee 0x0800efee 0x00000002 PAD - 0x0800eff0 0x0800eff0 0x00000020 Data RO 9090 Region$$Table anon$$obj.o + 0x08002a84 0x08002a84 0x0000037c Code RO 8548 i.Gimbal_Control gimbal.o + 0x08002e00 0x08002e00 0x00000154 Code RO 8549 i.Gimbal_Init gimbal.o + 0x08002f54 0x08002f54 0x00000036 Code RO 8550 i.Gimbal_Output gimbal.o + 0x08002f8a 0x08002f8a 0x00000002 PAD + 0x08002f8c 0x08002f8c 0x00000084 Code RO 8551 i.Gimbal_SetMode gimbal.o + 0x08003010 0x08003010 0x00000056 Code RO 8552 i.Gimbal_UpdateFeedback gimbal.o + 0x08003066 0x08003066 0x0000002a Code RO 8553 i.Gimbal_UpdateIMU gimbal.o + 0x08003090 0x08003090 0x0000002a Code RO 786 i.HAL_CAN_ActivateNotification stm32f4xx_hal_can.o + 0x080030ba 0x080030ba 0x0000014a Code RO 787 i.HAL_CAN_AddTxMessage stm32f4xx_hal_can.o + 0x08003204 0x08003204 0x00000120 Code RO 788 i.HAL_CAN_ConfigFilter stm32f4xx_hal_can.o + 0x08003324 0x08003324 0x0000003c Code RO 6290 i.HAL_CAN_ErrorCallback can_1.o + 0x08003360 0x08003360 0x00000028 Code RO 793 i.HAL_CAN_GetRxFifoFillLevel stm32f4xx_hal_can.o + 0x08003388 0x08003388 0x00000194 Code RO 794 i.HAL_CAN_GetRxMessage stm32f4xx_hal_can.o + 0x0800351c 0x0800351c 0x00000036 Code RO 796 i.HAL_CAN_GetTxMailboxesFreeLevel stm32f4xx_hal_can.o + 0x08003552 0x08003552 0x0000024e Code RO 798 i.HAL_CAN_IRQHandler stm32f4xx_hal_can.o + 0x080037a0 0x080037a0 0x00000174 Code RO 799 i.HAL_CAN_Init stm32f4xx_hal_can.o + 0x08003914 0x08003914 0x000001a0 Code RO 307 i.HAL_CAN_MspInit can.o + 0x08003ab4 0x08003ab4 0x0000003c Code RO 6291 i.HAL_CAN_RxFifo0FullCallback can_1.o + 0x08003af0 0x08003af0 0x0000003c Code RO 6292 i.HAL_CAN_RxFifo0MsgPendingCallback can_1.o + 0x08003b2c 0x08003b2c 0x0000003c Code RO 6293 i.HAL_CAN_RxFifo1FullCallback can_1.o + 0x08003b68 0x08003b68 0x0000003c Code RO 6294 i.HAL_CAN_RxFifo1MsgPendingCallback can_1.o + 0x08003ba4 0x08003ba4 0x0000003c Code RO 6295 i.HAL_CAN_SleepCallback can_1.o + 0x08003be0 0x08003be0 0x0000005e Code RO 811 i.HAL_CAN_Start stm32f4xx_hal_can.o + 0x08003c3e 0x08003c3e 0x00000002 PAD + 0x08003c40 0x08003c40 0x0000003c Code RO 6296 i.HAL_CAN_TxMailbox0AbortCallback can_1.o + 0x08003c7c 0x08003c7c 0x00000038 Code RO 6297 i.HAL_CAN_TxMailbox0CompleteCallback can_1.o + 0x08003cb4 0x08003cb4 0x0000003c Code RO 6298 i.HAL_CAN_TxMailbox1AbortCallback can_1.o + 0x08003cf0 0x08003cf0 0x0000003c Code RO 6299 i.HAL_CAN_TxMailbox1CompleteCallback can_1.o + 0x08003d2c 0x08003d2c 0x0000003c Code RO 6300 i.HAL_CAN_TxMailbox2AbortCallback can_1.o + 0x08003d68 0x08003d68 0x0000003c Code RO 6301 i.HAL_CAN_TxMailbox2CompleteCallback can_1.o + 0x08003da4 0x08003da4 0x0000003c Code RO 6302 i.HAL_CAN_WakeUpFromRxMsgCallback can_1.o + 0x08003de0 0x08003de0 0x000000ac Code RO 1526 i.HAL_DMA_Abort stm32f4xx_hal_dma.o + 0x08003e8c 0x08003e8c 0x00000028 Code RO 1527 i.HAL_DMA_Abort_IT stm32f4xx_hal_dma.o + 0x08003eb4 0x08003eb4 0x00000008 Code RO 1530 i.HAL_DMA_GetState stm32f4xx_hal_dma.o + 0x08003ebc 0x08003ebc 0x00000240 Code RO 1531 i.HAL_DMA_IRQHandler stm32f4xx_hal_dma.o + 0x080040fc 0x080040fc 0x000000ec Code RO 1532 i.HAL_DMA_Init stm32f4xx_hal_dma.o + 0x080041e8 0x080041e8 0x00000092 Code RO 1536 i.HAL_DMA_Start_IT stm32f4xx_hal_dma.o + 0x0800427a 0x0800427a 0x00000002 PAD + 0x0800427c 0x0800427c 0x00000028 Code RO 1968 i.HAL_Delay stm32f4xx_hal.o + 0x080042a4 0x080042a4 0x00000030 Code RO 6517 i.HAL_GPIO_EXTI_Callback gpio_1.o + 0x080042d4 0x080042d4 0x0000001c Code RO 1418 i.HAL_GPIO_EXTI_IRQHandler stm32f4xx_hal_gpio.o + 0x080042f0 0x080042f0 0x000001f4 Code RO 1419 i.HAL_GPIO_Init stm32f4xx_hal_gpio.o + 0x080044e4 0x080044e4 0x00000010 Code RO 1421 i.HAL_GPIO_ReadPin stm32f4xx_hal_gpio.o + 0x080044f4 0x080044f4 0x0000000c Code RO 1423 i.HAL_GPIO_WritePin stm32f4xx_hal_gpio.o + 0x08004500 0x08004500 0x0000000c Code RO 1974 i.HAL_GetTick stm32f4xx_hal.o + 0x0800450c 0x0800450c 0x00000034 Code RO 6585 i.HAL_I2C_AbortCpltCallback i2c_1.o + 0x08004540 0x08004540 0x00000002 Code RO 2220 i.HAL_I2C_AddrCallback stm32f4xx_hal_i2c.o + 0x08004542 0x08004542 0x000000d4 Code RO 2223 i.HAL_I2C_ER_IRQHandler stm32f4xx_hal_i2c.o + 0x08004616 0x08004616 0x000001da Code RO 2224 i.HAL_I2C_EV_IRQHandler stm32f4xx_hal_i2c.o + 0x080047f0 0x080047f0 0x00000034 Code RO 6586 i.HAL_I2C_ErrorCallback i2c_1.o + 0x08004824 0x08004824 0x000001d0 Code RO 2230 i.HAL_I2C_Init stm32f4xx_hal_i2c.o + 0x080049f4 0x080049f4 0x00000034 Code RO 6587 i.HAL_I2C_ListenCpltCallback i2c_1.o + 0x08004a28 0x08004a28 0x00000034 Code RO 6588 i.HAL_I2C_MasterRxCpltCallback i2c_1.o + 0x08004a5c 0x08004a5c 0x00000030 Code RO 6589 i.HAL_I2C_MasterTxCpltCallback i2c_1.o + 0x08004a8c 0x08004a8c 0x00000034 Code RO 6590 i.HAL_I2C_MemRxCpltCallback i2c_1.o + 0x08004ac0 0x08004ac0 0x00000034 Code RO 6591 i.HAL_I2C_MemTxCpltCallback i2c_1.o + 0x08004af4 0x08004af4 0x0000011c Code RO 380 i.HAL_I2C_MspInit i2c.o + 0x08004c10 0x08004c10 0x00000034 Code RO 6592 i.HAL_I2C_SlaveRxCpltCallback i2c_1.o + 0x08004c44 0x08004c44 0x00000034 Code RO 6593 i.HAL_I2C_SlaveTxCpltCallback i2c_1.o + 0x08004c78 0x08004c78 0x00000018 Code RO 1980 i.HAL_IncTick stm32f4xx_hal.o + 0x08004c90 0x08004c90 0x0000003c Code RO 1981 i.HAL_Init stm32f4xx_hal.o + 0x08004ccc 0x08004ccc 0x0000004c Code RO 1982 i.HAL_InitTick stm32f4xx_hal.o + 0x08004d18 0x08004d18 0x00000054 Code RO 761 i.HAL_MspInit stm32f4xx_hal_msp.o + 0x08004d6c 0x08004d6c 0x0000002c Code RO 1810 i.HAL_NVIC_DisableIRQ stm32f4xx_hal_cortex.o + 0x08004d98 0x08004d98 0x00000028 Code RO 1811 i.HAL_NVIC_EnableIRQ stm32f4xx_hal_cortex.o + 0x08004dc0 0x08004dc0 0x0000007c Code RO 1817 i.HAL_NVIC_SetPriority stm32f4xx_hal_cortex.o + 0x08004e3c 0x08004e3c 0x00000028 Code RO 1818 i.HAL_NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o + 0x08004e64 0x08004e64 0x00000184 Code RO 1020 i.HAL_RCC_ClockConfig stm32f4xx_hal_rcc.o + 0x08004fe8 0x08004fe8 0x0000000c Code RO 1025 i.HAL_RCC_GetHCLKFreq stm32f4xx_hal_rcc.o + 0x08004ff4 0x08004ff4 0x00000020 Code RO 1027 i.HAL_RCC_GetPCLK1Freq stm32f4xx_hal_rcc.o + 0x08005014 0x08005014 0x00000020 Code RO 1028 i.HAL_RCC_GetPCLK2Freq stm32f4xx_hal_rcc.o + 0x08005034 0x08005034 0x000000b0 Code RO 1029 i.HAL_RCC_GetSysClockFreq stm32f4xx_hal_rcc.o + 0x080050e4 0x080050e4 0x0000049c Code RO 1032 i.HAL_RCC_OscConfig stm32f4xx_hal_rcc.o + 0x08005580 0x08005580 0x00000038 Code RO 6815 i.HAL_SPI_ErrorCallback spi_1.o + 0x080055b8 0x080055b8 0x000000c8 Code RO 2725 i.HAL_SPI_Init stm32f4xx_hal_spi.o + 0x08005680 0x08005680 0x000001cc Code RO 428 i.HAL_SPI_MspInit spi.o + 0x0800584c 0x0800584c 0x00000182 Code RO 2728 i.HAL_SPI_Receive stm32f4xx_hal_spi.o + 0x080059ce 0x080059ce 0x00000002 PAD + 0x080059d0 0x080059d0 0x00000118 Code RO 2729 i.HAL_SPI_Receive_DMA stm32f4xx_hal_spi.o + 0x08005ae8 0x08005ae8 0x00000038 Code RO 6816 i.HAL_SPI_RxCpltCallback spi_1.o + 0x08005b20 0x08005b20 0x00000038 Code RO 6817 i.HAL_SPI_RxHalfCpltCallback spi_1.o + 0x08005b58 0x08005b58 0x000001be Code RO 2733 i.HAL_SPI_Transmit stm32f4xx_hal_spi.o + 0x08005d16 0x08005d16 0x00000248 Code RO 2734 i.HAL_SPI_TransmitReceive stm32f4xx_hal_spi.o + 0x08005f5e 0x08005f5e 0x00000002 PAD + 0x08005f60 0x08005f60 0x00000164 Code RO 2735 i.HAL_SPI_TransmitReceive_DMA stm32f4xx_hal_spi.o + 0x080060c4 0x080060c4 0x000000fc Code RO 2737 i.HAL_SPI_Transmit_DMA stm32f4xx_hal_spi.o + 0x080061c0 0x080061c0 0x0000002c Code RO 6818 i.HAL_SPI_TxCpltCallback spi_1.o + 0x080061ec 0x080061ec 0x00000038 Code RO 6819 i.HAL_SPI_TxHalfCpltCallback spi_1.o + 0x08006224 0x08006224 0x00000038 Code RO 6820 i.HAL_SPI_TxRxCpltCallback spi_1.o + 0x0800625c 0x0800625c 0x00000038 Code RO 6821 i.HAL_SPI_TxRxHalfCpltCallback spi_1.o + 0x08006294 0x08006294 0x00000034 Code RO 1822 i.HAL_SYSTICK_Config stm32f4xx_hal_cortex.o + 0x080062c8 0x080062c8 0x00000002 Code RO 3753 i.HAL_TIMEx_BreakCallback stm32f4xx_hal_tim_ex.o + 0x080062ca 0x080062ca 0x00000002 Code RO 3754 i.HAL_TIMEx_CommutCallback stm32f4xx_hal_tim_ex.o + 0x080062cc 0x080062cc 0x000000b4 Code RO 3772 i.HAL_TIMEx_MasterConfigSynchronization stm32f4xx_hal_tim_ex.o + 0x08006380 0x08006380 0x00000066 Code RO 3038 i.HAL_TIM_Base_Init stm32f4xx_hal_tim.o + 0x080063e6 0x080063e6 0x00000002 PAD + 0x080063e8 0x080063e8 0x00000078 Code RO 476 i.HAL_TIM_Base_MspInit tim.o + 0x08006460 0x08006460 0x00000002 Code RO 3072 i.HAL_TIM_IC_CaptureCallback stm32f4xx_hal_tim.o + 0x08006462 0x08006462 0x0000016c Code RO 3086 i.HAL_TIM_IRQHandler stm32f4xx_hal_tim.o + 0x080065ce 0x080065ce 0x00000002 PAD + 0x080065d0 0x080065d0 0x00000060 Code RO 477 i.HAL_TIM_MspPostInit tim.o + 0x08006630 0x08006630 0x00000002 Code RO 3089 i.HAL_TIM_OC_DelayElapsedCallback stm32f4xx_hal_tim.o + 0x08006632 0x08006632 0x00000104 Code RO 3110 i.HAL_TIM_PWM_ConfigChannel stm32f4xx_hal_tim.o + 0x08006736 0x08006736 0x00000066 Code RO 3113 i.HAL_TIM_PWM_Init stm32f4xx_hal_tim.o + 0x0800679c 0x0800679c 0x00000002 Code RO 3115 i.HAL_TIM_PWM_MspInit stm32f4xx_hal_tim.o + 0x0800679e 0x0800679e 0x00000002 Code RO 3116 i.HAL_TIM_PWM_PulseFinishedCallback stm32f4xx_hal_tim.o + 0x080067a0 0x080067a0 0x0000010c Code RO 3118 i.HAL_TIM_PWM_Start stm32f4xx_hal_tim.o + 0x080068ac 0x080068ac 0x00000002 Code RO 3124 i.HAL_TIM_PeriodElapsedCallback stm32f4xx_hal_tim.o + 0x080068ae 0x080068ae 0x00000002 Code RO 3129 i.HAL_TIM_TriggerCallback stm32f4xx_hal_tim.o + 0x080068b0 0x080068b0 0x00000002 Code RO 4032 i.HAL_UARTEx_RxEventCallback stm32f4xx_hal_uart.o + 0x080068b2 0x080068b2 0x00000002 PAD + 0x080068b4 0x080068b4 0x00000034 Code RO 6991 i.HAL_UART_ErrorCallback uart.o + 0x080068e8 0x080068e8 0x00000308 Code RO 4049 i.HAL_UART_IRQHandler stm32f4xx_hal_uart.o + 0x08006bf0 0x08006bf0 0x00000076 Code RO 4050 i.HAL_UART_Init stm32f4xx_hal_uart.o + 0x08006c66 0x08006c66 0x00000002 PAD + 0x08006c68 0x08006c68 0x00000198 Code RO 530 i.HAL_UART_MspInit usart.o + 0x08006e00 0x08006e00 0x00000034 Code RO 6992 i.HAL_UART_RxCpltCallback uart.o + 0x08006e34 0x08006e34 0x00000034 Code RO 6994 i.HAL_UART_TxCpltCallback uart.o + 0x08006e68 0x08006e68 0x00000004 Code RO 592 i.HardFault_Handler stm32f4xx_it.o + 0x08006e6c 0x08006e6c 0x00000010 Code RO 593 i.I2C1_ER_IRQHandler stm32f4xx_it.o + 0x08006e7c 0x08006e7c 0x00000010 Code RO 594 i.I2C1_EV_IRQHandler stm32f4xx_it.o + 0x08006e8c 0x08006e8c 0x0000001c Code RO 2268 i.I2C_ConvertOtherXferOptions stm32f4xx_hal_i2c.o + 0x08006ea8 0x08006ea8 0x000000f8 Code RO 2269 i.I2C_DMAAbort stm32f4xx_hal_i2c.o + 0x08006fa0 0x08006fa0 0x00000012 Code RO 2272 i.I2C_Flush_DR stm32f4xx_hal_i2c.o + 0x08006fb2 0x08006fb2 0x00000002 PAD + 0x08006fb4 0x08006fb4 0x00000028 Code RO 6594 i.I2C_Get i2c_1.o + 0x08006fdc 0x08006fdc 0x000001ac Code RO 2273 i.I2C_ITError stm32f4xx_hal_i2c.o + 0x08007188 0x08007188 0x00000130 Code RO 2275 i.I2C_MasterReceive_BTF stm32f4xx_hal_i2c.o + 0x080072b8 0x080072b8 0x00000104 Code RO 2276 i.I2C_MasterReceive_RXNE stm32f4xx_hal_i2c.o + 0x080073bc 0x080073bc 0x000000a0 Code RO 2279 i.I2C_MasterTransmit_BTF stm32f4xx_hal_i2c.o + 0x0800745c 0x0800745c 0x000000d8 Code RO 2280 i.I2C_MasterTransmit_TXE stm32f4xx_hal_i2c.o + 0x08007534 0x08007534 0x0000002a Code RO 2281 i.I2C_Master_ADD10 stm32f4xx_hal_i2c.o + 0x0800755e 0x0800755e 0x00000268 Code RO 2282 i.I2C_Master_ADDR stm32f4xx_hal_i2c.o + 0x080077c6 0x080077c6 0x0000009e Code RO 2283 i.I2C_Master_SB stm32f4xx_hal_i2c.o + 0x08007864 0x08007864 0x000000c6 Code RO 2284 i.I2C_MemoryTransmit_TXE_BTF stm32f4xx_hal_i2c.o + 0x0800792a 0x0800792a 0x0000001a Code RO 2287 i.I2C_SlaveReceive_BTF stm32f4xx_hal_i2c.o + 0x08007944 0x08007944 0x00000046 Code RO 2288 i.I2C_SlaveReceive_RXNE stm32f4xx_hal_i2c.o + 0x0800798a 0x0800798a 0x0000001a Code RO 2289 i.I2C_SlaveTransmit_BTF stm32f4xx_hal_i2c.o + 0x080079a4 0x080079a4 0x00000046 Code RO 2290 i.I2C_SlaveTransmit_TXE stm32f4xx_hal_i2c.o + 0x080079ea 0x080079ea 0x00000070 Code RO 2291 i.I2C_Slave_ADDR stm32f4xx_hal_i2c.o + 0x08007a5a 0x08007a5a 0x00000002 PAD + 0x08007a5c 0x08007a5c 0x000000a8 Code RO 2292 i.I2C_Slave_AF stm32f4xx_hal_i2c.o + 0x08007b04 0x08007b04 0x0000018c Code RO 2293 i.I2C_Slave_STOPF stm32f4xx_hal_i2c.o + 0x08007c90 0x08007c90 0x00000050 Code RO 2299 i.I2C_WaitOnSTOPRequestThroughIT stm32f4xx_hal_i2c.o + 0x08007ce0 0x08007ce0 0x00000050 Code RO 7538 i.InvSqrt user_math.o + 0x08007d30 0x08007d30 0x00000080 Code RO 7213 i.LowPassFilter2p_Apply filter.o + 0x08007db0 0x08007db0 0x00000114 Code RO 7214 i.LowPassFilter2p_Init filter.o + 0x08007ec4 0x08007ec4 0x00000060 Code RO 7215 i.LowPassFilter2p_Reset filter.o + 0x08007f24 0x08007f24 0x00000050 Code RO 8040 i.MOTOR_RM_CreateCANManager motor_rm.o + 0x08007f74 0x08007f74 0x00000122 Code RO 8041 i.MOTOR_RM_Ctrl motor_rm.o + 0x08008096 0x08008096 0x00000002 PAD + 0x08008098 0x08008098 0x00000018 Code RO 8042 i.MOTOR_RM_GetCANManager motor_rm.o + 0x080080b0 0x080080b0 0x00000026 Code RO 8043 i.MOTOR_RM_GetLSB motor_rm.o + 0x080080d6 0x080080d6 0x00000044 Code RO 8044 i.MOTOR_RM_GetLogicalIndex motor_rm.o + 0x0800811a 0x0800811a 0x0000003e Code RO 8045 i.MOTOR_RM_GetMotor motor_rm.o + 0x08008158 0x08008158 0x00000028 Code RO 8046 i.MOTOR_RM_GetRatio motor_rm.o + 0x08008180 0x08008180 0x000000c0 Code RO 8048 i.MOTOR_RM_Register motor_rm.o + 0x08008240 0x08008240 0x000000b2 Code RO 8050 i.MOTOR_RM_SetOutput motor_rm.o + 0x080082f2 0x080082f2 0x000000ae Code RO 8051 i.MOTOR_RM_Update motor_rm.o + 0x080083a0 0x080083a0 0x00000048 Code RO 308 i.MX_CAN1_Init can.o + 0x080083e8 0x080083e8 0x00000048 Code RO 309 i.MX_CAN2_Init can.o + 0x08008430 0x08008430 0x00000078 Code RO 355 i.MX_DMA_Init dma.o + 0x080084a8 0x080084a8 0x00000030 Code RO 241 i.MX_FREERTOS_Init freertos.o + 0x080084d8 0x080084d8 0x000001f0 Code RO 217 i.MX_GPIO_Init gpio.o + 0x080086c8 0x080086c8 0x0000003c Code RO 381 i.MX_I2C1_Init i2c.o + 0x08008704 0x08008704 0x0000003c Code RO 382 i.MX_I2C2_Init i2c.o + 0x08008740 0x08008740 0x00000048 Code RO 429 i.MX_SPI1_Init spi.o + 0x08008788 0x08008788 0x00000048 Code RO 430 i.MX_SPI2_Init spi.o + 0x080087d0 0x080087d0 0x0000006c Code RO 478 i.MX_TIM10_Init tim.o + 0x0800883c 0x0800883c 0x0000004c Code RO 479 i.MX_TIM7_Init tim.o + 0x08008888 0x08008888 0x00000038 Code RO 531 i.MX_USART1_UART_Init usart.o + 0x080088c0 0x080088c0 0x00000040 Code RO 532 i.MX_USART3_UART_Init usart.o + 0x08008900 0x08008900 0x00000004 Code RO 595 i.MemManage_Handler stm32f4xx_it.o + 0x08008904 0x08008904 0x00000190 Code RO 8053 i.Motor_RM_Decode motor_rm.o + 0x08008a94 0x08008a94 0x00000004 Code RO 596 i.NMI_Handler stm32f4xx_it.o + 0x08008a98 0x08008a98 0x000001a4 Code RO 7417 i.PID_Calc pid.o + 0x08008c3c 0x08008c3c 0x000000cc Code RO 7418 i.PID_Init pid.o + 0x08008d08 0x08008d08 0x00000040 Code RO 7419 i.PID_Reset pid.o + 0x08008d48 0x08008d48 0x00000084 Code RO 7711 i.RC_Init bsp_rc.o + 0x08008dcc 0x08008dcc 0x0000005c Code RO 7712 i.RC_restart bsp_rc.o + 0x08008e28 0x08008e28 0x00000028 Code RO 2753 i.SPI_DMAError stm32f4xx_hal_spi.o + 0x08008e50 0x08008e50 0x0000000e Code RO 2754 i.SPI_DMAHalfReceiveCplt stm32f4xx_hal_spi.o + 0x08008e5e 0x08008e5e 0x0000000e Code RO 2755 i.SPI_DMAHalfTransmitCplt stm32f4xx_hal_spi.o + 0x08008e6c 0x08008e6c 0x0000000e Code RO 2756 i.SPI_DMAHalfTransmitReceiveCplt stm32f4xx_hal_spi.o + 0x08008e7a 0x08008e7a 0x0000007c Code RO 2757 i.SPI_DMAReceiveCplt stm32f4xx_hal_spi.o + 0x08008ef6 0x08008ef6 0x00000080 Code RO 2759 i.SPI_DMATransmitCplt stm32f4xx_hal_spi.o + 0x08008f76 0x08008f76 0x00000068 Code RO 2760 i.SPI_DMATransmitReceiveCplt stm32f4xx_hal_spi.o + 0x08008fde 0x08008fde 0x00000094 Code RO 2762 i.SPI_EndRxTransaction stm32f4xx_hal_spi.o + 0x08009072 0x08009072 0x00000002 PAD + 0x08009074 0x08009074 0x00000088 Code RO 2763 i.SPI_EndRxTxTransaction stm32f4xx_hal_spi.o + 0x080090fc 0x080090fc 0x00000018 Code RO 6822 i.SPI_Get spi_1.o + 0x08009114 0x08009114 0x000000d8 Code RO 2768 i.SPI_WaitFlagStateUntilTimeout stm32f4xx_hal_spi.o + 0x080091ec 0x080091ec 0x00000010 Code RO 242 i.StartDefaultTask freertos.o + 0x080091fc 0x080091fc 0x00000014 Code RO 597 i.SysTick_Handler stm32f4xx_it.o + 0x08009210 0x08009210 0x000000b4 Code RO 14 i.SystemClock_Config main.o + 0x080092c4 0x080092c4 0x00000014 Code RO 4394 i.SystemInit system_stm32f4xx.o + 0x080092d8 0x080092d8 0x00000010 Code RO 598 i.TIM7_IRQHandler stm32f4xx_it.o + 0x080092e8 0x080092e8 0x000000e0 Code RO 3131 i.TIM_Base_SetConfig stm32f4xx_hal_tim.o + 0x080093c8 0x080093c8 0x00000022 Code RO 3132 i.TIM_CCxChannelCmd stm32f4xx_hal_tim.o + 0x080093ea 0x080093ea 0x00000002 PAD + 0x080093ec 0x080093ec 0x00000070 Code RO 3144 i.TIM_OC1_SetConfig stm32f4xx_hal_tim.o + 0x0800945c 0x0800945c 0x0000007c Code RO 3145 i.TIM_OC2_SetConfig stm32f4xx_hal_tim.o + 0x080094d8 0x080094d8 0x00000078 Code RO 3146 i.TIM_OC3_SetConfig stm32f4xx_hal_tim.o + 0x08009550 0x08009550 0x00000054 Code RO 3147 i.TIM_OC4_SetConfig stm32f4xx_hal_tim.o + 0x080095a4 0x080095a4 0x0000009c Code RO 8369 i.Task_Init init.o + 0x08009640 0x08009640 0x00000144 Code RO 8403 i.Task_atti_esti atti_esti.o + 0x08009784 0x08009784 0x000000a8 Code RO 8498 i.Task_gimbal_ctrl gimbal_ctrl.o + 0x0800982c 0x0800982c 0x00000080 Code RO 8449 i.Task_remote remote.o + 0x080098ac 0x080098ac 0x00000012 Code RO 4063 i.UART_DMAAbortOnError stm32f4xx_hal_uart.o + 0x080098be 0x080098be 0x0000006c Code RO 4073 i.UART_EndRxTransfer stm32f4xx_hal_uart.o + 0x0800992a 0x0800992a 0x00000020 Code RO 4074 i.UART_EndTransmit_IT stm32f4xx_hal_uart.o + 0x0800994a 0x0800994a 0x00000002 PAD + 0x0800994c 0x0800994c 0x00000018 Code RO 6996 i.UART_Get uart.o + 0x08009964 0x08009964 0x000000fc Code RO 4076 i.UART_Receive_IT stm32f4xx_hal_uart.o + 0x08009a60 0x08009a60 0x0000022c Code RO 4077 i.UART_SetConfig stm32f4xx_hal_uart.o + 0x08009c8c 0x08009c8c 0x00000060 Code RO 4080 i.UART_Transmit_IT stm32f4xx_hal_uart.o + 0x08009cec 0x08009cec 0x00000018 Code RO 599 i.USART3_IRQHandler stm32f4xx_it.o + 0x08009d04 0x08009d04 0x00000018 Code RO 8253 i.USART3_IRQHandler1 remote_control.o + 0x08009d1c 0x08009d1c 0x00000004 Code RO 600 i.UsageFault_Handler stm32f4xx_it.o + 0x08009d20 0x08009d20 0x00000030 Code RO 8943 i.__ARM_fpclassify m_wm.l(fpclassify.o) + 0x08009d50 0x08009d50 0x00000026 Code RO 8883 i.__ARM_fpclassifyf m_wm.l(fpclassifyf.o) + 0x08009d76 0x08009d76 0x00000012 Code RO 7421 i.__ARM_isfinitef pid.o + 0x08009d88 0x08009d88 0x00000010 Code RO 1824 i.__NVIC_GetPriorityGrouping stm32f4xx_hal_cortex.o + 0x08009d98 0x08009d98 0x00000028 Code RO 1825 i.__NVIC_SetPriority stm32f4xx_hal_cortex.o + 0x08009dc0 0x08009dc0 0x00000006 Code RO 5613 i.__get_IPSR cmsis_os2.o + 0x08009dc6 0x08009dc6 0x00000002 PAD + 0x08009dc8 0x08009dc8 0x0000012c Code RO 8744 i.__hardfp_asinf m_wm.l(asinf.o) + 0x08009ef4 0x08009ef4 0x00000004 PAD + 0x08009ef8 0x08009ef8 0x000002d8 Code RO 8849 i.__hardfp_atan m_wm.l(atan.o) + 0x0800a1d0 0x0800a1d0 0x00000200 Code RO 8756 i.__hardfp_atan2 m_wm.l(atan2.o) + 0x0800a3d0 0x0800a3d0 0x000002ac Code RO 8768 i.__hardfp_atan2f m_wm.l(atan2f.o) + 0x0800a67c 0x0800a67c 0x00000150 Code RO 8780 i.__hardfp_cosf m_wm.l(cosf.o) + 0x0800a7cc 0x0800a7cc 0x00000048 Code RO 8804 i.__hardfp_fmaxf m_wm.l(fmaxf.o) + 0x0800a814 0x0800a814 0x0000017c Code RO 8792 i.__hardfp_tanf m_wm.l(tanf.o) + 0x0800a990 0x0800a990 0x000000f8 Code RO 8945 i.__kernel_poly m_wm.l(poly.o) + 0x0800aa88 0x0800aa88 0x00000014 Code RO 8864 i.__mathlib_dbl_infnan m_wm.l(dunder.o) + 0x0800aa9c 0x0800aa9c 0x00000014 Code RO 8865 i.__mathlib_dbl_infnan2 m_wm.l(dunder.o) + 0x0800aab0 0x0800aab0 0x00000020 Code RO 8869 i.__mathlib_dbl_underflow m_wm.l(dunder.o) + 0x0800aad0 0x0800aad0 0x00000006 Code RO 8886 i.__mathlib_flt_infnan m_wm.l(funder.o) + 0x0800aad6 0x0800aad6 0x00000006 Code RO 8887 i.__mathlib_flt_infnan2 m_wm.l(funder.o) + 0x0800aadc 0x0800aadc 0x00000010 Code RO 8888 i.__mathlib_flt_invalid m_wm.l(funder.o) + 0x0800aaec 0x0800aaec 0x00000010 Code RO 8891 i.__mathlib_flt_underflow m_wm.l(funder.o) + 0x0800aafc 0x0800aafc 0x00000154 Code RO 8900 i.__mathlib_rredf2 m_wm.l(rredf.o) + 0x0800ac50 0x0800ac50 0x00000010 Code RO 8851 i.atan m_wm.l(atan.o) + 0x0800ac60 0x0800ac60 0x00000002 Code RO 243 i.configureTimerForRunTimeStats freertos.o + 0x0800ac62 0x0800ac62 0x00000002 PAD + 0x0800ac64 0x0800ac64 0x00000030 Code RO 7598 i.delay_init bsp_delay.o + 0x0800ac94 0x0800ac94 0x00000094 Code RO 5009 i.eTaskGetState tasks.o + 0x0800ad28 0x0800ad28 0x00000018 Code RO 8879 i.fabs m_wm.l(fabs.o) + 0x0800ad40 0x0800ad40 0x00000004 Code RO 244 i.getRunTimeCounterValue freertos.o + 0x0800ad44 0x0800ad44 0x00000048 Code RO 15 i.main main.o + 0x0800ad8c 0x0800ad8c 0x00000016 Code RO 7755 i.map calc_lib.o + 0x0800ada2 0x0800ada2 0x0000001e Code RO 5614 i.osDelay cmsis_os2.o + 0x0800adc0 0x0800adc0 0x00000034 Code RO 5615 i.osDelayUntil cmsis_os2.o + 0x0800adf4 0x0800adf4 0x00000034 Code RO 5623 i.osKernelGetState cmsis_os2.o + 0x0800ae28 0x0800ae28 0x0000001a Code RO 5626 i.osKernelGetTickCount cmsis_os2.o + 0x0800ae42 0x0800ae42 0x00000006 Code RO 5627 i.osKernelGetTickFreq cmsis_os2.o + 0x0800ae48 0x0800ae48 0x0000002c Code RO 5628 i.osKernelInitialize cmsis_os2.o + 0x0800ae74 0x0800ae74 0x00000038 Code RO 5629 i.osKernelLock cmsis_os2.o + 0x0800aeac 0x0800aeac 0x00000060 Code RO 5631 i.osKernelStart cmsis_os2.o + 0x0800af0c 0x0800af0c 0x00000044 Code RO 5632 i.osKernelUnlock cmsis_os2.o + 0x0800af50 0x0800af50 0x00000080 Code RO 5643 i.osMessageQueueGet cmsis_os2.o + 0x0800afd0 0x0800afd0 0x0000009a Code RO 5648 i.osMessageQueueNew cmsis_os2.o + 0x0800b06a 0x0800b06a 0x00000002 PAD + 0x0800b06c 0x0800b06c 0x00000084 Code RO 5649 i.osMessageQueuePut cmsis_os2.o + 0x0800b0f0 0x0800b0f0 0x00000028 Code RO 5650 i.osMessageQueueReset cmsis_os2.o + 0x0800b118 0x0800b118 0x00000062 Code RO 5651 i.osMutexAcquire cmsis_os2.o + 0x0800b17a 0x0800b17a 0x000000b2 Code RO 5654 i.osMutexNew cmsis_os2.o + 0x0800b22c 0x0800b22c 0x0000004e Code RO 5655 i.osMutexRelease cmsis_os2.o + 0x0800b27a 0x0800b27a 0x00000002 PAD + 0x0800b27c 0x0800b27c 0x00000080 Code RO 5665 i.osThreadFlagsSet cmsis_os2.o + 0x0800b2fc 0x0800b2fc 0x000000b2 Code RO 5666 i.osThreadFlagsWait cmsis_os2.o + 0x0800b3ae 0x0800b3ae 0x0000000c Code RO 5668 i.osThreadGetId cmsis_os2.o + 0x0800b3ba 0x0800b3ba 0x000000b8 Code RO 5673 i.osThreadNew cmsis_os2.o + 0x0800b472 0x0800b472 0x0000003c Code RO 5677 i.osThreadTerminate cmsis_os2.o + 0x0800b4ae 0x0800b4ae 0x00000002 PAD + 0x0800b4b0 0x0800b4b0 0x0000007c Code RO 5011 i.prvAddCurrentTaskToDelayedList tasks.o + 0x0800b52c 0x0800b52c 0x000000b8 Code RO 5012 i.prvAddNewTaskToReadyList tasks.o + 0x0800b5e4 0x0800b5e4 0x00000074 Code RO 5425 i.prvCheckForValidListAndQueue timers.o + 0x0800b658 0x0800b658 0x00000048 Code RO 5013 i.prvCheckTasksWaitingTermination tasks.o + 0x0800b6a0 0x0800b6a0 0x0000002a Code RO 4598 i.prvCopyDataFromQueue queue.o + 0x0800b6ca 0x0800b6ca 0x0000007e Code RO 4599 i.prvCopyDataToQueue queue.o + 0x0800b748 0x0800b748 0x00000050 Code RO 5014 i.prvDeleteTCB tasks.o + 0x0800b798 0x0800b798 0x00000014 Code RO 4600 i.prvGetDisinheritPriorityAfterTimeout queue.o + 0x0800b7ac 0x0800b7ac 0x00000028 Code RO 5426 i.prvGetNextExpireTime timers.o + 0x0800b7d4 0x0800b7d4 0x0000007c Code RO 6130 i.prvHeapInit heap_4.o + 0x0800b850 0x0800b850 0x00000028 Code RO 5015 i.prvIdleTask tasks.o + 0x0800b878 0x0800b878 0x0000001e Code RO 4601 i.prvInitialiseMutex queue.o + 0x0800b896 0x0800b896 0x0000002a Code RO 4602 i.prvInitialiseNewQueue queue.o + 0x0800b8c0 0x0800b8c0 0x000000c4 Code RO 5016 i.prvInitialiseNewTask tasks.o + 0x0800b984 0x0800b984 0x00000068 Code RO 5017 i.prvInitialiseTaskLists tasks.o + 0x0800b9ec 0x0800b9ec 0x00000068 Code RO 6131 i.prvInsertBlockIntoFreeList heap_4.o + 0x0800ba54 0x0800ba54 0x00000058 Code RO 5428 i.prvInsertTimerInActiveList timers.o + 0x0800baac 0x0800baac 0x0000001a Code RO 4603 i.prvIsQueueEmpty queue.o + 0x0800bac6 0x0800bac6 0x0000001e Code RO 4604 i.prvIsQueueFull queue.o + 0x0800bae4 0x0800bae4 0x00000074 Code RO 5429 i.prvProcessExpiredTimer timers.o + 0x0800bb58 0x0800bb58 0x00000164 Code RO 5430 i.prvProcessReceivedCommands timers.o + 0x0800bcbc 0x0800bcbc 0x00000074 Code RO 5431 i.prvProcessTimerOrBlockTask timers.o + 0x0800bd30 0x0800bd30 0x00000034 Code RO 5019 i.prvResetNextTaskUnblockTime tasks.o + 0x0800bd64 0x0800bd64 0x0000002c Code RO 5432 i.prvSampleTimeNow timers.o + 0x0800bd90 0x0800bd90 0x000000a4 Code RO 5433 i.prvSwitchTimerLists timers.o + 0x0800be34 0x0800be34 0x00000040 Code RO 6186 i.prvTaskExitError port.o + 0x0800be74 0x0800be74 0x0000001a Code RO 5434 i.prvTimerTask timers.o + 0x0800be8e 0x0800be8e 0x0000007e Code RO 4605 i.prvUnlockQueue queue.o + 0x0800bf0c 0x0800bf0c 0x0000014c Code RO 6132 i.pvPortMalloc heap_4.o + 0x0800c058 0x0800c058 0x00000020 Code RO 5024 i.pvTaskIncrementMutexHeldCount tasks.o + 0x0800c078 0x0800c078 0x0000002c Code RO 6187 i.pxPortInitialiseStack port.o + 0x0800c0a4 0x0800c0a4 0x00000088 Code RO 8309 i.remote_ParseHost ai.o + 0x0800c12c 0x0800c12c 0x00000010 Code RO 8255 i.remote_control_init remote_control.o + 0x0800c13c 0x0800c13c 0x0000020c Code RO 8256 i.sbus_to_rc remote_control.o + 0x0800c348 0x0800c348 0x0000003e Code RO 8905 i.sqrtf m_wm.l(sqrtf.o) + 0x0800c386 0x0800c386 0x00000018 Code RO 7757 i.user_delay_ms calc_lib.o + 0x0800c39e 0x0800c39e 0x00000018 Code RO 7758 i.user_delay_us calc_lib.o + 0x0800c3b6 0x0800c3b6 0x00000028 Code RO 4558 i.uxListRemove list.o + 0x0800c3de 0x0800c3de 0x00000002 PAD + 0x0800c3e0 0x0800c3e0 0x00000018 Code RO 5685 i.vApplicationGetIdleTaskMemory cmsis_os2.o + 0x0800c3f8 0x0800c3f8 0x00000018 Code RO 5686 i.vApplicationGetTimerTaskMemory cmsis_os2.o + 0x0800c410 0x0800c410 0x00000002 Code RO 245 i.vApplicationStackOverflowHook freertos.o + 0x0800c412 0x0800c412 0x0000001a Code RO 4559 i.vListInitialise list.o + 0x0800c42c 0x0800c42c 0x00000006 Code RO 4560 i.vListInitialiseItem list.o + 0x0800c432 0x0800c432 0x00000034 Code RO 4561 i.vListInsert list.o + 0x0800c466 0x0800c466 0x00000018 Code RO 4562 i.vListInsertEnd list.o + 0x0800c47e 0x0800c47e 0x00000002 PAD + 0x0800c480 0x0800c480 0x00000054 Code RO 6189 i.vPortEnterCritical port.o + 0x0800c4d4 0x0800c4d4 0x0000003c Code RO 6190 i.vPortExitCritical port.o + 0x0800c510 0x0800c510 0x000000a4 Code RO 6133 i.vPortFree heap_4.o + 0x0800c5b4 0x0800c5b4 0x00000028 Code RO 6191 i.vPortSetupTimerInterrupt port.o + 0x0800c5dc 0x0800c5dc 0x00000078 Code RO 6192 i.vPortValidateInterruptPriority port.o + 0x0800c654 0x0800c654 0x0000002c Code RO 4611 i.vQueueAddToRegistry queue.o + 0x0800c680 0x0800c680 0x0000004a Code RO 4615 i.vQueueWaitForMessageRestricted queue.o + 0x0800c6ca 0x0800c6ca 0x00000002 PAD + 0x0800c6cc 0x0800c6cc 0x0000005c Code RO 5035 i.vTaskDelay tasks.o + 0x0800c728 0x0800c728 0x000000d4 Code RO 5036 i.vTaskDelayUntil tasks.o + 0x0800c7fc 0x0800c7fc 0x000000c8 Code RO 5037 i.vTaskDelete tasks.o + 0x0800c8c4 0x0800c8c4 0x00000018 Code RO 5041 i.vTaskInternalSetTimeOutState tasks.o + 0x0800c8dc 0x0800c8dc 0x0000000c Code RO 5043 i.vTaskMissedYield tasks.o + 0x0800c8e8 0x0800c8e8 0x00000038 Code RO 5045 i.vTaskPlaceOnEventList tasks.o + 0x0800c920 0x0800c920 0x00000040 Code RO 5046 i.vTaskPlaceOnEventListRestricted tasks.o + 0x0800c960 0x0800c960 0x000000d0 Code RO 5048 i.vTaskPriorityDisinheritAfterTimeout tasks.o + 0x0800ca30 0x0800ca30 0x000000bc Code RO 5054 i.vTaskStartScheduler tasks.o + 0x0800caec 0x0800caec 0x00000010 Code RO 5056 i.vTaskSuspendAll tasks.o + 0x0800cafc 0x0800cafc 0x00000104 Code RO 5057 i.vTaskSwitchContext tasks.o + 0x0800cc00 0x0800cc00 0x00000168 Code RO 6193 i.xPortStartScheduler port.o + 0x0800cd68 0x0800cd68 0x00000034 Code RO 6194 i.xPortSysTickHandler port.o + 0x0800cd9c 0x0800cd9c 0x00000022 Code RO 4618 i.xQueueCreateMutex queue.o + 0x0800cdbe 0x0800cdbe 0x0000002a Code RO 4619 i.xQueueCreateMutexStatic queue.o + 0x0800cde8 0x0800cde8 0x0000005a Code RO 4620 i.xQueueGenericCreate queue.o + 0x0800ce42 0x0800ce42 0x000000e0 Code RO 4621 i.xQueueGenericCreateStatic queue.o + 0x0800cf22 0x0800cf22 0x00000002 PAD + 0x0800cf24 0x0800cf24 0x00000098 Code RO 4622 i.xQueueGenericReset queue.o + 0x0800cfbc 0x0800cfbc 0x000001a8 Code RO 4623 i.xQueueGenericSend queue.o + 0x0800d164 0x0800d164 0x000000fc Code RO 4624 i.xQueueGenericSendFromISR queue.o + 0x0800d260 0x0800d260 0x00000048 Code RO 4628 i.xQueueGiveMutexRecursive queue.o + 0x0800d2a8 0x0800d2a8 0x00000168 Code RO 4633 i.xQueueReceive queue.o + 0x0800d410 0x0800d410 0x000000ca Code RO 4634 i.xQueueReceiveFromISR queue.o + 0x0800d4da 0x0800d4da 0x00000002 PAD + 0x0800d4dc 0x0800d4dc 0x000001b8 Code RO 4635 i.xQueueSemaphoreTake queue.o + 0x0800d694 0x0800d694 0x0000004e Code RO 4636 i.xQueueTakeMutexRecursive queue.o + 0x0800d6e2 0x0800d6e2 0x00000002 PAD + 0x0800d6e4 0x0800d6e4 0x0000008c Code RO 5059 i.xTaskCheckForTimeOut tasks.o + 0x0800d770 0x0800d770 0x00000064 Code RO 5060 i.xTaskCreate tasks.o + 0x0800d7d4 0x0800d7d4 0x000000ba Code RO 5061 i.xTaskCreateStatic tasks.o + 0x0800d88e 0x0800d88e 0x00000002 PAD + 0x0800d890 0x0800d890 0x00000128 Code RO 5062 i.xTaskGenericNotify tasks.o + 0x0800d9b8 0x0800d9b8 0x00000164 Code RO 5063 i.xTaskGenericNotifyFromISR tasks.o + 0x0800db1c 0x0800db1c 0x0000000c Code RO 5064 i.xTaskGetCurrentTaskHandle tasks.o + 0x0800db28 0x0800db28 0x00000020 Code RO 5066 i.xTaskGetSchedulerState tasks.o + 0x0800db48 0x0800db48 0x0000000c Code RO 5067 i.xTaskGetTickCount tasks.o + 0x0800db54 0x0800db54 0x00000014 Code RO 5068 i.xTaskGetTickCountFromISR tasks.o + 0x0800db68 0x0800db68 0x00000144 Code RO 5069 i.xTaskIncrementTick tasks.o + 0x0800dcac 0x0800dcac 0x000000a0 Code RO 5071 i.xTaskNotifyWait tasks.o + 0x0800dd4c 0x0800dd4c 0x000000a4 Code RO 5072 i.xTaskPriorityDisinherit tasks.o + 0x0800ddf0 0x0800ddf0 0x000000a4 Code RO 5073 i.xTaskPriorityInherit tasks.o + 0x0800de94 0x0800de94 0x00000098 Code RO 5074 i.xTaskRemoveFromEventList tasks.o + 0x0800df2c 0x0800df2c 0x00000104 Code RO 5075 i.xTaskResumeAll tasks.o + 0x0800e030 0x0800e030 0x00000078 Code RO 5443 i.xTimerCreateTimerTask timers.o + 0x0800e0a8 0x0800e0a8 0x00000084 Code RO 5444 i.xTimerGenericCommand timers.o + 0x0800e12c 0x0800e12c 0x00000018 Code RO 8716 x$fpl$basic fz_wm.l(basic.o) + 0x0800e144 0x0800e144 0x00000062 Code RO 8718 x$fpl$d2f fz_wm.l(d2f.o) + 0x0800e1a6 0x0800e1a6 0x00000002 PAD + 0x0800e1a8 0x0800e1a8 0x00000150 Code RO 8828 x$fpl$dadd fz_wm.l(daddsub_clz.o) + 0x0800e2f8 0x0800e2f8 0x00000018 Code RO 8939 x$fpl$dcmpinf fz_wm.l(dcmpi.o) + 0x0800e310 0x0800e310 0x000002b0 Code RO 8721 x$fpl$ddiv fz_wm.l(ddiv.o) + 0x0800e5c0 0x0800e5c0 0x00000078 Code RO 8834 x$fpl$deqf fz_wm.l(deqf.o) + 0x0800e638 0x0800e638 0x0000005e Code RO 8724 x$fpl$dfix fz_wm.l(dfix.o) + 0x0800e696 0x0800e696 0x00000002 PAD + 0x0800e698 0x0800e698 0x0000005a Code RO 8728 x$fpl$dfixu fz_wm.l(dfixu.o) + 0x0800e6f2 0x0800e6f2 0x0000002e Code RO 8733 x$fpl$dflt fz_wm.l(dflt_clz.o) + 0x0800e720 0x0800e720 0x00000026 Code RO 8732 x$fpl$dfltu fz_wm.l(dflt_clz.o) + 0x0800e746 0x0800e746 0x00000002 PAD + 0x0800e748 0x0800e748 0x00000154 Code RO 8738 x$fpl$dmul fz_wm.l(dmul.o) + 0x0800e89c 0x0800e89c 0x0000009c Code RO 8836 x$fpl$dnaninf fz_wm.l(dnaninf.o) + 0x0800e938 0x0800e938 0x0000000c Code RO 8838 x$fpl$dretinf fz_wm.l(dretinf.o) + 0x0800e944 0x0800e944 0x00000016 Code RO 8829 x$fpl$drsb fz_wm.l(daddsub_clz.o) + 0x0800e95a 0x0800e95a 0x00000002 PAD + 0x0800e95c 0x0800e95c 0x000001d4 Code RO 8830 x$fpl$dsub fz_wm.l(daddsub_clz.o) + 0x0800eb30 0x0800eb30 0x00000056 Code RO 8740 x$fpl$f2d fz_wm.l(f2d.o) + 0x0800eb86 0x0800eb86 0x00000002 PAD + 0x0800eb88 0x0800eb88 0x00000052 Code RO 8840 x$fpl$fcmp4 fz_wm.l(fcmp4.o) + 0x0800ebda 0x0800ebda 0x00000018 Code RO 8941 x$fpl$fcmpinf fz_wm.l(fcmpi.o) + 0x0800ebf2 0x0800ebf2 0x00000060 Code RO 8742 x$fpl$ffltll fz_wm.l(ffltll_clz.o) + 0x0800ec52 0x0800ec52 0x0000008c Code RO 8844 x$fpl$fnaninf fz_wm.l(fnaninf.o) + 0x0800ecde 0x0800ecde 0x0000000a Code RO 9032 x$fpl$fpinit fz_wm.l(fpinit.o) + 0x0800ece8 0x0800ece8 0x0000000a Code RO 8846 x$fpl$fretinf fz_wm.l(fretinf.o) + 0x0800ecf2 0x0800ecf2 0x00000000 Code RO 8848 x$fpl$usenofp fz_wm.l(usenofp.o) + 0x0800ecf2 0x0800ecf2 0x00000002 PAD + 0x0800ecf4 0x0800ecf4 0x00000024 Data RO 246 .constdata freertos.o + 0x0800ed18 0x0800ed18 0x00000008 Data RO 1538 .constdata stm32f4xx_hal_dma.o + 0x0800ed20 0x0800ed20 0x00000018 Data RO 4395 .constdata system_stm32f4xx.o + 0x0800ed38 0x0800ed38 0x00000038 Data RO 6519 .constdata gpio_1.o + 0x0800ed70 0x0800ed70 0x00000008 Data RO 6734 .constdata pwm.o + 0x0800ed78 0x0800ed78 0x00000020 Data RO 8405 .constdata atti_esti.o + 0x0800ed98 0x0800ed98 0x00000090 Data RO 8532 .constdata user_task.o + 0x0800ee28 0x0800ee28 0x00000098 Data RO 8852 .constdata m_wm.l(atan.o) + 0x0800eec0 0x0800eec0 0x00000008 Data RO 8899 .constdata m_wm.l(qnan.o) + 0x0800eec8 0x0800eec8 0x00000020 Data RO 8901 .constdata m_wm.l(rredf.o) + 0x0800eee8 0x0800eee8 0x0000000c Data RO 247 .conststring freertos.o + 0x0800eef4 0x0800eef4 0x0000002a Data RO 8533 .conststring user_task.o + 0x0800ef1e 0x0800ef1e 0x00000002 PAD + 0x0800ef20 0x0800ef20 0x00000020 Data RO 9090 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800f010, Size: 0x00008730, Max: 0x0001c000, ABSOLUTE, COMPRESSED[0x00000070]) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800ef40, Size: 0x00008730, Max: 0x0001c000, ABSOLUTE, COMPRESSED[0x00000070]) Exec Addr Load Addr Size Type Attr Idx E Section Name Object @@ -5735,7 +5736,7 @@ Memory Map of the image 0x20008330 - 0x00000400 Zero RW 1 STACK startup_stm32f407xx.o - Execution Region RW_IRAM2 (Exec base: 0x2001c000, Load base: 0x0800f080, Size: 0x00000000, Max: 0x00004000, ABSOLUTE) + Execution Region RW_IRAM2 (Exec base: 0x2001c000, Load base: 0x0800efb0, Size: 0x00000000, Max: 0x00004000, ABSOLUTE) **** No section assigned to this execution region **** @@ -5748,8 +5749,8 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name 4242 76 0 4 0 9382 ahrs.o - 136 18 0 0 0 8627 ai.o - 324 52 32 0 220 8025 atti_esti.o + 136 18 0 0 0 8607 ai.o + 324 52 32 0 220 8005 atti_esti.o 1280 92 0 9 19 12666 bmi088.o 48 16 0 8 0 583613 bsp_delay.o 224 28 0 0 0 1555 bsp_rc.o @@ -5758,12 +5759,12 @@ Image component sizes 2652 204 0 16 2168 25071 can_1.o 0 0 0 0 0 628 cmd.o 1854 56 0 4 1736 63560 cmsis_os2.o - 8 4 0 336 0 5358 config.o + 8 4 0 336 0 5338 config.o 120 6 0 0 0 818 dma.o 0 0 0 0 0 19160 event_groups.o 500 22 0 0 0 8108 filter.o 72 20 48 4 0 3402 freertos.o - 1758 24 0 0 0 7382 gimbal.o + 1546 22 0 0 0 7246 gimbal.o 168 28 0 0 740 1274 gimbal_ctrl.o 496 20 0 0 0 1239 gpio.o 336 28 56 0 64 4927 gpio_1.o @@ -5780,7 +5781,7 @@ Image component sizes 1014 92 0 12 0 11673 port.o 216 12 8 0 0 2302 pwm.o 2930 26 0 0 64 25955 queue.o - 128 24 0 0 36 6325 remote.o + 128 24 0 0 36 6305 remote.o 628 36 0 0 49 4604 remote_control.o 604 54 0 0 368 2592 spi.o 616 56 0 0 64 8650 spi_1.o @@ -5810,7 +5811,7 @@ Image component sizes 0 0 186 0 80 1777 user_task.o ---------------------------------------------------------------------- - 52540 2698 788 544 33964 1843514 Object Totals + 52328 2696 788 544 33964 1843298 Object Totals 0 0 32 0 0 0 (incl. Generated) 70 0 2 6 4 0 (incl. Padding) @@ -5884,8 +5885,8 @@ Image component sizes 380 58 0 0 0 200 tanf.o ---------------------------------------------------------------------- - 7936 680 192 0 100 7424 Library Totals - 20 0 0 0 4 0 (incl. Padding) + 7940 684 192 0 100 7424 Library Totals + 24 4 0 0 4 0 (incl. Padding) ---------------------------------------------------------------------- @@ -5896,7 +5897,7 @@ Image component sizes 3904 460 192 0 0 3076 m_wm.l ---------------------------------------------------------------------- - 7936 680 192 0 100 7424 Library Totals + 7940 684 192 0 100 7424 Library Totals ---------------------------------------------------------------------- @@ -5905,15 +5906,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 60476 3378 980 544 34064 1806366 Grand Totals - 60476 3378 980 112 34064 1806366 ELF Image Totals (compressed) - 60476 3378 980 112 0 0 ROM Totals + 60268 3380 980 544 34064 1806150 Grand Totals + 60268 3380 980 112 34064 1806150 ELF Image Totals (compressed) + 60268 3380 980 112 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 61456 ( 60.02kB) + Total RO Size (Code + RO Data) 61248 ( 59.81kB) Total RW Size (RW Data + ZI Data) 34608 ( 33.80kB) - Total ROM Size (Code + RO Data + RW Data) 61568 ( 60.13kB) + Total ROM Size (Code + RO Data + RW Data) 61360 ( 59.92kB) ============================================================================== diff --git a/MDK-ARM/gimbal/gimbal.o b/MDK-ARM/gimbal/gimbal.o index ccaed50a6772e590c9e2f63342775659c1c5da56..7317f76973a992658c194a78221354fe0b808b90 100644 GIT binary patch delta 15031 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 delta 15108 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 diff --git a/MDK-ARM/gimbal/gimbal_ctrl.crf b/MDK-ARM/gimbal/gimbal_ctrl.crf index cbe617665445435f147c027c6ffe907c299863a2..9e5853132d8b0a916ca63e59aca50e9b44fc807a 100644 GIT binary patch delta 5117 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 KcKnl16#O5Lh$0XG diff --git a/MDK-ARM/gimbal/gimbal_ctrl.o b/MDK-ARM/gimbal/gimbal_ctrl.o index e46b2eba80129734c9fcc73724977d2cf5de9829..63a29f4971b9abfa5bb52928193d7459d707c64b 100644 GIT binary patch delta 1379 zcmZ|NUr5_m6bJC%&7Z0w zI((R{W0hrgDZ+Pl4ra+q!3PE5S0ONDfzi!}wb+e-g#~;OgiZ(r#fP2K^sV;c@PYH^ z{_e@m{rstP{?re(BD>(S*lL<zLwt~FQr-;Me_9=+Y&{pA+}*GEoYj_M5!sCXjZ zz_T?Ot?c(cuXpR8oaq~gpC3NoXIyF}BN9aIZnopcC^BRc?$p)bIAaZWcPIoO{h0V~12uzVf5h##eRf+@6E~)~kX~ z+{ELH>ZqxZ!p=o?OjzL3)p4umw$#ROxK$k$bBI$$bYq$sz%tjTe&qVw7nBIW7;4-CumtFgAmh*QKlWUOcD>66>KrFZDs|ot3(1pCW$z+h-oH+Wo8u{gxvf` yYByi(?hrT^Q3q+PWtci@5N1{}!O%N1`;lY1Ag&P!oM5I9VumrwoW|@mRsBCgd#XVI delta 1930 zcmZwHeMnnZ6aeu15~Ha$_olXiICZ2|wD>Xd;rEu!*g7q3G~0AYM;5=*#?{y|w$gzz zrAUPttL-00HU*^}_(wY|2rqwF7Ny%9=$3AUWvqf_V-vO(9c6T-ZaX*kg(ob3+?>n% zopaB9_vO9o51io#&T)$ryLB)nJ*V7ax7y1O5sCPGEyvvTKA+`~-Bx3(uCduJy3#MX z(j^=k99kSHICMBtairnUjJD_k+M>VG;FSL6Eb z$E&Y4Nk+NwQ#xLm*;;YRZngT#Dl3Ccb?4u$JL8A1@6!)6UAFl3E{EOI*!*hm$(}O# zm1+$v3&#JXdfEMq23V3>z}hT%BZD<1TR_GIe&3s0tROt%%R$8%2yJ>ksi8h$lZPVX5*~F^k%zDOh@& zC@~U3UXTbGgQaSgtuy1L5*VssdAg%G?T3A>EFZi+R%qy*RI@`OyB{x=z+ErP zPr+F~%vNFY4o@bZsL6vO*@&0SV(G&;orjJ}>=MK2eb{!e{jku^jE03NweS+SUSc^Z zc;x`xa$yskjmFEQZg6(6LMaFQJmfWUaq&QJC&1DNEv6>?;8vQan^0NX%U|FRXMbRKQPhrsp%9gU+5g}0saUpjo z8Byf8kP%qtGJ|qKkvCwX8@FwS($grGFVsG5qNWN4xOh+!+x7}+gEcPacGdV3eR2c5 z&n^iH2}6)e48@}C;C&(ZB)FKrRCh2S#0rKUl<-%o3=4^ZmrL6UC1I_2HA3T^HhkhgN$MIjro&gBWpj3Rf0OhRcdivBJoRm!ech19|T zm+*ILpL;^0u*QXauL{1s{9kH@+#t%_F8M`B1cF>PQNqd&{tz+)x4Fdb;pu3^xjh!L z0fs)5kss7P&k{9W6nqVbd5FSIp0~LxZx2lLv1|>A!9RWYxJF`>%qea6#YwV)`z$Z| tQT?B135mfpm%~4)$9Pak03M>?=fQLi!yGtyxCnj>x;O2N48^};{{g%!2|oY; diff --git a/MDK-ARM/gimbal/gimbal_gimbal.dep b/MDK-ARM/gimbal/gimbal_gimbal.dep index d8849e6..2ff2cb7 100644 --- a/MDK-ARM/gimbal/gimbal_gimbal.dep +++ b/MDK-ARM/gimbal/gimbal_gimbal.dep @@ -1694,6 +1694,14 @@ I (D:\KEIL_MDK\ARM\ARMCC\include\float.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\math.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\string.h)(0x5E8E3CC2) +F (..\User\component\filter.c)(0x68E90EBF)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module -I.\RTE\_gimbal -ID:\KEIL_MDK\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o gimbal\filter.o --omf_browse gimbal\filter.crf --depend gimbal\filter.d) +I (..\User\component\filter.h)(0x68E90EBF) +I (..\User\component\user_math.h)(0x68E90EBF) +I (D:\KEIL_MDK\ARM\ARMCC\include\float.h)(0x5E8E3CC2) +I (D:\KEIL_MDK\ARM\ARMCC\include\math.h)(0x5E8E3CC2) +I (D:\KEIL_MDK\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) +I (D:\KEIL_MDK\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) +I (D:\KEIL_MDK\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) F (..\User\component\crc8.c)(0x68E90EBF)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module -I.\RTE\_gimbal -ID:\KEIL_MDK\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o gimbal\crc8.o --omf_browse gimbal\crc8.crf --depend gimbal\crc8.d) I (..\User\component\crc8.h)(0x68E90EBF) I (D:\KEIL_MDK\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) @@ -1707,14 +1715,6 @@ I (D:\KEIL_MDK\ARM\ARMCC\include\float.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\math.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) -F (..\User\component\filter.c)(0x68E90EBF)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module -I.\RTE\_gimbal -ID:\KEIL_MDK\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o gimbal\filter.o --omf_browse gimbal\filter.crf --depend gimbal\filter.d) -I (..\User\component\filter.h)(0x68E90EBF) -I (..\User\component\user_math.h)(0x68E90EBF) -I (D:\KEIL_MDK\ARM\ARMCC\include\float.h)(0x5E8E3CC2) -I (D:\KEIL_MDK\ARM\ARMCC\include\math.h)(0x5E8E3CC2) -I (D:\KEIL_MDK\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) -I (D:\KEIL_MDK\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) -I (D:\KEIL_MDK\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) F (..\User\component\freertos_cli.c)(0x68E90EBF)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module -I.\RTE\_gimbal -ID:\KEIL_MDK\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o gimbal\freertos_cli.o --omf_browse gimbal\freertos_cli.crf --depend gimbal\freertos_cli.d) I (D:\KEIL_MDK\ARM\ARMCC\include\string.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) @@ -2126,7 +2126,7 @@ I (D:\KEIL_MDK\ARM\ARMCC\include\math.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) -I (../User/module/gimbal.h)(0x68EF9D8A) +I (../User/module/gimbal.h)(0x68F1F21B) I (../User/component/ahrs.h)(0x68E90EBF) I (../User/component/filter.h)(0x68E90EBF) I (../User/component/pid.h)(0x68E90EBF) @@ -2203,7 +2203,7 @@ I (../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.h I (../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/include/task.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/include/list.h)(0x68B055DB) -I (../User/module/gimbal.h)(0x68EF9D8A) +I (../User/module/gimbal.h)(0x68F1F21B) I (../User/component/ahrs.h)(0x68E90EBF) I (../User/component/user_math.h)(0x68E90EBF) I (D:\KEIL_MDK\ARM\ARMCC\include\float.h)(0x5E8E3CC2) @@ -2314,7 +2314,7 @@ I (../User/component/pid.h)(0x68E90EBF) I (../User/component/filter.h)(0x68E90EBF) I (../User/device/bmi088.h)(0x68E90E66) I (../User/device/device.h)(0x68E90EBF) -I (../User/module/gimbal.h)(0x68EF9D8A) +I (../User/module/gimbal.h)(0x68F1F21B) I (../User/device/motor.h)(0x68E90E66) I (../User/device/motor_rm.h)(0x68E90E66) I (../User/bsp/can.h)(0x68E90EBF) @@ -2344,7 +2344,7 @@ I (../User/component\user_math.h)(0x68E90EBF) I (D:\KEIL_MDK\ARM\ARMCC\include\float.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\math.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) -I (../User/module/gimbal.h)(0x68EF9D8A) +I (../User/module/gimbal.h)(0x68F1F21B) I (../User/component/ahrs.h)(0x68E90EBF) I (../User/component/filter.h)(0x68E90EBF) I (../User/component/pid.h)(0x68E90EBF) @@ -2403,7 +2403,7 @@ I (../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.h I (../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/include/task.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/include/list.h)(0x68B055DB) -I (../User/module/gimbal.h)(0x68EF9D8A) +I (../User/module/gimbal.h)(0x68F1F21B) I (../User/component/ahrs.h)(0x68E90EBF) I (../User/component/user_math.h)(0x68E90EBF) I (D:\KEIL_MDK\ARM\ARMCC\include\float.h)(0x5E8E3CC2) @@ -2469,8 +2469,8 @@ I (../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.h I (../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/include/task.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/include/list.h)(0x68B055DB) -F (..\User\module\gimbal.c)(0x68F0FB56)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module -I.\RTE\_gimbal -ID:\KEIL_MDK\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o gimbal\gimbal.o --omf_browse gimbal\gimbal.crf --depend gimbal\gimbal.d) -I (..\User\module\gimbal.h)(0x68EF9D8A) +F (..\User\module\gimbal.c)(0x68F1F68E)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module -I.\RTE\_gimbal -ID:\KEIL_MDK\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o gimbal\gimbal.o --omf_browse gimbal\gimbal.crf --depend gimbal\gimbal.d) +I (..\User\module\gimbal.h)(0x68F1F21B) I (../User/component/ahrs.h)(0x68E90EBF) I (../User/component/user_math.h)(0x68E90EBF) I (D:\KEIL_MDK\ARM\ARMCC\include\float.h)(0x5E8E3CC2) @@ -2532,7 +2532,7 @@ I (../Middlewares/Third_Party/FreeRTOS/Source/include/task.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/include/list.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.h)(0x68B055DB) I (../User/bsp/time.h)(0x68E90EBF) -F (..\User\module\config.c)(0x68EF9D67)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module -I.\RTE\_gimbal -ID:\KEIL_MDK\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o gimbal\config.o --omf_browse gimbal\config.crf --depend gimbal\config.d) +F (..\User\module\config.c)(0x68F1F28F)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module -I.\RTE\_gimbal -ID:\KEIL_MDK\ARM\CMSIS\5.7.0\CMSIS\Core\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o gimbal\config.o --omf_browse gimbal\config.crf --depend gimbal\config.d) I (../User/component/user_math.h)(0x68E90EBF) I (D:\KEIL_MDK\ARM\ARMCC\include\float.h)(0x5E8E3CC2) I (D:\KEIL_MDK\ARM\ARMCC\include\math.h)(0x5E8E3CC2) @@ -2592,7 +2592,7 @@ I (../Middlewares/Third_Party/FreeRTOS/Source/include/task.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/include/list.h)(0x68B055DB) I (../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.h)(0x68B055DB) I (../User/device/motor_lk.h)(0x68E90E66) -I (../User/module/gimbal.h)(0x68EF9D8A) +I (../User/module/gimbal.h)(0x68F1F21B) I (../User/component/ahrs.h)(0x68E90EBF) I (../User/component/filter.h)(0x68E90EBF) I (../User/component/pid.h)(0x68E90EBF) diff --git a/MDK-ARM/gimbal/init.crf b/MDK-ARM/gimbal/init.crf index 62137a762ecd6f403b1dcc692702c7d894bc317a..e1510000e6dee73adb3f419c42b06692cbf6cd00 100644 GIT binary patch delta 3149 zcmZvfe^6A{702&o7j}8T1rtp`ARI_B0##8F7i4h(Nlh%ZsdgsS=w^jQ39O5-lxkyn z#uzZ>myMa%3AR#a`h)h5fbGmqTl2%tG&+q+tZhSgZK@e#jWLNaHP)KMe$VcEYbi2w z?|km}o^$TK=iK{txG+$4XrL-%ToWQmiiX_>q}Vf>amc0(o;`dxMd0uC?c=uoahpU- zLSwe0C8MRFInbPFso`;(cG6`WsnIH{KNyk8fnbYYY=}$~G_^dI}7>i_@?lGlpqc~ygbZf4AK1DRxdjr8xuuJ4|v^=ch zWF7HMJ^T4>rFR%#xHV_rHFF{u@UQoYV#|Rn-M4XlhhN+?LFWbH_9c__xP4h9JH9Z- z$>4>*?e7RSw}m!~-$Zh5PN{G4oWHrn8~58Y!H?HT_`N*AkEd?B{UDMRkEti&p!UwT z7SV(w<}8V2c>Acd2YW)IjIAssdHv?Dpm;4pHxo3iBiQTh^mTW8n|ngR)>dz8mw%HO z;6SdJTR#GEk!B~d&kD98=2>}&B|6}5-r(KhM|?Ls`(nz1#5h0=CqHLX@a{Ae}cd`oG z&5=9JogqRx$K~Cz{rOwZd;?AwCQMoNWv8>Zo`KIfp5cp1I9B=!f5`jQwg8q33EjBj z(W>(Ij>>q&46D@XEctsny2OyNtWK*;9YQ+W0zKje=e&Z0W$ia}euHzKP&kja$P{xy zxTVBjONQ}Qowg|VXQq=%6p9sgy3LqXuT|amOXQ-%*WK>z^|kwZI>p|IGP8skTT4jn z;NaQ(xFMu;`nr4pQP2A>f+nHGzX8L>k1slNT)eOJ5$iBdSzBevj&zIZk*V>mX2UbJ z+aKx-wrvcFS7SxT8+P>7{CYJ0y5o;%xpf&6di=3AP0+cTar+gM^tk;4)??&26Cd#z z>oM}wDrFTp9`E1;KVB#Ch~NERKgClwAMtBeWl!61(AXoc@&>O%;E*gxttw*F@>FXwvI)5 z-Q3w5*3M!IdyYl!i0{k;$F$bAj*!30%U`0SmZ_6Z%F0!%$Sx?Ut$u&YI$v|UxD>vt zQ9G8Lv-5zoHE$68eA8;MXci0Iz2f1peVI0%lzc+!awvSJNt=LNpgz6+rixv z+zoKIle;Im+l8(teC(*^mChE7{kq)IUvXSROG8T!R~*l13^?ats$7@vgtskHFUs6Z zadAYd0#ZfLx9GAf>Ja!nRfROysC27>ye#oChQ$=iLPM!8qp-kFrkY8`#wNF#Hn&(@ z!LW?fv%HPxxZBO$_qltXyFKV!aKo2L&8A!<>{d;-g`^pdS~bU3OIwYqT2*XoppfBX zSW4~2&RSJvTTW|@Kh&z#4`hkKQK?pu>P0v%&vk^u=Sw|A_kw;1T0=`fKLV|#`sh@# z59B4a4h~$!h7w(-!T=vDW^}JZL&;p!Yy|3a(hblDpd$Jl^dabO;!F1t=u31B zbO}^USEGFn@iA})U4eKRG?OlaJ^_``CD6Y>rSu`_3aE@Of<6U(nJ$2?f@aZq(7!>m z=^W@9XbznP{RdP|?|`m@=F(}=55MExHE(=kVr=hIWZ^ bp98}FW$Xz5EHq4~hFp1l+>U=AMA3f%O6R{4 delta 3224 zcmZvf4RBP|702)0-DEc}$xD!rBy4~KNFV_uG>{MSwMn1>CP52KTMM#Xl1)gnn@y9A zfZExIAVI)ZN#Tv60@|r)J0qdf*^W^tGo67E44}4+yR~AGQjmZsf>Ol(&+gl$F=Xc6 z`Mv)==ic+qx##WV$d;0eTS`&~6d_Df)a*DYMNe<)5wo(j@6gdifxo1U1Lp1lv&1lA zFk3JZFcLAW7&eTg;DA|quQ+?G$mX5IJ++JKtE=jq_4m(TfNA;tOGTglTA5Nb@A3he z;Po}SMRRDhpiz^gus~88-5$Tox!$!_EW3-|-r^TO((UC+q5X>k(&BZk6aAqy!#$$3 zw24!?r(7wXdIP(`-s$!EeI3HiyJh1P8|&EL&@*~A1^oo`JSrKcv zj{3KiiY>4MJ8(w$c03Z_A+F+vJT^q-q_geA!&TU>3uPFQVTTmnm!o6*^LJla3a1N0 zmSR<9r?YoofzLT!;TuYLt(0YMzq78zi{tzvpbt2dl5sD@YPBm?;1rhJU7ilHN58L1 zDNNdjbhdcA#BF3FYYuOg{<4wt+nn>b!g(}>Mi>XeEiu|ADf$~#N~wLn;glLL6f5jB zLQk(&N*4Vdx$w9;Tb*lNt?sUNu{)$1S;C6B(Jwaf=9vh<0wJ;8)#37rDvo;+Gzl%* z{QLENmuy+Z99K$j>}9saLS@NZ8#%yfJP^5v1hN)~@8oO!iox--UhWpK3 zSJ-Ft{@88F=Yo3pY6>$)rtg`rBs_G~i0tiHWW)-4_J_tqBXhtpxv9nDcXv4XD|9?& zYU4L$<$A2l#ZZ!(-0sHJu7*}|B`6mt?<8bxJt)l$Ys6;0Yh_4BIt!g^g)?}5u`*yv zcvot2Pw+4GN{%V>09ftg=`Eg)VX8{dROuvGW zjFA!?)1SJ)Ys<&dY)zgCHk7K*NxM~C!f(d}niEbFgCHVxGAtg|WSgE@u1;8O6;~lo zq1uTJ75L#)b7?Z@8Yqt@g1!VzrwQRH;yP#ssZVo!&+xQ^ryibu z&C^ay`TDcvYQ4FTlJyJa>MU~^1$29bI>lT~U3v{eEqV0T3bn+%gq->-73zu~SjBEM z&4aWUK|K#zLFzhe$A!Cr0Pty3AENo77eTA28ng%GBu99Z*bDk8si;?^zBRd;OwgBA zss#(I;mySM{9^b-87iq%-=U zL!B0QQPTTin>Y^Ny^>A?PXPBxIvJiQ-T}TWDe}_axvlCc1Ts0CB>G{)Nm&U#Y48g0 zDR3|J2f?Qeo%vlbU;KLTd%c0^LmeL8#{xIQBJf`gUI_l1!L{JOgSl5q!2<@*1Aky} z2{;7i;PSy?gJ*@4#XowbW27b>qfoVE@nNs5f>EH#L~i8npLk58@t}`D>68sR0~$eN zVf=BgtcG#5iJVB#zwm@!Jpw!%#Xkc-iQ-}4IbfnD-va&{Xw_sN@O%{Cz|Q|cD4CQ3 z3S0n=r6k}*P&OrkJ_U^<3+NJPJefd)pow%FbQv^>Zh@|VCeuyOXP|rOE6`QY6uJ)j z9F#-XKwp5S(N)kjP%d2oeF@5=!2s|&a5{Yox&fL&7eHTuX3}}k*P#389Ox!!7M%tC z7nDyQgKmLl(?_6hK;NSeLAOB#6b5|@nnNFew1d(ymwpJ^04k*ApvOUhB3cUE2%JYt zK$}3NR2Npn6QDA3RMLLPoAFRVwV-a0Bhq+VK-E+Q?MYA#Rf6!zb$p*nLEAvJR07%# zT1Z9s`aA_%OpcYBteLJ!LQ%?p32C_|kAi;%{D~&Hm`?*&Xz~#786X_qL`3+%qh>7C O*yYUu3;q)kll})fY}WAr diff --git a/MDK-ARM/gimbal/init.o b/MDK-ARM/gimbal/init.o index f10839b7be39c93331cab238fbd3913b405a8d28..a50fdc7913fe572bae182f36eea0597037095987 100644 GIT binary patch delta 1284 zcmZwEUrbw790%}oZdY37dTyCR%QmwD6UXL~+ZLpqSt6Nc)JRqq9)K}#yRku;7)aEN zL?dKdEGV&a4`1*>VGl-(5BBMH{|xnMMA5Pk0>%eFQ?j0^%&I-Dwnn7RD}_F84F|TcI7@>SWLz2YkoCj3dPS36*gK&bq=~i()o$;#9en7(r|&BdzL`*!a===dP#e;IUD_VM zhvg5|aho`J1&v7+uzHhfp~4Yp3I-1c#I@0I=-TtrZC$#q3O4KQ&(s(GU9GP z{cl}(ITRU)#DnI3%ic_>dF{wlX?;O+jBS!zVzosyLiiYe!ire0g zmH41IUVaJLP5U}f&qUG2Y{M|)#7wC-PiTdk_^q2}Bv5slnrSpMbBGhJ{4FJ%LWo0B z2q*sT*7s zbilsi0rYrN9Jq@Nlf!y3cV{#A?0>mXlmcGFm=TOIlSmO-;cNUDrH9Nx#%R@pdS)7J zOd7+Cff*)z8C z>2Lv)$!txFyp}xGmR;x1({NBolyDZ%@^1$@lUtD co319*PeJ<5Obf=CC{j!VR+)at3;L7)0vBzKWB>pF delta 1772 zcmZ{ke@t6d6vyv-ZK1fndtqxGhGH5Z%xrX)QsTA@1?^-g4Vz(q2rUn=LRrcj3ns*{ zIh90*G-D2P*a9k=7=Mwt1oJeblg*jpLlg+1!z+O=4@%#LhMMNU1+E^Fbp{kxDfBClZ@@;_^()JhA zb_qkquwYm*Y#3P>*%+MXVBCSR2E&1&XlXlLIxLOC>=8Qc@>q7&c6GP6#np#GLA95x z?aaz9h1UkDPb$+c4AOd8Y6f?L2BcQlouG}jm}TRQYb7dF zZ&JHe>wKHO?{@|K9e$rrt=<2~!@Hvg_H=i)t0jKucd}|&TF<-?S`{7~6zvxm%ekFb!}3p6NMq3RI4f3S z!<6I_LN-Z+yazo2R$%MHB{!5;vSQl^e(i%iKP#3U$AC7mQsu{2OhXSGyN|i8xRNjO z?Z+vJ>iJR}CY#s>#W`Z859#%#61auLHa1GhOM0%Y$)BLmu$j4_Kg@C^HzYWV!$&Bx<23vbW~I1$ zTLf2A;6+i=rz!CnhmZ|<5mq2ur{Pcpx9gZTQI3wJ?J&!|LHL_XBNVn^i74h}&QSrW zg%#j9-AJSXc$Lc-B)NPKKXaJ}MMc*Fy7G<21u%gw*_wnF6&t&gl*|~YSV!oc87g$%M&kSVBY zLy|($XOLZRo$odX2~O(IniK31o+w=9q#sFU>?T15z}t>wY?Y@y)8`;3sa0gJAoDQG ziS-;M9%F(7f|Nkv6G(zcGH3dXAYtg{Wd1XgJTJ&HBsm#4Pszs?@d^gTezt=W<<-70 z`y3S{3K34?NIt|@!(YybsOE-A-Sd^X(-VT!!!1stNHVic2+|LsCy|UGi5dHOH#6Hf zC%s>ro>PJh!6GLqB-MuJ6P?J86x`o|x2GgU$r}bbD@^Ah(SfGGEG1ivvA+}~4p%vu z|Hf=|QIKWub|NXeV3I3>1mPej=~d(>K^9<^6X&;hq{all36g@s7!vD6JRVsb+;yGE zj!UpFhGS1%G8^5@n3CM|7n02FSrKFzlrDTqPN?Kk1`!lxDox2dMq3IsU3fFYFv*E? w&b;S$>O{6)hLtY<)-IcE?-nL}HhZyZ7@p?R3*%gN!sjTqLtaJ>>wj1O0^#1z2mk;8 diff --git a/MDK-ARM/gimbal/remote.crf b/MDK-ARM/gimbal/remote.crf index b7abf10963e9741b1066113a02eb34a4a51fb519..23a228f91beabdfea9ee9d825341afc4d845d161 100644 GIT binary patch delta 2789 zcmZuzYj9Il5I(0#OL|E|Ddje$JPsY00aWNvC@mIfX`m_$==d1ql}VdhOi7xMq!tip zFpht4h98XjZSK8+P&%_`zWvVbo;|x~ zZ@OV^*}aystPY8>G|n8m+BsX(mNg|^+I9ETsSJj{AC@WUtCVyONrRXmW(aW^kS-7l zBr~d{OW&5OW5!D*qYt$4bf4d?u(nuFCUOfoGlP=ciZ|?XE^sxmPoBdEJYn{!dId)^M|_RnUd!$3&?>1* zvuM?MzfYOtVhx6Ul6N)C@hU8k!c%=7{f%Mv4_PG2 z4JLigf}o$Z#Ke=@^z{0hoB>xTQGLh`lo5IP;|L_%P{63^_iE_0aPHW1*YS0j^Fg*($LdEzxXTu1h%RLQPov zmj1isW+TWc1fi19)0mJ9l4S8bs#931I@wlsW?@?u%hQuX1S`d*1j)WVb!WP<1*fl5 zwv4ut)8Xguz~>0<(DM|yne|O2?40cJA!eAJR_iB9WqmFh&2kwXwi2Z@dV{Q9{eGfU zl6eIc_4pdu>233P{s;<|-JzHLG?hKcP$_?jb=MDsTZT3xSJlbY(#r+cb*GMGuZSV1 zYwG@LsjT`IQuMk)bDd4Dxk_Vz)x~Ujm9S%ShuKsLZl{q3kr8kOT|Q=|ybHl`aEZxR zZ*pExN?BR&8CQA7NR%iuip}oEa)Pa&-`6Kso1A>(B_?@o zLi191>ZNAirxUN)7Z?*raZ)GupfQ28_3Y%XO!1?0l9Su|wBIw6+hX+frU@5KOfI8F zHdBEt5A~iLHR_XKs3*th;Tkp;)F&}NX`NWI%`jdWd0WZWm^c4(cgUw_$apD5)J!iu zOLjJynRu*cw#~>a!I0;Un5<=10mrU&9&cC)I_VR%-7vM#O^G>aG`SQ^W}TwAYh1N+ z*>N0grym`bS?%%FxV)H$i!q74Xa{GG9(hgbZO**FBfNV~gy%#rPmzYC*;}E@$7%VF zmQ%Ey9pS^Hd2dKZ`#JgQzfBh{E^ zMfmM#`A^a|F72XVyRj5S<3CI1xEKz-7%~Df5;6)>3Mqq(j_?!enX}TOLCeT(IV~$_ zSxL)kTGr6gLd#k#526j{Bqz7Hp(_zyyz26K3DOl}jb1*V^?}ba3|mDJK0i8btZgSR z=*IT9ak-z63&Agp@B{HK3_qZ9e-Tu(Ds26lbJ=H52a03`96cg@IjrzIDGw5LKwkh2 z7H*&~frf~h_&|0L=mjBfpv*SXvWb?>v}~beE0$N`f$x+&RLlfA1T;)c2RaN?B&Gqi zwy6gzY$Hsg#3c20g>9H=tQe=}R@w%dszixePT&>slIpIsm6@grq3)}+&3HSTT|j{8 zLTu5PZfy=C6X#UAy3m2FV-UM_Ou7WQE~N4g>>-k&W6+|Na#D9^lY`5cn0if6KA zu%V*u1zxV>J-{n~kAU9|yi(^0uL7nq*$BK^#~XmxG((|cu7lE|KhLSHFz4${YJD~Ixj=}r}+;&1Kgko|O W^I13#|He87MEJc9Gybh*h5rLP5=5#1 delta 2739 zcmZuzdu&rx7(Zugx9+lC#u(kkfE~~wpc&v`FhJc(*^uyxLL!26Wxaz!yN<0J&$#j! zW8#L`M%oMtPY>XL6XqV>Zm7UB_K=gW2s+-p@UCrgR-;)Jg8d6k7u<~2N`yt8tlM`6Ago=(v0 zmv-Yd`4H9MX zR7zr4sz2Elb!TB~3uWlZAwn|6r3A^oHCFSgp@P%N7?sgraytHa4SYT#4LwzXn!h-eqF||4^|E(T z*`o}V@@%M=ejwZuw0XIt4lk9)XW!7BE=PMs3^|3>hEl1p^fprTIBS+TmN}OwwN*?B z$$FKbiFf(gbPAqH;|(IA%31C7vL2N8AaER9rDor+8?V{-HAa!* z#E$S$V-!gx&oMfz#cPQ1qjRDo{9%kAsk%nE$!P1%c-)glnEgY2tdD%Ze%D*_u~8li zG1QXN^ll9s3(6B2AKr~6TeI=V$UB*Ajd81dtcHC0R2vUv1ohHGuabRBnJu7G#ou~n zJB`dD40-MjS+&fH;Mk+W?eQzs4*C+c7^W7wDKVcJJst}tsX|d)3!LRk*eAidDN>;+ z=>iY%UTKiv>FLt2xXcsSTiaYn}OOPIr zHId3g`dPGpB#xiv@BhI_KZKtfobfW@i+e@FfG1v#fQk-Y~x zS1b;vv-g1pi)b;lkSVO@?isY^$28a`9j*F*x)k3jQ<3Fsn_L&SwM*(IPdVMT)?&7?ls(*rzL zeby%DPfBFhpkF8+hLhQKphd!Z5MfUu1ineuCE^#LpMX5#0nkk#uecB6TR@e{tOnky z<5j@hbi5LHJ1`};6!;AtSK(f7wnb*D0C0x}M~5x-Y^R1tp~Nj3wCB;ydazw>+>RNw z=b6@rQ<#cfZ-I?{gvlM2*lz68X@47=x3I|)_P+cfHhZucAnZf=4Y=*aW)L><_Iy4M TN8?AS{mB5od&Ptwscg`{;@&eO diff --git a/MDK-ARM/gimbal/remote.o b/MDK-ARM/gimbal/remote.o index 0988106512567c90c4ac49d956d0fc6aff68857e..8c222b109a2ce26fcc13308d5e318f808fa9cfe9 100644 GIT binary patch delta 1728 zcmZwHUr1Y590%}olch1O_ng@32y3l(*4E+(yGE_i5vE%^9a~tm7Npq4e_4~&v=J&e zXrQu|xlzGV%P(`YNGmKbg!JjgQd`G5CX{qp_poftO_>kwL6*IYY*5(mKG zTCz!4CM+}7b66IvU07DE5-h%EH`X4kQY=|pveA>DNLN6fq4z7Q%)X9LcyM6E|GM|M z|03Djy-PX_zs^uqdP!q9>DwmhH1q*&l>BfVXpiNrx$bW({C1N%z!akuQdo1u=s%L> zwq)M-6rP`@9cEH@6~<<1gZ9NN{nBQwuXi;%8_12j)|MMylU=*LK+iW-c3|Ice( zFR)|wor4=y7}V-m%Q0yZ{_1CkH?DRLvRX^e93=;#y^-yMkwIpcE<%(~U&84H z7<~n&@AGK|Qhd7R4kdkJx^xJqFGJ-Jt2Jep;f*17M2bKdf6DU@C@IlTV1=$BwqJ_F zGM7w|*o3TuJj`k(J2dgZ0cUWKk3KY>Scdjt?BIq)E}ccfM2B8@#wCJsRNu8sNDRCI zY`O(wIGC~z;Z}ehk#o4Pa6E@tNMIXR$c`0C9D0jtAu4#@L&>5jy41l$01sq`DK3t$ zjLgf0%o>+Ylzu(aEF=!jvnVS?@~RL8qFn4>Q=;mb4k2xj;5xg717gzF)(QZ_P6j9p(L*FS}9}|*7BL3D9P$_SV#n%qj-=>IK_tq fL~*brf5u&5qmzH3M)6a$0x3QnbuluL|DOE^0aLp? delta 1222 zcmZ|MUr1zC90%}w=8x{I&bhdarL`=h4K9ko{99`zp(z(JW-x1rEa5upv`*>PkVL|? zAQ`ob4?8sS)xn2khc?3(VPSSaVh0Qogb?;cutG9o!52Z6HGJsz-RZ6E;d?)v^ZT81 z?>YC;A3gI2JvY6|v)+<*oxkJ_`h%BR4P{tXqCbAwvb?RqKzAU}9g2KWc70WLDTz&D zmpCL&NsXjdaz?_QvywVVy~JHAyYyQ()FRw@z0v5kztNYT8cj}Guf=<MuN9(0xsw zzW(^D(U=t<=)EkD#K4+fmf zjA0ldWf)E988e?#9_+HQ6Y71T7wv-EQPGC?-@Xn^rKHb?88&ocrP{YehH*qT(0oO> zk0=QvO?=3a1j=L&`{Wp|31JceGL0cJk6BX0D%r*kIlu`yMN66o_zAD4<*LpjBSU$` z5{aQg#_@p2$v+T^h>%Sr$sVqgajcUpb_KWNXKmcISFd5Idb|y^fB1OSAUVJcIm8NC z##Xgsetpoint.eulr.pit = g->feedback.imu.eulr.pit; g->setpoint.eulr.yaw = g->feedback.imu.eulr.yaw; + g->setpoint.ecd.pit=g->feedback.motor.pit.rotor_abs_angle; g->setpoint.ecd.yaw=g->feedback.motor.yaw.rotor_abs_angle; g->mode = mode; @@ -187,22 +188,26 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { Gimbal_SetMode(g, g_cmd->mode); /* 欧拉角控制相关逻辑 */ - float yaw_omega_set_point, pit_omega_set_point,delta_yaw; + float yaw_omega_set_point, pit_omega_set_point; /* 电机角度控制相关逻辑 */ - float yaw_velocity_set_point, pit_velocity_set_point,delta_ecd_yaw; + float yaw_velocity_set_point, pit_velocity_set_point; + float delta_ecd_yaw = g_cmd->delta_yaw*g->dt; + float delta_ecd_pit = g_cmd->delta_pit*g->dt; + float delta_yaw = g_cmd->delta_yaw*g->dt; + float delta_pit = g_cmd->delta_pit*g->dt; switch (g->mode) { case GIMBAL_MODE_RELAX:/*放松模式*/ g->out.yaw = 0.0f; g->out.pit = 0.0f; break; case GIMBAL_MODE_ABSOLUTE:/*绝对模式*/ - delta_yaw = g_cmd->delta_yaw*g->dt; + g->setpoint.eulr.yaw+=delta_yaw; - if (g->param->travel.yaw > 0){ - if(g->setpoint.eulr.yaw>g->limit.set_yaw.max)g->setpoint.eulr.yaw=g->limit.set_yaw.max; - if(g->setpoint.eulr.yawlimit.set_yaw.min)g->setpoint.eulr.yaw=g->limit.set_yaw.min; + if (g->param->travel.yaw > 0){ + if(g->setpoint.eulr.yaw>g->limit.set_yaw.max)g->setpoint.eulr.yaw=g->limit.set_yaw.max; + if(g->setpoint.eulr.yawlimit.set_yaw.min)g->setpoint.eulr.yaw=g->limit.set_yaw.min; } else{ CircleAdd(&(g->setpoint.eulr.yaw), delta_yaw, M_2PI); @@ -211,7 +216,7 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { } /* 处理pitch控制命令,软件限位 - 使用电机绝对角度 */ - float delta_pit = g_cmd->delta_pit*g->dt; + g->setpoint.eulr.pit+=delta_pit; if (g->param->travel.pit > 0){ @@ -229,32 +234,14 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { g->out.pit = PID_Calc(&(g->pid.pit_omega), pit_omega_set_point, g->feedback.imu.gyro.x, 0.f, g->dt); break; - case GIMBAL_MODE_RELATIVE: - /*将它的角度控制再-3.14~3.14*/ - if(g->feedback.motor.yaw.rotor_abs_angle>M_2PI) - g->feedback.motor.yaw.rotor_abs_angle-=M_2PI; - g->setpoint.eulr.yaw = g->feedback.motor.yaw.rotor_abs_angle; - - yaw_omega_set_point = PID_Calc(&(g->pid.yaw_angle), g->setpoint.eulr.yaw, - g->feedback.imu.eulr.yaw, 0.0f, g->dt); - g->out.yaw = PID_Calc(&(g->pid.yaw_omega), yaw_omega_set_point, - g->feedback.imu.gyro.z, 0.f, g->dt); - pit_omega_set_point = PID_Calc(&(g->pid.pit_angle), g->setpoint.eulr.pit, - g->feedback.imu.eulr.pit, 0.0f, g->dt); - g->out.pit = PID_Calc(&(g->pid.pit_omega), pit_omega_set_point, - g->feedback.imu.gyro.x, 0.f, g->dt); - - break; - case GIMBAL_MODE_MOTOR: - - delta_ecd_yaw = g_cmd->delta_yaw*g->dt; + case GIMBAL_MODE_RELATIVE: + /*跟据电机角度控制,遥控器不给值不会动*/ g->setpoint.ecd.yaw+=delta_ecd_yaw; - if(g->param->travel.yaw > 0){ - - if(g->setpoint.ecd.yaw>g->limit.set_ecd_yaw.max)g->setpoint.ecd.pit=g->limit.set_ecd_yaw.max; - if(g->setpoint.ecd.yawlimit.set_ecd_yaw.min)g->setpoint.ecd.pit=g->limit.set_ecd_yaw.min; + /*yaw的限位*/ + if(g->setpoint.ecd.yaw>g->limit.set_ecd_yaw.max)g->setpoint.ecd.yaw=g->limit.set_ecd_yaw.max; + if(g->setpoint.ecd.yawlimit.set_ecd_yaw.min)g->setpoint.ecd.yaw=g->limit.set_ecd_yaw.min; } else{ /*限制yaw在0~6.28*/ @@ -262,7 +249,6 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { } /* 处理pitch控制命令,软件限位 - 使用电机绝对角度 */ - float delta_ecd_pit = g_cmd->delta_pit*g->dt; g->setpoint.ecd.pit+=delta_pit; if (g->param->travel.pit > 0) { diff --git a/User/module/gimbal.h b/User/module/gimbal.h index 45bd3e1..321a0e4 100644 --- a/User/module/gimbal.h +++ b/User/module/gimbal.h @@ -28,7 +28,6 @@ typedef enum { GIMBAL_MODE_RELAX, /* 放松模式,电机不输出。一般情况云台初始化之后的模式 */ GIMBAL_MODE_ABSOLUTE, /* 绝对坐标系控制,控制在空间内的绝对姿态 */ GIMBAL_MODE_RELATIVE, /* 相对坐标系控制,控制相对于底盘的姿态 */ - GIMBAL_MODE_MOTOR, /* 相对坐标系控制,控制相对于电机角度 */ } Gimbal_Mode_t; typedef struct {

_ll_udiv (Thumb, 238 bytes, Stack size 48 bytes, lludivv7m.o(.text), UNUSED)