From cc27fe6cf70cbc613b60e536b3e28d9ad38f8f77 Mon Sep 17 00:00:00 2001 From: yunhai8432 Date: Sat, 13 Dec 2025 19:37:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86=E8=BF=87=E9=9B=B6?= =?UTF-8?q?=E7=82=B9=E9=97=AE=E9=A2=98=EF=BC=8Cpit=E7=94=B5=E6=9C=BA?= =?UTF-8?q?=E6=B5=8B=E6=B2=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MDK-ARM/gimbal.uvguix.yunha | 211 +- MDK-ARM/gimbal.uvoptx | 30 - MDK-ARM/gimbal/config.o | Bin 5028 -> 5028 bytes MDK-ARM/gimbal/gimbal.axf | Bin 604844 -> 605252 bytes MDK-ARM/gimbal/gimbal.build_log.htm | 5 +- MDK-ARM/gimbal/gimbal.htm | 24 +- MDK-ARM/gimbal/gimbal.map | 3832 +++++++++++++-------------- MDK-ARM/gimbal/gimbal.o | Bin 18340 -> 18376 bytes MDK-ARM/gimbal/gimbal_ctrl.o | Bin 9896 -> 9780 bytes MDK-ARM/gimbal/gimbal_gimbal.dep | 46 +- MDK-ARM/gimbal/remote.o | Bin 3816 -> 3880 bytes MDK-ARM/gimbal/sliding.o | Bin 12372 -> 12684 bytes User/component/Sliding.c | 24 +- User/component/Sliding.h | 1 - User/module/config.c | 22 +- User/module/gimbal.c | 18 +- User/module/gimbal.h | 2 +- User/task/gimbal_ctrl.c | 2 +- User/task/remote.c | 2 +- 19 files changed, 2063 insertions(+), 2156 deletions(-) diff --git a/MDK-ARM/gimbal.uvguix.yunha b/MDK-ARM/gimbal.uvguix.yunha index 823ed19..4f427a7 100644 --- a/MDK-ARM/gimbal.uvguix.yunha +++ b/MDK-ARM/gimbal.uvguix.yunha @@ -110,8 +110,8 @@ 0 - 1619 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000014000000080000000100000028443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C7461736B5C766F66612E630000000006766F66612E6300000000C5D4F200FFFFFFFF2F443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C636F6D706F6E656E745C66696C7465722E63000000000866696C7465722E6300000000FFDC7800FFFFFFFF2C443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C6D6F64756C655C636F6E6669672E630000000008636F6E6669672E6300000000BECEA100FFFFFFFF35443A5C79756E68615C315C736C696E675C67696D62616C5C4D444B2D41524D5C737461727475705F73746D33326634303778782E730000000015737461727475705F73746D33326634303778782E7300000000F0A0A100FFFFFFFF27443A5C79756E68615C315C736C696E675C67696D62616C5C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000BCA8E100FFFFFFFF2F443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C636F6D706F6E656E745C4B616C6D616E2E6300000000084B616C6D616E2E63000000009CC1B600FFFFFFFF2F443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C636F6D706F6E656E745C4B616C6D616E2E6800000000084B616C6D616E2E6800000000F7B88600FFFFFFFF30443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C636F6D706F6E656E745C536C6964696E672E630000000009536C6964696E672E6300000000D9ADC200FFFFFFFF2F443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C7461736B5C67696D62616C5F6374726C2E63000000000D67696D62616C5F6374726C2E6300000000A5C2D700FFFFFFFF2D443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C7461736B5C757365725F7461736B2E63000000000B757365725F7461736B2E6300000000B3A6BE00FFFFFFFF2C443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C6D6F64756C655C67696D62616C2E63000000000867696D62616C2E6300000000EAD6A300FFFFFFFF30443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C636F6D706F6E656E745C536C6964696E672E680000000009536C6964696E672E6800000000F6FA7D00FFFFFFFF2E443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C6465766963655C6D6F746F725F646D2E63000000000A6D6F746F725F646D2E6300000000B5E99D00FFFFFFFF2A443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C7461736B5C72656D6F74652E63000000000872656D6F74652E63000000005FC3CF00FFFFFFFF28443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C6465766963655C61692E63000000000461692E6300000000C1838300FFFFFFFF2A443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C6465766963655C766F66612E630000000006766F66612E6300000000CACAD500FFFFFFFF28443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C7461736B5C696E69742E630000000006696E69742E6300000000C5D4F200FFFFFFFF2D443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C7461736B5C617474695F657374692E63000000000B617474695F657374692E6300000000FFDC7800FFFFFFFF27443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C6273705C6770696F2E6300000000066770696F2E6300000000BECEA100FFFFFFFF47443A5C79756E68615C315C736C696E675C67696D62616C5C4D6964646C6577617265735C54686972645F50617274795C4672656552544F535C536F757263655C7461736B732E6300000000077461736B732E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000B800000066000000A0050000CD020000 + 1003 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000B00000000000000010000002C443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C6D6F64756C655C67696D62616C2E63000000000867696D62616C2E6300000000C5D4F200FFFFFFFF2C443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C6D6F64756C655C636F6E6669672E630000000008636F6E6669672E6300000000FFDC7800FFFFFFFF2F443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C7461736B5C67696D62616C5F6374726C2E63000000000D67696D62616C5F6374726C2E6300000000BECEA100FFFFFFFF30443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C636F6D706F6E656E745C536C6964696E672E630000000009536C6964696E672E6300000000F0A0A100FFFFFFFF2C443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C6D6F64756C655C67696D62616C2E68000000000867696D62616C2E6800000000BCA8E100FFFFFFFF35443A5C79756E68615C315C736C696E675C67696D62616C5C4D444B2D41524D5C737461727475705F73746D33326634303778782E730000000015737461727475705F73746D33326634303778782E73000000009CC1B600FFFFFFFF27443A5C79756E68615C315C736C696E675C67696D62616C5C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000F7B88600FFFFFFFF30443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C636F6D706F6E656E745C536C6964696E672E680000000009536C6964696E672E6800000000D9ADC200FFFFFFFF47443A5C79756E68615C315C736C696E675C67696D62616C5C4D6964646C6577617265735C54686972645F50617274795C4672656552544F535C536F757263655C7461736B732E6300000000077461736B732E6300000000A5C2D700FFFFFFFF2D443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C7461736B5C617474695F657374692E63000000000B617474695F657374692E6300000000B3A6BE00FFFFFFFF2A443A5C79756E68615C315C736C696E675C67696D62616C5C557365725C7461736B5C72656D6F74652E63000000000872656D6F74652E6300000000EAD6A300FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000B800000066000000A0050000CD020000 @@ -1805,8 +1805,8 @@ 59392 File - 2553 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF00960000000000000001000B7461726765745F6672657100000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2806 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000067961775B305D96000000000000001400067961775B305D096D6F746F722E7961770B7461726765745F66726571056666616273046661627303616273072D3E755F6D617808706172616D2D3E4A114D4F544F525F524D5F5265676973746572114D4F544F525F524D5F5265736973746572114D4F544F525F444D5F5265736973746572046F6D676102524D02444D0673696D62616C0F536C64696E735F67696D62616C5F740F536C64696E735F73696D62616C5F7401670647696D62616C0847696D62616C5F740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3546,8 +3546,8 @@ 59392 File - 2537 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2806 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000067961775B305D96000000000000001400067961775B305D096D6F746F722E7961770B7461726765745F66726571056666616273046661627303616273072D3E755F6D617808706172616D2D3E4A114D4F544F525F524D5F5265676973746572114D4F544F525F524D5F5265736973746572114D4F544F525F444D5F5265736973746572046F6D676102524D02444D0673696D62616C0F536C64696E735F67696D62616C5F740F536C64696E735F73696D62616C5F7401670647696D62616C0847696D62616C5F740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3563,7 +3563,7 @@ Build 955 - 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3579,7 +3579,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020000002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020000002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3603,30 +3603,48 @@ 0 100 - 8 + 0 - ..\User\task\vofa.c - 21 - 18 - 33 - 1 - - 0 - - - ..\User\component\filter.c - 5 - 34 - 44 + ..\User\module\gimbal.c + 39 + 252 + 266 1 0 ..\User\module\config.c - 12 - 61 - 73 + 14 + 77 + 91 + 1 + + 0 + + + ..\User\task\gimbal_ctrl.c + 31 + 10 + 48 + 1 + + 0 + + + ..\User\component\Sliding.c + 48 + 322 + 333 + 1 + + 0 + + + ..\User\module\gimbal.h + 14 + 127 + 137 1 0 @@ -3649,128 +3667,11 @@ 0 - - ..\User\component\Kalman.c - 16 - 1 - 1 - 1 - - 0 - - - ..\User\component\Kalman.h - 10 - 3 - 18 - 1 - - 0 - - - ..\User\component\Sliding.c - 2 - 34 - 11 - 1 - - 0 - - - ..\User\task\gimbal_ctrl.c - 46 - 28 - 44 - 1 - - 0 - - - ..\User\task\user_task.c - 0 - 1 - 1 - 1 - - 0 - - - ..\User\module\gimbal.c - 24 - 235 - 255 - 1 - - 0 - ..\User\component\Sliding.h - 0 - 79 - 95 - 1 - - 0 - - - ..\User\device\motor_dm.c - 16 - 1 - 16 - 1 - - 0 - - - ..\User\task\remote.c - 18 - 23 - 48 - 1 - - 0 - - - ..\User\device\ai.c - 0 - 10 - 22 - 1 - - 0 - - - ..\User\device\vofa.c - 0 - 1 - 1 - 1 - - 0 - - - ..\User\task\init.c - 0 - 1 - 1 - 1 - - 0 - - - ..\User\task\atti_esti.c - 0 - 22 - 1 - 1 - - 0 - - - ..\User\bsp\gpio.c - 20 - 38 - 41 + 22 + 63 + 76 1 0 @@ -3784,6 +3685,24 @@ 0 + + ..\User\task\atti_esti.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\task\remote.c + 0 + 23 + 43 + 1 + + 0 + diff --git a/MDK-ARM/gimbal.uvoptx b/MDK-ARM/gimbal.uvoptx index fbc0a3a..442a460 100644 --- a/MDK-ARM/gimbal.uvoptx +++ b/MDK-ARM/gimbal.uvoptx @@ -165,36 +165,6 @@ 1 gimbal_cmd - - 3 - 1 - cali_bmi088 - - - 4 - 1 - vofa_imu - - - 5 - 1 - channels - - - 6 - 1 - remote_cmd - - - 7 - 1 - task_runtime.msgq.gimbal - - - 8 - 1 - gimbal_cmd - 0 diff --git a/MDK-ARM/gimbal/config.o b/MDK-ARM/gimbal/config.o index 76932e74fd734e661b2fcc305857785e21730e51..4bd5f15dc872ca1d67caa4bf564ffd13a67d15fa 100644 GIT binary patch delta 103 zcmZ3YzC?Y3mmeb|0|sDaVgiaWGC*hsh6Z~OHa1@DaQ4g@`&lz3!F-4~Li5=(KDHZY V^s+K$Y*u5-VP$;2c`~;k2LK%S6HovE delta 46 zcmZ3YzC?Y37ZU^HPZ5xqyg+~lh`Bb->Skq3*{sHv!^-%0^JH#84ggz4 B4uAjv diff --git a/MDK-ARM/gimbal/gimbal.axf b/MDK-ARM/gimbal/gimbal.axf index fe2f464687b362c6e4530a4160c9a753f79927c7..de29d8a64a68e156dec772799bb0a76643f18a23 100644 GIT binary patch delta 188042 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 z

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⪙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 A(EtDd delta 187073 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�^cn3sU<3hecWgI@%e(;wB^+8aD@<~M9WWvdk%1tfk9z}i0 zgi~DVAp^$zr>g1+vm!lG{oaH#-RdtU+#^A)GvQtyRW=ptldguDa2EV!8G`o+5EvE* z>!S_~*0H`s#UIENim)t+glOQ~34+6$7VdFGtBZq`4lLbOCXD&I(}d#`^)3@maH;p0 zaH6W-XTnL5YLN+h+-k82rzDUN3pSGdAh0b6caOLG2lGDB;UKJ7>WG6SN=F>r3;|;y zU?Sg|HiqZ02Snt5l5bAyu@c~+Je^{Xy2CTsgF^U4jz46`7VyKW+8@pNRIm*mbwm*M zvPaS}uRFnhhO4&@Tl`uP_z!UjUedAM7s1V|K|BRMdv~~bhWcf2i1x17(oDFUq@Fb4 zOt^V7+N7X6B`#c5qSTAQIwhK@)PeZJRZ?OkH6*B#;#SlI6OMI}(80)ZLvm5LAW0q> zo-Yp)zR#nyJea6_qkbIKGC~r!MHz>)-Rh?hBEsRY9Q8Ed%bY%ZoXU52-l;qyk9b44 zb?yg69uV>Z7~Th{^bgNe`lwF<{1hYw-os-x51UGsD*EHClzx#US)uAJJyNM{S0mgb_yY42|dJ$Fz%Oon#e#QKDmsFnn3b+SEaDYt2NzX!bloD-3 zt&8weg0~02@c{T$PafW^vc*7*16dc@l4HSvY#drklX*ep6{wXY>z#NgHnsteMX11E zg_SL9yu@R>4cPmjTGlCU%UXL0z{fyBo^9U+xQfGYB%2Q4X%M`uyW(OQ_NM^zeppvx zFE!zAl6|WQ!;@?ugJC}iEFNuQ?5~-1ZeoAKgkvT9UK2);b(rI#^S%U`x+!(y_;gyp z{VD8^G+X_Zqlp7x8(=OgOiWX!a44kda;6C* zO_#@`(fge7wGooyMV>DIh^~09(O=up4k~k)~UbrVCCnl)VP0fRU!#^1wNcb0ST*7J1oz!D{0^{EopY-~%4{cl0jc zLpkzJv=T7VblXp;xQjPHnr^E^O(jQonr_(v$uD6zG*>Cc!=@+|cu11{O;lJ8p(uv^ z*u7R{>++Eh%zt-o%c+K0{>Am0k#0r0E{4Ys_(<1h~G?1R0ap8I^vUPbE@ZlVvPk_%AQoUuo`+3H|1$-lwcbigflH`LX%(Dae z6JYmo5zC4p;%1p!LiBwLk$*MeLP?lT(2=dn7g6yhZ*<4gn8X!wgUNUs218*E!MReB z?IyfRk;6?G>AD;Xv9J0Row6XPUJZzd{?Brz-+WSQ@-1TdA4pDh+$@- zUzTS@wl2SqNfD#miOOA&B_&vq%F9sz zBOn&3ynHp_(HwR&d6fyrO7d#J{C)|kyu1@I9}myuElD7b2f-5T)8cW)0wvBgl+@W9 zC36nt42X+Yfw_>=M=RIkVPh8lHI>H!N)d+2Qn=F#6zqRTO&1JO?q@~n->xK5fB7qL za3zuY3&koq+(&9x45_~yf~H(a8L7YJT`)9-!vE!HqZ_%4^Ca)a`7=uDynqtx=^WT@ zM?32TD^3OSB!Jvoa4L|mHsQgN%mam>4^d?NT|)yN=8~^B;gPC5$Am{m$~T&@H^(i{ zH<2+3@ya0m@VIn&sR`p$U|9p#%Y%E_GOUrdWVu(+(`+7W;wGFT$s`?e(!qoSgJm@0Z9+Kguf$tjN=$ntZdThHDey8kLN}MDU^BDa zfkttNch>8zI55b)f_2ubFsCLwS(5vk@D!zEmZrMImJ*5RjRS)`5Ilg9e_tIb_Lo>* zk?)q5qGB?KrzZ$&3iz5lITZbhDV}ww9NrGEmLuEYHF8WlTtw_VU|P~4X+9)c;|%Ls zBb}px5@#Mt>YV1qgE?oSv^eLWl!)b8G*KYP+7B+5Am0J1=r@VT_nL6BB(FDNk0L*5 z!YMBKRTEBC<@ZcDJyQPIgfrdpaTD(0O^|C$q?bqj%Y^%+%Pl61gN5aHDAfZ>F)TgS zM@|h66bB2rs|n*^Vd;V>{Wu8rG^@uREzbzn*%3!>GGWZ>0u%PeDe__yNpQ)9CY-3s z%S<>aQeI)g9=E*KgmJL2+>Z`l0)cHoWPZHejo1?%ZiI71N5n2sIwCgC6<*7`5HN@* zBpaB3`&K6DNKTSABlABD}t;mj`b~cAXuIIASRcMdB*s?T{n(QFIW7 zycJ))B#xww2IlI^vD9KPU*L<9B=N0^4g|^TBFpfIL$qIy zCwl=!76ed>EL+aqN)^i>U{VeWcPz+fpsBma`?1lJq7q{4u7v$ ze>CYoxU6SQ`j4vhqDilbv^Ga#{!j1*Ke?@bHzECzWYC`ztYPR&2>r!FY;S|XasY)= zfwp-4^C{rZ0kRzBT|8`(U8(`;cL<;x96aTc=rvAz6lhL2O6u%}QgIGKX?Ko8>2S_K z>2xme;^A_xLK)&LLK*6O0%e%<8I-E?EtKKTk5P7U{){rh*?=CS6WW;ky}+10roWjE(Gl$p*~PcK#Ek*ZB>~pf}1G zFy6+A$>0uff_1~ga1obm*$Ee6gWD$FAPD&@%4JMo+S+|&QSH-%` zguA(jbte#>w@SlQIYH`a{Ri*|xPV^7dK7RNfBz%(l`z2G)_j3eIUB#dfdtd40S{L;0^&p;FZ?jP`i=WddKvVUD7D4 z4}{0LW}}I<)r4~-s|D5&^jrmp1|U_u)wFCVHA&dxN#5ux!yW>jY$zq*DTX}+JQYd} zhXBeOT$=|0(;)!k7virmBnWthAwj@14G99C1qnHjFosLGaW*7eFH{hfH*^v(r;~uW zodnFo@mTsAyS9EF=3<_MJ9~I(QcZF&f5+$!)D^ZX7X}8`e(645Qs|=^-W%t zw9dd>UvVt;Az;K6!XK6r6d!>qg(!#cz}$F{k6OqC?ho`7NG=kFuS6suInKnBf4hk9 zVk{4cF*hl)1^I+W+=46zm3osgIkECgz%#gok_hlPxd8Zm9FHe*p$R8Q@=_B{gc$1r zV6gu^cs#|K@r5$WIR^310%M7wbjRPmNRiip;b+c}O5~G((=ZU4rpjlL|B&lAlAa*r zkAWLqcFmMq0B_{<%wEJ&i z{qQ6f?R8?XFQEm+m&UMCpb@|CxC&Hjy5zBX+D%|hLFNVWcc{kAyBKL0BBV79x#Yh= zbfZ$vLZ7`l`t04QPn;>uNs#;E;wKV~6>ls`OFD|-yvroXZS5kb102XjtfyiuYHjbb|*#dT^F->Fdo&riKG(d-{+Mp>+E*~jy?a$p*$ za*h-!50?u7ehQL2lE@DLzK`2{v`Q?eKwQQ7vL#g>ATKuS2BJR`9wf=jOn9&&uQ1^u zNFs$X#e&9{{w(})=BKI)i{$7{71jxI* zLAENnYy;&LW+hIkx0^6d?{}H-5X`{6Kz4A+!{8AX0FfZrlI;9egWBR8XP^af{DqP_ zBvdhCJqbjiwjSV6_?K}k!%%o<@^(EWk1a*+3Q%Z>1(<2VX;O!_>5AOTq-VI~J|^5% zl?R(}w@5k1gmH$OX2RW}=PT&&FbGPTcw&1URdMx|}{vV*)5%cY9<+ENaULITQ z2>Sm9y&opRj-by1K<0?11A}YzW?&J?Fy#Qr#ron;BpKFXSwyy(a6d^7G2#C3mV_We z*&suTGZPd(1uO$!q{81IRg5Wf#5!_NLmbmlQpY@$jJV9$Oy@1(1pMik5PZ{SwSb+7 z>Nsm;uH)Dk{vsM!`g8i|Y4GYY5TzXJV|ZW#m;k{RqCkI%z66qs{DAT(PR@0Bu0Mw_ z8(|Z`_e~9e&gB+mI1eI-L^fd^TF7`IDFYQQG8bh5&ThBk$^Yfx!$LND zkgRejLAGqsYq(0gL87Cq&)@+se2YJ9tQwCM1bkRbco6w+6v-**Btp3wAhm?q|K$N- z{}Uy(+fap_T~tYl_P#)geHcn=&*N40Stu>UF%ERc5fs)1ASjf-!ZH5QdAD%J4Drn! zSG9mAVN`gf;QUlzGk_7iZ!!7r=F}d7Km8j4-(c{k{aawXFSJe-t$Xm+n52YDysqy% zr~~E>q@aJ6bu%h)hBN+w9;2p$+@DK8m;C#`yYQj&Hu1*z-6Ma`A-WtL?9wT^93AY^ zA-WtL>{9B&g^gd0KJXt42LI7{&vIE)=+#3&=K?Jr&NhWxy))Zk&NiJIT$YkjCi^JKH-X)R8;86)NG~4(6S@mEyR4ErvC zlzJTdffC1ioap!zC3E}>rG+?O#RC`72T&~~FeFJtt^#c3FTG-Uzo|BF7E4y@!FLWc z=D~OE(~v%57z`PM^)C?TfWQ)L3XASgFb2P;M4N$}&&`x1un0I-QZfKf;Pg1FG8J$E zhjE2%9StA~1j}fr6%QM;P6x$1959P8#=^oKy@0~IW^pRTf7FO%2#U)6ZJBZ(<#tfF zfh6}O?XvMhDdi~WCpaB%PpvNkcmo6})22!p%H06D4ib!71o%A;^W5q)0K3xQ>6Tn) z2`X$jZGl91cX2jVj#54XH40{vqlr>u!ZDI^-h|zX(qzK8{c(N^M3P+T5TV$te0s(K zw2TVQRIXzIP~x~7CH~AZO6Kss%sGhjT|96@!@uI6^$uTEAAn#zN2?X^B37z=j;!at z1&Ui5SMRRC{u&EuD*s9!`nAfG&ofXqgja@BJ|p21Anv1vif`njGpi$(Rwq0V)}2%>2O|A_`yp3a-Ydn)X(r&y^VaC^eM(!Y4eg>)%& z=i?WWZZ#xD@M&8hq%7xBo~440AFBj?>Dl0{c!S>bqM@J_O|HcU@(hRBEesv*25p)_ zH~j52Q{yh&VYv^`d24x3OH4!a`2}hix}=v-b_v%NmQ5E{Uoq1T4*;4P)(xz;1r65L^Mcg7OBcE;j*cgEapi#JBiDi>PhZAGXj~wcj_0;^39BLgGbMi_tCrvTN0{D*JcEuc1uJ4(SW`>2%v^NvI|7MuP+lBw! zDGonLqw~UfyZ*v*FiGSce5U&II0H<*TVTOiba^{t%7g8kFqiZw#|8zBN1ou=V2+V4 z;#X9DzEqNVS3R({umkbFp5k0Rg3^t?Ow8!Z#EiaraIM<=>ir*m^$~qpzrw_x;k!$= z^AwNpR6Yk4tiOZ23!T$^TLPV=Ty+!RA+R64iYQ9}^LeF{C1s-tPf?U70rL!mPIW1K z;c{=K(?XPIOrERVh~r?G1p=L5or?PV0a|jLf72hk0clP%Fge2(DJLs60J(-TvW>GQ zoFXYc6HZl>dJ|4_DGmQ0SJwgOMA5}(c4w1KvUkZ|a!C%3<2VkuqaJX;(U0DX6se&J zh=2{z4{1R~L{tPtf>H!*C@6MN5m6CQRKPA+u!0>6R)p{WW_Ruq^84k@`@ebb&6}Am zv$MOiipRZG&pvqWgr?#nydgf+q#a%cJPhBLhMo*^xTp^De1qu_rpm@>!9h*EI6w0Z zu(8;Cpg-cW=@e4>nKEa zeTeXUN+A+M^EE|+b3e@rdKZ#g<{t#nX0STu5q^hH&m$@`kLk~VzX%GVlR1V=dEgaD ztivFifsHd-R=#mc%f1`{&lWM`PmN_SQ{XR6w9dXop}#dVd!+*ZXjb+e3jC{uvhP&j zv=+%;pBg_FBjRfy6P4y{Bwi612>;e-kbS_$MLa8HT)?v*Rd!Q2%YI6Msa#|~tH6bL zd2Wva(>P`!Y0i@xMzqx*g2T^=?QFh{#H)o0bFn@I{(MH_J4p08oL8L}dEyL-8u2pP z+(L0&VYHK18L?7`n{yso+?tt3@aKt!B)W|AoC-LjotP)Ok*GTs=Uf>XDA{&!0~E?l zjZbLJirSh8gpWX$#g>DvFT&1%lz#MBmbO3jXabw-4|u>t>*4LKRhsW1dnvLtyvS0k zA!Bre)VgYB=SGat^rhA$5jyzp-Ep9YLKun|p+5VZ|3&=68y(n{DcdBUcts95O=ylCPIz)=Hfir`1Zf zg09{+&?k4?Sk~CN*M5?_jN!*%N;Lfk;Egy$1ezbc@!; zG@C%>1L7;<<}&a-iEmeF-U+@3HE8?p<}=_AksQxfdJMX|vlAY)=C~wjRNXs`@fJJ8 z(m@l=yb%0IGHNQ!`@k4w3eQ=U}=>BflCLGYrYKyidjUNc|!5HbogEIxOC9n zdI`F8_yQSt2=WWqTuW|n!6TZQEx`uR3<4KCZY}V1C$4y?4XJcNS3FT@%z~zYD;}es z*$ymK*T5A|7w|2SZO|1DE!1=o1i0YALuYisGZ>P`NYXCwFcL#}Xp8-dB%R!iw~JqE zLJg1y%Kc?caJtg`eE@WpJ!}sKelOClI0*vJ27U>4FD#R{GDQ9D*{}!@CwFU3Q=m=V z;D%21*Am)BTa3LL4nD;nVsjCR@1=-vo}|l(C|;H3i5tlCMClohJ?|y4$9N{v4#{%p zO>KI~8uJFEHCB#bp{3J4>lrJRvRAx>_u^kBrJbboTvd=2GRWuLAj@Tt&r^{0ZkSvP z6NFVJ!+L?jvJXK#H|fY5)0XSmBWv+1kl`uv%E0);1$ z<}VaJg-3^d&u;M#5ucPiP0%UbS-?4%=iD%n)JLqR#TzyKAN+R%Xyb@bAK z&(nqueJqFe4NNQ|xKc71N{a@Pk|C9bN~LUCk$`q2o@h%-e^)hLnQXkj-TkAnY_5O1 zVgIK#DUogRpVKBQl6%V&L?@hYPme|K;U+Q)2Qv8 zM$MsqqeB=^OeM3voVJXrHtZ{#$8$BhZxOl{qv+Yx!`z_rm}dpVzre~JMc)n$F8z8_a`Zwes0E>>J$^)E^*|KN zdk4r>z`7x(Bf(Nin@GG358yFUkFnqs7z?cN1oJP;VAKHO3DGqA@H z1J1mDP4NwcUnsr=u|Eczx@1!mHZgxp<;9u5rsDI2zg2AoYG5;X4xOnp+`&Ufc0h*3 zt^oZJ9eEQ{`aKG_+Sb&eXeUJ57Ga)y?ZoK1N_-i_*+ zLoV@<2Hf6B;#{ZtSymxNK=|{-Vbsxpnl+qZ%K@`^eMIwb<2tZ5;O9LbF1tdRL7Kk zQ_87xaCPT7OZiRsHWUvi!mZPxmX`rpZNSv9nOZn$lNly*Gu;l(bUQrLZ54FfI*^5^ zhSVWEQAAGXa{fPTY8lo=fm@n5t7R(O6$BE|V+AVe!rZ(ixS4vAMpMnhsu z0r?2N%+lO4vre=V*!v+ei&*p)@W+U+8;VlLMo@3FI6wLncq-PcUlOIwl{Qur&zl&J zL3sfL-jdvqw_dadSnTadI*>;D1H6TNFD?;`kHE}^fOqjENZ&NRhhz;{Us0~*D~R3( zmWuGzX3p2>ff5URm^|mbnAobYoQ~# zKMj2i9upE+qk?yq8uMUg=qq>e9t2O37T`|ar3&KS$33tY!ut?8(<0^$D$?8oinZoI zHS-Nn-FycWtAad;#N<9&CTlMKJn<0(__7Qa*vw?9mr|+BM~i0B5?NS2gfv!44NGdQ zBn{{XmbbxBj<0-0mr(SfuvXIZiOf$6ZM`lF_<_ual7Gi~XtgzEWEc;X#y%>SBIJp` z$#{n>J0#2A;aXb>Ji5hqB&ki{+MFz*i^R-y#Aa6^hGC5J;|V`S`*vEj-gaG^()HUJ zz7%qNNyGwJCM;>5JVJ36ld~?eM-hz^Y8Tgo^*<`V3wbvXX_8P^%47b?Z(tCQKTnj9 zgId+SP>a-AfV{WHc7s(vNTG=;!Re|dc)1ZjYY}v_ZUPw&-`c3`#aizmZ6j2O)|Ulo z^O1Z%5u{d>e19|8OYsA&Aax$KzBVuvyiW0hBEjY0sgJb5@!&e}hloEfKUj&P4$*_E z+K}GCJ^<3`@Y%usRs5XbpelZTa7Y!uh*|X5Nmd7ttKd@WncY}x85{&wI%&nKBWo>! z!^862bdc2+O}UiLrMSqP3-8J#1+Ns6zG2d5~$Yku%T#dj+VUZnW$#lcGyk6GHR z>(FMmL!i~jI*Rz(A!@BT;>!=-r_>5q@L`uvYPCi1X_ZlE247Wt9V_^W;)_DTQ;IK+ z1piZfNj#{lR%w_Y%u#&f!eBkcH!Th}Q#@YzU|*t}byi_vv**`Tp#3ej6Z!rQ81y2g z-%_Y(v}hhJ&C3&~Am&0o+@f9GmiYUjASNJlA^zAV`6?2dJ0XT8Ev?sATIwVYNlVW* z$&)3<^zM%*k~WF)`YN8B5!)sII3*i$f~It@kdW>b!jv94k`3mi2cdex zu@*8bk>G?w#ZD%P*PMXF5Z=cixrro}IUk8v^S%tpy(9^ktCL7^<{@{!cR{?LfxJqY zruhsK!({ZDtj>1JZ99O%@%l1oht7C?87ckf@>;`XE7P$Lv4tj$6jP3XJC=<3R-`a7>A=fG_V_kXs<;mF6NOUZFhz ziT(u0QDE(ihNogqX~rI9ihC=@%L?G$im^|Dak#f)ysi-Ltr%}9fO{*(+X~>`it)Yz z|7m!Oyc|nm(sGy>+d{6J@-b=QX;1vsXfixBt<_C^eig0`ej$Y>ocl<>NS?m`B@ym= zKr6d0*)(4P8>TG;_0q*mO$d1>GYbhW_2}W4P9*7UHbdgo*b|WGY-AQ4ae6^yv4x=5 zRx-8@Dg91Tuj~RyQm>%WI+lhi)Vl&4hLm>_FC)R?OCKQ_O)7YeX9B5A0r-(rD#bA* z^h^{a9(qWUj%d23dqetZ&HMwIJ0R50Xw3XqfwP)08PsGB8pBKqpk1WLb&L6^C_iNe zXsJ=pAJl{~XlPzMY6h|VVYp2qd`Jcls71>qe=n*`_iG0e3XvNi>wH4Ci_9^Ea$F=P z5DF(<$fgjC5JGdgKb~kr(xy&9GbNuA(6x7^BPC+ePMNT>8gqXga)(z+d zx4g5cK!UEL{ZD7HZ0fqpAhOs4ptqu9UO`H~5YBPV4)rx8hQO<%F!>2QUVB*cIF@^U zf?Dl&2zY=~CdVPw8rG38L7KlgpHL78!%-Y>#}W*=nQR;(oAy~IBDlO+C@*nNlf(RK zhZ9IEpKNH1bU_uWKA`f1AZcNhjgU5lWW&61+!dPKI(71DO(cD!SIj9;^CHR9Gyt6m zE|bVDh0U%)>7`_ow6v-eCQB)GN};0Y#}i@FDwAcfIg($3wq{~}D~t)F2!lDJ)! zqtHr;-NLO^>Bvk~A!@+&gxZs)`A{o#0o*~%?jdnU842_LRgUisAd@GWkr*Faqkf_4 zCiwujzUCt`%PkULpdm#<s$HD^pPVtWJjQ-Z*{b2&E#+J$GsfV+J27K_9sv= z=2?U=_sdW}pioy;g=)%BS5c_U^H&lV6jUpo_?*-_aw>yrR3X(mx-}~Qn!@bp)}ib~ zI%@oVIx6|K3ZZ_*QwVi?79jx@o+8xKMfn#2b<_H|F#a!P_H|LDE}{NZAPhskN}x$D zvg%OY6ju|g!#}zJXS0(O|B|X|G8z98SxtXkxOo`)qC#v!;^AU161>#*9SMce5&8b! zAg{tRZy)Hun^@F`)PuY!v#8Ig$9OYgQHRM!YHrFvB;UeHS`&~#qiJ3d3Rt|{qN>Zx zR?MQRO1`zQE>S#QRj_6ObVKWKysF@*Y32X~_vTjuwwL;cyiZ6&*cPPFvZr!JNyoew^1rTNy z1Y)x(30~B!55` z;*Y>7P<)+4Z#XD2h>%SP2e;4`LdApN7s%R5sGf_=?S$$RVqRJ#oeJZLhp3!3oE%VD zA(Vv!SsS-7>oGEFCmL5)~Ct+eIFcZPxF_l$KjA2gqHR+**Hf8 z(&UK`NbA`uEmLYeJ4^HVQz3j1~<$NhaI7CMmXV|z(Iu$ zL6}LQf^hiB2xqGk4n2gw4}YHUQII(NNG;qab)w!b(2Gpp8RdA^5?YbHrJncEGe^HhfcF@C&ctUXiOpWcaUJnL>Dr? z??9HpK(FgB)T05~97$J?vA`I`=ZU~L#n&(c6BVCt1tu%LRw!_x%O~}MNMO3kD2xZ@ zDjvI-CB44`i7>SZXno%dkl%szmi}VBet_Cu>NH>hYI(_*i0Wt>n$^)XvZ|wL5^|$S z!dKHsRXBRHcy%;o`PI=hFT{%m=q8;N;r@Z(k*>6p_XB-q5UvrC(vRK|(-s5J`5s>w z(Xl-h>Ni4wk!Cl@bQ+i93Sf-~Un}roYwVF&2MNA#-5e7Fbfd83ABnpG0u{G~6~ECEJ|IOm>{Dm1!(H8H$a0_SiDp=(t9{ZH&9F`&>wQ0wFPdS!oZzdp zOdH^nT$c1Im1OEGALZ9l?pst8;5L2>!GkW`!dIljd-?4IlPY^7U!9)4j^9b}kZZh# zZ%l`)_yg&11%D(R-prpOc-XaF%6F#2#r!#fZ#%ikm5caGX?W#n_F6jpiycabzq1e0 z;Ys#!I{blso(@m2Z_?pc?E7?hjGY8bsz6qL%uZ4EJ8sk;vVYRyyX;%SnfOSu7pyVfob%hq4ZJsv*Wg_0v&#qjXeOM(AA`A-yY*j!N34qhfk939Cob zmVmKPS3)1TD8C1xBMwTgjQ1w^g_{}aN9aozg$5G(%0(8vb;Q4MkvWXeaTkdZgia7* zzW%wm=OwSEUZJhKNN(NOUjJfp<1TVH?%&x2dgOu^xm)*1Cb#aov~^?q{ej8I8p;y% zl_!`Ct&t1AVluYIE+2Da6{P9$ku2@4M8Q zSK^i;4mY$cVBrpp@@ z6*RXKTqYsQ+Hwk`fK&2yp3f12_C1#uc_>mm13h4>1R#698nSFUR5zu=b>e#pd_9+I z88R94dKokec0g4gN3LF>-;V@?_1=&Khk~>~e~8LZM6|chBI`0wFW`>ME`prO6L=ju zI1h>;QmhDtL`$1a7c#G$*C?}{v8;EVu;-`#Tc*`1YGXr_zlaQr{RR5S zM061@iRo7+&})rSl{aan$+nQ0UirNXt~K|KAr;>=P|o}VD9`y82G^(hu8?^*P@Zos zsOEbFRQK%#6}}Ha4ZPzAdoE`CegI@X-V^6?Ulg?1*ATRhuM23AZzO14->jb4|2J~q zjX=k^YircU5Q6!B(g|8#1;Ts0(@m&Jy z^(_T8eH%c1EYP3hnHS2e^gq%I$3KiLMnYsw2KkKC>A83>o{QfL@Ct-pdM^G|1u%D; z{kj75So~WG&|~p$D?pFMzpns27Jozmnz{{kf!`3m=#(^jucuw)N95u_&FOiHEBh0_ z3!RjM=S}Aks!Mm-S(v{2M4x}eD|5Xe&Eq7d=K!Qh9+|KZIb0*1=8;mPG^dR+oHm9v z>K`gw%S`%=B~P>>gYq z$qa*D=N7Pt3Msk@hJ(dmn+gD$2Gg|XZSw1!B{-$`>eCwHXny@}LjOMkhfN3(FQtiRD`Oub zqZ9GFy2MT?eoxofb>OKt#mn7UU?ZX&4$q=rJYO`8<$|SMSCp|>f#O?>SgGRMnz0s& z?_kB+D!yAN*2(3QqGu%5TV?dY8XL4UW1fz912fU6mm|y5DUb(zJF%Vpi;;M>AhnV~ zYQbitOL2UN9I+xut20XcFX6SuAi|?TUO-*+Ezzw=Cg{s#hXj&d$ZmFevCIe|GK)S0QGsy06M0tLJBnu)0LVi!?&W3I zQ2_Vyvg<2=TY1?H6~L{$>}Cq!R$g{_UmWtJ2fCLRn1=%PBVV5oFVo9n{lLm-TCmtq z#kUf%gyPY?7b+gzdx_#Zhho<%zH6ka+w~st*zHQ*H$S$Hcv--J!q|N(V@PrA3B?aD ziS1JSn8qwH0vp695NNG}g=qW06~MoxI^C`nB|k%Ri5mi=Anu3#&Qsy|rSu^GcsCvV3Ebyvu6SF{xptaL|)eky=|SaJeVJ^w1=19+Cx%#nx6 z|Bms9wN<1tB0~_L8vE1%)HltZh$t{aJ~VF z*Yw`r7NS>3RAD}Y#KT#4G=k0sg{cQBU~I8VLFZ0m>>8x>J48LODK+p849XsXENxJB zh*W%^fMQVg66IA7%1+3<)0F26VOB-+)dkgkZ9#=^0BF^qY?N;zAoE=bia{5s=357< z`yK}szWtzv@AE;}Lp;7y09f5|CJZ=+WWK><83*OQB2c`I2%0t|YbO;3NQDVf;VM$_ zEe938`#}xgi=ZCg+n`?G2~f<$NdH=W-=BcYcLtRE%;b4gfDNiMV?5e2FazWQVDDkg zD)#QvvT6Z*1EF_6K6cYaf!8#V)n0+uH8ZP|0tYlJtBV3}XrZiL3cRUBvIZ*fmKM(% zexBv}KB(nqC03`fQ8$GG#*1~3ctwc5_(>n|0hv8TxG`d13(d;B+3tzDimisWly1NjVzJBBSZ0 z$fdrkM`#Alw|D@Q%s-Sat|k|kSGmZRE-t5nU}H8Vo6Aq*q(kmoO7yjZj0%a$;T@Zg zvt?XC@v_LOGV}yR$rH=S{epAcFUWAeAjAEF4EGB%+{>-Xef0(9@Wfr@{l+TqQ5pP= zs{Wy_6yc4od#g`6^2@p`a|`pyx-4@Gb2iDFow`tS(T^t{r@~hABd9(#w$oCp-Kt~_ zChw~$6Ri>8!%{2m!q9gg*{rV$(CMJ{u8kpW){_nV3E9>X!Gks|b&MPwB?tFZIdBTS zC!^4NTnA2P-BZN z1ZfY?;*Q(~NJffj(FC^G(Kx_~=`1=Gd`ODS$VY1P{#fw zepc&f6Yx~7m|YRA055f}>JaUwbmnx54g$|Hb`Wzbqr(+Hzk75H_%O*A_KpS+jN}*f zkLC=+9lN9t8P^VuHURKqQx%KPi#`vY4#i^0Fg%}$Qja1kF)Y?tG>y&x`#t5AvFK%r zZz-a472n#7UZ?oBR`gcIcL+t-D86$fy3XZGMYnkL5tY#=Ke|Kl{R^YJ6+fsr`ey3; zby|(^9}syu1y3TXIO>J5v@aE3uQf{kjiB`{xnCo}z*x5SyQnnA#j>^AqMjHRJC!DW zMY*gqeRKxn;%Hac{Z9OQpj;jAkZz(6=_jsi3e4t7WU8j92>#4rwy-il0FdW-6AOX{seG^H}yn$b;)?_fo@ zD86$jx=Zn0BUSy6fpGLqCGVRbeP8hd3ZtJXen@fjN5u~>iT}?Tlvr4ymzsYw=_%0#!Z| zGK<{``s5{yZ9+=FX}Aj0UId_-G!K^jT|?_hW0s9!sYUE7jOJYMrX$Gz#)669C1=}w z4F;EyJcpShAbuLE9(;?zcO``WYe0HHs?Xjw3lufH%YPdgaomAkcCam8T_*gTozZLjIv#c`;e5!>k z4sX)IXIjKE6gZ~EExJ&VIiG9!maV`SNv+U|D)gmRY}HWUE38LQpupE!W2;DkZ?rP2 zz5>U!a;uR7C$tKyOo4B;4pu7#zSAnLb_#s2b+t{2DCAuK2sUn~fE}uD97u@f-S^!xg`Auz4YP z+8D&<Ln(4%S4$;JDH3I7oVG;Dfw2y+^YDtrumfO zJ6Pr}#di*whZNs6Vt%gp9&z&<#rMrOe^&f}Li4YYXn$G2kYdw=7$iTu#0)APM>fw^ z1lSt_qg9UF9*pLpGC&sU2#SOIE6DfI#o-6Q;u1$mObv~bO0!5Qv;OBNnD*dKBG#COFnhDB7OF?l(ww#>b1yVu>zm7_|f`^VuOX?;db2*{bgjfuJ`NJjO z7v!+xISxB2hqsYYN98a@s8Tt+hfo(6iH8YwJ=guO@np<&(>ioX$tpS|iWZYD!uOPG>68;?h^*T&*soHOUPGx5=}m+9bE0=94n} zsMCy|XC)$!=}k41q!*>tMPgZy=OtJkK&5y^_6t-u?%5CP3!&kymAx1VK7u9NW+8m) z9ocia5b+n0f%{pYjb>qc9_LgYD=0JVL-aWHIu;~=7#G<%waZsSM90+12ejOwiny)*k?i&p%e3yV$&DKo!T?>c@V?hgj z4}li@o(HYtdk3`0_bq6N@632Q#`tPZz(lyO0(63}Kj=p8n}p<;x~V2^^IZkZd`m$? zzIC95zU`ou)l)os0GaP~Q0{vdRP!AJt(xK~@%;eEe4dGi&p^g=@5dJz942b6D`Rg#z~H= zPbO_*WWz!ccqGp}(SwxSnH{N7lHs*fdJUbJ!ORXbNq-XQyAwN7zbr$)xztaFR>6Rb zut*{qxHCJ_pd!Pdty93BX_!xt0o_IV?!=DNuguWz;^_~&b83ml@=PV7kiks11<9R2(W%)AVL zydyse+drR>)=?8O3?@ngjQX7)Pvl*I0xsgDMAHu5BU1^VtJRvMv-uS`4#=4xsWqFl zU}JnLbFW7xb#?L&f>-vT64DBqMACUxE~3)KJl93!tjz6=OHQ~5c`qd03I}Cdgyy?> zS++zgP#9X-lx?z*qOU3o^-o+u?v|cY*wT!`mSz;TG^4N^GYY#gqp+JY3PV}fQCWBJ zj)<1prl75?*&S|S`LbqrxDIR7r069=^br|-%I%=AH+9~_T5g{d`Mdj^*zeAW{chJ? zj&!GxEt_p41p?=|;@J*&$!+9rOO?9<8QqqQ=(c1;r%*(?d(dr|9N7yGx|+7^g$Lb+ zv1C2Ap4%|HsO031bBf-PQS^?Cq7`zA-kDMK&WxgWW)%IbEIOFYaruZH1|MAb!Gi%HqkF+qNn&qF^lR{=iQm^S z`ZIVsc#8dvqyH-Y^|GjMGGpUO=gsmcc3X!(SP?x4IaVoQNpZMC^ecd&0OFmF(d)rq zK>T~1qH|#&oqkXm{Y&v5b&u+ZS;~+0j%F+Vlm5{>#eX)K1>ZsR_aG9{C$~^Ei?#(z zhjA=`678<|a*>Pm>S~fMDF`3jZ1$i1Z(vw?an~~C_5;cDz<|=4XiJJd<;xVbDnu;cs zsHMu#Iy9+t7JMb~m{jt>M;GETsT5N@CY2g19+OI)6^}`!^A(@Oq|!76FsY=PoFeuc_v^cco+P`#78g>bw8K`5NMsPT}Zr|@i-(|yFm(JuIFjlC3?0N{0NzC zIZoy}#znzX5&_^gZ}7ANIhq+1FrxdLdRVi9egz_0D44B4t`-UAC=k`+!I%Ouye^*) zFqj;~wL*La8l0~W$PXw)t4vy-A@vHKijeiyn7tM}Ugpi|3rm(W7L?~)465ZU1l4m^ zfQp>WphnJCnN2&#pbgX-aRpd$PLs1be?)DwOV)EnLhYK9Mk`obTB z`oqUT1L40xt#DvET0dM1G&|f3G#Ksz8VU~uwZq9NNOHoLfQG~KKqKKBL36_?&}jHR z&{+6!(0KS2(7f=6pf$oLL2HKp1I-V6XW;8?VH>m{Tobf*xCFE?+zPZ#xGQK;co1ma z@F>vY@CBgt!k2>956?>?X%M~vv?RP5v^0DlXv6T+ppC+>gEkI-0@@^e3bbih!|}0M zI09N0E&y#FE&**3ZUNddj8QBr5BCCX6&?cGIy?ciO?WzJMR-1F+wgMGcHxbn?Zc1H z#P-)AyceKj_)XAG;iI6P!zV!Zu<##9Uc{GfFJ|l|7S2KPG7A?V*~`LZNM2##u1NN= z@GvB=vhV~X`&sy6B(JgXTqLiv@Ny&vSa=hXH(2;_ByY0tZX|E9aB@G=Lo9q4$zgQY zF>EXz?recZx11vovz%{1Iqv$6!TNLf^TZz{z}wYWEzYwNdn#{2yJB<_GM~jihB4z^ zByKtZ#{%@-Urn$sp1fAgB5?&D2sv5%%W2=`6*GWo>ACGPyBloaL!*71ca*MM!y2pR zk!yZe>e$m-bVgIs?Oo-{BR%ydPb_}AF&@D~p*+!rw8oyJHP+Fhkmxd+Cx(;OrRQi} z>PBVkOikQ@k=BKzbmcipS30h?p|C$>fpbY~9v|h_&^$A%+WMDh}R1s0pX6gE3;Yb8 z9!oJU#tZy7JFue==#OW`^|gVE!485*U(W(JDt@B~+^YC{%)sr6zuyX^6#rl-uonD8 zvfUQJ`|TVRUj&I(X2kRYn?(AmDU(Feu``xV6kZ*hBkWu9!jl!2CE0IrY7s@xHh^3TLZG-08k#B45|ee zfa*+p9!VHu3SNv4mImRY0N^zUJ^RAidq~SDv#z1V93OYA;0I2(^&0nBy2p{Zq<^|e|4fqs(j>|9h9Oi6 z885k#&G2-a;h8q)yTwrLC^}3OT?LbI=_cbcO~$(>R1t~}Yb21#g|10bR`|k9n`y4i z(!n^>;*TXy$>y^3VlK-xx!g6WfI6A+#5^*YlWsC6)8uM0!AL5vd`*p_uV|L`@mWwZQ~ zMR=zae+-&PVFg}SkQ;nR94ALBT&Vw+YW^YyO&60A*PJ-8^LV5$u8}i9;|v*b?KOl2 z$fENAHLZ_~g*9O2SNP*OLh^E&*U?w*WwlA=zjt9!2k*a)By@&G7_~i6J%&HT6%$B& z_H{k=%8Odi*)*AKv)VnO@h<*olQJ2xkTn2o_8Y}w@b}@2T5KBm@TlBkI@fY9r_*ii zC2;VzuI?zBs7bav{GmsG6q$0mb&$2w90F9fFo*i(O2$cvYjH%_M)$Rg>9hL zh-fR&+%@q2GJBeEu13uRKOJbi3AmQBwUzC!a&l>0gzA^eX0EHbNAAcolv}D%LnAk| zdLDKnK0x}a{d*}M2St}5Be;k325B2*7w1>v;sPJFKsAm~w3|5%y0M$&$WS*^mjYR` z6E|;#4LZ@3ThD!uI!Js(4)2#;T2P5X7UItnKh2@?$En)m9;Ea*PVFq_mt;0hdy3*H zz+e7we8AiapK`9*luWZJ+E3@0m5|xY46|BN;_jPHaWl0BVc9(14XMtrpo_Yb+3XB6 zDNt54Kt;aWAzm7m0#XmK{5R_0gengnBgo4*d00SWMV*SeO&5|b#*qi)1*L~^w03Vh!7viwS6Bm>B`PDHx{^zR}aSE8PVsyG{zBU0B#YSWH zBA-q!dSA${TcXj9513?fYq&|90&SMhQ05T1O)sJ{2g%(4QOhwqALQ0Z$Qliz8qppt zt1#FJTJ|9bzNSSEZq@i<9EoY4a9rG~f_8k|I$lPNK$whcwTvr$YuG|=HdNQWzHHkK z%1xmRWrOmP?`)W=c5HO2`KwyA&vWGDv1%vm0&0`TG`b#Q1$2sOjZb3m#Ji;Tye5wY z6tgK0sn4sH_5PMx0e8u-NbP!g072U@x5TB$bxfRXz z6N1ul5Hni)K0{31!RiOmayzQ$0-i~m3)q!57w|&bT)<0da{;e}0;O;x>$5)+XsP%& zFyGJ(eZLrjq%j!J|MUsa37*dGMqd`74V8?Hej-3;ddc@U19ZlqV~sJus-C~%KxiFUV;l@eR~wE=GaQ>{h^3y5#@MBNZ9wXh;gl@Xm`H}>ogyct zSzaIlG3d~#%a{yH8ou~$K{WUqYXfdnfT=pWX-1}?eybjU5X3H0@w82b(>{f>FD zOZig^58wr@RtvCecJekrf=56)BIyAQ?J+~Yc@AcyhCqNloN136`U(grcM`Pc=w1P%wIIzLoOHG42m*=P66HCFwUVeg5DUCdj$Xim zi6@A8k$khP-ZnQ^;g2t9CCM)adpN#zC9|UxU$6l-k8x1A41euQ4WIkKH}6%(YzUW7 z##fYK$_!?gVXfm~ay8}lttK~5R)XL&n-t#z8t1X%8u&CB{yZ_8WH?F0SQa;n@W)Mc5*e7+ zfNS}~qWP(h-^BM3Dqyl)nr$VW+i}?=%Wel*fBdyOWL;QwEoVWxm~!ssxR>L$FAJQa zZu*k*JOh68FJ*tlS3vIw{yedpyx*(5Z-ne|@{znh-TkjPUcCkJyOi}1*Kvju|I!(W zMGqZjCM`(H6Nkvtc6f^4jJDa2KTmu{vJ=Yt3dlB7yZv;o^WBi{rJTRGCY^Vc-s30H zn6vZA({JSIO*AOYkKaNaa!{kX0O}hF9@1zxlWkNCi`Mz6%7a?OGaCHN{M6`!S`A)5 zb>%^=cJfF~+L0fJk%eOt23IR^OJfm?@f&Qy)xbr#mjR%SH}y71MOTm+5b|EeI3##b zcove;kZO~#xal=mrF{y(CJ41Y-c?9Ut%rFv(j^dUy_k6;cygun7B~x&vgculBt(Ej?4=PT}6JvbiZ&PO85|eE#<+dRP%>G)w z(~wh~lv%hpkE8QR{CQ&YH7H^L_EqfqGpV>ioFW4>7Z4oGo5ByExS1fn67J-()dYt~ z$f6?y+$^xj-y`I20d@p9xQ|p8D1YLqYcUGbk_xjul)Xs$XL%oE_j*VkK3*dae%hB1 z(q7W>%ci7|q={7((yNr4B^}D@T5wQ+zm~^!R5w)J5Dg*iP?M*Yzpd5CdxuJB?=0!U zab|OVJaHoR;@emp+a#~O5I|maRsqSLb%Kh#H& zeORJAcQIq~p3!=rp+7kncaVBqj~58AX^0IZ!O5IHJ+OI$G}wWX0L2am?s6b|%YiQf zGGh%$1$^+O!qXV(WIj@O3s6jwb|*d>9}{W-)S19Itg*cYU@L*~qOtb{0I4=XlzI09 zJWn|jMY;F5%DF&v_nrheN;wya-rj!{m?;K(1xj2(Iai92-fRWtiLu^z7SL;yH6IVq z7o|RbS1U-~09#%rJXa!(@Or}A49q-IYKS;T0<0m>2=~PTTNWE zE-I7VbSHJwgVar9ktMrnD>@~fL^n-^WU_|*Z6ulJbkmpA5fA!QH~sBE)lK%@GFNt! z?>Cg6O#w5`g0tXEE}kxM{2ivT!T_y>{tKi=_t0J{#pqyP3&`x-LAkvNRI?ug)$Ki? z!hRbxX&(c1?x|P{!5YG~e$?i4*04RGNjn>Kp8Z=^G4w`E(1x-fnyOG4~r$OWPtDt%IN1!$A??G$Y|AFS)!KFC6+I2t+?3SRl z?H-_o_88DQ_AJmM`$o{Z_D0ZRdk1Je`z_G=_Sc{d?9-qncHl-ll3>>aZD=k80}#_VPHgNWHPdSU5@D|gP1;*QT|3%Txo1$$E{IspE1*2* z4NxuTJy1R87^ukk7Sv!NM|pJ4uYfG)G$_w8a8;q@gh2J22B5-KGgjtw0c1G?K=Hgz zsIC{Ow~Kud@GN@)=xqCT&@1gtpjX+CfzGp^2c2&p1YKw!1x?x~K$-n3D7XIw)$9QF z7TwMR6?QSGVK)Kw*cG5&yBnx!4+Qnuqd@)kOVgC)<)(+f?2^PB+XnVUEXa~CsXh*v*XeWClXlHv0=pJTYf#gMIUxVZ&X5WhB zWjyqRWG}NHM)C@?UqG^t*@uz5%Ir^&>}U3Ox1#-DWA>kbuQNNaf}U%!3y{3Q>}E*b zWOjQbZ!xMZBXc}0(!Wxgn5P>0(TuYgqtt*h= zduEd%xe2UUH+&ITyjIjHm48$V7u`h`&j(gQ_#9YI&+uxn(FefufT<(c)Okm>ykux4 z1V0L_(TN7 zdlEpN2)`A@-oF9l$?AJi!UE*C00kL)0`w$jJ3Oh)d;`K=!ABcXAmIUE10zAk1B%IU zQ%ub34faZi@V-Fa81UppT!1qfRek^j#&YTTQes~YtcL0eu>K+8wP2%*!1DkFeh*2< z26jODCRnRp;H4z^7r+O~!mpC@cBxDydeV-j@}4k(=KA3cSQE?^_DI%tPL{71+xo-uD3} zk+)ZP+QkKAT zt`lHI)BeWOTKMzCFA$4;yg?J}PjzujJwQX>R~yiGw2Qw*MAM-)3xDyNw;nD){)7nj zMCiv8!8@S;sbgOs*O!OL{?m?d2W0*%(R2riKO}M@`06j*?vN4GCJ!f_PYNLdafY;h zNy<+HH8B5S=4kwRqKwoqB$ttvs7U=1mr|q_)FSu`i>HO!kY@cR;m;GD$ipMN!J{bF z14W+bO_D;+8`7x&K25O}f;xnUGU@b5=WCh9@hd)ouA(bR|dXDPqqqr8~5l9R> zsIDEL)}6w-HodNmCO|Y*dbou=+~j&F96^2mWyY59wX-D@PNA%p0!58S8#r4@DC6kkrP$yAOPWzcySP06VzQ>ffpd|Iq6_JuEuQCe+y>0QmvVQjz~T=Pe1R{4>r!M# z9wod7>$XVk&{G6otnOw+XYS^yU0-W8%VHE3)1+q#%Y25EnMPs4m5{EvMy>&wneu+4 z)t`jtS4^rJPc$I=EX}DF8N5vP+0q`*Z@51!wMlxp8gGFLQ8^)5POd7)lI28IIp&$v ztymYK?0m9nq{)g_N7qPMIngy%R%~DDXIOQfNmdn_v-?$*RUxeatr-+zg|^PAlPQaC ztDJ}fsd2|q^dfT7SL38rU3A~fqWdW;_GoH1ta4V7)d;s}YOn*VPr%t`65|fNJRnrH z@{~+xQ>&aENKGKC$I0q{=UV+Q(`rtd)gD+~@*-I+!}iY`2yA(i^eT^FI4lU5s-KDePGm5`RX(|4@7R@f3CX!;-8bJ=d>t1p&24SIndp~LjMrlg)g1RVy&YY&^(n(Uuiy^ zO^V&4DeGOeNk^#oQ`N4y0JSWUrPh;&NWkK!s2)|Y@cC*8@A)!_`cfG%{tD$* z!N}_b8>rmSA%Z13j^s(&46JvmFhTSE3@DBgEY+(Ta0xNt5e#g{XOo=BpGsZ-qgIwbodVjVQ!GL{*rXh=aO&`nTC{8qY5b^HAKnYe(~mk; z0gfH3pQ@}%Q?Z|L0KI{%{z+>`Y4wk^LRpsVsDD(mnzHDBl@lC5m%vHcDsmDORoxqs zPJ+TM+LBfw;nvtZkotzKHj-5-o#WlZuCyvuR!+bTl@)80>iIJQevGVIpIcUIW#yFB zMp-$Bw+i7N-b6U{6r7a3Ku*rbGt_SPnzF~v7pI&a6FsTvMu?l7rejZ~a!=wAcaW?W zRtFp!LTU>Id7-wFyXQhVN8yGkvaCR*ugN z)jm_&FR0Eh_G%h$2F=h}TpR)<|lZ*99FRs3|5AJfNV{6e;^xt#Mfn1@TXHcRHc}lNtKI z$}c;Ry7*TdBg@WUVMCl8u*x*qhYkLw+mmtGlVPJXhHEG}GKWfz7<8pfVaokB*HEXO zB;`gGH09_iX3(G+%0lk9c?Rvb@+i>`rFO+%Bnu1^$GLp>IJe?Id=3C|Tn$h((~asK zVKEgj-Js}b3z3aBy{bGJ+zb_*b5xpXxZ5g|!CfqsW%1ik%#-+wE0YEtW+Un_i-ve# zHb!SE{*H5tze5&}3R$we)v7#a-$<$Qge-4Ob$PSkb1wd3V@7c}DW*cdYu>VfRN79X zYM5)v%I;L930c}Rsx)>>s@Lz>R>zUmtJN_&Rpi@^YVr4|Io8YiQ;UC=0i70K@A=Seaf@y>ZSc?(A?oS0_}!k29cz=P zYR9?@rEbPwB=7g6?^rh@lEK*G@yT|I=Kbp0#KTm;`yPspqRDe$*D?vibsR_&eN|oe zepT1W;66~nIbHXmZ1p69Wpa4)*iDGc^}J0z$!^JvX?s znZcd)xTAxR4DPIlChV$$JL?4325lvyV_vuEoanf>YQv&|hvuyc?iivt@lWcxzc3T` zAH`APt=>>%Bb9imkx((wkXohG+tY!p3BiV5+Mv@f-(q({-1=NEtuwu}sq)gAyi|~v zju~#s$W8Zi-E^;VBdgg%RTEq7ZGU6?TmFB#z5_mrqWyo{-EJ;>$tAgv3ppS_z=#N; z3Q`qBKm~Ok=fAmp3J`xBiDy@W{Mi zU%W6<3--hdqqP1`59&W!yijY|3ynjv2mfWAID%ove%-7;j{K&%xqiVDe$zBRM+`YF zXNdG))1|(o*B%QdC*p9Mpq49ffa^S@m{XNmA=R4^c9Vc*BU8(C*<^%`ai+b1I|OJ{)yT+jQW1v zZB5I3O%bCD=nYTo9W6=#bcFk8SwH}Ljs0oK7-h+Rc}upF!7?x3)WxUE8rH-uS}B8b z{LZbS1)F;I^M5Tb<8nsxvAuab){w`V91n?u$8$WiPpipg z@3Ho)>q7Evdy{W#Nd7~fJp1$>+}s9}$}PxMktgQ61q}kx%T?_98=Baydw$OD0;{=H zXY#!C8+c2o4XG#3d6>#&E!@m%n^(X`bAU#{4H>(2rUw5OH5rFlzZSSfja;I-`(YUc z(oI!&Zg9p4pl~l-5B?5j2_sJw9)tHI129Jt8CG^E9&-zi#AyrIM7pQENY}~_kt9vz zAgqznX}mNls{mhlLsy*v=g8G%84#u~C5!8Dx`CNrrD`G{=ic^2J~1l!DZQ}U9HsL=PgG9O`J0oKw187#kuOq}vyo;CihP-_Y%*UXZK+nvUoJ#O z52IHbl?6z%$BE8&Dw9a_0XKS$S6PiT zr<CuQ`8g8z}5x{P)$}PN?8k#-NwyTEyLCTcbEEOp+^Q5I=(y}lqmJ_HGbZQIR zs?lo9wrE$rF%joKUqY9KD}UW!uk|>9g8*39U@K!R{ykR7?(a7Q5h5!3fL?u$r|Vhg+1GrX6PX}^urK;$~z3%cTh|M&fj*;{dX0&wKU z=tH<9BlF$yxN_-b66qtjQB7ol<6b8K(hEIzDbhy~X_4=)K>BE=uTNkt84?#D z!|7x9M{+ij(Y^&I;{uVC7Gw8g*e9UyQ{+Z&jc&xnk1WXxzDWy4F+b>%6V`1OcA$XM;^;Kj-y;|oC-{nRp^+uH9Ba%CT;P0IVdJ z3kOQa0(z6kST|7mJb;mdA519ZuH7Z`1@fZ33*N!SGm}(PR9J3U2d}_?^s)l3 zKvTKMsJ4daj4LDd1IVzsIQ3*?I^7D6!v%jQ{vvYhH*l)B9fV`-kC99;IU;J{(iZE# zX9DvexX(Jma4%Vbh-G+NLmYPz3M4R&Ou2U)!X#?_hGR0My|ERd=OOp-nse$M)lVOn{EJ7Qy?KbeHpWVzN5(C zXNjpkcLCb@-(rE1CldNa7&n^(xwU-;o8G}7w8~7Y8uRj(P)DPfAB#MK!>pe{p*48( zhT-kmq^`kwYiT6jr370`BSD*S7H3x$*o`t5k^mdJ(pplb>2GALhYA2w^s-fDzNx_E z3NlHX?z z)8af4cf1zoh`0$_T(yWhLBxSq&C2Y8m|d5-jqJPZZBZ93LRr*Ri%=FFq(vx;x@i%0 zBBHw%(fLVQbg=n3tjQVJQw(gX?TetmtH|~*v=7NJ5Pp?lc$7+E5xYbKl&!A0TQcZ& zfawDicmX;zfT^wu)LuVKf$Z*3T6cWD6v7e`SQ%jr(3r;3i_G~6+|wj#j)Mkg^vNcC zyUKhu+t#-`Hvf+5JZwr2%X)A`orfg~$m7;*#<%M_{7E#fQ3r}AC{GFsDWqzi6u$`t zr9PGYIc}F_fAQ^9oqq>1UN_B`;g~%A>so|!D+%5d-;w^fY>&8ISJ#|W-{uulQon6T zwKYd|LG~t4HSaot?kX`nu5=AA3{B4g@pmB2c0Z_G_N~)L>a$U>`D%&}Ox2u>FG)!pc6(erX zBL!BU=@6+ohiHwR?qCduSMQ+18VeP`^lk;Ra{!o<5NYgOq3(#D1VP$C5acauf>%MP zjOIF0@pTkMc2pvdrsJwbW=AbEEiyZ5nJJNpQYAAfaoEveCrtN=%+6Y-aY5Egz^ql2 zG0e%ufgy1;Oq^k~$m_C>c*iP-sc<}2JIr7=jxvUlQTVHCdi>hNtp9{0m#T3Bly|PA z!!EV-s6aZr%;joWP&}mA^uEDi*6$$MK-EVI&Oj?@Xx?JB?|~R1D2rrVF<5t*#&YsM zLQ0L|wfN+0u<$En5B{0OkMz>wgUwdp_tdR-AB(atFv<{yN#XFN=AT$ghB?p|aa%-O z)33ljQG~zYL(6-PXg^vL5D3zse?pm2l)bLRF3;QroV7Ttwzh{mLY>?Z1ZyX99Vlq^ zx1%WO9Na5vLA(ZsS$`1q{#*6K;)lO=r>HbhAQccjck3QTHQj$rMtnv@T?BrMa9G&r z5TcTSD30d%Eu&dKl%i(ZbWut~&9;N6Nq$A+a$sTy!87g4P}4y6rE#5Q2mVuvoGmR> z1jkMT`!o(~nH_=Tw31v{jW37plCOtOq~yme(H$|86o!vk)E!{r4~lzC*T1qm2YT+k zxl$6}(i+!E?ii`5-+AT8$=w#d01Cs zq9by#*0^*l0PzUc8kg<_AX;;+u{{AeA0wxrrE?OJ7=mR#OWMU|lk87PyD~GFRds%} z3oZ%kboWfC#&&AWFkBA99|wtbp3~B|X1W)l>^;J>4R<}#CTd&0Z?rcf_etbf6Qg(I z;#tSL3vrckD&%JbbfeX7X1MJ)yJrft-S(4WmPrNyO@x+_ccbS*1Oxb0bPeI_B zMPKsb+Ty%=uq&8?(^>GD**i7`7tbty441j|;Aq6j6vTzQAZG${E@DnAopUmB zrZK0R&KZN87x8dcJXq%(i<}RclZ%>jk@LVg$QchDx*C%N5&I70WQxz#Su>HfoJb3h zGX-tXJ`*_;Ak1bLQE(1U_oK+_7F&T!#3^2*NiPH9JtSR^oZCq{3ptBP%AhHJUn9;& z_9`N7Ma~8wX0U80V();q1s?$1h3v=x{!xoj9DOk0H3t}f(w-{hh+=0WXF0vFzs5NW zIUaMmYMgVB^AD*8AV=zTK60>kMs@K>opZH00cs*E!Rj_6!%C*22%oaxY?jQy*($jN zXS?KDoSl*^&iK$tA&)It4$vsM4`;JvHO^MaGdSBN@8OI+i`lTYXRmB*H_QBv9PBdq zwgW#t1oS?!zmVfvWu<^DJi;bxn0TIg8s(ik;eOhgx9u~LYaeErbd}i%Ym?eMDjBCY z!-p4m;_6RufOUletB)XfxHVsa=`jQcS__-OpN;H=uNdry>_HaW65tKSNkkZI-AH_H z8aA8o5!OwB@fB>U&tm|OwAdX2Ob#SC)S@n_k6_7gs5z-qc5W3WgQp{X5f1xk3wtpy ztost>M&rwoa}N%FQhOAs$5@Y72hf+F$M)~57*hv8n!2eMY$TM3b1U9l z^slC|8GAFTS!(e)Rm)%KT7J-RQ7o)I}eWuP}F;gs?2jXWI#>#yhC`t7%1+!5+qA;*dIF)c*hUCgIBEH zYdFmMjpWw8n9K|zZeL9A2=N2Jcm{`EUrb^rApQUJ_s`7w!4F2;xMnSlBfp*GSt zH!(e`j7^P+vsI~^`iSanbxM`zl0PUg4G_vF{wBE1VUGpSch>;?!J%USdKGz4w0j65 zp2K1PxX5?4U4gkM;jo=)GTtG8ev}rjuqz;oEBj*z{FgFr$t&TdHyvGK<}mo zpo;0~kvbrY(J6>*gTp=}l56qVtE=sJW(u`f7ctqtQVUmPv;*SQdc))mz)bch@D|hRz931XY!tJx8lu@`NvN9z{mP$N-)9cxZ_3M0i2O}j zzAv@;nU?Q~{Le)`z5Y~oRC9ayvDcG{6P1clZgiq_BkW1OO^ux>HKrSdUo;v-hrgMn zt}gX{ZvZ-e)@)(dHMxWA?@{c%s>cNgYRP#gJG2Gfy)xjrH4gq8jmQrcVt>}YEwLR2 z4vK9hn#I@V%0=s%2ivX_9U z&$lF+p@<|#g!c^1+w&=EmZnm{H`_f%*=kJ5?rdqFn0c9K1t>;EFV$Dt++PK(4R zgtqZIprnC<{8WZKpK+I~=ucix@L4ywr6ukq_?#=zB!21&vVl14J?>uJ*Oka!+QRJZ z*=;-)ss78T;=UubxD%T7MXSK9Z=9Anau@C!=OY1j)C+!QedBCNE4wE1+(GE{x|60Y zX|9judL0#4H^g*Y@!7+^F~%;0)%rB`&Bo~0#vg;pbTC1_>N#(Vu@h;$6Zr$WNxrd> z`1i&*1{d=zNLE@PO}s_k1yffU*-owP^5%0%-?hM;8uVM86qUpaAoF`%^^_}dipvv4rs{U941Hq_|ntzGazkrSaSS>vI zYaZ#yT9ghb2%MfOZU815Hvkhd3_4s3EN;otfdz-DL6UbM!9kelYFr?rZRbZ6s60`nUn(%5tu18IFBkNZS#()ECNIapyFBRy&q`+?ha!la8M|izf zQ@Kfj233$Bb~~hyHANx>Ow%G`O;NpKni99IDGJ7Gp6l_LGUL!Q&Rsz>OTu9AD|~5p`I;$4r4^I zfnYF}ina3D0qLQ@n4YHBx)-e+L*9q_xv{k3f2jXM1}qqZB~JjMzaLbXA${gyer~KW z4V*5-VUP6xZ_8&;z~zDE)nsHl;odH>J<8G0M#uXMnUbQqbN^)C_UwY-7JI^w-1c+eqnngTh- zg$};hw;^xe`(X4P4*PYnFZHF9ed++)%j`s+0|E9MlCPd)8vDq(Ts;tYGG=@?XWV&| z^PYehs8au(V#CMOuON<{&4LDok;yjZmBe$+Slud1;<}q#y`~5VWpOqWD2)#6=(cz@ zx`$+#E|-XvyKAkGFk-Ky_}VyIzEE)N-X_jk4TovzBgh_ABpi~$VN?-?(oqY^VU%v> z{w)e*AfU7m%{;^6pq;B5@fd06;l8681$*X zlWK>eqH#*K9ike@)D3WFWv*9QM>f9{{a1DOvDMiN4}^P0lS^4~&Z~+`S#jW1#id-H zh``hrCXI>%CTjFoQ7pHn^1is6jgULqEHa&2tZp?lK?3L!VQQ2Uhj&S{{u*vLXD=$w z-L)0s;$k|`C?D9v^hTi>ne}&&;X?r)Z1vxzF%K2%LGhOaR}}{%9CZVIIN&n=V2nh- z3AiToqk3gkY@lBARbqk;5% zbTS-fVOML49+OZpB+8EwsTmlP_=Vb!Nd$qbM%ZJu7HSAQPM11~CxM&;jcS796AWSL z+a97w_H8GMCTN=Qq?AOVND7C2K_Uw6RpZPqXm9(O->6;V649=v6FD|6;b;O?S1mWP zbO~={0Ml}_Y*G^Fnv#2X4y-tYv`tHR4-W_U9`ZLzWQ4-n8$>iiL;&hM9YlU(ibf+(pq}LFb6urDSmDV8x(`{xJ(`n-!1p2 zyuV8F<2QNM`KLt2Z!Nf`A9oHl>-!NeR;r>s)M1^#{Hjv*I7YK)QchKA&^vf?zpN@< z#syr^!?~2jO-fZe=cslpBFe0vNjArq=At%v4e^c_JVwuo2B5!2fe)y@L|04`)Q?BO()}g~|Vd^XgJgkV{;qJ7+K#16AzDO7qVHQnVJiud(EtQig18KA3Bv z_Q5#p-%2^H(^g81a$3V~$gIDC1~o6sd96kaYF-u?R4oQIFB5|>@zP8zYF-vtloE@Y zmx&iS>Dh)#H!tg{y5yvE6fMgF3(Lf$nlhRM3)StiRT=9UpeN(^)@5umV$~8Tc^`GJ zEu+1)UmhWC^v9TCtU>mhEb3jBMp4~g$fJ3YLfwjw>Wc5SaoDGp(IsleQ`pWy?)*z;O;G$PJZY}@<}b}e^~HaSGs2B)6S-6*bB#mYcPf(l#@e3_uSf=MRP~9K zNjN+sK9#o8Sc;7*&h(DLPLtRXRk#+(u9Y%jTPdSvqsoY)IpHwtW1QtZsK{)L=?QNX z4(P0I%)Ql(*(l)3r+PdSM@BpB$qMG6E9?R?x22P5mYvweJ}}b}Lj~_jr&ViQCwXHW zZ!XIDkm}*>u{RIE=xP9Xd+e0L zygl}Q)d1ced;bFHVImAYygl|jh^LD@ygl|x0WbtTygl~P*$!RpCe0oLx>x74x*gY~ z*UIr0A;HeT!)s!1Y4)_P_A#}0gD^5Xx&#+La=LpOt~4crce3XpO#zXaj(c_XyRP<0 znFlbMjx3Jeic3x8Dt9ohtTb%W=CU7WCmxyaxWkc8vm@7d?r}(S3>3N6cck_Vh z2^m?CboFb;$ikF+A#gae5LuLV=ON93QRMn+qZACY8xFD?XC~s78JQYA78frv**zFn zHn#{~=ng`f7Di5S45uwTC0$JcSNv^7KNUGaW@C+sDa3)XrzPI9n8OilzHt@KqyNUg zW8unQUyLWMO#r$9FwGSayBaTt?EZi<4tB6Hu!++!0P~+g@v_KRB+q4XN%SOKJae(T z4aDb>_(sG12kH4tXW{sZkSMqer`R9J_RL5Y>CvEy)_FH089f~7qs$Xr=P4{nhB4+u z!)>b5lbnoO3*Z%Cnp3?(&z$VG0emJA;eiv7zK!Wq5VP9={6=6}!hQ7VAbnbmyB_HS zVT5^lH}_Mdw-D!yp6)j~J)^JtGt%D@XI6iAmrl<<%r!Gm?*|r~J-|H>X(7%GbbILh zi-s89L~x8u$EgA;;DuiyF4$cEBIF#6qA1oneDk3{-j=HoqfJ<@!a%N5v>MM!i*hSMjq49WILT76?JaKSF;+~T>&qk@qq zaaw|0tiaA(i7S_2=LF-0bWSi{NaqAE^NhH-{SQ#LLSjI>|z+(-hggNf%! zZ}3ym7995AT`4YQxG69^%{`2NK+e7YBg8`N#%ru5g!a`4L;fMidlFnW z;4p2|;;?BXUko9NmbAulAm-PPAos4ODeVc{0oVSQEV`O^g9X4E#&902epQto4mK!F zf26<%6mk_~7RY~Ah&IVbUI5t5Yz}16=F!%8F}Dt)@wZ+!)M-1C+DOrx$o-Nfy``is zU*bT`MpX4sDe0Uq>4x0FEa@jD-K3=QDCEqNX&s<9W_-8Kd@018RLkmfYkQ`VhT+h%R^@Zz9;R^e_7iixsvnSjLP-!$W zLgYY-Jxd&vhP4^iJ~vPQ35Qv~gxc)LYf~)pc4&E?MAuGHmIB_RykA6DfX0?QXf)=0 zGu>#`-$$lziwhl5`0c(dR&Lq@@}tb$4Erj6kekNN^aw)lj;Z5j;x7 zN+taOM*re4hg)nDNfnY6lhF1Tv?2dyAH{6=e&9^L>2Ky5TQ3i zo!*Jaoz0T}NJ*&ETZ-HV+MB~X^OgwXCFu3mAbU)m^m_gy6!SoYtwY4LMt(OO=GPGy z6hWs~*$xKx#X+~dkZpRXUD4+_T8|B;=v;a`xrwYEl7>d-f7<}`rI9|Q8!2{@4T7o-qDK+~a$cJ|Ct2 zl~`RPe>@BoYsFJ*?4Vz$!G^y?AE+ExE&ak8J8)c=wAj2BpL$8GrWzCb34H4>psIu? zZJH}Fbr-Z)+a|lYznwgI6VgAit9sgI7>9y22|Zg=*Jq?8=q|VsX*=W&JRsZdFuStj z1frh}N*vJpW?yl@51MJ!id;FSq zbpAijLHO>x@EQ@mTMMr~f|~DkMk{ZprQg`?1l?3hdf`1eU8LJEbhqJ4Y?;z+h_fd^ z>P#GFg(KZTXxwxovhQh|J>+n#`Fb7c%|we!&!Fm|@_Xb=I#4xpv93~j1_btaG`U-F z;6eU*D0@mMuusv=%@8|I@o0xpb&roZ6&$!Jk>ZzJBV}{QFrz^W`c2xQQMCc>dZ)DQ z_9O#6y`F1DSWKd-$QVJV*{ZpQZpkA^H3`ou*{YMC6b+oM z`sm3~9ogdSlcTzio=urkqI_mTMJHBg|1%Iz<|+=N5_lNDp~`uWFzb(}D!cNkR74MOm5t%(Z3f1b)Dp4ra9NiLznU->q_LVXqSCzke%vz2hwS%4ZA!sDCtUIuR?w!l`qewW~Ivp7c{YIl(cT2 zO$@fH>Sxp35pK@&s)>zobrTbFN4Ru+u8ECu8#J-euC`A+J;n_@?XAvUIoMv_{Bnwz z=SoPhXI0NP^V|~@Pv`3Fpd;|geHqb~?v1uIkH%`eS<5n3XYVD|qolfjZ>swnQau== zDj0$_F>jNKi#T%XJT4Z)L}zt&6i_ms6J;U(LWNN*F|aU3rvSxROjWLr(d_WR@;8!f z$?IYW*%sk!G^6|Z!xp9tgCCW2#rj9>Z-WyADBF^a9BCJisV3$hE(TV(LJ`IB55+Om zemWBme>kn%k8-hBpj|9IV@z&$)PHq$+L7?xP*T99yy#DGl`b3i!-&O9dY#8LPjoG_pFFp)z+xOJ z@yTJtk}8PaYxw)XFhC&@rn5ee1?Cz!ujW$hk-_WBwvPG8gGv znC5r)mm@JA8CIqb_6))|6-b+XqXTep9gEUj>vo)-ZOBR5cSNqi^-W~hcN>xaBHfzl zdz{D%NPo*Tw+?uZiOo2zM6T66x(pZBv3DY86O#6=&IVk3dr4k-YzmUs{^pSOm^v!x ziNB4Rio>jTUxqHNO#Ta=ag3y!!_)XTLzK=Dj0)!VRv0Hpx~pJ(htd{}$>RX#4i*eg zcnk)QjQo|}6e%J>Aq3DqXNV#{ALQSNfP;y1vXJ{ielk_y-|`9d$pN)<7V%DL4eiKl zE}^MCsEWS;e^|snEi&r|F!w$a{%UW~Cg*y|&l_A#km>`{CRLxn^Id78lfVZ(PO;4)!$Y zdz$HCwwj-?;FK`j({QoR!D%dsdOJgK@i2(zCF5FW;mU|Jt*h~YQ3GOB92U13F-+AP zKLgEv*DRcGKW+M#0@#37j7@9|e;$Ch2s~#x{&gC79y{4C)&TaQ_m^q_`_TKh1VF~d zM)dv)K<|?SHlp|M(s|z_zZ$?k^#1c2z&`Z;It^eS zdVf8DZz*S^+1Gyqz=mFguo1og4j}^Ah~EDIz%K-_5xu_&z#anFhu;4JKq0FT`_TK_ zvI|DoCuFw0iYlCK6<+C#u>8M(Kxa6kEW_Wefzg)ZM}Q_JV=T{)Y2aAP_lqJ!@X@7rRa$Lr$_B(3mc&ogXK>J1b?*#PO~QYPXiF%)2%7~%ev%r>kNN`2F|c%`)_Kr z8P+-e#{e?o)S1>r{$`Cg%evHvP^2^g%P8`<7+zBxX8j+)vF^qn>7i79X1(Y0(?Ve6QdFTn5_9V~c@P#YVQmh^<5V8m8}XV(E?O zhM2yqI<_CulxE*k6YGfd-^{_MbkF}|`h->9sv$(_c4?Z4UCE>>Hbo{K^Q@PaP6FQ>ULhG**f9 zfw0AXp}&FesnJce#c3_nkN#`<>F94(eAx!vq=*y6OO*I>6bbOB<-~8-z%I*+->rea zEI)p~2L84Z@s%3*$4bUmYhX9#G$KnV68hUm6s7HUvGpjVlkGYq_O4EMbvnjA*FbkK z_MJ}m^kds~x?dvpt4vh4>{;|(=`sRVL-*ozxAu$&U2=Vfxa#doj7!hlUeClo8F(%eUr|%kXM7Kf9 z!as0&9Tr7TF#S~YSTp`80I8gDrV)R9qpr8{rW1ck7uB0y{5cIAXZrD%G;q9`h`*+R z31-rWjDnrVK}~ByQJqy6`vQfcO-CcPRj0c+v0ro=m9tx?Q8`Wqv_jA)5liXxp~+mW zS%;-!`|JF{=~zddKC(L2L#Kz=#0Kf~$lBO&ogUZLhzx~qW+B7u;{6R>BNG8%1=yNi z9Q7kcwqQK|-R~(lE^>%-Cw=Udu3BPvL;u50^(AJUWSaM&0o zerEmG#9NPl3CQ8Bw*;p=^)q(X*-2i%6X*IOq9ldQ^+iO%V|^mgk8E!!+6;z({lVE) zORpr}?mV6+>~{+u-yIIi7T04$)|zO;tei0lZI~zuH1`B5 zG0ZB0QZ(Zf1yUy?B&;{NEX#9IE?K6`4Y_0}@jec@Bzs3azWY6a*{3@>C8|Z&(;d13 zQqyNq>gf)9Lx7FXS0Fn?fXTTEq)znPRRm`UGTpYA;7o^Od4S$>g0mbV=bq1};K6$q zRhaLK3SgQL4d(lS2L62{o9~khrG+aMxEc`v(0QKVHM+D~6jES{a`=O6qhI!xL|G^rD*$Z|BWM24T0H zDx@PhhpSpoM*?#ladLuuee-#li|@W{2es8Ow22zYH*@f#ut+&!X%6!P-ii*X`+B8YUoSTS+&MS@h=oZ%QQU77_i`ci_1_`R%Z0puf<*c9 z)k69*WdXT04vG*~Zxv=X(~YTGa@uy;yFOM1qT%q zjSdWIeK|5;R0YcPc0s|L$oy3mC~=+k4TIGb*E8<|6|OzS1yG;inju1iKDcL8_rY7( zlzK+l%L2Pj`ukqu5XO+)fcgk6Ky?G^E66lLZa{|!a@ebmRQR;0R5)wvc={a!jQS1K z^@+T$s$+XX>#91oC$y@nUwcASg}8#PRQ116j#V0p%iea9of<7JeJiNT&<*`N3jJ+w zp}#d0`ddSxzvYEy6O+-3#H5(JPYk1#9D?#poBCMS^vYRIB20eN&1e7~(WQ$I=E84W93b*A| zP`%=9`=|i?VJF+EHloSBieK22!^r2|JfB3b>_YI53jPP#FYt(~8s3NhmoBW!PxmcQ zVZLQwY2zrZ#LGD@EsiVkf|j1zL55}CW+Ut_Y`mx(*+>fZa%8rCigs6e-*WVi*P&dQ zaI7j1uU0;d3LUGu2)Ush8xL+zs_w^0qYqPDMv5y!6jwB)xJprk#+b|AHVO^*GEDhP zNM$>mVmE5DmTZ>fJ)t_8CE|&22*H3Er`V}6QXk9rHQ;UXc`T&PV-3}Ld>?gwBE{mI zHeXPil6R2zbzU2F7y5c1Z4z%}n@_bKh0E^z9p8!)WF0WNLD1#=|dNKLrW@Xo@4f?DZh z))uHv=5l1N%}PP*G&w(Cz&< zI24(aRe@?JAE*K&Mak3PAgEQ^fzqQfk^V9A|5X%fBhYYFEU27&P+aL8yHZZ(6A( zJMcf2IFPT{PnO3_BlUV8=ck5u&@EbY+Dh!P(EI+ZAdA*>qq0)x>Wf#-~B;~CMod6$?3)5}^7_W(OHtoSUTXsFpwml1He2bt|YG>M4 z05H`D%D%6^ryqK{Z6CTC1cl~a?*bg%ZWWA(erUxG2XL~5jE^lNc7z5#v7Fd24Q#T!*a!`LYWcBaHSn30h>a(} zWuno~tz>M1F4}CRVv{xSg_Vv?)4-Qjb!>(PwpcZ>Gd1v)RU12317BNhV;5)u|HB%a ztATH=&auli@EyJqx%wmYf?~v0t7mM1F8bc;8@oXR+pPYvr5gCb8W_7p13y|rVz+DH zC+jGqkavOT*)ZvOWaDMWBe=MhdkJ#9>u_4S364MCEEs4VZN^?hVV?{rtP!RWdk0Vq zcOh$}>BM?|jKAR~Fv?8F#sZj5V6<5sYxId>^yN(Wv1ZTM0RYYjvJJ6Bvgb z08h}sc=OQM=>TqLNxeD1i1N+Geqd=0_ET27VetMBEBAJ+F;)?CjO~TW9r}S3(Y)y-(#E$%P{p{z^VV(@c<-B zF!dihQ3IIykDaUm%>2hr)j$SQ|FJVPgsK17nHu2KfAoF`h(fGA!LPIH;;e1arlS#` zuhU(e_>DT<-HR{R>7IW4Zk_Ivi2qlo4^755==8|LQt`JmFgP9mSf`Jyj&ITF;WhD} zb$VoN{4brx)PM9WRAm(uG`kcY1>fTzQVgR*w#ix8H>?=Jsi;R{hwfNBZ_ zszo8c_MG^IF%2`!GXduBC1(AHWYGj)_23&-L+G2BWDvfc{6?G|IWdl)?GUUKFy&{~ zmwXDWwmDAO=4WF=k~(JM@5)6*i138Ahlr@ct@ah_*vn)M0<_;Gh(9ie$pEd*1p8>v z+(EFf292UG0Ujb?e!CU3{s@Ykp+shAmeO~IGOKZ3;gg7X&EC3Q(@?kT8tS${OINxr z)S%LBkp`7+*PGeS=h%tNB^0zSFGwl0ZXbn~6YtwRUP7Gpt>D29zby^^)_fmT2r$-B zfzwc1Iah9NsP6YvC?mcU=WP=O!`^z9GVwu*t{|mbCrfHKPtZDI#p6N4zEDT}dSI`5?ZPdUyO%v%k zxY@yW)hqn&NkoJwW|5+`RHY*ntqbxL*}mtY^Cq=o13+C6*spy;%)8|Dek^?AFi9ob!VQd3Y?vqs|uW*nyZSNUlmt8hfCc2 zwhz-^$P~LQQaCH}NEJA}B7vt=;PjF?|6JhoiZlqE-jN1@(>Icfn{2ZS@W|zV4jC`! zWvD8BS&L9r`m%_~Rq3n3B<$20a%mCGX{vg<7STXa|7bRh7BW{2F5dA3YY0j+a^*JB zDjM7-qH>#Pt-*-&bo*)0k=sPAfMFGSQ-x#lDyVQcMyue73dd*_98qCpG_!YG9ZfcK z@@$kPb2J-e$sEl_S#rJxl_3{sRh1zZYET)H(V!TTedI#)WwR;t;k;0#`@>qO(*0pA zMd`j;z_14vkc;8wDnZ?w4L7I+=QMiVklA%ai!q0wNw8OgcJ%<+blaOvw}x!G<=JHC zW)Mf~Nrjyeb*w7kGa6FO$Wu}HOaa5Amu=*N|0v9NTN@j8TW_dtD>O`THiKj{-cjdi zHaDdCQqeT-e>LXe=5r>gIcZkpl~w*;p_TRKQ@h*Uuhq@Md7t2&qAdGQ=>qOjy6gT3 zpR?2-POhKlxhfZYuDLp&lFeqf0uSM2GiM9HEe+X#%Sq&NfR}Tmx`7`cHn7?*CfNa= z#BHi4Orlw4rv5zAO;m1BUHrs-e6^T3Gr~AC0-VlZLT1>`m^c@OaV`q{X9Pd&`%9eL zJd*=ox*ZD%Ih4E2yNRRna|9>BzvG-j0;!`@{f!ACsy14fjS z8S5};Fx$EZq9U4f#3|Yfr-6{=_4E^7`*<0W^n{n`V8okgptBQitJ4R0@vb_3ux~^! z0E5SnVNLbZ*0A_#L78>55udHoBb@jgogVGQFVpFSk><;t%OGmdUwkIH^fwbnqnnaIRCXsE(W#`t6Tf#VzRd8#IAI_$IB+iyS3TMm-wZjF?Fh41D zqTrk-IE!(1><4l7>~%Qj7TQW<&rj%AVTXr{`ZF?xrj(sA|;W?qR z0AmZyuW>su?OOm?_QN>a_RBbjCxt!{#6NI0?Xqux7n&4m2iUL&;%wR{N|~}5b3*4y z(OebD*Co>ARjYDi;;zyqGOTeorF`tw+LK4Q*<8+&xhM(rsyFJ zaHi-H4REIDaSd>$=qU|wrs!D>aH8l14RE69RmvCMoGE%k7jdTOT@7%i=tB)~rf8D} zI8(G)1Dq-PN&}oJ+NuH06#b+DP89v30ZtTU{?rg>igs&&Gesu6Aj)y3D5?RODdLNu z=zKV(2HBV?D#rygMO?D!af^@LTTxSbrszNvVva~n6mlPRIk%|rszUsV5aCK_+Dm; z76Z1Ym$+vkqtqj9 z%pN_>jDL`^nHiWpnt~CHa}Dp@#ovQ9UKm|m0~Pq94!F4k)(>QV% zkXOffF#E+-7%864{ENckFB0)#+RKTvAWTac3j~iMUm>_iEnzK(Soz@(*+}+yo=kb* z@doTOa8CXGL|mUobi`Hb8}i?{5C7*$_FJAz@&By>f3km{ctuvOCKAHF$fB3I@udGI z^)Irr@F2k0`wE1!h$S#)0dPF@6*EN=!4pBt6 z0jpn#qF>|ddW1<1QzR96AuUPLqf+W!N$F9UlagI|wcY68I-(qtw@x|l7_lx~i35l? zFOO$DnB4>Vv7?y(GuHIN5T*Ig`_P_3oOO9xC1ah!3#oe^@eDiQl|6kv0&D^E%I%!@ zYsEX|HoXIpHS9Q0PWQrh)#B|60gVaMoVx06NmzI%Sw5f=08IiVFL7ar(jUXQOipfQN29O|y>Us*1j?XhwVSjwUEZ<7c zBi?^P%m64}DG2)#OD4?vg~WL%&r3CfhXjw!AR|@tkXmA@+rcUU!&Q7c*?g5}qoVdJ z%|=D-SNo7XN-{T^bBl^vHyXqRqPB@31dZkZsrrIwE^4zUEI<{#N-o&TLEq9;6;0Ay zR25Bb1r>=s3mQaX?}ES(<@7#6 z3p zACcq}ZL02GKPkAL%N!6g%0r)MbyffRsTdQk+#kuNe=O%`PXe!hEO3}p`kR!q9|<=Q z`zK_t!Du+wK-LHeSXTv2#H>#f>8d<$3{i`3KrMA<{!3xvmo#yXb{KI!%G0Vb-bY$5 zzZv!VNG-*}2S5iB{3I4sMywaXO&TmXlHjKr%y_2~{!HMoFD6rFX<^P6zWAcFFz|&Z zGD~IoQJCy}lJ&}yDOG!EGNo!SwQ7l~imrX+*#mK;bnUA_rRyOY^iItlbt7DMBW0YQ zm!VWUU&~OcoxhK2D@nFKPo`8`ugUzY=!o@&cd4f8NmJdZHFe5=N9pSX+pr}YO$ooD zgoJ_@tNso5R6mG?Y;hL)Zem_%AB8 zWu|V;u3Q3(P9fUHJX*B`^G1!97O!p8Yc*4?S+^VGK~I=GP^w;or81CwJsxz7B@)4J zYDE*$+TPM&v9z|rw>4aJYIfLvpwJ~$Xhl)ZS4!^{MS-uBi&v;spcPB-$or5?w77~C?FM>M*4hz76T+I5Fj`)EcAB(r!tIFsc-%8tGr9tBnmOiW|B`W>|>mRo86{v>Ljiwlj!M8k8dL&yD*=^c{@J$_kfDIXs(9N`{12-No*EVV!>StS ze|S~k5T|K|8V}U4;y*}0qjEENU-}*SFC_m3A^r;*@?X%9|02y#seio&75l}Cy{gpg z@i*I%%sKxmrEeCoP zO)2i79DfnFN`pqz>_yA$Mq@UUz0oAk-q14xioKy{1{C`o=!r3=o+xl?D9qL%xc>z1 znVsZb7vf&mkb7N2?m19#@1WT!?wvHK?v0%VG|JhfOvNLtS?~M|Y3GINyPb5y=QXVG z^Aio4@dfz`&pvz$bZ$y6Kjyipr-L6glg`o?{FwMkMNOTIQ+^UAsG_z5=m!O&j@6^! z4hbTF{xK~5Infog;k!&Pikw>_ftq1esP1}hiSDkCCEeVTAh42C30|zh#2f_%6A`tS z6TC!9A+uO|r^`wtjzeAEv6Q(+$)w1X_-ai_CXksFnQL-FMCRif^hM_5B@JY*)unA0 zQ3VA;g+fu`Nu@$)N^cHTI3_fucMQhicx(cRdUPAP&n)0IB$*N-nbL6RK6Rg=`yHg1 zUYhF!)NO5gX<()&c1RJymjo+X=i@@!NMy`$Nr#9QwO8@5#8`mP354ZT|$ z-0)QmsnT2xy&s5#{px4de@vOtvYhIwilSu=YA9M3L`6bmx*Ak9FH8cLki5* zP^=7AV*y1dO8%k>&*W85-g`!?puG2ta0MIpi|oI*p$R2-f~q8$Q(O&5OOk=&#xjOS zNs@|(g|#7B*F2fBx2q;g-b=EBk|(v6?o~ZOcM~o-FCLtP32Q2b7`%}sS4|@Fx&e466Gdd4KfSRa3Kj?Mx{6~`i+Pv0@2M^@XdaYL5pF}omlmCU< zIafbPJqbFmWc%EXoh?o$my4yFS4v*2yLn%_`HOWouewGBl3u#?OGDlIEns)Rm1H+g zI$rh0W1P0xd4cMT%k`zNWIw0;n@I3pNd9{b<-gZZz5;XdKM2Y1eFq}oQL-Ceo{IqW zq&vJkhydq(Dlxn~Xm#oiK0?57K&&U1nR|1Ynd9;mxy&q&?1$P2t-jQ@#VSfEj_qUcj>n^sP5A5gvT0?ZPxFhrb~00;vXNS zJ6+mP)ti*6q4w3}7tp;_E^lYp3#<0^Qh7ae1E@xtFKItHLw5oFW#y+(h#y2QwV@$y z_N_ZHH&V~+k)dn=^g+0FTtu8%VVqg};M_-?g<+h9`{2AroaJGh<=KgM*(C>WX2A<7 zlkWy;q3YRRNYTP@UH?wJjbXg(LwDf~O^l7{gK)me*qgo?v%d)AW&b68C+2Sp=c|mp z>5pXgZ(+Rb(7O@IlbOFKW%6ZwUjIG&=r8w;l1gkpuJF`+UrA+9ld88WsSF~%SSIGm zDv2HTLYC56RGNG>D$+_Nj#>yCwT`HH_P4w31E=l&4ev~!_iL;>;|q}_U+ZoozD%d@ zbK>{v^n+e}jZUxf<1gs+>O_2_POnMEKho(ZQt@we`l)pMm+ZCo*o{Zb$LKa#YSbS| zk%*;6N9Z(`8Xc|ESZXw0r?J#%icVvx(JYdg+RcXmjGpPxhkF4V1BjXPDRIFbvjPbIXETJCs|+mN$b7%f1#0Z`oM^<*XfU( z_$HnH#EWl7S|--4Pw@%PpV_AO;aiLc$m31;V_p1gB!$N-M*I?;e$9z5)aecQhD4`d zhd*LyS5?J0c~v+agbu@UOsMlm{AZ1}%ZUH2(|%%XH#U=J8k;K{)*e5$fA*RC z>?Y*{55Vhtb0kW9V?NH!t~HGpvpep?#@jmq8ul)nO?=}9D%-~y3#h(AR%k!F6mku_ z70!Cm5%#mIlg$3iw8!9V*{9-c+jDVt>>F^-ZD)6^eJ?=6ei~;EMve&ggA{uW~6t7aAY@2ELiSh zy_zwTC4HQUxL{K|em3k0mLRkPcqI`seVy}&;Y9G+As&@+y82%TyP@E0T*lZ_Vhd4h zq06;WsHv7DkVHW_L1wa@4rn}PIx=xOYkU1Jv@jZV?9XLpNT zsd3Kg8M|KNoRjGtyA?oN63povyHlsn?;pD#>E6u0aA0g4l#%pBLt-bwPW*e3VPAYy z>};evGJWaMu{dz9rE-^#z_xx!6qe!i8dQ$HW%)JHbyj>S0HQ=+!IpNn5Ri}jUd5hv zD|FFo*wgM#4XnqWcK2vt1NO9gNCO+Or`=;3c->0HpVGh^RyzKo2Hv!)4X-6#dkf?q z0h89E#w90YYWGRTxC@V@ z`=w${b$U=bwx3Q9sgAYN>0vdoUOGLz*6^(CzYk)Q@ ze3FAS_QTVjx3C``JzosZb3eRANH=2|`{Dfu>1w92AKraBjqUKB)oE;p_qI-BJG`w( zXM_Oz;r*=(upgeTPVR?S0mWz|_ru#?r?J#2;y|;)1Wp@Z6_z@w{qP4uQ`s&&E|()6jF`vpa=#sn~GP@bONt-6R)1>v{YVA zixrukSgd!OSZ=wR>AgogDTh_r)s$>P+)i$f#GCw`jL^GKUB1z9tqeu5>=;10(V$q z|LGChAN~+xGTB_McFc%pk6Udwil4=-nL2AOvND%3>-oK9J>O8)^O3;UO4jpAR;W!a zA(wPCr*TqZFC7guPDll&qk+c0RA4#^rc>#Nm{`z6h5_)dBX!g)N;d(trH-njtfR1f zt10v7z!=uk(edu+|HCLR5T#Pvd(oq?_ibj~srEq-CGYh2ruvR3pN3FA-3R4gqTo;F zp}Zqp4&4W(4C5YmZU|*AQ8HMdAF&Go~7NUDteZ7n{xgvag&is zy@#zvaG3SI$YrA1vF~a+VqzhO9dMoM+DM{uPm~u*C!j&npJx3$av9|2LQr+ZgWMnllM;f1GHwuq z*ep!&1Fl69f`eT)BADk%2o7;+Hb7TG@JKfZK^Te+JRtKf$~-eg8 z3q|H>k~|sm{F4nm|5QWIKP{d&QgxsnAROK#gDXNZuV^UqszByqR8(VhOlJLdQedYQ zR(3O~?J`ZGYP(!Wq_(pwAGaHg#i9_|H^qY=#d6onpLoWFG+U993Zk5WsN0|iBCexRU` z`6_a4UmWOQh)Q(=hP&2oCjWU9e>|jb{%L8wr+7iQSBYh(dVyuh$H{e?jD;a2AzV)r z)dBiTv;VH;mUBeK6TqcE3L+I|BqK3B#WY z#X}7lQqoRU5bozDP=YIcjgsK{L336T3VhlZX65(G{`iEhjP|~&jAY)^XOm-h!~udv z^&;IRFvHGVNSs)~|0C-<;G-zo_w3H@-CXXHTy8IykOT-2AYg>h0|W>i5u__3p(r9E z0xC^F7C#lSf(o8s!v=_5`7C@$?*f7im8Mv+AXxq?SpLsDd++4}`Tg?D`@A#z&g{(W z?7Oowd&#==(xnA-tEJo=o}_fO&Q4d0($R2OmFa3q*t{yCH?%g_22tNqH%`j{HBPG2 zw}lQHPG1JY8ywx9!}*ZhjZ|YJ0`IJ%4INKJKZ1SoTA*{<=>|L}DkUGsAS=hVE~ zAMc3xp}Ozh>&2%wzyT`4%PAM-%iP3XrM&80lqnVbJsr`ID>(k*|8Q?IF#7nndne)@ zx81AEl;d(K&4JW32hK^;l+t{Yn&z8x()6MGS#%o=tDMbI9AWXt=#mQN|f z97>aunkMI*-tjP{8J=d)nCaPyzqnS$u6dsH_$U=MNmU->(&E&rxzrx?XH>pT=?3br zRAYul%ZZEBb0Y_9PZn+GxvoRB>zdld@kOYnZ_Avk-X%k?q!@ZdyTqwUJ%4V!=l!M@ z;wT+^GUeEl`dH-Z72@ZrLd0J{X0Gl)nclb~a{hu-Sp2CTgUQgdNyo5IpV71I7#19+ z6MU8(!+d&91$_clf>wxXk9HNumTJ%4qttcvp!9sY9{I4nJoF>kdO@eAa{fv5MNP3c zA62{RA5?FN{RoWv^!&+AD32kPwN?b`;=xPIDxsMtzlC2O5gma!uNh(*Li$^VCi3QZ zj0X6{04U{iKtui)Xu5J80!&0bh#+MmY8R-G2Y@LPQOC6M|41p*Y(&VKKq*@QE!h*8 zoQN7PF9Q{F60lI-0xXgb0_(`e7LqtYx^dqnOd zv6HpYhy49!)vqpm6~OuY;vX#kr#?ZFdbmN#b?~43hFDGV21_l1Tm)}TZYolbLN29( zZ7EjEAvYrZw#MpZ$S+a)9VKcl%ezX|F33$N&7PL(4rJAY-r~x4%hWJ2ZhDA-ptd79aVcApp71=P;asPNjJ5H<%7M{yDT5>qdsN%Xn)}=Mri`{ zEAIgm!Pmx2EAo|?!DDp(WYgEg6v3}?#+o!Wt>AY|N=+5~iAggv6#SJ*b2A+Lok6ZNot$>Lq-LivG z@tAl@HUcJ|bR+yr`ukg{4QK>C3ALz9ZHF92<6z=Rea!Mh73xQpmv+N11SQfu(o5w) zcJ%>|^-+yDVp;!WYhvO_b%&l#9TQLL5|%OX-ROu_vix}7lb z6vSs@J%Wj+;3rHl@f1AFgeIPX$CzQ_DfkT&ns~BDB7?aozd6c}A7W7dAX1m6xllf+ zwcN^5VV2t}g&$w_^yMK{hviOT)r#dVQQdd-v6y&L7ji`J0yUWBzJ;oi<$*=&8kUC? zt0^pF;z|Dy!(u3mRw0^_)j!1WT>S3MvhIL|s4h7(ME5NFFs|`uh%d=17%S9!tuoekCYgMpMs<@f=$Cr1;ho+K zHTd+jjTdSpatM7$Id~LJqK?Kl!la9zQp6&-WGR)dv4vbpOWRn;r4-tRN2}authyv4 zZ=Gf2t?EYJs&2%iVq8kg?;$Hos#>pDmt_gJUIX2FOStt4b?Ys$60KKDw_Y-~Oc#8K zZZ4c{?hEmC+wh2@8*7_xtZJWz4v?RX;jl8X4tSq<<@^#=H* zdIS7Yy#YL`8-Uv5|8#8i4i$eCS-Gbvt9muLt-Xe+r`JuOt-Xe+S2NMLUc-1)q*Q5* zAdD=slNUsxuF^$%ixI38=sH|vC+aXy*Wn_YI#3Csqq-6o*^~)N9M+dWT+`GNhu(;f z+<`A8>&n|>)0H4n3sFjii22ScL`-kBbZCMYK#FBU#Xm8q-T^$U=}}Yveb?tq;_fOEfQ^?u4M?DA~`?r{0)q{!cRhj5cqP zc^4#M-@AXU@RsbPw7V~aL%OSElX$hzUGH*2DZN_gu6QulE!15lTF9#fFP6?h*FsN~ ztc7^(-5A^JP!>n3vhYsz2xsB7`VqG2HP;cHBWxPFDnC=YCR55?PDc9&lI8Y{_Sbul zP;Sp?|3LLl&_6)uk+eE6aJJQp$toWC*`M%gV>?^*YGb>$f=r@C)GA3DX$=(= za1)gk*4;Uox>S#9+XIOaC8S5SU7Due)5cMWF3Hm+LYCgOe~DhC4(eU|m*gdyC!`CM zq-nZ9Zju-3EHBBUEOBs=zKwb`b@1|hiOG5AjG!)+rAu0}c8YbM?V=ZMz@B$!?2?u! zOpz{3m$VTHURReU8C|BUr%PI*b_#XvBw}epr!H%kv_$n3=<4aNX=+(>--s{R%XiG1 z(#{!(aYx;Vcvs&P7JBii)w_^RX~kL9yP|sauBcwUN$OQ^l6tkfqI&ImG&?@@T^aHU zvH9G3T~3AQ7);h{NY`sez3U0}nx+T%j=@AdDqXKh>eJPlq~5)>V=z&zmabMW)}@g{ zU!oO3T~R5Q)BmUl51d_u2dWq0f$Bv_Qm+U}>J{OE>P0{-o<{ZHrHiomoFcqSML1Da z1kXu0!9}R0YvBYJp+MI{lIH1JNYYZ>xlV8qa&;}ZUNmYUs*7+^7Xj4KW6Y@_UG<>e zrTA-*x?XBuQ@Rt437vCYd_^UHI+Scb@49$eZ{12>7f*-WY8S@Sp=#Gfl6u$0)1hkD zg%^vmdDp=T{g4fst50O5E)r;tK9OfbbRwxG59^YrpDDzId;x(9z)0&XjrrQ>PEnYt!kW1F?|- zL?>#RdJ^#O9(zybObBCTlK*5?$-FW8B$vz^qfc_ly!-aa^h9-fcdTS=A z7gN?h>)Jp`te@j`-p38BDdpHNBUu+-&+MmneW5PAp4l%WQ5U(o@Ab<_h^R8Wt@GV>PID#naL6r=n+Hey;vwwp1xLOW}-w< zT_Ty8C{aY0C>dL%OC&QBB?{>h*_nwF;hs*jXg=oFXsRN=PMz9c(0te}T2&(N8ko%` z^6m|@xkTPm(`+u0_tcb(Ez>2M%_VYkb&=+95xlF{Wg6Bcn#-v(b)DUud3Kdy`y#ek zgp*a~-AM=OEi0(9kglUa;Y1y!={gz|rW&k?XiFDqP?#zywNr{W;{88_qrZx*FRrrg zb;`wT-D`oxY~5>t#o9XMt&K0%#?cA9R*#3zzKXs3ax}{ue{xPfig%EY(=5o&bbQs` zzc%A&4E5=hd9~7aJO6}%d z=&&2A4)fg38}wnQDWAUZZirCTz>2Ni_GuCQqB>_a8mq~Z)L_Fh=$i7^(9Z$-VS{Kp3Mhms=N-{W>iuF=N&uDpL!ApE5xwGhy zSM-^{esmtuS6$}e`-s2BG^C#_Rx=Ii?EkAz00*b(!o41$!ik)<=z!D-@hdcx{e+rT z^Jx?G1cAsoxe9A5o}(lWQIh#FPJ*9Sn;)b3Fp)EEg-|czAMfue&DLZZlD#A^Bl-kP z8I^BPl8<$gmb&6T)=5yd7P_bhV~Lt7(I;{!mKfEF^$>Dc)9e!~@L5A^rBFDmNOzns zW4hyH*MhR87g4Aqjwd26hH`=zQJ^D!OGK=Ja-SEGt0Vk5o~e(Z{K1Qe>WEMxV(_!r zspkTayLV%*n~0eW<^5iScVBLth$zFkUxa@g;W;5a6A{ayTqQ8i z`$#WBhXs41V7d zMvclNWbZp|&%2zyV|(5M>yL>e&?8)>UZ6vMqeI$eQxUvF+Uji`D1y{|tvuW7Yloh~ zV26zG^E;V1Vxd05^OG0qBeG8-MHi%?I?@;KqU=Q5Te`T5HAR0b#U*&iMQWq6A=&cl z-sI)(=icNMI8FB#kyG&^`XBzWxQCATI;X12zRpR^>f#HiIx3N=|7oJ%=G6B_0_%06 z$8%_4$lmrM&i@eXp{!o(gmS%sE9Zlk@Vo7=Qcis+ry99cIn~IeoRW=GkV`d_{VNX0 zcv+kBdO+QzDO4~O+^8H*rmoh7_D=Ka95-RhtK|tfUM;W0As^^=xtLZ8If)9--$FG!+@Ui;;^apAy*H3 zBblqclzJ3XzaC3Q>zpu%p%STGaHFNdZAxjAP1W0Et8NqI?sd6sx%vu8d0X%i8CZ$4 zv(e$j%=r4lxE1|E$~V1J_NwJgeafkeD#Br;*`Ata`#EV!D9wS?GzSuCCZl?(it!OZ zN^{&x;ny>GF_3UT2+ zq%YolO5#h-ntL_v(>F!*4(}mc)zsH~a^Zt(RJNnTh9#$qJtuM)PZxXdYKHN2aaccO zC8_sf#iOY+9G8>LLCKQ-9WEbLxEG&MBr348#qnj<|k&Uhk&z{y9&V^ z^*Yd1n}I^@0UGKfpsBtFO7$zyQvU*NrLytbRyjbwss&W45ip=y0@G9{U{DPJhSU|n zbTt*2p>79eswKd%dJdSS-Ude0HWz`T-Umk2=fG_B6ELR!2Ii==m?3giO<)aG3d~cz zfcXj=8%2Q{39PBE2G&y8#wcp5xxhko53r6}3aqPE0PCq&fJN$m!1`)Cuz`9X*iaqC zdM8n=PJlF0e*+t=0@zf}KLWhhP_e`4Pc8Lj8$g zH@*jntxS8cY81gwL|j#?l-h8aEfS^?J(kN^pC> z5iGEG7@^J})IIH8XzlJy-Z89DZzj796&lE7j}ZzDVY1f4=o(yRzcIz3$lW6f@%Ac(eomDwwl%`xN5{-N4Tt~LjU8ZjAf z4h^*c(YCKKhle_F%mi~(s3((a%`u??Almdqb6n^$j+tb-lS8AJO*W^5#&Ejp%o(AH z9CN)nH#CLG4d$&PowCemf_gAT=2o1M@(0?1rS$+jj+A~=2E+cp%+Otl!~FlC$rdvC z7frU92#vq^@Tm$d0h^11{e}#QFjYx_K5m`%AYdcn>~dsrvCg_Csjv>%h`C{SC zP#v3cr*tcakeO+Qjxh3~m!XXK#}7D=ejdsQ)1lw#;CZ@eu%-ScI-jY9ALB>NX{3C4}k^iLSuc(@il4 zA^qhR;NrwMDGZ~tTm|LzavgAr`~Wyr9s^F3Kf4HK$$x;eWf*G==g0z}D;v>zL)ijo z$a0`5`v9dJ2DIdrKwC}(`s9s3zq}Qw7q!{6gG+8_2dG4P|#=u^bF+B(DHA zmQ#S|$@#z%`7rQ&`5Lf^+yHDU-vgG)L%?S8YhZJE64*kX2DX%T9YeH|VPI=n3)n^$ z1IuJPU|ZP-*iMcBy6xp;1m*HSzz*^*U`M$G*hwx2ZV+-cf{j?3iC~kE`w(mv@(_Y8 zLY_ddmHGj>0y2VNyO6aI>=5!i1UrQ+L$FK8J_z0sawLM?*lmnpkC3zL;{5kw-!JGs zAr~MZSKu-92Dk#3qwn}80=m~j%YR__@0M>H>LDb$4fkca9u2-4gznUGgJG$+m~1qZ zTE}FQ5mH;2Y&ODb2a_#ERPA=bo*)Zbja+q_qqZ4EigtTy+uMy|Wi#1flqlMcqGNU% zr7DxjE~BN&X7Y|vrt+BVHp*3PkasAbJw}D92cpkmui^Gm4Vk@b^ik)59H4ajjQ*+= z^4}I8p>p&rPOdH zo2-x;&1AC`R%4lLv7%}sldTq(kTTh36{tB(wr5#|Y96y4R*||lzTrnaA-)KmG^IZ* z|1zseg4?-zoKxd=uAXLsySZ8kqDxPA^Wg7Tjkz8gvz_%n1h!>M+|_-w05z`&##b4c zR)&1oP}>o^16uhgIu}*=2lO+6@-d@O?dGV*jk#*S7bWB}V_Enh$2@_-D*PEoJ!upg z;qN%^DPyh?{)ywBHkKLTKRNChlq~!Y*k_dWa-+};D-`PoVk?Y@kl`TcA4FFgCuKN0 z{`CoYp}QL1!WQi@6d~HeFE-K~NT4Cf)EPu{+;8~d5BwXIo#`~O$eR|!QwqqG1m8rl za)?f6D(VoOp{a<>h51)?7Q-ovr*sxM%_)ng+*Lt6=M(O%DVan5p#e!ozphzH>=|8} zTzs=!eTILd@;WLF7MqhkN~*fLkav?h=BGmXDG$h$2dKElquNl7Kk!U3X1AV9eVh*I z?$?%(u0Wq#cWeyShviby5S^e=DqDi$%)|Ord+J!w&=iX8#Z=8FdV!`QG69u9m4T@; zs))Bx5!hy+OKH7Dg%r_cI1f5SqjDP+YLTvNsn27PPbY~Cg$1%?R30EJJ9Tw>Ms|8e z#=!s?f)_|e)}$C&;~B|AUiuF+7k`tLj|>CT0^Xld8L5xM?)Mu;K@on2ihhm?TZ^Hy zzR-1~yU0U0GwTblF2DR7^MuDJRT&-mb+RhOlXU)Hd*@%XDubS64EJ=ytyQJGgp@ht zr=YD?lKC8+ok&SDmeOGJnohHt(iESQW)`I(zm)9gG-cb|_#Nc1y(Z6GeuVXRTbI_X7lcBn+x#a~2b z?gqjWzloP!jQ69;(xFG+Lhc*G9!j*nhfMU(ySa_(?m|GR>z*Z;3 zY+^ZIB1^A_mFO!awYsw#py*F~XX$mZr}bH;K0}lsjr=U7kA3F#vBIkCI+K~#6P1WM zfT{SVUu5>sp>*sX?;3{QE5;u0_>{`NmX617ye2Pd5U;COB)W*wns7R@d_#7PWZluG%^>P)rQzL$>O^K9_e3;UlMw%4eucX7q zeIwWa#cP93YCLAI!Q~y?3b+7FPkF(q+Q1>*;ZPV)dVN)AwAFP|pa)(geB9=R)*DYnab4K0r_{862L9DPDIo|gn zA|!SI=VilBY7}4go6K&0?RmJLJYg9_$%8IzWQd747jrpodPA=@l!YOGT8U0^26q%2 z-MUBoo8M#|w=nRMhIO^BqFRmO zc2d#=vCq>XV5*eZ3khbmBlhBW#0hh78~pZQ8D_%phMEk%ZE1^Wr>Hjgwv}inrxP8u z-lF`_Y+eQ%EV7yU)O#BlX=QlDf)%B$v@#M_yu8~OI`foA$VGkWxOmlZ-s!~kaWE4a zOu5H(uOh1>t5Iuw6-C)(r}%(Ba2-BLHeJi0<8?7yeKK^sHs|WngId~Lk_v6kqawRM zYCEFm1YRb4cp%qRj>B@b(al`Os5ZKp%NTaG)g%vTs~$xmgStMqYGa^Y#q3B_%-q4a zRS%(7-bi_3S1RY})u&-rt53_M`h*ps8`_774z!A!O(tH}X5J+;-Kxw8UG#3+OltFe zM(HlEN>`}UU9QvNjB8J&ioV?Z(vJZE6|l^slpS)<(Wf-VOmq=9ypp1?)TKdmNEdD_ zQ}qVLUd7a_fbsfFM9v13`UtwZQTYdz=sOIG$j|GN-|@+ZwS^zpLTDWs{L!R~2iYli z3-J>i?PYMv%OIue1!*|iE|WFv^}OwpY8ZKD?j|eSF@;x*eaZ6!6k zD=FQT-k_UI=R!j#Ap#EpdZ8X=NnkI;{zz?2%)t000zp6?PRUxC>q9Wgx-&cr(QBc$ z?iS%!AlIQYzt;-)Iv3usZn}((C}oX3fX7fw z?54}3-E{f4g3zI^?=no0+@4@QY^Te=n+dklG=_ee~DIEThS=AIgN zdH_zNI6&fU8UO0oTDoh9ai~2ho^6hz8fOq663v?$;*la#T!WDQ-h_u@wufLCUF8x| z%9TKvx(fkb)af|0f&8zITT5|r8_<;RHpP8SCXSYG%7Z$^=afR&x4`7j5UmR9D+GSa zw*VUd!+^AAh@WCAdg~E5gUE*PFKo=_1^!`zw;lo7nWAIx)+0cRgf+oij{vPX)MS`z zh6B0G@Y*9#hY8+#1R8_PK!!HndIVZ>4BmPKIxxXok3bKQ5-P$dvp6t@WAN4^Fo6l) zdIY90!CQ~OY!H~nZ;9fyM_?XDU1?SX?q!0v9)Slzv~9fg2rT0my!8mIVuH6Gfz?d# z)+4YEL>C)xJpwy8W`a2?@E#Mq^#~jS>8NevwMXDk;^q zWAN4^@Nay@zp~cA{?IAEuN$hs-yhJ1+NXi3itO5EAO@oAx(?c>CX>2opE@9MsU2waGsfz6kGjI`zHXDZ7!A!DX_A(|Bn7x9D zgJ!>)NffPqEt71t`gKfV$bFhe{KC#bv(H+*#;WVCfX?1zs9bxE5xAREuf>G!LMCq; zR$vj6b%qKoVY1!`1s-Fv!3YPQX0j0jNX8%V9$p+tH?!5y`|wzli61Pwx;e=&;=IA! z(n*>sT#jLEVqHmWIkhoZ@hikuBv{c}Vk;A@a2v5_iDk{N#5x`P;r~nP{*a45xD?tN;ia`4WO5dYn8W>~?PNP?bVy0dp8Zq@s(U@uBK|1z4O>qOm z$sW-s{2t{u-7tQp8yNDi^jS~Wd4ifc%jw3YF3uZy8o!g78+CFK`3xp9^vj`BWM-*X zY|q5f>L!*Nm%;)p8b%A9lrl^`aY=?>@hm7^h*#Kx4~1|kl1!iwB8^PEmN*xxH~KRw zV`O5NVf>vq7thSDR5KLMR&6#xF7?GPkyeH~kmwmN z&a0X;+8i!6l;8_gg3;6N0W5 zZT6%rjRx{LQp#6>hFl9YMbU?9jMJ9+BR+nY7fWYcAyS0!RR_YKOt^8@!zWF#-cC_hm+||*tqX6}&WiK-Q%Ib}lb-8K#plK6j5>{Um zzx{n19dRF^KOM2(@E2G+4Aqp&vkTd@V1hLms*DNNV5kZvSc6g3f3OBab>$c=!B7{( zkNB*7_gd&=Cu;-(d;r(MG>eaZoO%VgRm1cbTN$RB#>e62q-Hb0%}L$D1UDyj7Zco^ z)O}2Fb5e_$;O3;3Fu~19xsNf!%}G54LT^>9T(eLFsqzw4oAwH{?;uuowpJtXs|-}K z{xd2+fC6h&`r~3YGRItp8SWW0^!!HZgPt1qi15FyiC>0PS$H~owhh?fJlekts$L^{ zgc>vQ<`kj&Pt)s7{p(15yFt$ck@uiKiGK{c;sEIvVzNvZAxdus8ce24{gg>R)5{fe zZ0ZQ5>}Qf!4Qll$)08qIJI}flJ-{R`qO)P*a+Kew%qKHbr9pbSkwp8^anohuxbR@2 zGnj@hBYGoKHHzp=O;g_fSGFLdeyOJii>{?KemRsZqF{y7Jf5Hhw^mVPuNDvu$p271 zc-5}UZ|Qn)q^^h52yr0ZH(=#l+MTkz09mFiWw?ZN1EI?;#`(6?)i$1VFD1@5mvk3v z{T$M-Vf|3(W@`Nd@wZ{#T}jdJduJqc`@S#tqKv6${WhhkYw5GLbZgYL-uGHV?4{GH zYkf?Iq?GUjI;0$jr0BjUU0>+Z8X)l(=vzjKYmY*2s&OSCZ8G3NG^VddUa7BHeilTk zOJ56-U&wN6E58xTZB>4Amdiu=?OE;=&hN)^muUV_$U9-$*F9IHeE{JWDEt@X<@(Rh zA5NWzGVwPR`B$>s+{&NCax0ZTh2^qP{*5e`hx6yK+$k#3=*zgfp)l9l%}^ILS_9HL z16rVhe8cmiz6E8mYa`cwz0{A`vl4&@iId}&yu-2-E9L!mn6 zMOBmh#}jd?ROCO!atkYeCCjZ<{tGO(4duVaa(P(TRNpogF}^Qog|aVgg#p9(7%4&` zvn>`nU^MO-KNYm1?o?2``34$t9?+BvfVe$hg&=u*UMC+074j({-=1X?xk@Y7ky5?~ zH05_dDShoQG|D(HJ}62v8E{4f+I7G0y9_!_Aq6iX%w2lF7cJ=R_&hC zQ6}Y2m(XXNq~;KKE)wEdsO`hyuzeu#AVgiVPefoT%b!|-$5}q80#C;?GOU8qqjc19 z9Q8$DH^+V@0{dA0+6sKg@;55*X?$3Q)zTe?a@oIxmHks-AQ$+Q2wcqa&$u=B#5vsz zh1D@@ejn^Jxrm1A#ZchG8OGIkaY2iwRl`nN;euoMw9+d;vkj`q)K@~Q=`eDDX^D2j zPOfHjOzM8DEtClBpV&4MYQ@><-ludGRx+Jeh6<}%8M;_!m*F!yEQkrmh>0K4)wYAC zXM1;7tVZol=l3%u>Lru5!#Z6rN$F7bP!646FF6jc-so4>C82ZrJClIQB0vX;3q%6eCF2`Zhs}8et*{1Vh@~imhuoZI~ zQ!;!cj;qnDo(DOZ^*xp9A&dGK%Ip<#iRBd%1=oLgoFOY)E!~n;4ZYPm?VY)GimYtc zWlUPxK~}KzD{D#@p?0B8jmmyx=F6(W4)jldL&G?T0mFzb@R;uDDfzu#-Uk_Osmjpn#alST&`c`# z7S2K4N^~1jOIP!Drs!7hMyv*IxCh)#T`PO&biS^tThIE}T(_Zn$=uiacse`X#NXIc zy*9OU6MthL@!HfoyW@$PUyExn1Nj)0$0(29zGTgZTwQ0qeN^>iRcF%M$5-AK%Ciqs z&uU+v*Peywjo0HJD;vnF>pQDgxIXR`d&!Dh-OA0L6*r}R^Ex2eva`)BOPcwZ%q**J z=1I>?lseWt45zrl$jW-39utf7*{#>NWg4O_b-ry(Rc)f%HBB9%`%r0y;b+ECxuRkGXcQyKB+}i(IvR}cQF_2k zSq8j-(%^e=iIH8Cv(vmvX&y^W^Vm6d-lH_LQ`5|jPsz5j+}|kTrPPR*&N(={Bhu_o zO|$=;G|ec@hSW40&Pg+f()^N|=9jn?Lm?(n#Ie+fW9J-vAEmMI*;ieIR9jZy?3!3X zX`-oVqUWU9PHF0=rl}uaghE_!m?C-y4C>XCi8ucD4kSh+uhaJlc%8m#^pRAQYXiwk z39Wk~hSrUe{>DJ^V(`q}sLMk`x*p+Y1?V;cYUWTRn-v2YZdKKu#x6GTFv= zE0Wp^0B2xY{$CiM4Gok)r2C=#R0LW<-hya($O?S#f?R=%Ssp12oPvCmJfY8ug#9j3 z9E3uS3Kz)oKs$(ZmCKGI(2eEJR^S4byTP4gxmPGKiscK#fvX`8r93W*2JT{cKz86k z$gYkU91A?b5trlyRHQpHub1nAQ{;!hsqzcpH2Di~mi!kuTV{2oh2AxRu51hx zvL(=v9e}3n3zYIQpe4rwZ8-_(lQV&Sc^gp4g+MnTA4ZTSmji?HO<+jw0;bDDzzlf; zm?=d!TIn4DX2~L8M4k_HWIJF~_5x;Wv6Lx7Fs7+_;L z6?mS!16U#-0iG{c1DnW=z^3wjV5vL|Y$m?}HkYS>Eu?z}K}+fDVPK_q7O=If4QwMD z0n222U|ZQ2*iMcFwwKod%jGS=4)ShbN4XT(Nv;5H5c0nWHVU~J0Tz1iM}URihY?_* z_fH70(A(kWDgwxjK8Bg9JY5(HT3-4+2>diO!^BzXxlW+JeXr>nt22hnr0rygr=FV2hpZ!nt8U% zQ8dpyj|t5)F9gxHX`Xp0$Iv|U<4kCp`6*6D)66e$3{5k?#zapuQo>XrlvoUnNJiXBR zURp0iQw%#&3~xgt&S4x76448=wd4X*G(|{%%dpDRYzEg|428xhll>6bmf01W>miyU zc?AN$Y5j_&!n9l%PY6)R0a(QH5I&yqi2i`a?W7t7)d$$J_%Z&C$|ap?h&ZUj$y7A|3>9!q~Z}(BHt{xk02t4Zn$eI>`BnyPV(B$c1M(0%Nx4bdCcdyLSP9D&QV?%Dv(X=bci}-sjy=#x3=s$ zEVos5W2#%7s61phW4UYCZq0I!s9nMG1@K7zK_+@SPSQNwbVL~)gI6O^hAf0;328b7 z??m7?)2P|-(_t9AS_35IbObSSVOkH5V+1i!1_SjmRMN-R5g5pKF@D6GV?ABQ}J!Fjez4qrgXM=R?AtibvKp(uUf3n4~63Z@vo=yZSvFz3?(|65tP%?i#Ku4UBIU4II z%u9_x5r}T#%dn23Armab3Y37jItnYX0;L>YC0#sz41j1P?N4)F_xD%D#7;Er! zDr;U5{0?o`mK$&?t(8`<^-&%wEOuEV09uwZ(u60j z3uiWhJ;IrfV6SlQN3c&g4Jop(TF%KlL{X5lzi2Wa`1grieexb>q32=WzQj^x_nOL8Sn%oYDF3-HLYyh#! zyTS5jApL{*hq~omq#i?giu|R6p?uSeDAf^Ty@<8Yed_5;wEikjKXfTRT7rKVD%Sej zJ^f7R9`f`>cg0_Bj5)Rzln+*?;p+mHF4!wnFyW)ITE-#HL;`=uP}JYV9u1M2$q(O# z-4=ff%f6EJt(85V<+dSvGRt^VEb?iVOPqvV%eWsAA+Zza?&xQVgAnNNp+Z#l8IYt0 zTRf7iQ#&-VfDhJj7|F-)VUf6em{Db4=5W}*61<@|e#YTbs)TM@?g*);R zqtG5X43l|u54_YUx9*QrdNBb8h!;LPsfn57gOr_C7__k1% z`v5L-F@G|#ChTL=P6PP{`J11b!Y*QR(6sDgCWlOApU>p58M2!*If6yPb}ME_&8Xd$ z$!BJ+-HFNPW`W(E$uYCg?#<*2v&g=P$(LraJ&?&)W{G_k>k;(UFH~R)AKbXDj=}dk!``ELYoG|+f{|~4S^*bORYNH~M zfxvI602<>cMA;iZ`q?D75TZ*-WhpjrgJ`*h6H^FndEz|Aon3Szd`Ckx1bBb`3)B0xD6yPDhoD*ypiMw%Y$Vs zKU5Ly%kt80!BH$f(knO}va1hxtWWR`j#$<|_%LMZS8#rV&p@V1fb$!CgJp7luRzJ< zB)}#*&Cv!HYh7yCD?xOZL{j@XCUAc3mzlu#wO2EtAN8@{Vg~2eUdM!-U$qw*^uzgD zqtf8~2I(TxrD-mLA0nZaTUo)QEVos`<1Cklf+tz-6b@Q2qtkbZ2D4dqyXOY;nDj0P z)?>MEVX%bdfknY~EDtFTc4ZmPubPMopACiGDoZ!N-7I|!s7SvKh^{vu@#+CU5H(^= z^b+A6?)^H^@@ptn`Wm2_z6U7NzW`e4zXNR%@omGAjuG99K=@uj|H?iNJIe1r3XS|8 za5+W|*@!z|T_gQ(BoOIYP#fv>fo6IcB}u<1-k}sL{SFXm!RebA>9;~5(w6~^^tC`! z_y_2L2QZw*z7CwY%t+6KLZmkW8tGkurZDe9kaVv&6-a>&2P@i(>78^KZ6xcFWd$bE@I@TDZ zb*v27Ce{U578?v~8ygF37n=cWAG;G+9(x4XA@&TgW9&6xr`QJI1`*qfV55i~La<51 zzC*AX&J%(y_>$Y@=CgC5$qMQWeE0(*s}=WOb6aX&ww-iExL~U6|m|GwEq;-B4@g4+`%o_eicXPK?u&Y zy@m;#X?y+UIDZ`lXWHJ(QE;a1-Av$2+aEH4Gi@IMp@D;(Y5QA_firENVghH{J`FOL zd^R}KwuQp!eBeymAtvypT|3GQ&a_e`ypF(csyk_=?OsxK^u35!xdz}LgO;pe zTI6EeAF(yK*!CeNaIx(#n83xhzh?p$+djnvF1Gy}6S&y+pG@Fl+y8*Lx>ev~V~!G+ z0=!Iou&GdFkUCN9oRd2+O|JdvDAM?9!=J``|4Ae_=!_SfB4-p*oWQ?PS%kNNGY0<_IB;&7Sy^D{m*y%9wdQDReUAbo$rC=9YXrk_=noMoYePG ziD1aO2OlrPzfswh3|*}ag|4O~SCgH*LPU1NKN-|VUaybL8wcGyPw!d0ne=#`N?Fc2 zluSP5x!~I5Q)E)8KENjsCx1>;@|)mI5UE||aS^8YEFHsGG2bl~D1;1f=L^${}%U48$|HMzVwzAy;FzxS{h6jLP8AK`q9srVe zZ#)15%UKVHtuxDQL&2Ub(*wW}Jljc8yB*vZV+JBZ;w9kHfu`7qkp6ZQq9c3`lJx)a zH6quW!X7amC%D+^jbNx8XMaP7P-To4c9*fH%H<*vE*oh)BaU_UT6Cy_y)LVGDk^eeKTjn8ar<>h?_73Q|zLx8#M5vXYsHH*3J zU*a#ewa#;=pgu8AJqiKMQ&T_a0{4{Wsi_~VAQ|)2+#EDdP0eu?nuF%4--i4&$(X0! z0{Iz|F;D#=%b2JBj^(A@?7vyYG<6hty7~ajQ#Sz7GUlndjcJ~`3-nZfG*3O4WpdSf zqGbL-fU!6qxa!_KbsrGj!0;CX{g}`^^YG`QdFs1Z#ys`?EMuN}Im?))=3ZgJRkz>Z2+UJ&U>Wn&J6Xm& z^#PVKPyHFoG*3Mc6<6|5%$;IU3Q_N`caRsNN$;VeXh9)21U_$@A0pKrXE5u;(F$Ctv zYYFi$cyjJ>FCRv8j~_6hxyOSbuC6_reEfo=X!7wm6PkSdkqJ#co?=3ikN?MnCLhm$ zJU|5^$H*bOiSotX+>TEQYquvf0bRF_VZ=h9IkZLr% zBYEEz(MuEh^eSfjN(T}fvluMzNu=L^f2d3DCiOLUBU6#L1-fINzF6z8_4HpuXU){< zi?n{?-9{ripcXPM$3F}e>WEjo11g{!;pq$Rj=$0gccRvm4^{<`zoiSdjS7~Sd|U=` z77`>TA1{YU%|w%rJRH&F<5ksy_gDfBJW5-y= zFL}GZ8YqFkKA;!MY_=hXq{IvaLFibs2|9UwCio@qKqDsjCGS8JCio@qKno`LCGS9M zCio@qKszS*CGS8-Cio@qfZK%`{gijwGgKWf0}7yqgOZ5=4$3BIHbaybSom#k`%;KH zWiw%qVY#JcPh`1`vS+f~E@a=qa)+?Jgyo8;{miu(F0~h|I3f)-4`1XAGKA{m|u zH!3_6SGQ_=v?RGE>(Ih8NQP^&74nTF!!`McWw<8avkcedAC}>oWFu3Z9-c`WT`a>h`IzM)#jgE16LL)&pu+P|sdlS$YJJ0QmSKX5j7%V0lM2Mk z3jxo9TNAxR*4T_vov0fn$`}eXGp+&3jGKX0#$uo?GJSJ!VA#l-hd}tKzoadUzunDJ z?tgIA%9)-uIX>fFG>yo35?Gk=IYzbJ zTf~Tr3ZRkE8)#+>0!opN@sVD}N3H?AKH>tWL>2?5MxFvri@XM$6^&=;M z4I-z34I{p(XthW-uu-H4*f`P(cwXcJpj#3dj^O;r6kwCc&A_IS2Y{uKM}f^ED}c=- zuK-&_{s(Ls*#>MC*$-?TISOnOISwp~oB_6tq))^AVWc*&eWV$%Jkk}|A<_rfF)|F; zDRLEXgNRH;;BFL=TM%v%k^2yA7Li90Y!Q){5Ns8ZjR>}h$omMki^x#~J4ECM1Up6K zPXxO}Bz-!~A4Uoh>=uz`2=<6b2LyXXq$h%XBGMlLy^J4;R>%C|d~&W90j``u?avNz za>yZv_);9A#~*TtM>8RZcq|igh{rP_hxi622Q$ z_z93gOoy4|5U=MLa)`GxA&2-~Cgczw0MWL|A^x0W$RR$?g#6)CAlfwf!)G|gC5PCa zkvLa!h%=dxLtFzy+a`y&9>+{DM+MGjLJn~o5N(?r;?5jHFXMYKA%D0xCnJA&u#Ta3 z`{WQ0<8;~~rYxf+R1YHiITRHRaT%Du8{kQ#OghBZ@nPf;PiI07@f;@P56@#l{_x#Q z$RBnWG9!n05fgHVmoOoR_%V?6R3PmTQ^!b@FIEhPcryO6ToY+%rZ7g7{A4UyB~>~6 z;ZftUXYLwO?IhKu+UsojJ@r4|rBA^>B!BfciW{o8vIvnYJd`(8YqeU5Qt3;Kx}FNVp9VUn;K?fXqPpC*wg^TrUoE3H2|@x z0fIjJ59iTTga14fab&3f_c6A!0YEuIWr^_?i zrCkloFtn>;CK%ck{fxA>jiFt&;}{I>stXeg?W#9O)uslH!N{&gFu};K#xcRjuE_I& zXIII$$gW;vLL+;C&c@r+ zfch}8C;btG*wsM#0lP(AP(#JkQ(IFao;So<3LW zOA?zJKERMIMehzY;vB{S*wirB5Eor)iUtVr=Zf4q7}a}#Y5&v4!gYL$%zN@Kx&>MM zpM`CDb{`~|f%Mp>XFqW>x-(p8Y}2!+{D+1g$VUq8JS6`wjX<9j2_JpL$$tl6F;biQ z+YjcS_7Iq%B<2}mPa+v*!gIf6-@p-nD|EdLu0+|05tqJi6(VB8Me!2}zqeST24{1li@Bu4f(zhSda!@jNI#K%gLs}hBT{b@ooK~M1ef%M< zG1wY1Lmz)gYsqo+@rSgw97i92NbAaR^znzZ3pkFx{g5_@~7-oAPp4 zv7oRvg{MO_taVwx!MMo!8;A?#8wB_s^(~ayy#Sl8g*IMV*(7Tw4i#DVHbY=!Jqa|k z)&OPJM?fp<6wnrCYaHZVR(RK1ipwfe9x=@{aBcwRId=i`ori!0uJa^wE{S=llvRa{d9@)*5aw>q0odLk}oGXDP&J5uB z&O%@l=TTr&=OtjN^A@m~<8DUK+}Q(c;T!ofwk zbJ_#jJAHxW&PZSfXB@DjGY#0uxdpfZli3J13g>YISYrJG0xYq93jvl`zk>ivtPi^g zvBvr*1XyEz1_72>tND6~bv6Plv2KI_ORUQgV2O2K1XyByDFQ69z5)T3SWiHJTYqR4 zdH|m4+N10EdjeYCf%czbM)eZwsYs-U0D7pKksz)~Pjz!Sik|9jV?s}LcQB!+y8D^X zQ{BT%=&6oIT0JV#66>cqhTd|#z=R&^Xq=_*Oqujh_d3PsQJV0+w@cy<`{aa%Vt7Pbu~bAGJ2}3$1(I!*N6$-`m2U+c>D4@)JH!=8=XQG z2=KdcGztwRO-G-Bxp#j$;689X>qYg#>ro)OZ1k)*mI*!UUCV@?^`KlCU9=f*Bk*rjK87?lp7pZ71Z@u213MN; z)d`P(%aTyTEHK#}Qlbk0-G5T6aQy zE#)d|?1JuFPhY0>lRf>genQQ_Khn3<`g=V6{m{Ma=}WbKp{IWxx(_^k3F%$?0UeS0 zb+jE+oaa$iybaMseV&S%cnW+FVmb~?JO%!WwA6v+ux$H_LbmlsHtU zr>DRi@;arsvm-fW^$`;i!-4&Wo8kt9^jA>_wf_K!zIn)2w#00%l5pdM)e8_^fPV6& zU1WUfTZL5g9cbgA@U4cti{wL=?*qt(NItB52U&k461eBJ*S_b%W%RQ<#M z%-pla&EC$Z?bxPGPO-Nfb1uXV4?<3f+O(aD9*UwHsVIt~QIA4T2NgY(x}y{&Q939} zMNyQVheC)V@8>)BTJACL@49~1?|T3L_r0%ct(njF`(4LbGqcv*Yu2zS;udueBKnaC z>{-PwBM#T@ouM9}Tp8u??Tm}@6Y-2ZHbpbq;}^^L8-7N{5d6%HvG~O^rr?*zcmTg- z#^d;pZGk*PyFYp^={D^;P#!38!86MTpD5C;?Zbn`Fyo@&ZjWZIx z*j$z|9KT7%Wc;QXbMc#HEW>Y}@hX0cjCb)98K2{y<5z^*rohT|Q)wORGvyOZ&*JRsu0RmG+O~`L|DBJk;`pa>sK|QSM(Ywq4@WeOwxFob)1kC>2GK zd9p8=vf{TRFXFl}Vo3bJzT3G-oc&Utux}TU^)};wvg>htxQWHA8{0|aDMbvK)>ZiL zUFTQ>*-FB-dAf9dZSq+Nd0PUXNbg|7dUm%;xttDa6?m)Kgg-%jjXzNx#82F&PO-UD zx%25rsS5aashao+)d=5GE%9x21-_$tReS84*jrxN%@)cyEzwGh9kT8dvx zy@;Qo*5hZYPwbv1q+H4wk98i`*|-GN_UJ&4~xEyKT5t;KJsHsd!^yYO?>_xO40 z5PoBI68|z~Eub~44E(050)8`W|O6kvw4q2`xZ(+N@cNmpVvRwY_U`xo2`~= z%jN@?*JSgdrG~TF#<+ydN0v&=VEeJ9=CJwHQVZG0GnA)k6Lh5RqU{usne6XA%JDZ( z$DhQg0{`jA)48Ha1JaLr+ko_=HW`q9)D{EMkJ@fvkdr7^^lL-Xk@^9UznX)`P7?7ks512I#Ra-LEO@hnr<{>=tn(ZK>AS&fgoz>M=cReLJA=rsi%#d zbflIWJLyQhY&6o5dfk9@q>4$B8MX0VqCR5n-DPa}^LJZ~1uo^oe^%*I@A2Xq4*4!V{)IeO4zyLe zF~XiH#g3FBFQw>%@Ya;#)0CodN^u*)#DbJ&TS{|TO0x*zYbnK+l%h#Wu@2#`lwwm# z(KMyljqs0@Vna&NET#AhVb#sSQ>oTLcAE!sE8{y#Gt{TEZMQAM66IyDpe%Bf>|CpC zXS08qTlQ+R-z;9Xr`d0rS+<|qmu?fQL32~+)Lw21lTa{$6@SF_j`a>(`HicA)m7}+ zcJ0^^5ypPUPuMYg5r;ok3_oVM-y@6L>KY8a>+xDWhFF$=iS=>f6|nh_gp? z(&h%_L1}9P@}RW60eMi`)qp%G?JXdKotQi+9RwW_kSC?Xjh#Fxz1e^~DZL$VxcbC6 z%i{};hO<2WgaLU_`iud2P`VNbqLv4xNu%K;kH5W$^n((~lhXH51#xqh$G00hc~bg~ z0eMn-z<@j{{S^q}mItM$jfS&4&Ker2sO3RvaUh7AvpinWXgJC1#;Y2VC#BiOPM(z3 zGa7kPn(I$5U|Ldbl5pC)mDuoLR8r2Ax8+&wWjdmG5fv=4TN}|;gpSE7;xSecKY!$y z*qBaH77;HdZQ>e9wrvUN{j9***NsHL@-Zig$1d6Pdn=y#gNSb(CGz_@E1mh-kI4R< zvzS1cZ61f_uBD?=dJOjW;}FN65%GMfVjc(~Tal8xf&Ae>Zj~8COzIbhUeOlTTKPCw zZ{;3;+Hkj0;$~5~Oft8udPL=QF2}OT<)1++WoOys@@vdK6T;V<{g(0ao6Uaf%<`X@ z{dT3w|6um7C|CXv`@@JjST=bKI~7TzNY`>Kn_T{g*h%wb+2r!4b)X`R-SRPPB=I6m zFpNtm%ZUt^8fXs z8~5kl=a%rloZ!}e^k1&)uOI2wjooP3{+^L;dw=4cZXLh<1Xua}M!9(`TI?;#T&T+~U^rJB)W5XRe+)!^upgGSr_w-W}{IubV2j%ilZRy^I{VDc!E$ z{p?%a)x3-k+i{wqWx(96M^+SG-32vVv$AbzV>5qTZ%}#Ee;P$c|>py1J?;T#OGW?ddtKI&`#qU+pWDQC zvdjAeXSwyAtl#|mX1Rq-mF{_=w`tNR4|Ix*6UAuw5VX^y>2rS@9)qy%OdSb0GMi(a&Gv4)t1mLj=eCRZHAT#qPc9Nmap% zowbkoPdvrBuwkj|x!L*Z3STXCAMzi2$|Y4~MMRdbn)u&79= zldt+TR5#_Tj`?azzUrJW1sa*J2IZ@J?R+&8H!h$2KKzt>S*hv`C7DL~YDB)Ok*}`w zcRuB2x6LN977ZocOY&8IzM4UpdaMPUFG&y&1)*YY$ydYj)f{y9<8C9)d{vUn`P2XD z-co!8C#t@>6n^cW{ik~kEwtCu?i}aH*Zy};yN@{Cviu3pxE-9TS;^!xZnopB_&xd6 zb8cnZZsH$b?v8f0eC7{(o^xW$iR2|Oxa&Cuk_TRNpNcsLKk;Y(%jG_H+@HS6t?q33 z&0ofrHoIXJA4@s4Et$32eaCUOypr7gid%*|oB!(?_nC{j9jBS_ja5~=*xgk82&JA3 zT9eC5XHM2}|CLwW`n1~bUUlzt4*n)_SN24;Jcz$ia@lL{jbgw&8_O?{sX~fB53Y^w#{wB^xaY)xeJuHcQ%UZ z{`}9~vi{z0-6H;`&)h1`wq5?d&)f#~IKRZ_Zd-eb-<^$9=YId&J#Iz6_UCSGZy?Z{2c%(#e_R&;8cT3c!EhBe$r(;9IwJfXS^p+*)zF(EoL}+rl2> z*V)6xq1;HHm)|N%4r(|DNBcbt*bDqUdq`nJp-C;sW(`jCUf;TxJFkzFgj#xAhNJ&d za?sSPI+XqIg8gLc@7x11yMMCg5ANKU^K@^2^^fixyS?A`Cj#xg2Ez~iqd&P#ygsb{ z9orG?J4br^hktTgc=JThhtkn=^%;85ZCOMft;T+LLiIK6pj)X(9o7$zor{W{T|NDh zKNHa;Q9tBw{F#Ju`>^i^`}UaRn?JiM)0tAvfA@qt$mvqr&pzq4&&vH8n`5*NhkI@g z_mQAkG|BNNopd)kE2{Xdes>#WKIOh^I|XHuGyiaZwCUvfW6rowJG^#Z z=B%r1XLsdfrN7)iVou>{zr3T~b@rd~zjoC1PW%tQRg4d=_4(Rg7USz)t4{mtV(J!W z@E^(gu4-yKEl&G4DAn3elu|1BPo-+x&T>2Xp{M?BJB#dOGOpUi95g>w$3md8ij$6rpRJJ)M zlA9W;jkdF@t$$yxx`X#s{a7C9EhwG5F^{XO)3IIhm&WS5m~*^{|4B2|+38l&uh?A8 zcU~`^e4)8oVmrB|{Ht54u1=le{-Z6`gU*Cfe(lTEE+;$lwN~mZ)p?nJuC@BWSzI*v zA?t2XDX!nK9fAdo{Zj4K3TIVy|E>1wJ!ec2|DF!&X6Il@|3n9s>nyI8yyOb0#iwif zL$0L%T@dr{xRL;M+9d0ARF!O}K{fx%PU==CelnTtq)NKZnwrTiUDf@Lv!RCHr<;1q zITH8Fb>|3eXr8>IyXryRH1|K~p|YK&&69_Es5>dwMgGX%>T#zN#8T{G)x;SI+*6lH2;KR*uuYxnHzDQS@o<*YB^cak{kfr}f8R@a6uX z0qQenPIj`GWBpBO>My-!hp?oDc-lT+LO`6hLbv!#|lu2ALi9LE1=q3Y-y zspbD%sJ?J^*Y`J$RMVY;I?0Zs_&dSrpXVPNt)@5)8YRb#QGYtlQZG677FFMNKF#zW zAIEWAQ`-N2oO<1vS1-AEyn4uSx->{$IzcV8oxz^JX(DyDJkzgtn`-ZDE0P>@o1#0E z(=gd-lA7l_6RP@OPElK&Emf1trmCB5r*$R2bV7B!XbewtV{PS37nvy+@gIu$10GRT{Lddy?>Ku8`~Doh>@@fn|L`1jiBoVmSz)f~A9Hel^~cRq zInIP%l8??)1B=m_I{LWUN#wsKw>+Ub*iM(je#R2jDeL$nM7pLtOUo3yKb1>9(dYCz z<`*te3!V6{$#YB8Z58Z}$=hC2OoM6dKbchZi^x~zW7A6e+q1lK$^A*iVwr{hjce6x zC-;ZsFKgA8%Gt3$`TpDLQ^hrY(R=FecHGb0%>6qn`Os#yumX3`T6@$#?TYhwML4#( zfu!Fnoqo3e-M6azWu+cQxj(AhFIj#pDm^698J7lG@>_kU7C4y){O#YVP0pzUzQ334 zp&$M0_Nh%p_Wp$ByypJmy{db1;`gdY%&wE%bU-~<#-5ZMb4oR^$>n3G)hiC4QtW<4 zCG1(rkItxJj`QY>WbQfjdd#kx{Mqqd_UQXAF6!lB?|)p(tK%Hn>7Sz4=xp2J&(HAk zoLy6sn=-tEIh$_(esu4J1kUTtR5 zBnzr}t(!YXo=85`$7`pYHA|8|4Debw&Y5A!YJ`v2>C z?^u3Uxy@BAHkv^W!$9xqR1=8N1Pf32WhQxT=t}jRk+T?;Y3f=}()< z+ELT|#`k#t;XYpdUazO)Z0MUDH_JQYI;;97Z=UN7x1Cdik~<&t<|Db@FMPyn=j^@S zfBq3~m$P9|^6mw)`cy%(>7(9D%GoqFdEg%&UCSxSe?B2!Z>-~2S;AXNP5h=yyjpZ& z1}*WX#%PIOJ>|7=oNZSovz|fjZ0VJ3_bgv;q$#d_&KqLeImxW&y>9e0lfz%2OeN*J z4Y3b0ZIwyIWjFG(S9%rwFIISMi)3Gc=3J(~ak*F3Z@!Xtx*$1srT3>xGoAgi_oH+C zLx21$Ub!q;KR33QX8^Hc719T2$5#J|SG;;o>)-sXvTgCbf8rJI-_D9B{C#V@icMsF z+1MsWLN!+QTj`@Ei_FG8`!5uyj`b)s#*Gqb>=zLuvo1V$LlHO#; zIkLq+z1F+h9_n{m=iTV6dB}fZotMw>^u#)E2P5nE{SV*tI@3igv)=3COq%SUd)F(U z9KYV1%UR){dz%%?#`$eGuo;@1y1{#fZhrFOcf8)VC;zd>F7n@g*K6zSf7gHGUGECJ zF!|TJUN@(s{G}KBkV>$Nl}ndJ{?%h;ERi-!OXWYk*q4EHRJy|6+~hyF*}K^Jbf5pq zX78+XW>fOz_q{XRYkv1vZS^j3dVZh$YO8nFjTiE>M&3Ljx$|SMfmdwuu-mVnaLcXZ zCl2@j+{3Y|z0;eYd}F8AJRVXdQI*Xpo^OpCcI&XQ*2L?_4x8lvvdwFBU%pc$$wRuj zH#V!&hMC$tg^;H#J36FXby~rvJQEY$&~_=^E=tw^6zecxJEWbzu`piQlXZ|8e#m}j zcP-2RuCwBcUgc@|Ydm(t?Z!=b!-`LP6HfAmBsMZKmR|uZGO@XVt%RNMhChFFyk;U7 z*$cRoW!m3T(T-QnVmij}?9j;0m^}{4!4Vo1rsy-Kd9oxT?7P zEPvnFc+Ix*B=w6>y%^gjpIPxOIK#4ElXTBB?btgR97nb2Wxna+&nk>xbMwJZtoU7w z5v=2s5Vz$wEB+&H8nP`o$(GodXv}uYE7TIrpcGr#myvCujzjiE_bBclaY@|E*>3(V zIQ0JLk@4(K%gN7X91GsX8{$mF#}~5-$`eHPEAvWlvM(1R8Olme$k)Aj0|NMYHY%~S&Tb(;bivKe=R${qKX|q zf|CJeW1Lmoj@QJQ8gGH@LEJpt*EktkN~@bg*ey5-JE3aYzMza9?@4-1;^^Wm58pq- zj#tmLE+sN~rKZEw~2{VG7KRJGDvt69p z4z~>#C%2CrPKgmXlm4ort)w0Q z5%)R=E}v~~DGmy*4*VKU_N4)2a~z(UR9Ci|qIq()j>)khmKX*Wzk{?vnV^HSPEsTmh9Uf$Oxf<1dl<1{ge!i=VXOf1ONK zfY|X^LkiJwLk&9!OACqDA#szT4bAQN%$9b14%?;Lz17@bc1!&7&d13}v+T5O3-<5F z^>1y*Ym=^t!)!NTzaO_HFI6DfKX#GC)wp(h;_joJq}8RB9q&gxd;&4ppF_M1sO8#Q zTUxW6MJ8U!-$3kmP$XZb4IBexDOW-&u^$bd*$wf5!SupZsO6W?0PEQCMYTBq?DwI} zQt3Ic$mC4=1t)bOx+Cn@L~hbF+uilaUjyo!xaQTP?38UYu0f+<|EB*fz)~-D^giXN z|AkvaE4YDER02z6CSr*+ry&)9{gb%m*h-jf9Q9*3V<$EZ8cFLLn2^(cbLiCH!oD1M zW80dRJqjm7E7pw4qTyd4!6j;Xt>L#U8(!8EWq)_RPI8^hTO{y@k`Ok^>Sd3 z3A2cEHhI}et>F&g9{z%GJFsDY7vbdIJ(O@_E3yi>F1UZ=a&et;3kXx0r@oWp?^HNL zx^=$BR{!KCyrEDZkqx8bS>BN+2(=_AMM7@v4WD8n-7q>I!&BeJ5dD!C$k~hB@}J{w zgjbkB-vamS zN~>ZJxEU~we!?GQ;z$rkGFMZLLpDwN4p)}wLO!J{l1*HTUJh!yM1Q&=58~$Gtg$JX zbWQrE&Ww9;`I|f2lC=NIS6_qeF=?Q zg)_%z1N+}%ZrE(a=B<#Ok)I;2m#$CSuVVjO++JJ>N^R`)wurTX0H+28RZ+owj@x`8 zJN1d{l+Jwq*?jIf^?B!@nRuyhs|H7^6BaTeBMB&@HJo2hGZYa@CTB0gav6 znnild$~Lfmg2g6!|o22z4LA(j$sIp2~}8Iab6m>)BJ@sIpF%~C?< zaoq7hykTP1p$p}&hgib3Kb+RT3`=K2f=j%w<99igW_bxfh9II9{U-dJ^JBBr+XB+X z57g-Srh3BaRw6CvgQj1IrR{8}nAU#^ryrj%hZt@`4~-2!+mf1-0bqde7wp_jx7YA) zb|!@Qd(yYOW@&?i7-WW+Z_QfA+oknPLb7^vNVDiCg;?}IUU{LuXU8;)zEtNl7niox zGb9j$r@Dj;;4>i>eYyM#^*uu@`f)uj)E^9Skb!H``h=8VTu2}WL;Ix-M9-%=&R3!6 zk6oK)(KqOyX3=*XkY>^M53%SMr8!}V!P2zA5`))6Ecy*07X7Xei+*p2MSn8HqCXR2 z(eup*T_7g8i9zOh0h93IE`y9gO3%{p7u3Mw!D*K8tPp;I{?v787QHnj%@RLrc&F@n z%{<6JDICFV$pXTc47D~Ar}2|&9uK%23AB2n38tBM3MmO zR-b2yfF+^Nv*_r6HCCmWNpMS;H?(plXOk zzhlIOdiSO@i=MSRDS)J}GcY(}P#9v#z?cwA1S~IlK@GGHvFJO7Si*M+vFK+C%e}y4 zU{=I{)g~`U;GGaNGtN3S+P`BygZN*9I8vT#9X-ciB-Zk~t!&GciDWUWScqk!b2;Jr z(DM_nAv_&+Queh&Ec!+;KY0xm;w=ugbsWYH2;qd)N(;nFqHLE65Rhc3bA-D`xPOF) zz;VaQCjUVOZ;$9%C*%CjwGv0q@t*7XpCrf|cISV>yghXOC+tV~*$A(T@W&DUKFkRs zJRKImC8D~tdJI0x{|WtIRtm7K)d)JZ zprfn}-iG^+<$)H=G<)mcu=z=Ze?_=F^K{Km^bO#VCwLTqP~w+ma22|34d)+GD)B~ydHxlI)S?IQAW$A3Y)_t88vs-`Y!NlxGfP&`2KKRM$>IM zw8FQ*T^UV(tL^WF_r1vITjoiN!7>DU7-o;s{5qWX6#p%0mhV(_U?lyLj$jYGlc9LN z&hTO3mFXIc@sh;za06{$32q6?2td+n1Q&%94Yh#PC9R_*uwQd8xGOc1qj?BigR%M~ z%~N6XlPX^j;pMQsizgr2{%yD#PfASu@=i*noxHPIK^q)GaCj#V5j0!8uJ_T7^dTq? z+vtsb4%`)fO4~Pw^FsQ5@IoG=+^hBD;j?6@fv(YqV0{T^OhF0$iJufm6a zcZD?{XJiz)(D1U zFhv{W!+F2*3_|mD@I>qvXdVZzMqj8Cm*ONY~i=amwG)m; z?8RU#5f0H29)^GBe}K-Kix%Y&@%Vp-<~s1vIDZFdZUS#D#-B)Mjcgy6`ubPkumr$W32UK%RVJ8;~u`*^%c;yZR1h4S_bydcCeKBBORs7&RShj)ee z64?Btx#YsvDf|2-r8~Tk=2#sgIeG)(6SR)@DNb0oAm~o>cw8IY53gm6%4@PgfM?)5 z{zB@g^{>Ho(VONW--MWm-ZZCua1Gk`z1sc^yeL$5Q@N?i=H4N-{}Qz+?Og8EQq7A) z0V=_LLWjEnToB^+FrTD2-<$@)i$XOt7G4qJ1bn8Ll`TC5?wv8~B?N;JEDbUcvkt)K zCsleB?#ttf5(uRV<|r)O@xwx4e$W|wA!rs8+dT22KK=lrlo7-ID9C?Qj!8{ zm>QSiSIjDj;CRTOp%gWA2)e^=h)2M4vdHkzREfrlz5YptC%|24bls3ihVOyH4~Q1Q zwRlWXLayCn@Eii0MpaV>SPzFENqqv(p$ch}SjVjW@I06b3;1{Vlx5hl`ir6dNrsAY zDlco2>MlxprQy@{ID~TV5J4>jM{A~!aU0maBz>#z3r{D2={k&q4}|oy;0_Jw>*)9v z!ynb4>p?~&{+D6<;&g9s6WkY0T&@Frg`iFSbPkWe3tcqCm1lfjknV#W^VbNEIiz&mjF^2{3HQY8s) zho9%XHf8(Dw%~|mCuu1R| z*!-k~4I|tv!kr@gw+LTbI^B1oBuCFl25d4E&cN1C2Cj=la6^P|j_@6DK`h-!r^7>G z)8=NC*2iB;B^j6>iC}SrpM|IH;BPGK<&eArkL1!kOLGz)&Oc-eG`|lYMQ{2(AH$16 zm+J2l2+U71a4^D0;g+1oCPKT6W!;m_-*Y;FQtRWu6DqRQl%x|~M0!}VeAB>~?Bo1YZm?g-C~@WKl@ac(Js z>2ER(j98>f*TJ)yOqZ*9JNy;@KvgA0(eHzczs+BVTK@;U7W>|si;+{cAw3YU3g?pH z)M*`KO)?DiFL-v*E0jslF7if%De!r@ye=|F$65%0qTjf-hkEcLI>0lvqm8B2c{oEx& z$>8r1{a+C-M&p=7hbNmzxc~F_gtQj@lL+faxOs%58R!(z_kiUuGigJTr9tqpc2;~T zBn27;e?k89pE>4LM)FSj6Iw2`-65@GqDzQwHN)6JFRPxGrM3y(0Dnd~ww3);?t*2~3O_%!19o zccOnRqF*Wc>-PNA%la^XHv}-xtvzt3dlV|K5p#&F2SCjkbgPxp1atIdA1kSrU$q zv4itixE!1n;!1EGSZ-dTuLAdn>u9b9n_qAiB@mc@_awn~5rcj(PvV0r6#Z=xeUxWM z^l}~P9J($&B|O~if#+>!fzX2@RH#6KZrAM`(hHgGS3o*0Y?1rRm?9*HFIEZmzvWaotJ zg^m51i2eKUDfB$;J70iPqqzT@06QZA4o3LT2$z%rf&NLAUL4`3@CfcDgRwC+CY%bw z=Q+hbRsK|$sxN|L+CT!_7>RHqZ05R%{vO!Oix8HZ*EDW6i*$l>&j-JUO34RWnsU^byhR1~TPGvF>;>xg@X(INQRi^xA zYKaKCV_<%g;Pvo0J@Z5KBO>~{U^6>N^z$S77vP*w|KhEP{mva^hGlw^Tz{lW#XdY;X?Mi_Fua2+=OXNky>Kd1wsksWAKd?? zO1Ffnw7ASqxL0i;A?|0(wQf&RbmltvF>=n$pu|7C&+k;KMN61X_RjU${N z;Xx6W3|3a@Mmr{=PqV)NPmLJ-cl>C?emQ)G;Wb0apvt#I^xs7IFzj%tFOciMIYuIo z8j!k=o;H6FfYtTRClIaD|E`A8B~I0_;o$xwRUYl(L`ztShroYPLUZ1?gn6Yo$gmV( zK!hhp_^}ADO>t`cFA;ndF*qIJN*7(2V9N*(i16eHKNjJ&0VmQW_$p#>I>ME*BN>SB zfCx{H@MD@y8(9lqaR2`R!8^18x&4|pAq?`ft#7h}oxn4vVS`XBkLsgs=osO7ihBN# zm99bhA~44^7eO|xugzBU(rOxw44I-h}PhNHYD5vh`B zmHz+DiT`N=(GqW=04zRszEK^DaH*OX>YH5139J8w0&7Zymuhx&8`%V#pB(eu@H{R| zO|<@}h~B!G2@L2>8@o`?{l6pzdohr^qBO#)u=$m8j-J~a;a?&g%Q4p6ma#7v;o2~d zUW1?Lo2K-^SywvYaIH@n1XWlX?hZ47GU(xyf&0MoVTnQb2F(pLPl)K}!%IT;Ps8uQ zQUek`3GaiYzzGq2jNq&ZKn?7M&lyJlD;(3uSnR!87jl&dH;!8cKy!&pw1MVJBHTX0gCaaJ!VBP{CIh6mM00TclMK8ZG1veziS~S>`#8ei z!(~JIV-fc1SXLFIr^Kb;YKBR#T8dNmf5|{21T{hiZQ;6boEoT!z8id{)(a1c@GTL( zJHn4d_{D(r{a+${H)8Njgnx^0M%@cDba8}RMfjQsj~3?t|2PEYuLggZsJPlO92d}o9ojPSC0wEu7h)N2Gr}z++@(J4Kb(PUBL-t4JT1cWBD^%ht0KH1!e1mJf?p%-aFGvZFgwC6BiuE@ z10p;!!imWd!Q2Qx7vXgg-WB1a5q2)UumEK*@Kzn5CiZ7Fi@k99Mk&4FM(}p* zO$~I0tI+Lcrbci`u7)p#$pH6%BIt{trS6wY6^+zvs%!?_Dx_Zqw}A)KtrGi};Kw|c zAs~S8>u|NAIzjk-I1jFznbLm_muFVYD7pVifNu~iM8KFc;NRd^VR=R)`eKa9-V5KFox|Qkrw&vv7aS9pS#0rukZUB^(@cGEfMghUaPf8Sw0escAWq!3FSF z4S9FLB(Ma*<$-9%Aq>xNa`fWOM}U;ju6sr9l4)ybzwI`8&9LUfTW?JODQOqK!!q zeo)(I1za{QsE1%=W0o89&u)%aOk4$)zbsuL1L3~#7#;p*cq2ST^E9|klhj~Z@;@K$ z0GskX1NRE?T6kE9x54AnoUryHn4T6`$Km-QE^-+)4A0aVC=E|-Y6TOiB?HyqO1z@f zP3vpI!{Okvg1$LC9%g1pP@#W=?}7UTOv5Zhum^!D!8G`Ah!?>NdF9ERrO(5U!6t!q z@G~L)5MCYP-SGMl{|aw~J;{I!jLst1jzHc7k`iSy#;eP#^)+=9$%4DL~w1_uM91qjA=N;ldU;Pr5CU1jgV zr8|=WeckyQuEh!ukNGW_wAjw|2O;$Y}!ciX3SR%^!mbhDS{5y zqyzMX=ZAP4yf4I$zT9eW>@EbfCrY90)z`C6CfAVB6lEMB~y)3Iog21zS*g{ z<5ERm!gcRYCwL5=8sdyrTscEr2d?!%x{6!DO=0N*N{w6tw+Zo>R-FHx5Y*Heco>6` zbFAR+f62hpu$r5`u&jmW!zRKV@MExi5lHNRf?s_oefRtmt}!odU!^q#g0Il&HBBHG zJ3pOZXSnFY=>P-a(jlG#SAsv#5j+SVcqDDV0zMq#P4EdgQ`f+Eu)QE%qluFU`XXSO zM^J)dZMaY@O83CB;9e{;X0GMjn5?{iq$B76-vgh~jr3Z0`eIi0(L4q|0h=~66Yk3E zvih`6SW6K+hJf^g47?0K0h`n0J$Pk^cZvPWsj1yk<$K}Mudw)}4u2Bf3b)oZltEWd zy~^5JT3-XsdoA^DWf_P2e;$H82=3JeSHi=Y$lOJ9ABkXX>TOU-a0EQ@4XRWpa2s4{ zJ=Y1%GvT>!r`}-^`$yrv8(8m1>z7OTjkFnIx&Oa`VE#LFFtovk@WOY~o#I{afe;^n zn{G;H_$a&{Zm%=!wBu3?*VB!%BwY9Xbb+eE<248O|GEg)BIvCnXa*PGl0Ifv!oy(G zr|bnEh5Kv!A#m5N=?vTo&xXzI_Fi}=Y!2}v_{4_+r|$nxBRIW{iOxF5E8(9%VXnEZ zk=Nkq+tVf30B?s2bOt_wn|_vheL$-GOL!|hQ0u>kYki(RE&l`0hZl4G2^t+M7g?9? zNLRVno<_n84LLf3GH}apxDs+{l?1B5+xMkMUJXS5ed>)4(YJ~amYCAmaG2u5PiS@S7)HQZ0Lx`G`4 zk&dt|d>wqV*4KnTf;VVx0?+-Ebv`wB7Cyrgbej9ay%J~Br_C4y^Wi78!JTm4U%dHm zr!sgiJm4HF6l?uL_$&Bn&CkM9E&gWI_OHW_*{K;AQbU{J=iz}`{~4T6yrMirN3b8k za2CNlqz#V3y;$M1f!3G2k_2F5Ukly?chvf3a1CB5DWf?buEs)^4K??NyTitQ#FdNydi0haW+|-59e!x#_%5aW6iDMl~qzDkPP*OkHRyxegZtPYU&*qsq$Iy zR=7axpMx)DDbSlWznnnu1OjuOz5}nWP6_lO_!!>E0j!VF!2+<_J~0ZxGd0tVDl-bN)+?Dj+`j_CQGLu^K8=6f9H^Qw#`j0gm{SLSTdc$ACSHTG**o&ZhD1t+pZ_o)I zg;$64e`yX*OETwCCw!U)K~uOfg=m7ai~*K^S&$FZw9O_|`x zNfI>L(r_=>RB27kW3;|LygsCFskwsIw}TTqF<78mX=emu^}A=1;5C|eY5f4WtA5c* z^usj=cTac}ydw5NX&7p%}l3<;h`{6OL#SW(6O?m21`3Ue|;T6d)_-vRZ+~^2=|0j5yq^~;XZIGLosVF zTnP8%ZdTffSwF$AtJKml!oR`WU}OImybG3_kLZi`pa6yw2(l2+;#gX(Z@h;!in z@KCMKgI^DETR5voTHhU>1e*f%hNr-Nbol=8rGZ;8U=vf!S~=UdC_D^(Uy3e<0|Iz*N~%VZG9dWN;lK zn)yc&d5N1`YwIw-a;u^>RhO-vwZiYv3d`d+`XgEutzCTPJ#p((E<+g{llJ~&t%_Dr hefGw!L;hN^YTwBJ7At3PBj0Pyc13f)Ve6t5{ue&jpAG;3 diff --git a/MDK-ARM/gimbal/gimbal.build_log.htm b/MDK-ARM/gimbal/gimbal.build_log.htm index 9a27b03..5acd2b2 100644 --- a/MDK-ARM/gimbal/gimbal.build_log.htm +++ b/MDK-ARM/gimbal/gimbal.build_log.htm @@ -32,9 +32,6 @@ Note: source file '..\User\bsp\gpio.c' - object file renamed from 'gimbal\gpio.o Note: source file '..\User\bsp\i2c.c' - object file renamed from 'gimbal\i2c.o' to 'gimbal\i2c_1.o'. Note: source file '..\User\bsp\spi.c' - object file renamed from 'gimbal\spi.o' to 'gimbal\spi_1.o'. Note: source file '..\User\task\vofa.c' - object file renamed from 'gimbal\vofa.o' to 'gimbal\vofa_1.o'. -compiling gimbal_ctrl.c... -linking... -Program Size: Code=92784 RO-data=1172 RW-data=252 ZI-data=34476 "gimbal\gimbal.axf" - 0 Error(s), 0 Warning(s).

Software Packages used:

@@ -58,7 +55,7 @@ Package Vendor: Keil

Collection of Component Files used:

* Component: ARM::CMSIS:CORE:5.4.0 -Build Time Elapsed: 00:00:02 +Build Time Elapsed: 00:00:01 diff --git a/MDK-ARM/gimbal/gimbal.htm b/MDK-ARM/gimbal/gimbal.htm index 8d4bfbb..f0af372 100644 --- a/MDK-ARM/gimbal/gimbal.htm +++ b/MDK-ARM/gimbal/gimbal.htm @@ -3,7 +3,7 @@ Static Call Graph - [gimbal\gimbal.axf]

Static Call Graph for image gimbal\gimbal.axf


-

#<CALLGRAPH># ARM Linker, 6160001: Last Updated: Mon Dec 8 20:13:34 2025 +

#<CALLGRAPH># ARM Linker, 6160001: Last Updated: Sat Dec 13 19:34:39 2025

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

Call chain for Maximum Stack Depth:

@@ -1136,7 +1136,7 @@ Global Symbols
  • >>   MX_CAN1_Init -

    Gimbal_Control (Thumb, 1112 bytes, Stack size 80 bytes, gimbal.o(.text.Gimbal_Control)) +

    Gimbal_Control (Thumb, 1156 bytes, Stack size 80 bytes, gimbal.o(.text.Gimbal_Control))

    [Stack]

    • Max Depth = 544
    • Call Chain = Gimbal_Control ⇒ Smc_Calc ⇒ __hardfp_pow ⇒ sqrt ⇒ _dsqrt ⇒ __fpl_dnaninf

    [Calls]
    • >>   Smc_Calc @@ -1177,8 +1177,8 @@ Global Symbols
      [Called By]
      • >>   Task_gimbal_ctrl
      -

      Gimbal_UpdateFeedback (Thumb, 468 bytes, Stack size 40 bytes, gimbal.o(.text.Gimbal_UpdateFeedback)) -

      [Stack]

      • Max Depth = 364
      • Call Chain = Gimbal_UpdateFeedback ⇒ MOTOR_DM_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit ⇒ vListInsertEnd +

        Gimbal_UpdateFeedback (Thumb, 528 bytes, Stack size 56 bytes, gimbal.o(.text.Gimbal_UpdateFeedback)) +

        [Stack]

        • Max Depth = 380
        • Call Chain = Gimbal_UpdateFeedback ⇒ MOTOR_DM_Update ⇒ BSP_CAN_GetMessage ⇒ osMutexRelease ⇒ xQueueGiveMutexRecursive ⇒ xQueueGenericSend ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit ⇒ vListInsertEnd

        [Calls]
        • >>   __aeabi_f2d
        • >>   __aeabi_dmul @@ -2485,7 +2485,7 @@ Global Symbols
          [Called By]
          • >>   DMA1_Stream1_IRQHandler1
          -

          SMC_Init (Thumb, 108 bytes, Stack size 24 bytes, sliding.o(.text.SMC_Init)) +

          SMC_Init (Thumb, 110 bytes, Stack size 24 bytes, sliding.o(.text.SMC_Init))

          [Stack]

          • Max Depth = 52
          • Call Chain = SMC_Init ⇒ SMC_SetParam ⇒ OutContinuation

          [Calls]
          • >>   SMC_SetParam @@ -2493,7 +2493,7 @@ Global Symbols
            [Called By]
            • >>   Gimbal_Init
            -

            SMC_PErrorUpdate (Thumb, 156 bytes, Stack size 20 bytes, sliding.o(.text.SMC_PErrorUpdate)) +

            SMC_PErrorUpdate (Thumb, 260 bytes, Stack size 20 bytes, sliding.o(.text.SMC_PErrorUpdate))

            [Stack]

            • Max Depth = 20
            • Call Chain = SMC_PErrorUpdate

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

              SVC_Handler (Thumb, 36 bytes, Stack size 0 bytes, port.o(.text.SVC_Handler))
              [Address Reference Count : 1]

              • startup_stm32f407xx.o(RESET)
              -

              Smc_Calc (Thumb, 1688 bytes, Stack size 208 bytes, sliding.o(.text.Smc_Calc)) +

              Smc_Calc (Thumb, 1760 bytes, Stack size 208 bytes, sliding.o(.text.Smc_Calc))

              [Stack]

              • Max Depth = 464
              • Call Chain = Smc_Calc ⇒ __hardfp_pow ⇒ sqrt ⇒ _dsqrt ⇒ __fpl_dnaninf

              [Calls]
              • >>   Sat @@ -2625,7 +2625,7 @@ Global Symbols

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

              Task_gimbal_ctrl (Thumb, 276 bytes, Stack size 32 bytes, gimbal_ctrl.o(.text.Task_gimbal_ctrl)) +

              Task_gimbal_ctrl (Thumb, 244 bytes, Stack size 32 bytes, gimbal_ctrl.o(.text.Task_gimbal_ctrl))

              [Stack]

              • Max Depth = 576 + Unknown Stack Size
              • Call Chain = Task_gimbal_ctrl ⇒ Gimbal_Control ⇒ Smc_Calc ⇒ __hardfp_pow ⇒ sqrt ⇒ _dsqrt ⇒ __fpl_dnaninf
              @@ -2648,13 +2648,14 @@ Global Symbols

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

            Task_remote (Thumb, 160 bytes, Stack size 32 bytes, remote.o(.text.Task_remote)) -

            [Stack]

            • Max Depth = 228
            • Call Chain = Task_remote ⇒ osMessageQueuePut ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit ⇒ vListInsertEnd +

              Task_remote (Thumb, 176 bytes, Stack size 40 bytes, remote.o(.text.Task_remote)) +

              [Stack]

              • Max Depth = 236
              • Call Chain = Task_remote ⇒ osMessageQueuePut ⇒ xQueueGenericSendFromISR ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit ⇒ vListInsertEnd

              [Calls]
              • >>   remote_ParseHost
              • >>   delay_init
              • >>   osMessageQueueReset
              • >>   osMessageQueuePut +
              • >>   osMessageQueueGet
              • >>   osKernelGetTickFreq
              • >>   osKernelGetTickCount
              • >>   osDelayUntil @@ -2861,6 +2862,7 @@ Global Symbols

              [Called By]
              • >>   BSP_CAN_GetMessage
              • >>   Task_vofa +
              • >>   Task_remote
              • >>   Task_gimbal_ctrl
              @@ -5355,7 +5357,7 @@ Local Symbols
              [Called By]
              • >>   MOTOR_DM_ParseFeedbackFrame
              -

              Gimbal_SetMode (Thumb, 160 bytes, Stack size 24 bytes, gimbal.o(.text.Gimbal_SetMode)) +

              Gimbal_SetMode (Thumb, 148 bytes, Stack size 24 bytes, gimbal.o(.text.Gimbal_SetMode))

              [Stack]

              • Max Depth = 96
              • Call Chain = Gimbal_SetMode ⇒ LowPassFilter2p_Reset ⇒ LowPassFilter2p_Apply ⇒ __ARM_isinf

              [Calls]
              • >>   SMC_Reset diff --git a/MDK-ARM/gimbal/gimbal.map b/MDK-ARM/gimbal/gimbal.map index 6d2454c..2fd3407 100644 --- a/MDK-ARM/gimbal/gimbal.map +++ b/MDK-ARM/gimbal/gimbal.map @@ -3446,11 +3446,12 @@ Section Cross References remote.o(.text.Task_remote) refers to cmsis_os2.o(.text.osKernelGetTickCount) for osKernelGetTickCount remote.o(.text.Task_remote) refers to bsp_delay.o(.text.delay_init) for delay_init remote.o(.text.Task_remote) refers to remote_control.o(.text.remote_control_init) for remote_control_init + remote.o(.text.Task_remote) refers to user_task.o(.bss.task_runtime) for task_runtime + remote.o(.text.Task_remote) refers to remote.o(.bss.imu) for imu + remote.o(.text.Task_remote) refers to cmsis_os2.o(.text.osMessageQueueGet) for osMessageQueueGet remote.o(.text.Task_remote) refers to remote.o(.bss.remote_cmd) for remote_cmd remote.o(.text.Task_remote) refers to remote_control.o(.bss.rc_ctrl) for rc_ctrl - remote.o(.text.Task_remote) refers to remote.o(.bss.imu) for imu remote.o(.text.Task_remote) refers to ai.o(.text.remote_ParseHost) for remote_ParseHost - remote.o(.text.Task_remote) refers to user_task.o(.bss.task_runtime) for task_runtime remote.o(.text.Task_remote) refers to cmsis_os2.o(.text.osMessageQueueReset) for osMessageQueueReset remote.o(.text.Task_remote) refers to cmsis_os2.o(.text.osMessageQueuePut) for osMessageQueuePut remote.o(.text.Task_remote) refers to cmsis_os2.o(.text.osDelayUntil) for osDelayUntil @@ -3523,7 +3524,6 @@ Section Cross References gimbal.o(.ARM.exidx.text.Gimbal_Control) refers to gimbal.o(.text.Gimbal_Control) for [Anonymous Symbol] gimbal.o(.text.Gimbal_SetMode) refers to sliding.o(.text.SMC_Reset) for SMC_Reset gimbal.o(.text.Gimbal_SetMode) refers to filter.o(.text.LowPassFilter2p_Reset) for LowPassFilter2p_Reset - gimbal.o(.text.Gimbal_SetMode) refers to gimbal.o(.bss.hhhh) for hhhh gimbal.o(.text.Gimbal_SetMode) refers to ahrs.o(.text.AHRS_ResetEulr) for AHRS_ResetEulr gimbal.o(.ARM.exidx.text.Gimbal_SetMode) refers to gimbal.o(.text.Gimbal_SetMode) for [Anonymous Symbol] gimbal.o(.ARM.exidx.text.motor_imu_offset) refers to gimbal.o(.text.motor_imu_offset) for [Anonymous Symbol] @@ -6642,612 +6642,612 @@ Image Symbol Table [Anonymous Symbol] 0x080038bc Section 0 stm32f4xx_it.o(.text.EXTI9_5_IRQHandler) [Anonymous Symbol] 0x080038c8 Section 0 main.o(.text.Error_Handler) [Anonymous Symbol] 0x080038d0 Section 0 gimbal.o(.text.Gimbal_Control) - __arm_cp.3_4 0x08003c84 Number 4 gimbal.o(.text.Gimbal_Control) - [Anonymous Symbol] 0x08003d28 Section 0 gimbal.o(.text.Gimbal_Init) - [Anonymous Symbol] 0x08003e4c Section 0 gimbal.o(.text.Gimbal_Output) - Gimbal_SetMode 0x08003f61 Thumb Code 160 gimbal.o(.text.Gimbal_SetMode) - [Anonymous Symbol] 0x08003f60 Section 0 gimbal.o(.text.Gimbal_SetMode) - [Anonymous Symbol] 0x08004000 Section 0 gimbal.o(.text.Gimbal_UpdateFeedback) - [Anonymous Symbol] 0x080041d4 Section 0 gimbal.o(.text.Gimbal_UpdateIMU) - [Anonymous Symbol] 0x08004220 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_ActivateNotification) - [Anonymous Symbol] 0x08004274 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_AddTxMessage) - [Anonymous Symbol] 0x080043cc Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_ConfigFilter) - [Anonymous Symbol] 0x0800456c Section 0 can_1.o(.text.HAL_CAN_ErrorCallback) - [Anonymous Symbol] 0x080045bc Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxFifoFillLevel) - [Anonymous Symbol] 0x08004610 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxMessage) - [Anonymous Symbol] 0x08004824 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetTxMailboxesFreeLevel) - [Anonymous Symbol] 0x08004894 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_IRQHandler) - [Anonymous Symbol] 0x08004c88 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_Init) - [Anonymous Symbol] 0x08004e68 Section 0 can.o(.text.HAL_CAN_MspInit) - [Anonymous Symbol] 0x08005038 Section 0 can_1.o(.text.HAL_CAN_RxFifo0FullCallback) - [Anonymous Symbol] 0x08005088 Section 0 can_1.o(.text.HAL_CAN_RxFifo0MsgPendingCallback) - [Anonymous Symbol] 0x080050d8 Section 0 can_1.o(.text.HAL_CAN_RxFifo1FullCallback) - [Anonymous Symbol] 0x08005128 Section 0 can_1.o(.text.HAL_CAN_RxFifo1MsgPendingCallback) - [Anonymous Symbol] 0x08005178 Section 0 can_1.o(.text.HAL_CAN_SleepCallback) - [Anonymous Symbol] 0x080051c8 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_Start) - [Anonymous Symbol] 0x08005254 Section 0 can_1.o(.text.HAL_CAN_TxMailbox0AbortCallback) - [Anonymous Symbol] 0x080052a4 Section 0 can_1.o(.text.HAL_CAN_TxMailbox0CompleteCallback) - [Anonymous Symbol] 0x080052f0 Section 0 can_1.o(.text.HAL_CAN_TxMailbox1AbortCallback) - [Anonymous Symbol] 0x08005340 Section 0 can_1.o(.text.HAL_CAN_TxMailbox1CompleteCallback) - [Anonymous Symbol] 0x08005390 Section 0 can_1.o(.text.HAL_CAN_TxMailbox2AbortCallback) - [Anonymous Symbol] 0x080053e0 Section 0 can_1.o(.text.HAL_CAN_TxMailbox2CompleteCallback) - [Anonymous Symbol] 0x08005430 Section 0 can_1.o(.text.HAL_CAN_WakeUpFromRxMsgCallback) - [Anonymous Symbol] 0x08005480 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort) - [Anonymous Symbol] 0x0800556c Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort_IT) - [Anonymous Symbol] 0x080055b0 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_GetState) - [Anonymous Symbol] 0x080055c0 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_IRQHandler) - [Anonymous Symbol] 0x080058e0 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Init) - [Anonymous Symbol] 0x08005a50 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Start_IT) - [Anonymous Symbol] 0x08005b14 Section 0 stm32f4xx_hal.o(.text.HAL_Delay) - [Anonymous Symbol] 0x08005b58 Section 0 gpio_1.o(.text.HAL_GPIO_EXTI_Callback) - [Anonymous Symbol] 0x08005bc0 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_EXTI_IRQHandler) - [Anonymous Symbol] 0x08005bf8 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_Init) - [Anonymous Symbol] 0x08005fb0 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_ReadPin) - [Anonymous Symbol] 0x08005fe0 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_WritePin) - [Anonymous Symbol] 0x08006010 Section 0 stm32f4xx_hal.o(.text.HAL_GetTick) - [Anonymous Symbol] 0x0800601c Section 0 i2c_1.o(.text.HAL_I2C_AbortCpltCallback) - [Anonymous Symbol] 0x08006070 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_AddrCallback) - [Anonymous Symbol] 0x08006080 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_ER_IRQHandler) - [Anonymous Symbol] 0x080061fc Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_EV_IRQHandler) - [Anonymous Symbol] 0x080065c8 Section 0 i2c_1.o(.text.HAL_I2C_ErrorCallback) - [Anonymous Symbol] 0x0800661c Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_Init) - [Anonymous Symbol] 0x080068c0 Section 0 i2c_1.o(.text.HAL_I2C_ListenCpltCallback) - [Anonymous Symbol] 0x08006914 Section 0 i2c_1.o(.text.HAL_I2C_MasterRxCpltCallback) - [Anonymous Symbol] 0x08006968 Section 0 i2c_1.o(.text.HAL_I2C_MasterTxCpltCallback) - [Anonymous Symbol] 0x080069b8 Section 0 i2c_1.o(.text.HAL_I2C_MemRxCpltCallback) - [Anonymous Symbol] 0x08006a0c Section 0 i2c_1.o(.text.HAL_I2C_MemTxCpltCallback) - [Anonymous Symbol] 0x08006a60 Section 0 i2c.o(.text.HAL_I2C_MspInit) - [Anonymous Symbol] 0x08006b94 Section 0 i2c_1.o(.text.HAL_I2C_SlaveRxCpltCallback) - [Anonymous Symbol] 0x08006be8 Section 0 i2c_1.o(.text.HAL_I2C_SlaveTxCpltCallback) - [Anonymous Symbol] 0x08006c3c Section 0 stm32f4xx_hal.o(.text.HAL_IncTick) - [Anonymous Symbol] 0x08006c58 Section 0 stm32f4xx_hal.o(.text.HAL_Init) - [Anonymous Symbol] 0x08006c90 Section 0 stm32f4xx_hal.o(.text.HAL_InitTick) - [Anonymous Symbol] 0x08006d00 Section 0 stm32f4xx_hal_msp.o(.text.HAL_MspInit) - [Anonymous Symbol] 0x08006d58 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_DisableIRQ) - [Anonymous Symbol] 0x08006d6c Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ) - [Anonymous Symbol] 0x08006d80 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) - [Anonymous Symbol] 0x08006db4 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) - [Anonymous Symbol] 0x08006dc4 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) - [Anonymous Symbol] 0x08007028 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) - [Anonymous Symbol] 0x08007034 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) - [Anonymous Symbol] 0x08007058 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) - [Anonymous Symbol] 0x0800707c Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) - [Anonymous Symbol] 0x08007164 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_OscConfig) - [Anonymous Symbol] 0x08007824 Section 0 spi_1.o(.text.HAL_SPI_ErrorCallback) - [Anonymous Symbol] 0x08007878 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Init) - [Anonymous Symbol] 0x08007978 Section 0 spi.o(.text.HAL_SPI_MspInit) - [Anonymous Symbol] 0x08007b88 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive) - [Anonymous Symbol] 0x08007dd8 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive_DMA) - [Anonymous Symbol] 0x08007f70 Section 0 spi_1.o(.text.HAL_SPI_RxCpltCallback) - [Anonymous Symbol] 0x08007fc4 Section 0 spi_1.o(.text.HAL_SPI_RxHalfCpltCallback) - [Anonymous Symbol] 0x08008018 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit) - [Anonymous Symbol] 0x080082bc Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive) - [Anonymous Symbol] 0x08008660 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive_DMA) - [Anonymous Symbol] 0x08008874 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit_DMA) - [Anonymous Symbol] 0x080089e0 Section 0 spi_1.o(.text.HAL_SPI_TxCpltCallback) - [Anonymous Symbol] 0x08008a28 Section 0 spi_1.o(.text.HAL_SPI_TxHalfCpltCallback) - [Anonymous Symbol] 0x08008a7c Section 0 spi_1.o(.text.HAL_SPI_TxRxCpltCallback) - [Anonymous Symbol] 0x08008ad0 Section 0 spi_1.o(.text.HAL_SPI_TxRxHalfCpltCallback) - [Anonymous Symbol] 0x08008b24 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_SYSTICK_Config) - [Anonymous Symbol] 0x08008b34 Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_BreakCallback) - [Anonymous Symbol] 0x08008b3c Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_CommutCallback) - [Anonymous Symbol] 0x08008b44 Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) - [Anonymous Symbol] 0x08008c68 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_Base_Init) - [Anonymous Symbol] 0x08008d04 Section 0 tim.o(.text.HAL_TIM_Base_MspInit) - [Anonymous Symbol] 0x08008d90 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_IC_CaptureCallback) - [Anonymous Symbol] 0x08008d98 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_IRQHandler) - [Anonymous Symbol] 0x08008fb4 Section 0 tim.o(.text.HAL_TIM_MspPostInit) - [Anonymous Symbol] 0x08009020 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_OC_DelayElapsedCallback) - [Anonymous Symbol] 0x08009028 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel) - [Anonymous Symbol] 0x0800916c Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Init) - [Anonymous Symbol] 0x08009208 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit) - [Anonymous Symbol] 0x08009210 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_PulseFinishedCallback) - [Anonymous Symbol] 0x08009218 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Start) - [Anonymous Symbol] 0x080093e4 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PeriodElapsedCallback) - [Anonymous Symbol] 0x080093ec Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_TriggerCallback) - [Anonymous Symbol] 0x080093f4 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) - [Anonymous Symbol] 0x08009400 Section 0 uart.o(.text.HAL_UART_ErrorCallback) - [Anonymous Symbol] 0x08009454 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler) - [Anonymous Symbol] 0x080098b0 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_Init) - [Anonymous Symbol] 0x08009950 Section 0 usart.o(.text.HAL_UART_MspInit) - [Anonymous Symbol] 0x08009b30 Section 0 uart.o(.text.HAL_UART_RxCpltCallback) - [Anonymous Symbol] 0x08009b84 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_Transmit_DMA) - [Anonymous Symbol] 0x08009c80 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_Transmit_IT) - [Anonymous Symbol] 0x08009cf4 Section 0 uart.o(.text.HAL_UART_TxCpltCallback) - [Anonymous Symbol] 0x08009d48 Section 0 uart.o(.text.HAL_UART_TxHalfCpltCallback) - [Anonymous Symbol] 0x08009d98 Section 0 stm32f4xx_it.o(.text.HardFault_Handler) - [Anonymous Symbol] 0x08009d9c Section 0 stm32f4xx_it.o(.text.I2C1_ER_IRQHandler) - [Anonymous Symbol] 0x08009dac Section 0 stm32f4xx_it.o(.text.I2C1_EV_IRQHandler) - I2C_ConvertOtherXferOptions 0x08009dbd Thumb Code 52 stm32f4xx_hal_i2c.o(.text.I2C_ConvertOtherXferOptions) - [Anonymous Symbol] 0x08009dbc Section 0 stm32f4xx_hal_i2c.o(.text.I2C_ConvertOtherXferOptions) - I2C_DMAAbort 0x08009df1 Thumb Code 342 stm32f4xx_hal_i2c.o(.text.I2C_DMAAbort) - [Anonymous Symbol] 0x08009df0 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_DMAAbort) - I2C_Flush_DR 0x08009f49 Thumb Code 36 stm32f4xx_hal_i2c.o(.text.I2C_Flush_DR) - [Anonymous Symbol] 0x08009f48 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Flush_DR) - I2C_Get 0x08009f6d Thumb Code 72 i2c_1.o(.text.I2C_Get) - [Anonymous Symbol] 0x08009f6c Section 0 i2c_1.o(.text.I2C_Get) - I2C_ITError 0x08009fb5 Thumb Code 634 stm32f4xx_hal_i2c.o(.text.I2C_ITError) - [Anonymous Symbol] 0x08009fb4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_ITError) - I2C_MasterReceive_BTF 0x0800a231 Thumb Code 428 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_BTF) - [Anonymous Symbol] 0x0800a230 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_BTF) - I2C_MasterReceive_RXNE 0x0800a3dd Thumb Code 362 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_RXNE) - [Anonymous Symbol] 0x0800a3dc Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_RXNE) - I2C_MasterTransmit_BTF 0x0800a549 Thumb Code 222 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_BTF) - [Anonymous Symbol] 0x0800a548 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_BTF) - I2C_MasterTransmit_TXE 0x0800a629 Thumb Code 318 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_TXE) - [Anonymous Symbol] 0x0800a628 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_TXE) - I2C_Master_ADD10 0x0800a769 Thumb Code 70 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADD10) - [Anonymous Symbol] 0x0800a768 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADD10) - I2C_Master_ADDR 0x0800a7b1 Thumb Code 830 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADDR) - [Anonymous Symbol] 0x0800a7b0 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADDR) - I2C_Master_SB 0x0800aaf1 Thumb Code 240 stm32f4xx_hal_i2c.o(.text.I2C_Master_SB) - [Anonymous Symbol] 0x0800aaf0 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_SB) - I2C_MemoryTransmit_TXE_BTF 0x0800abe1 Thumb Code 296 stm32f4xx_hal_i2c.o(.text.I2C_MemoryTransmit_TXE_BTF) - [Anonymous Symbol] 0x0800abe0 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MemoryTransmit_TXE_BTF) - I2C_SlaveReceive_BTF 0x0800ad09 Thumb Code 46 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_BTF) - [Anonymous Symbol] 0x0800ad08 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_BTF) - I2C_SlaveReceive_RXNE 0x0800ad39 Thumb Code 110 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_RXNE) - [Anonymous Symbol] 0x0800ad38 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_RXNE) - I2C_SlaveTransmit_BTF 0x0800ada9 Thumb Code 44 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_BTF) - [Anonymous Symbol] 0x0800ada8 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_BTF) - I2C_SlaveTransmit_TXE 0x0800add5 Thumb Code 108 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_TXE) - [Anonymous Symbol] 0x0800add4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_TXE) - I2C_Slave_ADDR 0x0800ae41 Thumb Code 174 stm32f4xx_hal_i2c.o(.text.I2C_Slave_ADDR) - [Anonymous Symbol] 0x0800ae40 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_ADDR) - I2C_Slave_AF 0x0800aef1 Thumb Code 228 stm32f4xx_hal_i2c.o(.text.I2C_Slave_AF) - [Anonymous Symbol] 0x0800aef0 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_AF) - I2C_Slave_STOPF 0x0800afd5 Thumb Code 586 stm32f4xx_hal_i2c.o(.text.I2C_Slave_STOPF) - [Anonymous Symbol] 0x0800afd4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_STOPF) - I2C_WaitOnSTOPRequestThroughIT 0x0800b221 Thumb Code 120 stm32f4xx_hal_i2c.o(.text.I2C_WaitOnSTOPRequestThroughIT) - [Anonymous Symbol] 0x0800b220 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_WaitOnSTOPRequestThroughIT) - [Anonymous Symbol] 0x0800b298 Section 0 user_math.o(.text.InvSqrt) - [Anonymous Symbol] 0x0800b310 Section 0 filter.o(.text.LowPassFilter2p_Apply) - [Anonymous Symbol] 0x0800b3c8 Section 0 filter.o(.text.LowPassFilter2p_Init) - [Anonymous Symbol] 0x0800b504 Section 0 filter.o(.text.LowPassFilter2p_Reset) - MOTOR_DM_CreateCANManager 0x0800b599 Thumb Code 150 motor_dm.o(.text.MOTOR_DM_CreateCANManager) - [Anonymous Symbol] 0x0800b598 Section 0 motor_dm.o(.text.MOTOR_DM_CreateCANManager) - [Anonymous Symbol] 0x0800b630 Section 0 motor_dm.o(.text.MOTOR_DM_Enable) - MOTOR_DM_GetCANManager 0x0800b6ad Thumb Code 48 motor_dm.o(.text.MOTOR_DM_GetCANManager) - [Anonymous Symbol] 0x0800b6ac Section 0 motor_dm.o(.text.MOTOR_DM_GetCANManager) - [Anonymous Symbol] 0x0800b6dc Section 0 motor_dm.o(.text.MOTOR_DM_GetMotor) - [Anonymous Symbol] 0x0800b764 Section 0 motor_dm.o(.text.MOTOR_DM_MITCtrl) - MOTOR_DM_ParseFeedbackFrame 0x0800b7ad Thumb Code 344 motor_dm.o(.text.MOTOR_DM_ParseFeedbackFrame) - [Anonymous Symbol] 0x0800b7ac Section 0 motor_dm.o(.text.MOTOR_DM_ParseFeedbackFrame) - [Anonymous Symbol] 0x0800b904 Section 0 motor_dm.o(.text.MOTOR_DM_Register) - MOTOR_DM_SendMITCmd 0x0800ba31 Thumb Code 324 motor_dm.o(.text.MOTOR_DM_SendMITCmd) - [Anonymous Symbol] 0x0800ba30 Section 0 motor_dm.o(.text.MOTOR_DM_SendMITCmd) - [Anonymous Symbol] 0x0800bb74 Section 0 motor_dm.o(.text.MOTOR_DM_Update) - MOTOR_RM_CreateCANManager 0x0800bc81 Thumb Code 150 motor_rm.o(.text.MOTOR_RM_CreateCANManager) - [Anonymous Symbol] 0x0800bc80 Section 0 motor_rm.o(.text.MOTOR_RM_CreateCANManager) - [Anonymous Symbol] 0x0800bd18 Section 0 motor_rm.o(.text.MOTOR_RM_Ctrl) - MOTOR_RM_GetCANManager 0x0800be89 Thumb Code 48 motor_rm.o(.text.MOTOR_RM_GetCANManager) - [Anonymous Symbol] 0x0800be88 Section 0 motor_rm.o(.text.MOTOR_RM_GetCANManager) - MOTOR_RM_GetLSB 0x0800beb9 Thumb Code 82 motor_rm.o(.text.MOTOR_RM_GetLSB) - [Anonymous Symbol] 0x0800beb8 Section 0 motor_rm.o(.text.MOTOR_RM_GetLSB) - MOTOR_RM_GetLogicalIndex 0x0800bf0d Thumb Code 128 motor_rm.o(.text.MOTOR_RM_GetLogicalIndex) - [Anonymous Symbol] 0x0800bf0c Section 0 motor_rm.o(.text.MOTOR_RM_GetLogicalIndex) - [Anonymous Symbol] 0x0800bf8c Section 0 motor_rm.o(.text.MOTOR_RM_GetMotor) - MOTOR_RM_GetRatio 0x0800c005 Thumb Code 80 motor_rm.o(.text.MOTOR_RM_GetRatio) - [Anonymous Symbol] 0x0800c004 Section 0 motor_rm.o(.text.MOTOR_RM_GetRatio) - [Anonymous Symbol] 0x0800c054 Section 0 motor_rm.o(.text.MOTOR_RM_Register) - [Anonymous Symbol] 0x0800c174 Section 0 motor_rm.o(.text.MOTOR_RM_SetOutput) - [Anonymous Symbol] 0x0800c290 Section 0 motor_rm.o(.text.MOTOR_RM_Update) - [Anonymous Symbol] 0x0800c394 Section 0 can.o(.text.MX_CAN1_Init) - [Anonymous Symbol] 0x0800c3e4 Section 0 can.o(.text.MX_CAN2_Init) - [Anonymous Symbol] 0x0800c434 Section 0 dma.o(.text.MX_DMA_Init) - [Anonymous Symbol] 0x0800c4bc Section 0 freertos.o(.text.MX_FREERTOS_Init) - [Anonymous Symbol] 0x0800c4fc Section 0 gpio.o(.text.MX_GPIO_Init) - [Anonymous Symbol] 0x0800c728 Section 0 i2c.o(.text.MX_I2C1_Init) - [Anonymous Symbol] 0x0800c770 Section 0 i2c.o(.text.MX_I2C2_Init) - [Anonymous Symbol] 0x0800c7b8 Section 0 spi.o(.text.MX_SPI1_Init) - [Anonymous Symbol] 0x0800c80c Section 0 spi.o(.text.MX_SPI2_Init) - [Anonymous Symbol] 0x0800c860 Section 0 tim.o(.text.MX_TIM10_Init) - [Anonymous Symbol] 0x0800c8f0 Section 0 tim.o(.text.MX_TIM7_Init) - [Anonymous Symbol] 0x0800c948 Section 0 usart.o(.text.MX_USART1_UART_Init) - [Anonymous Symbol] 0x0800c988 Section 0 usart.o(.text.MX_USART3_UART_Init) - [Anonymous Symbol] 0x0800c9d4 Section 0 stm32f4xx_it.o(.text.MemManage_Handler) - Motor_RM_Decode 0x0800c9d9 Thumb Code 540 motor_rm.o(.text.Motor_RM_Decode) - [Anonymous Symbol] 0x0800c9d8 Section 0 motor_rm.o(.text.Motor_RM_Decode) - [Anonymous Symbol] 0x0800cbf4 Section 0 stm32f4xx_it.o(.text.NMI_Handler) - NVIC_EncodePriority 0x0800cbf9 Thumb Code 108 stm32f4xx_hal_cortex.o(.text.NVIC_EncodePriority) - [Anonymous Symbol] 0x0800cbf8 Section 0 stm32f4xx_hal_cortex.o(.text.NVIC_EncodePriority) - OutContinuation 0x0800cc65 Thumb Code 148 sliding.o(.text.OutContinuation) - [Anonymous Symbol] 0x0800cc64 Section 0 sliding.o(.text.OutContinuation) - [Anonymous Symbol] 0x0800ccf8 Section 0 pid.o(.text.PID_Calc) - [Anonymous Symbol] 0x0800cfe8 Section 0 pid.o(.text.PID_Init) - [Anonymous Symbol] 0x0800d180 Section 0 pid.o(.text.PID_Reset) - [Anonymous Symbol] 0x0800d1d0 Section 0 port.o(.text.PendSV_Handler) - pxCurrentTCBConst 0x0800d230 Number 0 port.o(.text.PendSV_Handler) - [Anonymous Symbol] 0x0800d234 Section 0 bsp_rc.o(.text.RC_Init) - [Anonymous Symbol] 0x0800d2c8 Section 0 bsp_rc.o(.text.RC_restart) - [Anonymous Symbol] 0x0800d324 Section 0 sliding.o(.text.SMC_Init) - [Anonymous Symbol] 0x0800d390 Section 0 sliding.o(.text.SMC_PErrorUpdate) - [Anonymous Symbol] 0x0800d42c Section 0 sliding.o(.text.SMC_Reset) - SMC_SetParam 0x0800d47d Thumb Code 78 sliding.o(.text.SMC_SetParam) - [Anonymous Symbol] 0x0800d47c Section 0 sliding.o(.text.SMC_SetParam) - SPI_DMAError 0x0800d4cd Thumb Code 52 stm32f4xx_hal_spi.o(.text.SPI_DMAError) - [Anonymous Symbol] 0x0800d4cc Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAError) - SPI_DMAHalfReceiveCplt 0x0800d501 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfReceiveCplt) - [Anonymous Symbol] 0x0800d500 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfReceiveCplt) - SPI_DMAHalfTransmitCplt 0x0800d519 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitCplt) - [Anonymous Symbol] 0x0800d518 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitCplt) - SPI_DMAHalfTransmitReceiveCplt 0x0800d531 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitReceiveCplt) - [Anonymous Symbol] 0x0800d530 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitReceiveCplt) - SPI_DMAReceiveCplt 0x0800d549 Thumb Code 162 stm32f4xx_hal_spi.o(.text.SPI_DMAReceiveCplt) - [Anonymous Symbol] 0x0800d548 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAReceiveCplt) - SPI_DMATransmitCplt 0x0800d5ed Thumb Code 166 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitCplt) - [Anonymous Symbol] 0x0800d5ec Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitCplt) - SPI_DMATransmitReceiveCplt 0x0800d695 Thumb Code 134 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitReceiveCplt) - [Anonymous Symbol] 0x0800d694 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitReceiveCplt) - SPI_EndRxTransaction 0x0800d71d Thumb Code 228 stm32f4xx_hal_spi.o(.text.SPI_EndRxTransaction) - [Anonymous Symbol] 0x0800d71c Section 0 stm32f4xx_hal_spi.o(.text.SPI_EndRxTransaction) - SPI_EndRxTxTransaction 0x0800d801 Thumb Code 204 stm32f4xx_hal_spi.o(.text.SPI_EndRxTxTransaction) - [Anonymous Symbol] 0x0800d800 Section 0 stm32f4xx_hal_spi.o(.text.SPI_EndRxTxTransaction) - SPI_Get 0x0800d8cd Thumb Code 46 spi_1.o(.text.SPI_Get) - [Anonymous Symbol] 0x0800d8cc Section 0 spi_1.o(.text.SPI_Get) - SPI_WaitFlagStateUntilTimeout 0x0800d8fd Thumb Code 300 stm32f4xx_hal_spi.o(.text.SPI_WaitFlagStateUntilTimeout) - [Anonymous Symbol] 0x0800d8fc Section 0 stm32f4xx_hal_spi.o(.text.SPI_WaitFlagStateUntilTimeout) - [Anonymous Symbol] 0x0800da30 Section 0 port.o(.text.SVC_Handler) - pxCurrentTCBConst2 0x0800da50 Number 0 port.o(.text.SVC_Handler) - SVC_Setup 0x0800da55 Thumb Code 14 cmsis_os2.o(.text.SVC_Setup) - [Anonymous Symbol] 0x0800da54 Section 0 cmsis_os2.o(.text.SVC_Setup) - Sat 0x0800da69 Thumb Code 136 sliding.o(.text.Sat) - [Anonymous Symbol] 0x0800da68 Section 0 sliding.o(.text.Sat) - Signal 0x0800daf1 Thumb Code 70 sliding.o(.text.Signal) - [Anonymous Symbol] 0x0800daf0 Section 0 sliding.o(.text.Signal) - [Anonymous Symbol] 0x0800db38 Section 0 sliding.o(.text.Smc_Calc) - [Anonymous Symbol] 0x0800e1d0 Section 0 freertos.o(.text.StartDefaultTask) - SysTick_Config 0x0800e1e5 Thumb Code 82 stm32f4xx_hal_cortex.o(.text.SysTick_Config) - [Anonymous Symbol] 0x0800e1e4 Section 0 stm32f4xx_hal_cortex.o(.text.SysTick_Config) - [Anonymous Symbol] 0x0800e238 Section 0 stm32f4xx_it.o(.text.SysTick_Handler) - [Anonymous Symbol] 0x0800e250 Section 0 main.o(.text.SystemClock_Config) - [Anonymous Symbol] 0x0800e30c Section 0 system_stm32f4xx.o(.text.SystemInit) - [Anonymous Symbol] 0x0800e320 Section 0 stm32f4xx_it.o(.text.TIM7_IRQHandler) - [Anonymous Symbol] 0x0800e330 Section 0 stm32f4xx_hal_tim.o(.text.TIM_Base_SetConfig) - [Anonymous Symbol] 0x0800e4d4 Section 0 stm32f4xx_hal_tim.o(.text.TIM_CCxChannelCmd) - TIM_OC1_SetConfig 0x0800e50d Thumb Code 234 stm32f4xx_hal_tim.o(.text.TIM_OC1_SetConfig) - [Anonymous Symbol] 0x0800e50c Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC1_SetConfig) - [Anonymous Symbol] 0x0800e5f8 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC2_SetConfig) - TIM_OC3_SetConfig 0x0800e6ed Thumb Code 242 stm32f4xx_hal_tim.o(.text.TIM_OC3_SetConfig) - [Anonymous Symbol] 0x0800e6ec Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC3_SetConfig) - TIM_OC4_SetConfig 0x0800e7e1 Thumb Code 164 stm32f4xx_hal_tim.o(.text.TIM_OC4_SetConfig) - [Anonymous Symbol] 0x0800e7e0 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC4_SetConfig) - [Anonymous Symbol] 0x0800e884 Section 0 init.o(.text.Task_Init) - [Anonymous Symbol] 0x0800e970 Section 0 atti_esti.o(.text.Task_atti_esti) - [Anonymous Symbol] 0x0800eb00 Section 0 gimbal_ctrl.o(.text.Task_gimbal_ctrl) - [Anonymous Symbol] 0x0800ec18 Section 0 remote.o(.text.Task_remote) - [Anonymous Symbol] 0x0800ecb8 Section 0 vofa_1.o(.text.Task_vofa) - UART_DMAAbortOnError 0x0800ed49 Thumb Code 28 stm32f4xx_hal_uart.o(.text.UART_DMAAbortOnError) - [Anonymous Symbol] 0x0800ed48 Section 0 stm32f4xx_hal_uart.o(.text.UART_DMAAbortOnError) - UART_DMAError 0x0800ed65 Thumb Code 124 stm32f4xx_hal_uart.o(.text.UART_DMAError) - [Anonymous Symbol] 0x0800ed64 Section 0 stm32f4xx_hal_uart.o(.text.UART_DMAError) - UART_DMATransmitCplt 0x0800ede1 Thumb Code 122 stm32f4xx_hal_uart.o(.text.UART_DMATransmitCplt) - [Anonymous Symbol] 0x0800ede0 Section 0 stm32f4xx_hal_uart.o(.text.UART_DMATransmitCplt) - UART_DMATxHalfCplt 0x0800ee5d Thumb Code 22 stm32f4xx_hal_uart.o(.text.UART_DMATxHalfCplt) - [Anonymous Symbol] 0x0800ee5c Section 0 stm32f4xx_hal_uart.o(.text.UART_DMATxHalfCplt) - UART_EndRxTransfer 0x0800ee75 Thumb Code 148 stm32f4xx_hal_uart.o(.text.UART_EndRxTransfer) - [Anonymous Symbol] 0x0800ee74 Section 0 stm32f4xx_hal_uart.o(.text.UART_EndRxTransfer) - UART_EndTransmit_IT 0x0800ef09 Thumb Code 38 stm32f4xx_hal_uart.o(.text.UART_EndTransmit_IT) - [Anonymous Symbol] 0x0800ef08 Section 0 stm32f4xx_hal_uart.o(.text.UART_EndTransmit_IT) - UART_EndTxTransfer 0x0800ef31 Thumb Code 54 stm32f4xx_hal_uart.o(.text.UART_EndTxTransfer) - [Anonymous Symbol] 0x0800ef30 Section 0 stm32f4xx_hal_uart.o(.text.UART_EndTxTransfer) - UART_Get 0x0800ef69 Thumb Code 72 uart.o(.text.UART_Get) - [Anonymous Symbol] 0x0800ef68 Section 0 uart.o(.text.UART_Get) - UART_Receive_IT 0x0800efb1 Thumb Code 360 stm32f4xx_hal_uart.o(.text.UART_Receive_IT) - [Anonymous Symbol] 0x0800efb0 Section 0 stm32f4xx_hal_uart.o(.text.UART_Receive_IT) - UART_SetConfig 0x0800f119 Thumb Code 314 stm32f4xx_hal_uart.o(.text.UART_SetConfig) - [Anonymous Symbol] 0x0800f118 Section 0 stm32f4xx_hal_uart.o(.text.UART_SetConfig) - UART_Transmit_IT 0x0800f255 Thumb Code 148 stm32f4xx_hal_uart.o(.text.UART_Transmit_IT) - [Anonymous Symbol] 0x0800f254 Section 0 stm32f4xx_hal_uart.o(.text.UART_Transmit_IT) - [Anonymous Symbol] 0x0800f2e8 Section 0 stm32f4xx_it.o(.text.USART1_IRQHandler) - [Anonymous Symbol] 0x0800f2f8 Section 0 stm32f4xx_it.o(.text.USART3_IRQHandler) - [Anonymous Symbol] 0x0800f318 Section 0 remote_control.o(.text.USART3_IRQHandler1) - [Anonymous Symbol] 0x0800f33c Section 0 stm32f4xx_it.o(.text.UsageFault_Handler) - [Anonymous Symbol] 0x0800f340 Section 0 vofa.o(.text.VOFA_JustFloat_Send) - __ARM_isfinite 0x0800f3a9 Thumb Code 30 filter.o(.text.__ARM_isfinite) - [Anonymous Symbol] 0x0800f3a8 Section 0 filter.o(.text.__ARM_isfinite) - __ARM_isfinite 0x0800f3c9 Thumb Code 30 pid.o(.text.__ARM_isfinite) - [Anonymous Symbol] 0x0800f3c8 Section 0 pid.o(.text.__ARM_isfinite) - __ARM_isfinitef 0x0800f3e9 Thumb Code 24 filter.o(.text.__ARM_isfinitef) - [Anonymous Symbol] 0x0800f3e8 Section 0 filter.o(.text.__ARM_isfinitef) - __ARM_isfinitef 0x0800f401 Thumb Code 24 pid.o(.text.__ARM_isfinitef) - [Anonymous Symbol] 0x0800f400 Section 0 pid.o(.text.__ARM_isfinitef) - __ARM_isinf 0x0800f419 Thumb Code 52 filter.o(.text.__ARM_isinf) - [Anonymous Symbol] 0x0800f418 Section 0 filter.o(.text.__ARM_isinf) - __ARM_isinff 0x0800f44d Thumb Code 28 filter.o(.text.__ARM_isinff) - [Anonymous Symbol] 0x0800f44c Section 0 filter.o(.text.__ARM_isinff) - __NVIC_DisableIRQ 0x0800f469 Thumb Code 56 stm32f4xx_hal_cortex.o(.text.__NVIC_DisableIRQ) - [Anonymous Symbol] 0x0800f468 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_DisableIRQ) - __NVIC_EnableIRQ 0x0800f4a1 Thumb Code 48 stm32f4xx_hal_cortex.o(.text.__NVIC_EnableIRQ) - [Anonymous Symbol] 0x0800f4a0 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_EnableIRQ) - __NVIC_GetPriorityGrouping 0x0800f4d1 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) - [Anonymous Symbol] 0x0800f4d0 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) - __NVIC_SetPriority 0x0800f4e1 Thumb Code 66 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriority) - [Anonymous Symbol] 0x0800f4e0 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriority) - __NVIC_SetPriority 0x0800f525 Thumb Code 66 cmsis_os2.o(.text.__NVIC_SetPriority) - [Anonymous Symbol] 0x0800f524 Section 0 cmsis_os2.o(.text.__NVIC_SetPriority) - __NVIC_SetPriorityGrouping 0x0800f569 Thumb Code 60 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) - [Anonymous Symbol] 0x0800f568 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) - [Anonymous Symbol] 0x0800f5a4 Section 0 freertos.o(.text.configureTimerForRunTimeStats) - copysignf 0x0800f5a9 Thumb Code 30 ahrs.o(.text.copysignf) - [Anonymous Symbol] 0x0800f5a8 Section 0 ahrs.o(.text.copysignf) - [Anonymous Symbol] 0x0800f5c8 Section 0 bsp_delay.o(.text.delay_init) - [Anonymous Symbol] 0x0800f608 Section 0 tasks.o(.text.eTaskGetState) - float_to_uint 0x0800f701 Thumb Code 88 motor_dm.o(.text.float_to_uint) - [Anonymous Symbol] 0x0800f700 Section 0 motor_dm.o(.text.float_to_uint) - [Anonymous Symbol] 0x0800f758 Section 0 freertos.o(.text.getRunTimeCounterValue) - [Anonymous Symbol] 0x0800f75c Section 0 main.o(.text.main) - [Anonymous Symbol] 0x0800f7ac Section 0 calc_lib.o(.text.map) - motor_imu_offset 0x0800f7d9 Thumb Code 128 gimbal.o(.text.motor_imu_offset) - [Anonymous Symbol] 0x0800f7d8 Section 0 gimbal.o(.text.motor_imu_offset) - [Anonymous Symbol] 0x0800f858 Section 0 cmsis_os2.o(.text.osDelay) - [Anonymous Symbol] 0x0800f88c Section 0 cmsis_os2.o(.text.osDelayUntil) - [Anonymous Symbol] 0x0800f8e4 Section 0 cmsis_os2.o(.text.osKernelGetState) - [Anonymous Symbol] 0x0800f938 Section 0 cmsis_os2.o(.text.osKernelGetTickCount) - [Anonymous Symbol] 0x0800f960 Section 0 cmsis_os2.o(.text.osKernelGetTickFreq) - [Anonymous Symbol] 0x0800f968 Section 0 cmsis_os2.o(.text.osKernelInitialize) - [Anonymous Symbol] 0x0800f9b0 Section 0 cmsis_os2.o(.text.osKernelLock) - [Anonymous Symbol] 0x0800fa08 Section 0 cmsis_os2.o(.text.osKernelStart) - [Anonymous Symbol] 0x0800fa5c Section 0 cmsis_os2.o(.text.osKernelUnlock) - [Anonymous Symbol] 0x0800facc Section 0 cmsis_os2.o(.text.osMessageQueueGet) - [Anonymous Symbol] 0x0800fb8c Section 0 cmsis_os2.o(.text.osMessageQueueNew) - [Anonymous Symbol] 0x0800fc8c Section 0 cmsis_os2.o(.text.osMessageQueuePut) - [Anonymous Symbol] 0x0800fd50 Section 0 cmsis_os2.o(.text.osMessageQueueReset) - [Anonymous Symbol] 0x0800fd90 Section 0 cmsis_os2.o(.text.osMutexAcquire) - [Anonymous Symbol] 0x0800fe30 Section 0 cmsis_os2.o(.text.osMutexNew) - [Anonymous Symbol] 0x0800ff58 Section 0 cmsis_os2.o(.text.osMutexRelease) - [Anonymous Symbol] 0x0800ffd8 Section 0 cmsis_os2.o(.text.osThreadFlagsSet) - [Anonymous Symbol] 0x0801007c Section 0 cmsis_os2.o(.text.osThreadFlagsWait) - [Anonymous Symbol] 0x08010198 Section 0 cmsis_os2.o(.text.osThreadGetId) - [Anonymous Symbol] 0x080101a8 Section 0 cmsis_os2.o(.text.osThreadNew) - [Anonymous Symbol] 0x08010304 Section 0 cmsis_os2.o(.text.osThreadTerminate) - prvAddCurrentTaskToDelayedList 0x08010365 Thumb Code 212 tasks.o(.text.prvAddCurrentTaskToDelayedList) - [Anonymous Symbol] 0x08010364 Section 0 tasks.o(.text.prvAddCurrentTaskToDelayedList) - prvAddNewTaskToReadyList 0x08010439 Thumb Code 290 tasks.o(.text.prvAddNewTaskToReadyList) - [Anonymous Symbol] 0x08010438 Section 0 tasks.o(.text.prvAddNewTaskToReadyList) - prvCheckForValidListAndQueue 0x0801055d Thumb Code 162 timers.o(.text.prvCheckForValidListAndQueue) - [Anonymous Symbol] 0x0801055c Section 0 timers.o(.text.prvCheckForValidListAndQueue) - prvCheckTasksWaitingTermination 0x08010601 Thumb Code 90 tasks.o(.text.prvCheckTasksWaitingTermination) - [Anonymous Symbol] 0x08010600 Section 0 tasks.o(.text.prvCheckTasksWaitingTermination) - prvCopyDataFromQueue 0x0801065d Thumb Code 66 queue.o(.text.prvCopyDataFromQueue) - [Anonymous Symbol] 0x0801065c Section 0 queue.o(.text.prvCopyDataFromQueue) - prvCopyDataToQueue 0x080106a1 Thumb Code 204 queue.o(.text.prvCopyDataToQueue) - [Anonymous Symbol] 0x080106a0 Section 0 queue.o(.text.prvCopyDataToQueue) - prvDeleteTCB 0x0801076d Thumb Code 94 tasks.o(.text.prvDeleteTCB) - [Anonymous Symbol] 0x0801076c Section 0 tasks.o(.text.prvDeleteTCB) - prvGetDisinheritPriorityAfterTimeout 0x080107cd Thumb Code 38 queue.o(.text.prvGetDisinheritPriorityAfterTimeout) - [Anonymous Symbol] 0x080107cc Section 0 queue.o(.text.prvGetDisinheritPriorityAfterTimeout) - prvGetNextExpireTime 0x080107f5 Thumb Code 64 timers.o(.text.prvGetNextExpireTime) - [Anonymous Symbol] 0x080107f4 Section 0 timers.o(.text.prvGetNextExpireTime) - prvHeapInit 0x08010835 Thumb Code 188 heap_4.o(.text.prvHeapInit) - [Anonymous Symbol] 0x08010834 Section 0 heap_4.o(.text.prvHeapInit) - prvIdleTask 0x080108f1 Thumb Code 56 tasks.o(.text.prvIdleTask) - [Anonymous Symbol] 0x080108f0 Section 0 tasks.o(.text.prvIdleTask) - prvInitialiseMutex 0x08010929 Thumb Code 44 queue.o(.text.prvInitialiseMutex) - [Anonymous Symbol] 0x08010928 Section 0 queue.o(.text.prvInitialiseMutex) - prvInitialiseNewQueue 0x08010955 Thumb Code 72 queue.o(.text.prvInitialiseNewQueue) - [Anonymous Symbol] 0x08010954 Section 0 queue.o(.text.prvInitialiseNewQueue) - prvInitialiseNewTask 0x0801099d Thumb Code 300 tasks.o(.text.prvInitialiseNewTask) - [Anonymous Symbol] 0x0801099c Section 0 tasks.o(.text.prvInitialiseNewTask) - prvInitialiseTaskLists 0x08010ac9 Thumb Code 142 tasks.o(.text.prvInitialiseTaskLists) - [Anonymous Symbol] 0x08010ac8 Section 0 tasks.o(.text.prvInitialiseTaskLists) - prvInsertBlockIntoFreeList 0x08010b59 Thumb Code 198 heap_4.o(.text.prvInsertBlockIntoFreeList) - [Anonymous Symbol] 0x08010b58 Section 0 heap_4.o(.text.prvInsertBlockIntoFreeList) - prvInsertTimerInActiveList 0x08010c21 Thumb Code 134 timers.o(.text.prvInsertTimerInActiveList) - [Anonymous Symbol] 0x08010c20 Section 0 timers.o(.text.prvInsertTimerInActiveList) - prvIsQueueEmpty 0x08010ca9 Thumb Code 40 queue.o(.text.prvIsQueueEmpty) - [Anonymous Symbol] 0x08010ca8 Section 0 queue.o(.text.prvIsQueueEmpty) - prvIsQueueFull 0x08010cd1 Thumb Code 46 queue.o(.text.prvIsQueueFull) - [Anonymous Symbol] 0x08010cd0 Section 0 queue.o(.text.prvIsQueueFull) - prvPortStartFirstTask 0x08010d01 Thumb Code 34 port.o(.text.prvPortStartFirstTask) - [Anonymous Symbol] 0x08010d00 Section 0 port.o(.text.prvPortStartFirstTask) - prvProcessExpiredTimer 0x08010d29 Thumb Code 142 timers.o(.text.prvProcessExpiredTimer) - [Anonymous Symbol] 0x08010d28 Section 0 timers.o(.text.prvProcessExpiredTimer) - prvProcessReceivedCommands 0x08010db9 Thumb Code 402 timers.o(.text.prvProcessReceivedCommands) - [Anonymous Symbol] 0x08010db8 Section 0 timers.o(.text.prvProcessReceivedCommands) - prvProcessTimerOrBlockTask 0x08010f4d Thumb Code 154 timers.o(.text.prvProcessTimerOrBlockTask) - [Anonymous Symbol] 0x08010f4c Section 0 timers.o(.text.prvProcessTimerOrBlockTask) - prvResetNextTaskUnblockTime 0x08010fe9 Thumb Code 70 tasks.o(.text.prvResetNextTaskUnblockTime) - [Anonymous Symbol] 0x08010fe8 Section 0 tasks.o(.text.prvResetNextTaskUnblockTime) - prvSampleTimeNow 0x08011031 Thumb Code 68 timers.o(.text.prvSampleTimeNow) - [Anonymous Symbol] 0x08011030 Section 0 timers.o(.text.prvSampleTimeNow) - prvSwitchTimerLists 0x08011075 Thumb Code 212 timers.o(.text.prvSwitchTimerLists) - [Anonymous Symbol] 0x08011074 Section 0 timers.o(.text.prvSwitchTimerLists) - prvTaskExitError 0x08011149 Thumb Code 76 port.o(.text.prvTaskExitError) - [Anonymous Symbol] 0x08011148 Section 0 port.o(.text.prvTaskExitError) - prvTimerTask 0x08011195 Thumb Code 30 timers.o(.text.prvTimerTask) - [Anonymous Symbol] 0x08011194 Section 0 timers.o(.text.prvTimerTask) - prvUnlockQueue 0x080111b5 Thumb Code 174 queue.o(.text.prvUnlockQueue) - [Anonymous Symbol] 0x080111b4 Section 0 queue.o(.text.prvUnlockQueue) - [Anonymous Symbol] 0x08011264 Section 0 heap_4.o(.text.pvPortMalloc) - [Anonymous Symbol] 0x08011450 Section 0 tasks.o(.text.pvTaskIncrementMutexHeldCount) - [Anonymous Symbol] 0x0801147c Section 0 port.o(.text.pxPortInitialiseStack) - [Anonymous Symbol] 0x080114dc Section 0 ai.o(.text.remote_ParseHost) - [Anonymous Symbol] 0x08011520 Section 0 remote_control.o(.text.remote_control_init) - sbus_to_rc 0x08011539 Thumb Code 656 remote_control.o(.text.sbus_to_rc) - [Anonymous Symbol] 0x08011538 Section 0 remote_control.o(.text.sbus_to_rc) - uint_to_float 0x080117c9 Thumb Code 82 motor_dm.o(.text.uint_to_float) - [Anonymous Symbol] 0x080117c8 Section 0 motor_dm.o(.text.uint_to_float) - [Anonymous Symbol] 0x0801181c Section 0 calc_lib.o(.text.user_delay_ms) - [Anonymous Symbol] 0x0801184c Section 0 calc_lib.o(.text.user_delay_us) - [Anonymous Symbol] 0x08011890 Section 0 list.o(.text.uxListRemove) - [Anonymous Symbol] 0x080118d8 Section 0 cmsis_os2.o(.text.vApplicationGetIdleTaskMemory) - [Anonymous Symbol] 0x08011904 Section 0 cmsis_os2.o(.text.vApplicationGetTimerTaskMemory) - [Anonymous Symbol] 0x08011930 Section 0 freertos.o(.text.vApplicationStackOverflowHook) - [Anonymous Symbol] 0x0801193c Section 0 list.o(.text.vListInitialise) - [Anonymous Symbol] 0x0801196c Section 0 list.o(.text.vListInitialiseItem) - [Anonymous Symbol] 0x0801197c Section 0 list.o(.text.vListInsert) - [Anonymous Symbol] 0x080119e8 Section 0 list.o(.text.vListInsertEnd) - vPortEnableVFP 0x08011a25 Thumb Code 14 port.o(.text.vPortEnableVFP) - [Anonymous Symbol] 0x08011a24 Section 0 port.o(.text.vPortEnableVFP) - [Anonymous Symbol] 0x08011a38 Section 0 port.o(.text.vPortEnterCritical) - [Anonymous Symbol] 0x08011a90 Section 0 port.o(.text.vPortExitCritical) - [Anonymous Symbol] 0x08011adc Section 0 heap_4.o(.text.vPortFree) - [Anonymous Symbol] 0x08011bac Section 0 port.o(.text.vPortSetupTimerInterrupt) - [Anonymous Symbol] 0x08011bf0 Section 0 port.o(.text.vPortValidateInterruptPriority) - [Anonymous Symbol] 0x08011c74 Section 0 queue.o(.text.vQueueAddToRegistry) - [Anonymous Symbol] 0x08011cc8 Section 0 queue.o(.text.vQueueWaitForMessageRestricted) - [Anonymous Symbol] 0x08011d2c Section 0 tasks.o(.text.vTaskDelay) - [Anonymous Symbol] 0x08011d9c Section 0 tasks.o(.text.vTaskDelayUntil) - [Anonymous Symbol] 0x08011eb0 Section 0 tasks.o(.text.vTaskDelete) - [Anonymous Symbol] 0x08011fc0 Section 0 tasks.o(.text.vTaskInternalSetTimeOutState) - [Anonymous Symbol] 0x08011fe4 Section 0 tasks.o(.text.vTaskMissedYield) - [Anonymous Symbol] 0x08011ff4 Section 0 tasks.o(.text.vTaskPlaceOnEventList) - [Anonymous Symbol] 0x08012038 Section 0 tasks.o(.text.vTaskPlaceOnEventListRestricted) - [Anonymous Symbol] 0x0801208c Section 0 tasks.o(.text.vTaskPriorityDisinheritAfterTimeout) - [Anonymous Symbol] 0x080121c0 Section 0 tasks.o(.text.vTaskStartScheduler) - [Anonymous Symbol] 0x080122a4 Section 0 tasks.o(.text.vTaskSuspendAll) - [Anonymous Symbol] 0x080122b4 Section 0 tasks.o(.text.vTaskSwitchContext) - [Anonymous Symbol] 0x08012434 Section 0 port.o(.text.xPortStartScheduler) - [Anonymous Symbol] 0x0801258c Section 0 port.o(.text.xPortSysTickHandler) - [Anonymous Symbol] 0x080125c8 Section 0 queue.o(.text.xQueueCreateMutex) - [Anonymous Symbol] 0x080125f0 Section 0 queue.o(.text.xQueueCreateMutexStatic) - [Anonymous Symbol] 0x08012624 Section 0 queue.o(.text.xQueueGenericCreate) - [Anonymous Symbol] 0x08012698 Section 0 queue.o(.text.xQueueGenericCreateStatic) - [Anonymous Symbol] 0x080127a8 Section 0 queue.o(.text.xQueueGenericReset) - [Anonymous Symbol] 0x08012864 Section 0 queue.o(.text.xQueueGenericSend) - [Anonymous Symbol] 0x08012a90 Section 0 queue.o(.text.xQueueGenericSendFromISR) - [Anonymous Symbol] 0x08012bdc Section 0 queue.o(.text.xQueueGiveMutexRecursive) - [Anonymous Symbol] 0x08012c48 Section 0 queue.o(.text.xQueueReceive) - [Anonymous Symbol] 0x08012e24 Section 0 queue.o(.text.xQueueReceiveFromISR) - [Anonymous Symbol] 0x08012f2c Section 0 queue.o(.text.xQueueSemaphoreTake) - [Anonymous Symbol] 0x08013158 Section 0 queue.o(.text.xQueueTakeMutexRecursive) - [Anonymous Symbol] 0x080131c8 Section 0 tasks.o(.text.xTaskCheckForTimeOut) - [Anonymous Symbol] 0x08013294 Section 0 tasks.o(.text.xTaskCreate) - [Anonymous Symbol] 0x08013334 Section 0 tasks.o(.text.xTaskCreateStatic) - [Anonymous Symbol] 0x08013404 Section 0 tasks.o(.text.xTaskGenericNotify) - [Anonymous Symbol] 0x0801357c Section 0 tasks.o(.text.xTaskGenericNotifyFromISR) - [Anonymous Symbol] 0x08013740 Section 0 tasks.o(.text.xTaskGetCurrentTaskHandle) - [Anonymous Symbol] 0x08013754 Section 0 tasks.o(.text.xTaskGetSchedulerState) - [Anonymous Symbol] 0x0801378c Section 0 tasks.o(.text.xTaskGetTickCount) - [Anonymous Symbol] 0x080137a0 Section 0 tasks.o(.text.xTaskGetTickCountFromISR) - [Anonymous Symbol] 0x080137c0 Section 0 tasks.o(.text.xTaskIncrementTick) - [Anonymous Symbol] 0x08013984 Section 0 tasks.o(.text.xTaskNotifyWait) - [Anonymous Symbol] 0x08013a5c Section 0 tasks.o(.text.xTaskPriorityDisinherit) - [Anonymous Symbol] 0x08013b48 Section 0 tasks.o(.text.xTaskPriorityInherit) - [Anonymous Symbol] 0x08013c58 Section 0 tasks.o(.text.xTaskRemoveFromEventList) - [Anonymous Symbol] 0x08013d28 Section 0 tasks.o(.text.xTaskResumeAll) - [Anonymous Symbol] 0x08013eb0 Section 0 timers.o(.text.xTimerCreateTimerTask) - [Anonymous Symbol] 0x08013f44 Section 0 timers.o(.text.xTimerGenericCommand) - i.__ARM_fpclassify 0x08013ff4 Section 0 fpclassify.o(i.__ARM_fpclassify) - i.__ARM_fpclassifyf 0x08014024 Section 0 fpclassifyf.o(i.__ARM_fpclassifyf) - i.__hardfp_asinf 0x0801404c Section 0 asinf.o(i.__hardfp_asinf) - i.__hardfp_atan 0x08014178 Section 0 atan.o(i.__hardfp_atan) - i.__hardfp_atan2 0x08014450 Section 0 atan2.o(i.__hardfp_atan2) - i.__hardfp_atan2f 0x08014650 Section 0 atan2f.o(i.__hardfp_atan2f) - i.__hardfp_cosf 0x080148fc Section 0 cosf.o(i.__hardfp_cosf) - i.__hardfp_pow 0x08014a50 Section 0 pow.o(i.__hardfp_pow) - i.__hardfp_tanf 0x080156b0 Section 0 tanf.o(i.__hardfp_tanf) - i.__kernel_poly 0x0801582c Section 0 poly.o(i.__kernel_poly) - i.__mathlib_dbl_divzero 0x08015928 Section 0 dunder.o(i.__mathlib_dbl_divzero) - i.__mathlib_dbl_infnan 0x08015958 Section 0 dunder.o(i.__mathlib_dbl_infnan) - i.__mathlib_dbl_infnan2 0x0801596c Section 0 dunder.o(i.__mathlib_dbl_infnan2) - i.__mathlib_dbl_invalid 0x08015980 Section 0 dunder.o(i.__mathlib_dbl_invalid) - i.__mathlib_dbl_overflow 0x080159a0 Section 0 dunder.o(i.__mathlib_dbl_overflow) - i.__mathlib_dbl_underflow 0x080159c0 Section 0 dunder.o(i.__mathlib_dbl_underflow) - i.__mathlib_flt_infnan 0x080159e0 Section 0 funder.o(i.__mathlib_flt_infnan) - i.__mathlib_flt_infnan2 0x080159e6 Section 0 funder.o(i.__mathlib_flt_infnan2) - i.__mathlib_flt_invalid 0x080159ec Section 0 funder.o(i.__mathlib_flt_invalid) - i.__mathlib_flt_underflow 0x080159fc Section 0 funder.o(i.__mathlib_flt_underflow) - i.__mathlib_rredf2 0x08015a0c Section 0 rredf.o(i.__mathlib_rredf2) - i.atan 0x08015b60 Section 0 atan.o(i.atan) - i.fabs 0x08015b70 Section 0 fabs.o(i.fabs) - i.sqrt 0x08015b88 Section 0 sqrt.o(i.sqrt) - i.sqrtf 0x08015bf6 Section 0 sqrtf.o(i.sqrtf) - $v0 0x08015c34 Number 0 basic.o(x$fpl$basic) - x$fpl$basic 0x08015c34 Section 24 basic.o(x$fpl$basic) - $v0 0x08015c4c Number 0 d2f.o(x$fpl$d2f) - x$fpl$d2f 0x08015c4c Section 98 d2f.o(x$fpl$d2f) - $v0 0x08015cb0 Number 0 daddsub_clz.o(x$fpl$dadd) - x$fpl$dadd 0x08015cb0 Section 336 daddsub_clz.o(x$fpl$dadd) - _dadd1 0x08015cc1 Thumb Code 0 daddsub_clz.o(x$fpl$dadd) - $v0 0x08015e00 Number 0 dcheck1.o(x$fpl$dcheck1) - x$fpl$dcheck1 0x08015e00 Section 16 dcheck1.o(x$fpl$dcheck1) - $v0 0x08015e10 Number 0 dcmpi.o(x$fpl$dcmpinf) - x$fpl$dcmpinf 0x08015e10 Section 24 dcmpi.o(x$fpl$dcmpinf) - $v0 0x08015e28 Number 0 ddiv.o(x$fpl$ddiv) - x$fpl$ddiv 0x08015e28 Section 692 ddiv.o(x$fpl$ddiv) - ddiv_entry 0x08015e2f Thumb Code 0 ddiv.o(x$fpl$ddiv) - $v0 0x080160dc Number 0 deqf.o(x$fpl$deqf) - x$fpl$deqf 0x080160dc Section 120 deqf.o(x$fpl$deqf) - $v0 0x08016154 Number 0 dfix.o(x$fpl$dfix) - x$fpl$dfix 0x08016154 Section 94 dfix.o(x$fpl$dfix) - $v0 0x080161b4 Number 0 dfixu.o(x$fpl$dfixu) - x$fpl$dfixu 0x080161b4 Section 90 dfixu.o(x$fpl$dfixu) - $v0 0x0801620e Number 0 dflt_clz.o(x$fpl$dflt) - x$fpl$dflt 0x0801620e Section 46 dflt_clz.o(x$fpl$dflt) - $v0 0x0801623c Number 0 dflt_clz.o(x$fpl$dfltu) - x$fpl$dfltu 0x0801623c Section 38 dflt_clz.o(x$fpl$dfltu) - $v0 0x08016264 Number 0 dgeqf.o(x$fpl$dgeqf) - x$fpl$dgeqf 0x08016264 Section 120 dgeqf.o(x$fpl$dgeqf) - $v0 0x080162dc Number 0 dleqf.o(x$fpl$dleqf) - x$fpl$dleqf 0x080162dc Section 120 dleqf.o(x$fpl$dleqf) - $v0 0x08016354 Number 0 dmul.o(x$fpl$dmul) - x$fpl$dmul 0x08016354 Section 340 dmul.o(x$fpl$dmul) - $v0 0x080164a8 Number 0 dnaninf.o(x$fpl$dnaninf) - x$fpl$dnaninf 0x080164a8 Section 156 dnaninf.o(x$fpl$dnaninf) - $v0 0x08016544 Number 0 dretinf.o(x$fpl$dretinf) - x$fpl$dretinf 0x08016544 Section 12 dretinf.o(x$fpl$dretinf) - $v0 0x08016550 Number 0 drleqf.o(x$fpl$drleqf) - x$fpl$drleqf 0x08016550 Section 108 drleqf.o(x$fpl$drleqf) - $v0 0x080165bc Number 0 daddsub_clz.o(x$fpl$drsb) - x$fpl$drsb 0x080165bc Section 22 daddsub_clz.o(x$fpl$drsb) - $v0 0x080165d4 Number 0 dsqrt_umaal.o(x$fpl$dsqrt) - x$fpl$dsqrt 0x080165d4 Section 408 dsqrt_umaal.o(x$fpl$dsqrt) - $v0 0x0801676c Number 0 daddsub_clz.o(x$fpl$dsub) - x$fpl$dsub 0x0801676c Section 476 daddsub_clz.o(x$fpl$dsub) - _dsub1 0x0801677d Thumb Code 0 daddsub_clz.o(x$fpl$dsub) - $v0 0x08016948 Number 0 f2d.o(x$fpl$f2d) - x$fpl$f2d 0x08016948 Section 86 f2d.o(x$fpl$f2d) - $v0 0x0801699e Number 0 dcmp.o(x$fpl$fcmp) - x$fpl$fcmp 0x0801699e Section 84 dcmp.o(x$fpl$fcmp) - $v0 0x080169f2 Number 0 ffltll_clz.o(x$fpl$ffltll) - x$fpl$ffltll 0x080169f2 Section 96 ffltll_clz.o(x$fpl$ffltll) - $v0 0x08016a52 Number 0 fnaninf.o(x$fpl$fnaninf) - x$fpl$fnaninf 0x08016a52 Section 140 fnaninf.o(x$fpl$fnaninf) - $v0 0x08016ade Number 0 fpinit.o(x$fpl$fpinit) - x$fpl$fpinit 0x08016ade Section 26 fpinit.o(x$fpl$fpinit) - $v0 0x08016af8 Number 0 fretinf.o(x$fpl$fretinf) - x$fpl$fretinf 0x08016af8 Section 10 fretinf.o(x$fpl$fretinf) - $v0 0x08016b02 Number 0 retnan.o(x$fpl$retnan) - x$fpl$retnan 0x08016b02 Section 100 retnan.o(x$fpl$retnan) - $v0 0x08016b66 Number 0 scalbn.o(x$fpl$scalbn) - x$fpl$scalbn 0x08016b66 Section 92 scalbn.o(x$fpl$scalbn) - $v0 0x08016bc2 Number 0 trapv.o(x$fpl$trapveneer) - x$fpl$trapveneer 0x08016bc2 Section 48 trapv.o(x$fpl$trapveneer) - x$fpl$usenofp 0x08016bf2 Section 0 usenofp.o(x$fpl$usenofp) - bp 0x08016bf8 Data 16 pow.o(.constdata) - .constdata 0x08016bf8 Section 136 pow.o(.constdata) - dp_h 0x08016c08 Data 16 pow.o(.constdata) - dp_l 0x08016c18 Data 16 pow.o(.constdata) - L 0x08016c28 Data 48 pow.o(.constdata) - P 0x08016c58 Data 40 pow.o(.constdata) - atanhi 0x08016c80 Data 32 atan.o(.constdata) - .constdata 0x08016c80 Section 152 atan.o(.constdata) - atanlo 0x08016ca0 Data 32 atan.o(.constdata) - aTodd 0x08016cc0 Data 40 atan.o(.constdata) - aTeven 0x08016ce8 Data 48 atan.o(.constdata) - .constdata 0x08016d18 Section 8 qnan.o(.constdata) - twooverpi 0x08016d20 Data 32 rredf.o(.constdata) - .constdata 0x08016d20 Section 32 rredf.o(.constdata) - DMA_CalcBaseAndBitshift.flagBitshiftOffset 0x08016d58 Data 8 stm32f4xx_hal_dma.o(.rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset) - [Anonymous Symbol] 0x08016d58 Section 0 stm32f4xx_hal_dma.o(.rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset) - GPIO_Map 0x08016d60 Data 56 gpio_1.o(.rodata.GPIO_Map) - [Anonymous Symbol] 0x08016d60 Section 0 gpio_1.o(.rodata.GPIO_Map) - PWM_Map 0x08016d98 Data 8 pwm.o(.rodata.PWM_Map) - [Anonymous Symbol] 0x08016d98 Section 0 pwm.o(.rodata.PWM_Map) - imu_temp_ctrl_pid_param 0x08016e78 Data 32 atti_esti.o(.rodata.imu_temp_ctrl_pid_param) - [Anonymous Symbol] 0x08016e78 Section 0 atti_esti.o(.rodata.imu_temp_ctrl_pid_param) - [Anonymous Symbol] 0x08016e98 Section 0 freertos.o(.rodata.str1.1) - .L.str 0x08016ea4 Data 5 tasks.o(.rodata.str1.1) - [Anonymous Symbol] 0x08016ea4 Section 0 tasks.o(.rodata.str1.1) - .L.str.1 0x08016ea9 Data 15 tasks.o(.rodata.str1.1) - .L.str.1 0x08016ea9 Data 5 timers.o(.rodata.str1.1) - [Anonymous Symbol] 0x08016ea9 Section 0 timers.o(.rodata.str1.1) - .L.str 0x08016eae Data 8 timers.o(.rodata.str1.1) - [Anonymous Symbol] 0x08016eb6 Section 0 user_task.o(.rodata.str1.1) - .L.str.2 0x08016eb8 Data 12 tasks.o(.rodata.str1.1) - .L.str.3 0x08016ec4 Data 12 tasks.o(.rodata.str1.1) + __arm_cp.3_4 0x08003c88 Number 4 gimbal.o(.text.Gimbal_Control) + [Anonymous Symbol] 0x08003d54 Section 0 gimbal.o(.text.Gimbal_Init) + [Anonymous Symbol] 0x08003e78 Section 0 gimbal.o(.text.Gimbal_Output) + Gimbal_SetMode 0x08003f8d Thumb Code 148 gimbal.o(.text.Gimbal_SetMode) + [Anonymous Symbol] 0x08003f8c Section 0 gimbal.o(.text.Gimbal_SetMode) + [Anonymous Symbol] 0x08004020 Section 0 gimbal.o(.text.Gimbal_UpdateFeedback) + [Anonymous Symbol] 0x08004230 Section 0 gimbal.o(.text.Gimbal_UpdateIMU) + [Anonymous Symbol] 0x0800427c Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_ActivateNotification) + [Anonymous Symbol] 0x080042d0 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_AddTxMessage) + [Anonymous Symbol] 0x08004428 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_ConfigFilter) + [Anonymous Symbol] 0x080045c8 Section 0 can_1.o(.text.HAL_CAN_ErrorCallback) + [Anonymous Symbol] 0x08004618 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxFifoFillLevel) + [Anonymous Symbol] 0x0800466c Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxMessage) + [Anonymous Symbol] 0x08004880 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetTxMailboxesFreeLevel) + [Anonymous Symbol] 0x080048f0 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_IRQHandler) + [Anonymous Symbol] 0x08004ce4 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_Init) + [Anonymous Symbol] 0x08004ec4 Section 0 can.o(.text.HAL_CAN_MspInit) + [Anonymous Symbol] 0x08005094 Section 0 can_1.o(.text.HAL_CAN_RxFifo0FullCallback) + [Anonymous Symbol] 0x080050e4 Section 0 can_1.o(.text.HAL_CAN_RxFifo0MsgPendingCallback) + [Anonymous Symbol] 0x08005134 Section 0 can_1.o(.text.HAL_CAN_RxFifo1FullCallback) + [Anonymous Symbol] 0x08005184 Section 0 can_1.o(.text.HAL_CAN_RxFifo1MsgPendingCallback) + [Anonymous Symbol] 0x080051d4 Section 0 can_1.o(.text.HAL_CAN_SleepCallback) + [Anonymous Symbol] 0x08005224 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_Start) + [Anonymous Symbol] 0x080052b0 Section 0 can_1.o(.text.HAL_CAN_TxMailbox0AbortCallback) + [Anonymous Symbol] 0x08005300 Section 0 can_1.o(.text.HAL_CAN_TxMailbox0CompleteCallback) + [Anonymous Symbol] 0x0800534c Section 0 can_1.o(.text.HAL_CAN_TxMailbox1AbortCallback) + [Anonymous Symbol] 0x0800539c Section 0 can_1.o(.text.HAL_CAN_TxMailbox1CompleteCallback) + [Anonymous Symbol] 0x080053ec Section 0 can_1.o(.text.HAL_CAN_TxMailbox2AbortCallback) + [Anonymous Symbol] 0x0800543c Section 0 can_1.o(.text.HAL_CAN_TxMailbox2CompleteCallback) + [Anonymous Symbol] 0x0800548c Section 0 can_1.o(.text.HAL_CAN_WakeUpFromRxMsgCallback) + [Anonymous Symbol] 0x080054dc Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort) + [Anonymous Symbol] 0x080055c8 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort_IT) + [Anonymous Symbol] 0x0800560c Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_GetState) + [Anonymous Symbol] 0x0800561c Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_IRQHandler) + [Anonymous Symbol] 0x0800593c Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Init) + [Anonymous Symbol] 0x08005aac Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Start_IT) + [Anonymous Symbol] 0x08005b70 Section 0 stm32f4xx_hal.o(.text.HAL_Delay) + [Anonymous Symbol] 0x08005bb4 Section 0 gpio_1.o(.text.HAL_GPIO_EXTI_Callback) + [Anonymous Symbol] 0x08005c1c Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_EXTI_IRQHandler) + [Anonymous Symbol] 0x08005c54 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_Init) + [Anonymous Symbol] 0x0800600c Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_ReadPin) + [Anonymous Symbol] 0x0800603c Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_WritePin) + [Anonymous Symbol] 0x0800606c Section 0 stm32f4xx_hal.o(.text.HAL_GetTick) + [Anonymous Symbol] 0x08006078 Section 0 i2c_1.o(.text.HAL_I2C_AbortCpltCallback) + [Anonymous Symbol] 0x080060cc Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_AddrCallback) + [Anonymous Symbol] 0x080060dc Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_ER_IRQHandler) + [Anonymous Symbol] 0x08006258 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_EV_IRQHandler) + [Anonymous Symbol] 0x08006624 Section 0 i2c_1.o(.text.HAL_I2C_ErrorCallback) + [Anonymous Symbol] 0x08006678 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_Init) + [Anonymous Symbol] 0x0800691c Section 0 i2c_1.o(.text.HAL_I2C_ListenCpltCallback) + [Anonymous Symbol] 0x08006970 Section 0 i2c_1.o(.text.HAL_I2C_MasterRxCpltCallback) + [Anonymous Symbol] 0x080069c4 Section 0 i2c_1.o(.text.HAL_I2C_MasterTxCpltCallback) + [Anonymous Symbol] 0x08006a14 Section 0 i2c_1.o(.text.HAL_I2C_MemRxCpltCallback) + [Anonymous Symbol] 0x08006a68 Section 0 i2c_1.o(.text.HAL_I2C_MemTxCpltCallback) + [Anonymous Symbol] 0x08006abc Section 0 i2c.o(.text.HAL_I2C_MspInit) + [Anonymous Symbol] 0x08006bf0 Section 0 i2c_1.o(.text.HAL_I2C_SlaveRxCpltCallback) + [Anonymous Symbol] 0x08006c44 Section 0 i2c_1.o(.text.HAL_I2C_SlaveTxCpltCallback) + [Anonymous Symbol] 0x08006c98 Section 0 stm32f4xx_hal.o(.text.HAL_IncTick) + [Anonymous Symbol] 0x08006cb4 Section 0 stm32f4xx_hal.o(.text.HAL_Init) + [Anonymous Symbol] 0x08006cec Section 0 stm32f4xx_hal.o(.text.HAL_InitTick) + [Anonymous Symbol] 0x08006d5c Section 0 stm32f4xx_hal_msp.o(.text.HAL_MspInit) + [Anonymous Symbol] 0x08006db4 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_DisableIRQ) + [Anonymous Symbol] 0x08006dc8 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ) + [Anonymous Symbol] 0x08006ddc Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) + [Anonymous Symbol] 0x08006e10 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) + [Anonymous Symbol] 0x08006e20 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) + [Anonymous Symbol] 0x08007084 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) + [Anonymous Symbol] 0x08007090 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) + [Anonymous Symbol] 0x080070b4 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) + [Anonymous Symbol] 0x080070d8 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) + [Anonymous Symbol] 0x080071c0 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_OscConfig) + [Anonymous Symbol] 0x08007880 Section 0 spi_1.o(.text.HAL_SPI_ErrorCallback) + [Anonymous Symbol] 0x080078d4 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Init) + [Anonymous Symbol] 0x080079d4 Section 0 spi.o(.text.HAL_SPI_MspInit) + [Anonymous Symbol] 0x08007be4 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive) + [Anonymous Symbol] 0x08007e34 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive_DMA) + [Anonymous Symbol] 0x08007fcc Section 0 spi_1.o(.text.HAL_SPI_RxCpltCallback) + [Anonymous Symbol] 0x08008020 Section 0 spi_1.o(.text.HAL_SPI_RxHalfCpltCallback) + [Anonymous Symbol] 0x08008074 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit) + [Anonymous Symbol] 0x08008318 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive) + [Anonymous Symbol] 0x080086bc Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive_DMA) + [Anonymous Symbol] 0x080088d0 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit_DMA) + [Anonymous Symbol] 0x08008a3c Section 0 spi_1.o(.text.HAL_SPI_TxCpltCallback) + [Anonymous Symbol] 0x08008a84 Section 0 spi_1.o(.text.HAL_SPI_TxHalfCpltCallback) + [Anonymous Symbol] 0x08008ad8 Section 0 spi_1.o(.text.HAL_SPI_TxRxCpltCallback) + [Anonymous Symbol] 0x08008b2c Section 0 spi_1.o(.text.HAL_SPI_TxRxHalfCpltCallback) + [Anonymous Symbol] 0x08008b80 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_SYSTICK_Config) + [Anonymous Symbol] 0x08008b90 Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_BreakCallback) + [Anonymous Symbol] 0x08008b98 Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_CommutCallback) + [Anonymous Symbol] 0x08008ba0 Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) + [Anonymous Symbol] 0x08008cc4 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_Base_Init) + [Anonymous Symbol] 0x08008d60 Section 0 tim.o(.text.HAL_TIM_Base_MspInit) + [Anonymous Symbol] 0x08008dec Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_IC_CaptureCallback) + [Anonymous Symbol] 0x08008df4 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_IRQHandler) + [Anonymous Symbol] 0x08009010 Section 0 tim.o(.text.HAL_TIM_MspPostInit) + [Anonymous Symbol] 0x0800907c Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_OC_DelayElapsedCallback) + [Anonymous Symbol] 0x08009084 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel) + [Anonymous Symbol] 0x080091c8 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Init) + [Anonymous Symbol] 0x08009264 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit) + [Anonymous Symbol] 0x0800926c Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_PulseFinishedCallback) + [Anonymous Symbol] 0x08009274 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Start) + [Anonymous Symbol] 0x08009440 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PeriodElapsedCallback) + [Anonymous Symbol] 0x08009448 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_TriggerCallback) + [Anonymous Symbol] 0x08009450 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) + [Anonymous Symbol] 0x0800945c Section 0 uart.o(.text.HAL_UART_ErrorCallback) + [Anonymous Symbol] 0x080094b0 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler) + [Anonymous Symbol] 0x0800990c Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_Init) + [Anonymous Symbol] 0x080099ac Section 0 usart.o(.text.HAL_UART_MspInit) + [Anonymous Symbol] 0x08009b8c Section 0 uart.o(.text.HAL_UART_RxCpltCallback) + [Anonymous Symbol] 0x08009be0 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_Transmit_DMA) + [Anonymous Symbol] 0x08009cdc Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_Transmit_IT) + [Anonymous Symbol] 0x08009d50 Section 0 uart.o(.text.HAL_UART_TxCpltCallback) + [Anonymous Symbol] 0x08009da4 Section 0 uart.o(.text.HAL_UART_TxHalfCpltCallback) + [Anonymous Symbol] 0x08009df4 Section 0 stm32f4xx_it.o(.text.HardFault_Handler) + [Anonymous Symbol] 0x08009df8 Section 0 stm32f4xx_it.o(.text.I2C1_ER_IRQHandler) + [Anonymous Symbol] 0x08009e08 Section 0 stm32f4xx_it.o(.text.I2C1_EV_IRQHandler) + I2C_ConvertOtherXferOptions 0x08009e19 Thumb Code 52 stm32f4xx_hal_i2c.o(.text.I2C_ConvertOtherXferOptions) + [Anonymous Symbol] 0x08009e18 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_ConvertOtherXferOptions) + I2C_DMAAbort 0x08009e4d Thumb Code 342 stm32f4xx_hal_i2c.o(.text.I2C_DMAAbort) + [Anonymous Symbol] 0x08009e4c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_DMAAbort) + I2C_Flush_DR 0x08009fa5 Thumb Code 36 stm32f4xx_hal_i2c.o(.text.I2C_Flush_DR) + [Anonymous Symbol] 0x08009fa4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Flush_DR) + I2C_Get 0x08009fc9 Thumb Code 72 i2c_1.o(.text.I2C_Get) + [Anonymous Symbol] 0x08009fc8 Section 0 i2c_1.o(.text.I2C_Get) + I2C_ITError 0x0800a011 Thumb Code 634 stm32f4xx_hal_i2c.o(.text.I2C_ITError) + [Anonymous Symbol] 0x0800a010 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_ITError) + I2C_MasterReceive_BTF 0x0800a28d Thumb Code 428 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_BTF) + [Anonymous Symbol] 0x0800a28c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_BTF) + I2C_MasterReceive_RXNE 0x0800a439 Thumb Code 362 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_RXNE) + [Anonymous Symbol] 0x0800a438 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_RXNE) + I2C_MasterTransmit_BTF 0x0800a5a5 Thumb Code 222 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_BTF) + [Anonymous Symbol] 0x0800a5a4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_BTF) + I2C_MasterTransmit_TXE 0x0800a685 Thumb Code 318 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_TXE) + [Anonymous Symbol] 0x0800a684 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_TXE) + I2C_Master_ADD10 0x0800a7c5 Thumb Code 70 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADD10) + [Anonymous Symbol] 0x0800a7c4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADD10) + I2C_Master_ADDR 0x0800a80d Thumb Code 830 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADDR) + [Anonymous Symbol] 0x0800a80c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADDR) + I2C_Master_SB 0x0800ab4d Thumb Code 240 stm32f4xx_hal_i2c.o(.text.I2C_Master_SB) + [Anonymous Symbol] 0x0800ab4c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_SB) + I2C_MemoryTransmit_TXE_BTF 0x0800ac3d Thumb Code 296 stm32f4xx_hal_i2c.o(.text.I2C_MemoryTransmit_TXE_BTF) + [Anonymous Symbol] 0x0800ac3c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MemoryTransmit_TXE_BTF) + I2C_SlaveReceive_BTF 0x0800ad65 Thumb Code 46 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_BTF) + [Anonymous Symbol] 0x0800ad64 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_BTF) + I2C_SlaveReceive_RXNE 0x0800ad95 Thumb Code 110 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_RXNE) + [Anonymous Symbol] 0x0800ad94 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_RXNE) + I2C_SlaveTransmit_BTF 0x0800ae05 Thumb Code 44 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_BTF) + [Anonymous Symbol] 0x0800ae04 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_BTF) + I2C_SlaveTransmit_TXE 0x0800ae31 Thumb Code 108 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_TXE) + [Anonymous Symbol] 0x0800ae30 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_TXE) + I2C_Slave_ADDR 0x0800ae9d Thumb Code 174 stm32f4xx_hal_i2c.o(.text.I2C_Slave_ADDR) + [Anonymous Symbol] 0x0800ae9c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_ADDR) + I2C_Slave_AF 0x0800af4d Thumb Code 228 stm32f4xx_hal_i2c.o(.text.I2C_Slave_AF) + [Anonymous Symbol] 0x0800af4c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_AF) + I2C_Slave_STOPF 0x0800b031 Thumb Code 586 stm32f4xx_hal_i2c.o(.text.I2C_Slave_STOPF) + [Anonymous Symbol] 0x0800b030 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_STOPF) + I2C_WaitOnSTOPRequestThroughIT 0x0800b27d Thumb Code 120 stm32f4xx_hal_i2c.o(.text.I2C_WaitOnSTOPRequestThroughIT) + [Anonymous Symbol] 0x0800b27c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_WaitOnSTOPRequestThroughIT) + [Anonymous Symbol] 0x0800b2f4 Section 0 user_math.o(.text.InvSqrt) + [Anonymous Symbol] 0x0800b36c Section 0 filter.o(.text.LowPassFilter2p_Apply) + [Anonymous Symbol] 0x0800b424 Section 0 filter.o(.text.LowPassFilter2p_Init) + [Anonymous Symbol] 0x0800b560 Section 0 filter.o(.text.LowPassFilter2p_Reset) + MOTOR_DM_CreateCANManager 0x0800b5f5 Thumb Code 150 motor_dm.o(.text.MOTOR_DM_CreateCANManager) + [Anonymous Symbol] 0x0800b5f4 Section 0 motor_dm.o(.text.MOTOR_DM_CreateCANManager) + [Anonymous Symbol] 0x0800b68c Section 0 motor_dm.o(.text.MOTOR_DM_Enable) + MOTOR_DM_GetCANManager 0x0800b709 Thumb Code 48 motor_dm.o(.text.MOTOR_DM_GetCANManager) + [Anonymous Symbol] 0x0800b708 Section 0 motor_dm.o(.text.MOTOR_DM_GetCANManager) + [Anonymous Symbol] 0x0800b738 Section 0 motor_dm.o(.text.MOTOR_DM_GetMotor) + [Anonymous Symbol] 0x0800b7c0 Section 0 motor_dm.o(.text.MOTOR_DM_MITCtrl) + MOTOR_DM_ParseFeedbackFrame 0x0800b809 Thumb Code 344 motor_dm.o(.text.MOTOR_DM_ParseFeedbackFrame) + [Anonymous Symbol] 0x0800b808 Section 0 motor_dm.o(.text.MOTOR_DM_ParseFeedbackFrame) + [Anonymous Symbol] 0x0800b960 Section 0 motor_dm.o(.text.MOTOR_DM_Register) + MOTOR_DM_SendMITCmd 0x0800ba8d Thumb Code 324 motor_dm.o(.text.MOTOR_DM_SendMITCmd) + [Anonymous Symbol] 0x0800ba8c Section 0 motor_dm.o(.text.MOTOR_DM_SendMITCmd) + [Anonymous Symbol] 0x0800bbd0 Section 0 motor_dm.o(.text.MOTOR_DM_Update) + MOTOR_RM_CreateCANManager 0x0800bcdd Thumb Code 150 motor_rm.o(.text.MOTOR_RM_CreateCANManager) + [Anonymous Symbol] 0x0800bcdc Section 0 motor_rm.o(.text.MOTOR_RM_CreateCANManager) + [Anonymous Symbol] 0x0800bd74 Section 0 motor_rm.o(.text.MOTOR_RM_Ctrl) + MOTOR_RM_GetCANManager 0x0800bee5 Thumb Code 48 motor_rm.o(.text.MOTOR_RM_GetCANManager) + [Anonymous Symbol] 0x0800bee4 Section 0 motor_rm.o(.text.MOTOR_RM_GetCANManager) + MOTOR_RM_GetLSB 0x0800bf15 Thumb Code 82 motor_rm.o(.text.MOTOR_RM_GetLSB) + [Anonymous Symbol] 0x0800bf14 Section 0 motor_rm.o(.text.MOTOR_RM_GetLSB) + MOTOR_RM_GetLogicalIndex 0x0800bf69 Thumb Code 128 motor_rm.o(.text.MOTOR_RM_GetLogicalIndex) + [Anonymous Symbol] 0x0800bf68 Section 0 motor_rm.o(.text.MOTOR_RM_GetLogicalIndex) + [Anonymous Symbol] 0x0800bfe8 Section 0 motor_rm.o(.text.MOTOR_RM_GetMotor) + MOTOR_RM_GetRatio 0x0800c061 Thumb Code 80 motor_rm.o(.text.MOTOR_RM_GetRatio) + [Anonymous Symbol] 0x0800c060 Section 0 motor_rm.o(.text.MOTOR_RM_GetRatio) + [Anonymous Symbol] 0x0800c0b0 Section 0 motor_rm.o(.text.MOTOR_RM_Register) + [Anonymous Symbol] 0x0800c1d0 Section 0 motor_rm.o(.text.MOTOR_RM_SetOutput) + [Anonymous Symbol] 0x0800c2ec Section 0 motor_rm.o(.text.MOTOR_RM_Update) + [Anonymous Symbol] 0x0800c3f0 Section 0 can.o(.text.MX_CAN1_Init) + [Anonymous Symbol] 0x0800c440 Section 0 can.o(.text.MX_CAN2_Init) + [Anonymous Symbol] 0x0800c490 Section 0 dma.o(.text.MX_DMA_Init) + [Anonymous Symbol] 0x0800c518 Section 0 freertos.o(.text.MX_FREERTOS_Init) + [Anonymous Symbol] 0x0800c558 Section 0 gpio.o(.text.MX_GPIO_Init) + [Anonymous Symbol] 0x0800c784 Section 0 i2c.o(.text.MX_I2C1_Init) + [Anonymous Symbol] 0x0800c7cc Section 0 i2c.o(.text.MX_I2C2_Init) + [Anonymous Symbol] 0x0800c814 Section 0 spi.o(.text.MX_SPI1_Init) + [Anonymous Symbol] 0x0800c868 Section 0 spi.o(.text.MX_SPI2_Init) + [Anonymous Symbol] 0x0800c8bc Section 0 tim.o(.text.MX_TIM10_Init) + [Anonymous Symbol] 0x0800c94c Section 0 tim.o(.text.MX_TIM7_Init) + [Anonymous Symbol] 0x0800c9a4 Section 0 usart.o(.text.MX_USART1_UART_Init) + [Anonymous Symbol] 0x0800c9e4 Section 0 usart.o(.text.MX_USART3_UART_Init) + [Anonymous Symbol] 0x0800ca30 Section 0 stm32f4xx_it.o(.text.MemManage_Handler) + Motor_RM_Decode 0x0800ca35 Thumb Code 540 motor_rm.o(.text.Motor_RM_Decode) + [Anonymous Symbol] 0x0800ca34 Section 0 motor_rm.o(.text.Motor_RM_Decode) + [Anonymous Symbol] 0x0800cc50 Section 0 stm32f4xx_it.o(.text.NMI_Handler) + NVIC_EncodePriority 0x0800cc55 Thumb Code 108 stm32f4xx_hal_cortex.o(.text.NVIC_EncodePriority) + [Anonymous Symbol] 0x0800cc54 Section 0 stm32f4xx_hal_cortex.o(.text.NVIC_EncodePriority) + OutContinuation 0x0800ccc1 Thumb Code 148 sliding.o(.text.OutContinuation) + [Anonymous Symbol] 0x0800ccc0 Section 0 sliding.o(.text.OutContinuation) + [Anonymous Symbol] 0x0800cd54 Section 0 pid.o(.text.PID_Calc) + [Anonymous Symbol] 0x0800d044 Section 0 pid.o(.text.PID_Init) + [Anonymous Symbol] 0x0800d1dc Section 0 pid.o(.text.PID_Reset) + [Anonymous Symbol] 0x0800d230 Section 0 port.o(.text.PendSV_Handler) + pxCurrentTCBConst 0x0800d290 Number 0 port.o(.text.PendSV_Handler) + [Anonymous Symbol] 0x0800d294 Section 0 bsp_rc.o(.text.RC_Init) + [Anonymous Symbol] 0x0800d328 Section 0 bsp_rc.o(.text.RC_restart) + [Anonymous Symbol] 0x0800d384 Section 0 sliding.o(.text.SMC_Init) + [Anonymous Symbol] 0x0800d3f4 Section 0 sliding.o(.text.SMC_PErrorUpdate) + [Anonymous Symbol] 0x0800d4f8 Section 0 sliding.o(.text.SMC_Reset) + SMC_SetParam 0x0800d549 Thumb Code 78 sliding.o(.text.SMC_SetParam) + [Anonymous Symbol] 0x0800d548 Section 0 sliding.o(.text.SMC_SetParam) + SPI_DMAError 0x0800d599 Thumb Code 52 stm32f4xx_hal_spi.o(.text.SPI_DMAError) + [Anonymous Symbol] 0x0800d598 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAError) + SPI_DMAHalfReceiveCplt 0x0800d5cd Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfReceiveCplt) + [Anonymous Symbol] 0x0800d5cc Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfReceiveCplt) + SPI_DMAHalfTransmitCplt 0x0800d5e5 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitCplt) + [Anonymous Symbol] 0x0800d5e4 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitCplt) + SPI_DMAHalfTransmitReceiveCplt 0x0800d5fd Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitReceiveCplt) + [Anonymous Symbol] 0x0800d5fc Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitReceiveCplt) + SPI_DMAReceiveCplt 0x0800d615 Thumb Code 162 stm32f4xx_hal_spi.o(.text.SPI_DMAReceiveCplt) + [Anonymous Symbol] 0x0800d614 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAReceiveCplt) + SPI_DMATransmitCplt 0x0800d6b9 Thumb Code 166 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitCplt) + [Anonymous Symbol] 0x0800d6b8 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitCplt) + SPI_DMATransmitReceiveCplt 0x0800d761 Thumb Code 134 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitReceiveCplt) + [Anonymous Symbol] 0x0800d760 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitReceiveCplt) + SPI_EndRxTransaction 0x0800d7e9 Thumb Code 228 stm32f4xx_hal_spi.o(.text.SPI_EndRxTransaction) + [Anonymous Symbol] 0x0800d7e8 Section 0 stm32f4xx_hal_spi.o(.text.SPI_EndRxTransaction) + SPI_EndRxTxTransaction 0x0800d8cd Thumb Code 204 stm32f4xx_hal_spi.o(.text.SPI_EndRxTxTransaction) + [Anonymous Symbol] 0x0800d8cc Section 0 stm32f4xx_hal_spi.o(.text.SPI_EndRxTxTransaction) + SPI_Get 0x0800d999 Thumb Code 46 spi_1.o(.text.SPI_Get) + [Anonymous Symbol] 0x0800d998 Section 0 spi_1.o(.text.SPI_Get) + SPI_WaitFlagStateUntilTimeout 0x0800d9c9 Thumb Code 300 stm32f4xx_hal_spi.o(.text.SPI_WaitFlagStateUntilTimeout) + [Anonymous Symbol] 0x0800d9c8 Section 0 stm32f4xx_hal_spi.o(.text.SPI_WaitFlagStateUntilTimeout) + [Anonymous Symbol] 0x0800db00 Section 0 port.o(.text.SVC_Handler) + pxCurrentTCBConst2 0x0800db20 Number 0 port.o(.text.SVC_Handler) + SVC_Setup 0x0800db25 Thumb Code 14 cmsis_os2.o(.text.SVC_Setup) + [Anonymous Symbol] 0x0800db24 Section 0 cmsis_os2.o(.text.SVC_Setup) + Sat 0x0800db39 Thumb Code 136 sliding.o(.text.Sat) + [Anonymous Symbol] 0x0800db38 Section 0 sliding.o(.text.Sat) + Signal 0x0800dbc1 Thumb Code 70 sliding.o(.text.Signal) + [Anonymous Symbol] 0x0800dbc0 Section 0 sliding.o(.text.Signal) + [Anonymous Symbol] 0x0800dc08 Section 0 sliding.o(.text.Smc_Calc) + [Anonymous Symbol] 0x0800e2e8 Section 0 freertos.o(.text.StartDefaultTask) + SysTick_Config 0x0800e2fd Thumb Code 82 stm32f4xx_hal_cortex.o(.text.SysTick_Config) + [Anonymous Symbol] 0x0800e2fc Section 0 stm32f4xx_hal_cortex.o(.text.SysTick_Config) + [Anonymous Symbol] 0x0800e350 Section 0 stm32f4xx_it.o(.text.SysTick_Handler) + [Anonymous Symbol] 0x0800e368 Section 0 main.o(.text.SystemClock_Config) + [Anonymous Symbol] 0x0800e424 Section 0 system_stm32f4xx.o(.text.SystemInit) + [Anonymous Symbol] 0x0800e438 Section 0 stm32f4xx_it.o(.text.TIM7_IRQHandler) + [Anonymous Symbol] 0x0800e448 Section 0 stm32f4xx_hal_tim.o(.text.TIM_Base_SetConfig) + [Anonymous Symbol] 0x0800e5ec Section 0 stm32f4xx_hal_tim.o(.text.TIM_CCxChannelCmd) + TIM_OC1_SetConfig 0x0800e625 Thumb Code 234 stm32f4xx_hal_tim.o(.text.TIM_OC1_SetConfig) + [Anonymous Symbol] 0x0800e624 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC1_SetConfig) + [Anonymous Symbol] 0x0800e710 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC2_SetConfig) + TIM_OC3_SetConfig 0x0800e805 Thumb Code 242 stm32f4xx_hal_tim.o(.text.TIM_OC3_SetConfig) + [Anonymous Symbol] 0x0800e804 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC3_SetConfig) + TIM_OC4_SetConfig 0x0800e8f9 Thumb Code 164 stm32f4xx_hal_tim.o(.text.TIM_OC4_SetConfig) + [Anonymous Symbol] 0x0800e8f8 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC4_SetConfig) + [Anonymous Symbol] 0x0800e99c Section 0 init.o(.text.Task_Init) + [Anonymous Symbol] 0x0800ea88 Section 0 atti_esti.o(.text.Task_atti_esti) + [Anonymous Symbol] 0x0800ec18 Section 0 gimbal_ctrl.o(.text.Task_gimbal_ctrl) + [Anonymous Symbol] 0x0800ed10 Section 0 remote.o(.text.Task_remote) + [Anonymous Symbol] 0x0800edc0 Section 0 vofa_1.o(.text.Task_vofa) + UART_DMAAbortOnError 0x0800ee51 Thumb Code 28 stm32f4xx_hal_uart.o(.text.UART_DMAAbortOnError) + [Anonymous Symbol] 0x0800ee50 Section 0 stm32f4xx_hal_uart.o(.text.UART_DMAAbortOnError) + UART_DMAError 0x0800ee6d Thumb Code 124 stm32f4xx_hal_uart.o(.text.UART_DMAError) + [Anonymous Symbol] 0x0800ee6c Section 0 stm32f4xx_hal_uart.o(.text.UART_DMAError) + UART_DMATransmitCplt 0x0800eee9 Thumb Code 122 stm32f4xx_hal_uart.o(.text.UART_DMATransmitCplt) + [Anonymous Symbol] 0x0800eee8 Section 0 stm32f4xx_hal_uart.o(.text.UART_DMATransmitCplt) + UART_DMATxHalfCplt 0x0800ef65 Thumb Code 22 stm32f4xx_hal_uart.o(.text.UART_DMATxHalfCplt) + [Anonymous Symbol] 0x0800ef64 Section 0 stm32f4xx_hal_uart.o(.text.UART_DMATxHalfCplt) + UART_EndRxTransfer 0x0800ef7d Thumb Code 148 stm32f4xx_hal_uart.o(.text.UART_EndRxTransfer) + [Anonymous Symbol] 0x0800ef7c Section 0 stm32f4xx_hal_uart.o(.text.UART_EndRxTransfer) + UART_EndTransmit_IT 0x0800f011 Thumb Code 38 stm32f4xx_hal_uart.o(.text.UART_EndTransmit_IT) + [Anonymous Symbol] 0x0800f010 Section 0 stm32f4xx_hal_uart.o(.text.UART_EndTransmit_IT) + UART_EndTxTransfer 0x0800f039 Thumb Code 54 stm32f4xx_hal_uart.o(.text.UART_EndTxTransfer) + [Anonymous Symbol] 0x0800f038 Section 0 stm32f4xx_hal_uart.o(.text.UART_EndTxTransfer) + UART_Get 0x0800f071 Thumb Code 72 uart.o(.text.UART_Get) + [Anonymous Symbol] 0x0800f070 Section 0 uart.o(.text.UART_Get) + UART_Receive_IT 0x0800f0b9 Thumb Code 360 stm32f4xx_hal_uart.o(.text.UART_Receive_IT) + [Anonymous Symbol] 0x0800f0b8 Section 0 stm32f4xx_hal_uart.o(.text.UART_Receive_IT) + UART_SetConfig 0x0800f221 Thumb Code 314 stm32f4xx_hal_uart.o(.text.UART_SetConfig) + [Anonymous Symbol] 0x0800f220 Section 0 stm32f4xx_hal_uart.o(.text.UART_SetConfig) + UART_Transmit_IT 0x0800f35d Thumb Code 148 stm32f4xx_hal_uart.o(.text.UART_Transmit_IT) + [Anonymous Symbol] 0x0800f35c Section 0 stm32f4xx_hal_uart.o(.text.UART_Transmit_IT) + [Anonymous Symbol] 0x0800f3f0 Section 0 stm32f4xx_it.o(.text.USART1_IRQHandler) + [Anonymous Symbol] 0x0800f400 Section 0 stm32f4xx_it.o(.text.USART3_IRQHandler) + [Anonymous Symbol] 0x0800f420 Section 0 remote_control.o(.text.USART3_IRQHandler1) + [Anonymous Symbol] 0x0800f444 Section 0 stm32f4xx_it.o(.text.UsageFault_Handler) + [Anonymous Symbol] 0x0800f448 Section 0 vofa.o(.text.VOFA_JustFloat_Send) + __ARM_isfinite 0x0800f4b1 Thumb Code 30 filter.o(.text.__ARM_isfinite) + [Anonymous Symbol] 0x0800f4b0 Section 0 filter.o(.text.__ARM_isfinite) + __ARM_isfinite 0x0800f4d1 Thumb Code 30 pid.o(.text.__ARM_isfinite) + [Anonymous Symbol] 0x0800f4d0 Section 0 pid.o(.text.__ARM_isfinite) + __ARM_isfinitef 0x0800f4f1 Thumb Code 24 filter.o(.text.__ARM_isfinitef) + [Anonymous Symbol] 0x0800f4f0 Section 0 filter.o(.text.__ARM_isfinitef) + __ARM_isfinitef 0x0800f509 Thumb Code 24 pid.o(.text.__ARM_isfinitef) + [Anonymous Symbol] 0x0800f508 Section 0 pid.o(.text.__ARM_isfinitef) + __ARM_isinf 0x0800f521 Thumb Code 52 filter.o(.text.__ARM_isinf) + [Anonymous Symbol] 0x0800f520 Section 0 filter.o(.text.__ARM_isinf) + __ARM_isinff 0x0800f555 Thumb Code 28 filter.o(.text.__ARM_isinff) + [Anonymous Symbol] 0x0800f554 Section 0 filter.o(.text.__ARM_isinff) + __NVIC_DisableIRQ 0x0800f571 Thumb Code 56 stm32f4xx_hal_cortex.o(.text.__NVIC_DisableIRQ) + [Anonymous Symbol] 0x0800f570 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_DisableIRQ) + __NVIC_EnableIRQ 0x0800f5a9 Thumb Code 48 stm32f4xx_hal_cortex.o(.text.__NVIC_EnableIRQ) + [Anonymous Symbol] 0x0800f5a8 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_EnableIRQ) + __NVIC_GetPriorityGrouping 0x0800f5d9 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) + [Anonymous Symbol] 0x0800f5d8 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) + __NVIC_SetPriority 0x0800f5e9 Thumb Code 66 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriority) + [Anonymous Symbol] 0x0800f5e8 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriority) + __NVIC_SetPriority 0x0800f62d Thumb Code 66 cmsis_os2.o(.text.__NVIC_SetPriority) + [Anonymous Symbol] 0x0800f62c Section 0 cmsis_os2.o(.text.__NVIC_SetPriority) + __NVIC_SetPriorityGrouping 0x0800f671 Thumb Code 60 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) + [Anonymous Symbol] 0x0800f670 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) + [Anonymous Symbol] 0x0800f6ac Section 0 freertos.o(.text.configureTimerForRunTimeStats) + copysignf 0x0800f6b1 Thumb Code 30 ahrs.o(.text.copysignf) + [Anonymous Symbol] 0x0800f6b0 Section 0 ahrs.o(.text.copysignf) + [Anonymous Symbol] 0x0800f6d0 Section 0 bsp_delay.o(.text.delay_init) + [Anonymous Symbol] 0x0800f710 Section 0 tasks.o(.text.eTaskGetState) + float_to_uint 0x0800f809 Thumb Code 88 motor_dm.o(.text.float_to_uint) + [Anonymous Symbol] 0x0800f808 Section 0 motor_dm.o(.text.float_to_uint) + [Anonymous Symbol] 0x0800f860 Section 0 freertos.o(.text.getRunTimeCounterValue) + [Anonymous Symbol] 0x0800f864 Section 0 main.o(.text.main) + [Anonymous Symbol] 0x0800f8b4 Section 0 calc_lib.o(.text.map) + motor_imu_offset 0x0800f8e1 Thumb Code 128 gimbal.o(.text.motor_imu_offset) + [Anonymous Symbol] 0x0800f8e0 Section 0 gimbal.o(.text.motor_imu_offset) + [Anonymous Symbol] 0x0800f960 Section 0 cmsis_os2.o(.text.osDelay) + [Anonymous Symbol] 0x0800f994 Section 0 cmsis_os2.o(.text.osDelayUntil) + [Anonymous Symbol] 0x0800f9ec Section 0 cmsis_os2.o(.text.osKernelGetState) + [Anonymous Symbol] 0x0800fa40 Section 0 cmsis_os2.o(.text.osKernelGetTickCount) + [Anonymous Symbol] 0x0800fa68 Section 0 cmsis_os2.o(.text.osKernelGetTickFreq) + [Anonymous Symbol] 0x0800fa70 Section 0 cmsis_os2.o(.text.osKernelInitialize) + [Anonymous Symbol] 0x0800fab8 Section 0 cmsis_os2.o(.text.osKernelLock) + [Anonymous Symbol] 0x0800fb10 Section 0 cmsis_os2.o(.text.osKernelStart) + [Anonymous Symbol] 0x0800fb64 Section 0 cmsis_os2.o(.text.osKernelUnlock) + [Anonymous Symbol] 0x0800fbd4 Section 0 cmsis_os2.o(.text.osMessageQueueGet) + [Anonymous Symbol] 0x0800fc94 Section 0 cmsis_os2.o(.text.osMessageQueueNew) + [Anonymous Symbol] 0x0800fd94 Section 0 cmsis_os2.o(.text.osMessageQueuePut) + [Anonymous Symbol] 0x0800fe58 Section 0 cmsis_os2.o(.text.osMessageQueueReset) + [Anonymous Symbol] 0x0800fe98 Section 0 cmsis_os2.o(.text.osMutexAcquire) + [Anonymous Symbol] 0x0800ff38 Section 0 cmsis_os2.o(.text.osMutexNew) + [Anonymous Symbol] 0x08010060 Section 0 cmsis_os2.o(.text.osMutexRelease) + [Anonymous Symbol] 0x080100e0 Section 0 cmsis_os2.o(.text.osThreadFlagsSet) + [Anonymous Symbol] 0x08010184 Section 0 cmsis_os2.o(.text.osThreadFlagsWait) + [Anonymous Symbol] 0x080102a0 Section 0 cmsis_os2.o(.text.osThreadGetId) + [Anonymous Symbol] 0x080102b0 Section 0 cmsis_os2.o(.text.osThreadNew) + [Anonymous Symbol] 0x0801040c Section 0 cmsis_os2.o(.text.osThreadTerminate) + prvAddCurrentTaskToDelayedList 0x0801046d Thumb Code 212 tasks.o(.text.prvAddCurrentTaskToDelayedList) + [Anonymous Symbol] 0x0801046c Section 0 tasks.o(.text.prvAddCurrentTaskToDelayedList) + prvAddNewTaskToReadyList 0x08010541 Thumb Code 290 tasks.o(.text.prvAddNewTaskToReadyList) + [Anonymous Symbol] 0x08010540 Section 0 tasks.o(.text.prvAddNewTaskToReadyList) + prvCheckForValidListAndQueue 0x08010665 Thumb Code 162 timers.o(.text.prvCheckForValidListAndQueue) + [Anonymous Symbol] 0x08010664 Section 0 timers.o(.text.prvCheckForValidListAndQueue) + prvCheckTasksWaitingTermination 0x08010709 Thumb Code 90 tasks.o(.text.prvCheckTasksWaitingTermination) + [Anonymous Symbol] 0x08010708 Section 0 tasks.o(.text.prvCheckTasksWaitingTermination) + prvCopyDataFromQueue 0x08010765 Thumb Code 66 queue.o(.text.prvCopyDataFromQueue) + [Anonymous Symbol] 0x08010764 Section 0 queue.o(.text.prvCopyDataFromQueue) + prvCopyDataToQueue 0x080107a9 Thumb Code 204 queue.o(.text.prvCopyDataToQueue) + [Anonymous Symbol] 0x080107a8 Section 0 queue.o(.text.prvCopyDataToQueue) + prvDeleteTCB 0x08010875 Thumb Code 94 tasks.o(.text.prvDeleteTCB) + [Anonymous Symbol] 0x08010874 Section 0 tasks.o(.text.prvDeleteTCB) + prvGetDisinheritPriorityAfterTimeout 0x080108d5 Thumb Code 38 queue.o(.text.prvGetDisinheritPriorityAfterTimeout) + [Anonymous Symbol] 0x080108d4 Section 0 queue.o(.text.prvGetDisinheritPriorityAfterTimeout) + prvGetNextExpireTime 0x080108fd Thumb Code 64 timers.o(.text.prvGetNextExpireTime) + [Anonymous Symbol] 0x080108fc Section 0 timers.o(.text.prvGetNextExpireTime) + prvHeapInit 0x0801093d Thumb Code 188 heap_4.o(.text.prvHeapInit) + [Anonymous Symbol] 0x0801093c Section 0 heap_4.o(.text.prvHeapInit) + prvIdleTask 0x080109f9 Thumb Code 56 tasks.o(.text.prvIdleTask) + [Anonymous Symbol] 0x080109f8 Section 0 tasks.o(.text.prvIdleTask) + prvInitialiseMutex 0x08010a31 Thumb Code 44 queue.o(.text.prvInitialiseMutex) + [Anonymous Symbol] 0x08010a30 Section 0 queue.o(.text.prvInitialiseMutex) + prvInitialiseNewQueue 0x08010a5d Thumb Code 72 queue.o(.text.prvInitialiseNewQueue) + [Anonymous Symbol] 0x08010a5c Section 0 queue.o(.text.prvInitialiseNewQueue) + prvInitialiseNewTask 0x08010aa5 Thumb Code 300 tasks.o(.text.prvInitialiseNewTask) + [Anonymous Symbol] 0x08010aa4 Section 0 tasks.o(.text.prvInitialiseNewTask) + prvInitialiseTaskLists 0x08010bd1 Thumb Code 142 tasks.o(.text.prvInitialiseTaskLists) + [Anonymous Symbol] 0x08010bd0 Section 0 tasks.o(.text.prvInitialiseTaskLists) + prvInsertBlockIntoFreeList 0x08010c61 Thumb Code 198 heap_4.o(.text.prvInsertBlockIntoFreeList) + [Anonymous Symbol] 0x08010c60 Section 0 heap_4.o(.text.prvInsertBlockIntoFreeList) + prvInsertTimerInActiveList 0x08010d29 Thumb Code 134 timers.o(.text.prvInsertTimerInActiveList) + [Anonymous Symbol] 0x08010d28 Section 0 timers.o(.text.prvInsertTimerInActiveList) + prvIsQueueEmpty 0x08010db1 Thumb Code 40 queue.o(.text.prvIsQueueEmpty) + [Anonymous Symbol] 0x08010db0 Section 0 queue.o(.text.prvIsQueueEmpty) + prvIsQueueFull 0x08010dd9 Thumb Code 46 queue.o(.text.prvIsQueueFull) + [Anonymous Symbol] 0x08010dd8 Section 0 queue.o(.text.prvIsQueueFull) + prvPortStartFirstTask 0x08010e09 Thumb Code 34 port.o(.text.prvPortStartFirstTask) + [Anonymous Symbol] 0x08010e08 Section 0 port.o(.text.prvPortStartFirstTask) + prvProcessExpiredTimer 0x08010e31 Thumb Code 142 timers.o(.text.prvProcessExpiredTimer) + [Anonymous Symbol] 0x08010e30 Section 0 timers.o(.text.prvProcessExpiredTimer) + prvProcessReceivedCommands 0x08010ec1 Thumb Code 402 timers.o(.text.prvProcessReceivedCommands) + [Anonymous Symbol] 0x08010ec0 Section 0 timers.o(.text.prvProcessReceivedCommands) + prvProcessTimerOrBlockTask 0x08011055 Thumb Code 154 timers.o(.text.prvProcessTimerOrBlockTask) + [Anonymous Symbol] 0x08011054 Section 0 timers.o(.text.prvProcessTimerOrBlockTask) + prvResetNextTaskUnblockTime 0x080110f1 Thumb Code 70 tasks.o(.text.prvResetNextTaskUnblockTime) + [Anonymous Symbol] 0x080110f0 Section 0 tasks.o(.text.prvResetNextTaskUnblockTime) + prvSampleTimeNow 0x08011139 Thumb Code 68 timers.o(.text.prvSampleTimeNow) + [Anonymous Symbol] 0x08011138 Section 0 timers.o(.text.prvSampleTimeNow) + prvSwitchTimerLists 0x0801117d Thumb Code 212 timers.o(.text.prvSwitchTimerLists) + [Anonymous Symbol] 0x0801117c Section 0 timers.o(.text.prvSwitchTimerLists) + prvTaskExitError 0x08011251 Thumb Code 76 port.o(.text.prvTaskExitError) + [Anonymous Symbol] 0x08011250 Section 0 port.o(.text.prvTaskExitError) + prvTimerTask 0x0801129d Thumb Code 30 timers.o(.text.prvTimerTask) + [Anonymous Symbol] 0x0801129c Section 0 timers.o(.text.prvTimerTask) + prvUnlockQueue 0x080112bd Thumb Code 174 queue.o(.text.prvUnlockQueue) + [Anonymous Symbol] 0x080112bc Section 0 queue.o(.text.prvUnlockQueue) + [Anonymous Symbol] 0x0801136c Section 0 heap_4.o(.text.pvPortMalloc) + [Anonymous Symbol] 0x08011558 Section 0 tasks.o(.text.pvTaskIncrementMutexHeldCount) + [Anonymous Symbol] 0x08011584 Section 0 port.o(.text.pxPortInitialiseStack) + [Anonymous Symbol] 0x080115e4 Section 0 ai.o(.text.remote_ParseHost) + [Anonymous Symbol] 0x08011628 Section 0 remote_control.o(.text.remote_control_init) + sbus_to_rc 0x08011641 Thumb Code 656 remote_control.o(.text.sbus_to_rc) + [Anonymous Symbol] 0x08011640 Section 0 remote_control.o(.text.sbus_to_rc) + uint_to_float 0x080118d1 Thumb Code 82 motor_dm.o(.text.uint_to_float) + [Anonymous Symbol] 0x080118d0 Section 0 motor_dm.o(.text.uint_to_float) + [Anonymous Symbol] 0x08011924 Section 0 calc_lib.o(.text.user_delay_ms) + [Anonymous Symbol] 0x08011954 Section 0 calc_lib.o(.text.user_delay_us) + [Anonymous Symbol] 0x08011998 Section 0 list.o(.text.uxListRemove) + [Anonymous Symbol] 0x080119e0 Section 0 cmsis_os2.o(.text.vApplicationGetIdleTaskMemory) + [Anonymous Symbol] 0x08011a0c Section 0 cmsis_os2.o(.text.vApplicationGetTimerTaskMemory) + [Anonymous Symbol] 0x08011a38 Section 0 freertos.o(.text.vApplicationStackOverflowHook) + [Anonymous Symbol] 0x08011a44 Section 0 list.o(.text.vListInitialise) + [Anonymous Symbol] 0x08011a74 Section 0 list.o(.text.vListInitialiseItem) + [Anonymous Symbol] 0x08011a84 Section 0 list.o(.text.vListInsert) + [Anonymous Symbol] 0x08011af0 Section 0 list.o(.text.vListInsertEnd) + vPortEnableVFP 0x08011b2d Thumb Code 14 port.o(.text.vPortEnableVFP) + [Anonymous Symbol] 0x08011b2c Section 0 port.o(.text.vPortEnableVFP) + [Anonymous Symbol] 0x08011b40 Section 0 port.o(.text.vPortEnterCritical) + [Anonymous Symbol] 0x08011b98 Section 0 port.o(.text.vPortExitCritical) + [Anonymous Symbol] 0x08011be4 Section 0 heap_4.o(.text.vPortFree) + [Anonymous Symbol] 0x08011cb4 Section 0 port.o(.text.vPortSetupTimerInterrupt) + [Anonymous Symbol] 0x08011cf8 Section 0 port.o(.text.vPortValidateInterruptPriority) + [Anonymous Symbol] 0x08011d7c Section 0 queue.o(.text.vQueueAddToRegistry) + [Anonymous Symbol] 0x08011dd0 Section 0 queue.o(.text.vQueueWaitForMessageRestricted) + [Anonymous Symbol] 0x08011e34 Section 0 tasks.o(.text.vTaskDelay) + [Anonymous Symbol] 0x08011ea4 Section 0 tasks.o(.text.vTaskDelayUntil) + [Anonymous Symbol] 0x08011fb8 Section 0 tasks.o(.text.vTaskDelete) + [Anonymous Symbol] 0x080120c8 Section 0 tasks.o(.text.vTaskInternalSetTimeOutState) + [Anonymous Symbol] 0x080120ec Section 0 tasks.o(.text.vTaskMissedYield) + [Anonymous Symbol] 0x080120fc Section 0 tasks.o(.text.vTaskPlaceOnEventList) + [Anonymous Symbol] 0x08012140 Section 0 tasks.o(.text.vTaskPlaceOnEventListRestricted) + [Anonymous Symbol] 0x08012194 Section 0 tasks.o(.text.vTaskPriorityDisinheritAfterTimeout) + [Anonymous Symbol] 0x080122c8 Section 0 tasks.o(.text.vTaskStartScheduler) + [Anonymous Symbol] 0x080123ac Section 0 tasks.o(.text.vTaskSuspendAll) + [Anonymous Symbol] 0x080123bc Section 0 tasks.o(.text.vTaskSwitchContext) + [Anonymous Symbol] 0x0801253c Section 0 port.o(.text.xPortStartScheduler) + [Anonymous Symbol] 0x08012694 Section 0 port.o(.text.xPortSysTickHandler) + [Anonymous Symbol] 0x080126d0 Section 0 queue.o(.text.xQueueCreateMutex) + [Anonymous Symbol] 0x080126f8 Section 0 queue.o(.text.xQueueCreateMutexStatic) + [Anonymous Symbol] 0x0801272c Section 0 queue.o(.text.xQueueGenericCreate) + [Anonymous Symbol] 0x080127a0 Section 0 queue.o(.text.xQueueGenericCreateStatic) + [Anonymous Symbol] 0x080128b0 Section 0 queue.o(.text.xQueueGenericReset) + [Anonymous Symbol] 0x0801296c Section 0 queue.o(.text.xQueueGenericSend) + [Anonymous Symbol] 0x08012b98 Section 0 queue.o(.text.xQueueGenericSendFromISR) + [Anonymous Symbol] 0x08012ce4 Section 0 queue.o(.text.xQueueGiveMutexRecursive) + [Anonymous Symbol] 0x08012d50 Section 0 queue.o(.text.xQueueReceive) + [Anonymous Symbol] 0x08012f2c Section 0 queue.o(.text.xQueueReceiveFromISR) + [Anonymous Symbol] 0x08013034 Section 0 queue.o(.text.xQueueSemaphoreTake) + [Anonymous Symbol] 0x08013260 Section 0 queue.o(.text.xQueueTakeMutexRecursive) + [Anonymous Symbol] 0x080132d0 Section 0 tasks.o(.text.xTaskCheckForTimeOut) + [Anonymous Symbol] 0x0801339c Section 0 tasks.o(.text.xTaskCreate) + [Anonymous Symbol] 0x0801343c Section 0 tasks.o(.text.xTaskCreateStatic) + [Anonymous Symbol] 0x0801350c Section 0 tasks.o(.text.xTaskGenericNotify) + [Anonymous Symbol] 0x08013684 Section 0 tasks.o(.text.xTaskGenericNotifyFromISR) + [Anonymous Symbol] 0x08013848 Section 0 tasks.o(.text.xTaskGetCurrentTaskHandle) + [Anonymous Symbol] 0x0801385c Section 0 tasks.o(.text.xTaskGetSchedulerState) + [Anonymous Symbol] 0x08013894 Section 0 tasks.o(.text.xTaskGetTickCount) + [Anonymous Symbol] 0x080138a8 Section 0 tasks.o(.text.xTaskGetTickCountFromISR) + [Anonymous Symbol] 0x080138c8 Section 0 tasks.o(.text.xTaskIncrementTick) + [Anonymous Symbol] 0x08013a8c Section 0 tasks.o(.text.xTaskNotifyWait) + [Anonymous Symbol] 0x08013b64 Section 0 tasks.o(.text.xTaskPriorityDisinherit) + [Anonymous Symbol] 0x08013c50 Section 0 tasks.o(.text.xTaskPriorityInherit) + [Anonymous Symbol] 0x08013d60 Section 0 tasks.o(.text.xTaskRemoveFromEventList) + [Anonymous Symbol] 0x08013e30 Section 0 tasks.o(.text.xTaskResumeAll) + [Anonymous Symbol] 0x08013fb8 Section 0 timers.o(.text.xTimerCreateTimerTask) + [Anonymous Symbol] 0x0801404c Section 0 timers.o(.text.xTimerGenericCommand) + i.__ARM_fpclassify 0x080140fc Section 0 fpclassify.o(i.__ARM_fpclassify) + i.__ARM_fpclassifyf 0x0801412c Section 0 fpclassifyf.o(i.__ARM_fpclassifyf) + i.__hardfp_asinf 0x08014154 Section 0 asinf.o(i.__hardfp_asinf) + i.__hardfp_atan 0x08014280 Section 0 atan.o(i.__hardfp_atan) + i.__hardfp_atan2 0x08014558 Section 0 atan2.o(i.__hardfp_atan2) + i.__hardfp_atan2f 0x08014758 Section 0 atan2f.o(i.__hardfp_atan2f) + i.__hardfp_cosf 0x08014a04 Section 0 cosf.o(i.__hardfp_cosf) + i.__hardfp_pow 0x08014b58 Section 0 pow.o(i.__hardfp_pow) + i.__hardfp_tanf 0x080157b8 Section 0 tanf.o(i.__hardfp_tanf) + i.__kernel_poly 0x08015934 Section 0 poly.o(i.__kernel_poly) + i.__mathlib_dbl_divzero 0x08015a30 Section 0 dunder.o(i.__mathlib_dbl_divzero) + i.__mathlib_dbl_infnan 0x08015a60 Section 0 dunder.o(i.__mathlib_dbl_infnan) + i.__mathlib_dbl_infnan2 0x08015a74 Section 0 dunder.o(i.__mathlib_dbl_infnan2) + i.__mathlib_dbl_invalid 0x08015a88 Section 0 dunder.o(i.__mathlib_dbl_invalid) + i.__mathlib_dbl_overflow 0x08015aa8 Section 0 dunder.o(i.__mathlib_dbl_overflow) + i.__mathlib_dbl_underflow 0x08015ac8 Section 0 dunder.o(i.__mathlib_dbl_underflow) + i.__mathlib_flt_infnan 0x08015ae8 Section 0 funder.o(i.__mathlib_flt_infnan) + i.__mathlib_flt_infnan2 0x08015aee Section 0 funder.o(i.__mathlib_flt_infnan2) + i.__mathlib_flt_invalid 0x08015af4 Section 0 funder.o(i.__mathlib_flt_invalid) + i.__mathlib_flt_underflow 0x08015b04 Section 0 funder.o(i.__mathlib_flt_underflow) + i.__mathlib_rredf2 0x08015b14 Section 0 rredf.o(i.__mathlib_rredf2) + i.atan 0x08015c68 Section 0 atan.o(i.atan) + i.fabs 0x08015c78 Section 0 fabs.o(i.fabs) + i.sqrt 0x08015c90 Section 0 sqrt.o(i.sqrt) + i.sqrtf 0x08015cfe Section 0 sqrtf.o(i.sqrtf) + $v0 0x08015d3c Number 0 basic.o(x$fpl$basic) + x$fpl$basic 0x08015d3c Section 24 basic.o(x$fpl$basic) + $v0 0x08015d54 Number 0 d2f.o(x$fpl$d2f) + x$fpl$d2f 0x08015d54 Section 98 d2f.o(x$fpl$d2f) + $v0 0x08015db8 Number 0 daddsub_clz.o(x$fpl$dadd) + x$fpl$dadd 0x08015db8 Section 336 daddsub_clz.o(x$fpl$dadd) + _dadd1 0x08015dc9 Thumb Code 0 daddsub_clz.o(x$fpl$dadd) + $v0 0x08015f08 Number 0 dcheck1.o(x$fpl$dcheck1) + x$fpl$dcheck1 0x08015f08 Section 16 dcheck1.o(x$fpl$dcheck1) + $v0 0x08015f18 Number 0 dcmpi.o(x$fpl$dcmpinf) + x$fpl$dcmpinf 0x08015f18 Section 24 dcmpi.o(x$fpl$dcmpinf) + $v0 0x08015f30 Number 0 ddiv.o(x$fpl$ddiv) + x$fpl$ddiv 0x08015f30 Section 692 ddiv.o(x$fpl$ddiv) + ddiv_entry 0x08015f37 Thumb Code 0 ddiv.o(x$fpl$ddiv) + $v0 0x080161e4 Number 0 deqf.o(x$fpl$deqf) + x$fpl$deqf 0x080161e4 Section 120 deqf.o(x$fpl$deqf) + $v0 0x0801625c Number 0 dfix.o(x$fpl$dfix) + x$fpl$dfix 0x0801625c Section 94 dfix.o(x$fpl$dfix) + $v0 0x080162bc Number 0 dfixu.o(x$fpl$dfixu) + x$fpl$dfixu 0x080162bc Section 90 dfixu.o(x$fpl$dfixu) + $v0 0x08016316 Number 0 dflt_clz.o(x$fpl$dflt) + x$fpl$dflt 0x08016316 Section 46 dflt_clz.o(x$fpl$dflt) + $v0 0x08016344 Number 0 dflt_clz.o(x$fpl$dfltu) + x$fpl$dfltu 0x08016344 Section 38 dflt_clz.o(x$fpl$dfltu) + $v0 0x0801636c Number 0 dgeqf.o(x$fpl$dgeqf) + x$fpl$dgeqf 0x0801636c Section 120 dgeqf.o(x$fpl$dgeqf) + $v0 0x080163e4 Number 0 dleqf.o(x$fpl$dleqf) + x$fpl$dleqf 0x080163e4 Section 120 dleqf.o(x$fpl$dleqf) + $v0 0x0801645c Number 0 dmul.o(x$fpl$dmul) + x$fpl$dmul 0x0801645c Section 340 dmul.o(x$fpl$dmul) + $v0 0x080165b0 Number 0 dnaninf.o(x$fpl$dnaninf) + x$fpl$dnaninf 0x080165b0 Section 156 dnaninf.o(x$fpl$dnaninf) + $v0 0x0801664c Number 0 dretinf.o(x$fpl$dretinf) + x$fpl$dretinf 0x0801664c Section 12 dretinf.o(x$fpl$dretinf) + $v0 0x08016658 Number 0 drleqf.o(x$fpl$drleqf) + x$fpl$drleqf 0x08016658 Section 108 drleqf.o(x$fpl$drleqf) + $v0 0x080166c4 Number 0 daddsub_clz.o(x$fpl$drsb) + x$fpl$drsb 0x080166c4 Section 22 daddsub_clz.o(x$fpl$drsb) + $v0 0x080166dc Number 0 dsqrt_umaal.o(x$fpl$dsqrt) + x$fpl$dsqrt 0x080166dc Section 408 dsqrt_umaal.o(x$fpl$dsqrt) + $v0 0x08016874 Number 0 daddsub_clz.o(x$fpl$dsub) + x$fpl$dsub 0x08016874 Section 476 daddsub_clz.o(x$fpl$dsub) + _dsub1 0x08016885 Thumb Code 0 daddsub_clz.o(x$fpl$dsub) + $v0 0x08016a50 Number 0 f2d.o(x$fpl$f2d) + x$fpl$f2d 0x08016a50 Section 86 f2d.o(x$fpl$f2d) + $v0 0x08016aa6 Number 0 dcmp.o(x$fpl$fcmp) + x$fpl$fcmp 0x08016aa6 Section 84 dcmp.o(x$fpl$fcmp) + $v0 0x08016afa Number 0 ffltll_clz.o(x$fpl$ffltll) + x$fpl$ffltll 0x08016afa Section 96 ffltll_clz.o(x$fpl$ffltll) + $v0 0x08016b5a Number 0 fnaninf.o(x$fpl$fnaninf) + x$fpl$fnaninf 0x08016b5a Section 140 fnaninf.o(x$fpl$fnaninf) + $v0 0x08016be6 Number 0 fpinit.o(x$fpl$fpinit) + x$fpl$fpinit 0x08016be6 Section 26 fpinit.o(x$fpl$fpinit) + $v0 0x08016c00 Number 0 fretinf.o(x$fpl$fretinf) + x$fpl$fretinf 0x08016c00 Section 10 fretinf.o(x$fpl$fretinf) + $v0 0x08016c0a Number 0 retnan.o(x$fpl$retnan) + x$fpl$retnan 0x08016c0a Section 100 retnan.o(x$fpl$retnan) + $v0 0x08016c6e Number 0 scalbn.o(x$fpl$scalbn) + x$fpl$scalbn 0x08016c6e Section 92 scalbn.o(x$fpl$scalbn) + $v0 0x08016cca Number 0 trapv.o(x$fpl$trapveneer) + x$fpl$trapveneer 0x08016cca Section 48 trapv.o(x$fpl$trapveneer) + x$fpl$usenofp 0x08016cfa Section 0 usenofp.o(x$fpl$usenofp) + bp 0x08016d00 Data 16 pow.o(.constdata) + .constdata 0x08016d00 Section 136 pow.o(.constdata) + dp_h 0x08016d10 Data 16 pow.o(.constdata) + dp_l 0x08016d20 Data 16 pow.o(.constdata) + L 0x08016d30 Data 48 pow.o(.constdata) + P 0x08016d60 Data 40 pow.o(.constdata) + atanhi 0x08016d88 Data 32 atan.o(.constdata) + .constdata 0x08016d88 Section 152 atan.o(.constdata) + atanlo 0x08016da8 Data 32 atan.o(.constdata) + aTodd 0x08016dc8 Data 40 atan.o(.constdata) + aTeven 0x08016df0 Data 48 atan.o(.constdata) + .constdata 0x08016e20 Section 8 qnan.o(.constdata) + twooverpi 0x08016e28 Data 32 rredf.o(.constdata) + .constdata 0x08016e28 Section 32 rredf.o(.constdata) + DMA_CalcBaseAndBitshift.flagBitshiftOffset 0x08016e60 Data 8 stm32f4xx_hal_dma.o(.rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset) + [Anonymous Symbol] 0x08016e60 Section 0 stm32f4xx_hal_dma.o(.rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset) + GPIO_Map 0x08016e68 Data 56 gpio_1.o(.rodata.GPIO_Map) + [Anonymous Symbol] 0x08016e68 Section 0 gpio_1.o(.rodata.GPIO_Map) + PWM_Map 0x08016ea0 Data 8 pwm.o(.rodata.PWM_Map) + [Anonymous Symbol] 0x08016ea0 Section 0 pwm.o(.rodata.PWM_Map) + imu_temp_ctrl_pid_param 0x08016f80 Data 32 atti_esti.o(.rodata.imu_temp_ctrl_pid_param) + [Anonymous Symbol] 0x08016f80 Section 0 atti_esti.o(.rodata.imu_temp_ctrl_pid_param) + [Anonymous Symbol] 0x08016fa0 Section 0 freertos.o(.rodata.str1.1) + .L.str 0x08016fac Data 5 tasks.o(.rodata.str1.1) + [Anonymous Symbol] 0x08016fac Section 0 tasks.o(.rodata.str1.1) + .L.str.1 0x08016fb1 Data 15 tasks.o(.rodata.str1.1) + .L.str.1 0x08016fb1 Data 5 timers.o(.rodata.str1.1) + [Anonymous Symbol] 0x08016fb1 Section 0 timers.o(.rodata.str1.1) + .L.str 0x08016fb6 Data 8 timers.o(.rodata.str1.1) + [Anonymous Symbol] 0x08016fbe Section 0 user_task.o(.rodata.str1.1) + .L.str.2 0x08016fc0 Data 12 tasks.o(.rodata.str1.1) + .L.str.3 0x08016fcc Data 12 tasks.o(.rodata.str1.1) beta 0x20000004 Data 4 ahrs.o(.data.beta) [Anonymous Symbol] 0x20000004 Section 0 ahrs.o(.data.beta) uxCriticalNesting 0x200000f8 Data 4 port.o(.data.uxCriticalNesting) @@ -7281,119 +7281,119 @@ Image Symbol Table [Anonymous Symbol] 0x20000360 Section 0 bsp_delay.o(.bss.fac_ms) fac_us 0x20000364 Data 1 bsp_delay.o(.bss.fac_us) [Anonymous Symbol] 0x20000364 Section 0 bsp_delay.o(.bss.fac_us) - id_parser 0x200009f4 Data 4 can_1.o(.bss.id_parser) - [Anonymous Symbol] 0x200009f4 Section 0 can_1.o(.bss.id_parser) - inited 0x20000a4c Data 1 can_1.o(.bss.inited) - [Anonymous Symbol] 0x20000a4c Section 0 can_1.o(.bss.inited) - inited 0x20000a4d Data 1 bmi088.o(.bss.inited) - [Anonymous Symbol] 0x20000a4d Section 0 bmi088.o(.bss.inited) - prvCheckForValidListAndQueue.ucStaticTimerQueueStorage 0x20000a5c Data 160 timers.o(.bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage) - [Anonymous Symbol] 0x20000a5c Section 0 timers.o(.bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage) - prvCheckForValidListAndQueue.xStaticTimerQueue 0x20000afc Data 80 timers.o(.bss.prvCheckForValidListAndQueue.xStaticTimerQueue) - [Anonymous Symbol] 0x20000afc Section 0 timers.o(.bss.prvCheckForValidListAndQueue.xStaticTimerQueue) - prvSampleTimeNow.xLastTime 0x20000b4c Data 4 timers.o(.bss.prvSampleTimeNow.xLastTime) - [Anonymous Symbol] 0x20000b4c Section 0 timers.o(.bss.prvSampleTimeNow.xLastTime) - pxCurrentTimerList 0x20000b54 Data 4 timers.o(.bss.pxCurrentTimerList) - [Anonymous Symbol] 0x20000b54 Section 0 timers.o(.bss.pxCurrentTimerList) - pxDelayedTaskList 0x20000b58 Data 4 tasks.o(.bss.pxDelayedTaskList) - [Anonymous Symbol] 0x20000b58 Section 0 tasks.o(.bss.pxDelayedTaskList) - pxEnd 0x20000b5c Data 4 heap_4.o(.bss.pxEnd) - [Anonymous Symbol] 0x20000b5c Section 0 heap_4.o(.bss.pxEnd) - pxOverflowDelayedTaskList 0x20000b60 Data 4 tasks.o(.bss.pxOverflowDelayedTaskList) - [Anonymous Symbol] 0x20000b60 Section 0 tasks.o(.bss.pxOverflowDelayedTaskList) - pxOverflowTimerList 0x20000b64 Data 4 timers.o(.bss.pxOverflowTimerList) - [Anonymous Symbol] 0x20000b64 Section 0 timers.o(.bss.pxOverflowTimerList) - pxReadyTasksLists 0x20000b68 Data 1120 tasks.o(.bss.pxReadyTasksLists) - [Anonymous Symbol] 0x20000b68 Section 0 tasks.o(.bss.pxReadyTasksLists) - queue_list 0x20000fc8 Data 4 can_1.o(.bss.queue_list) - [Anonymous Symbol] 0x20000fc8 Section 0 can_1.o(.bss.queue_list) - queue_mutex 0x20000fcc Data 4 can_1.o(.bss.queue_mutex) - [Anonymous Symbol] 0x20000fcc Section 0 can_1.o(.bss.queue_mutex) - sbus_rx_buf 0x20000ff4 Data 25 remote_control.o(.bss.sbus_rx_buf) - [Anonymous Symbol] 0x20000ff4 Section 0 remote_control.o(.bss.sbus_rx_buf) - thread_alert 0x20001078 Data 4 bmi088.o(.bss.thread_alert) - [Anonymous Symbol] 0x20001078 Section 0 bmi088.o(.bss.thread_alert) - tx_queues 0x2000107c Data 2064 can_1.o(.bss.tx_queues) - [Anonymous Symbol] 0x2000107c Section 0 can_1.o(.bss.tx_queues) - ucHeap 0x2000188c Data 24576 heap_4.o(.bss.ucHeap) - [Anonymous Symbol] 0x2000188c Section 0 heap_4.o(.bss.ucHeap) - ucMaxSysCallPriority 0x2000788c Data 1 port.o(.bss.ucMaxSysCallPriority) - [Anonymous Symbol] 0x2000788c Section 0 port.o(.bss.ucMaxSysCallPriority) - ulMaxPRIGROUPValue 0x20007890 Data 4 port.o(.bss.ulMaxPRIGROUPValue) - [Anonymous Symbol] 0x20007890 Section 0 port.o(.bss.ulMaxPRIGROUPValue) - ulTaskSwitchedInTime 0x20007894 Data 4 tasks.o(.bss.ulTaskSwitchedInTime) - [Anonymous Symbol] 0x20007894 Section 0 tasks.o(.bss.ulTaskSwitchedInTime) - ulTotalRunTime 0x20007898 Data 4 tasks.o(.bss.ulTotalRunTime) - [Anonymous Symbol] 0x20007898 Section 0 tasks.o(.bss.ulTotalRunTime) - uxCurrentNumberOfTasks 0x200078a0 Data 4 tasks.o(.bss.uxCurrentNumberOfTasks) - [Anonymous Symbol] 0x200078a0 Section 0 tasks.o(.bss.uxCurrentNumberOfTasks) - uxDeletedTasksWaitingCleanUp 0x200078a4 Data 4 tasks.o(.bss.uxDeletedTasksWaitingCleanUp) - [Anonymous Symbol] 0x200078a4 Section 0 tasks.o(.bss.uxDeletedTasksWaitingCleanUp) - uxSchedulerSuspended 0x200078a8 Data 4 tasks.o(.bss.uxSchedulerSuspended) - [Anonymous Symbol] 0x200078a8 Section 0 tasks.o(.bss.uxSchedulerSuspended) - uxTaskNumber 0x200078ac Data 4 tasks.o(.bss.uxTaskNumber) - [Anonymous Symbol] 0x200078ac Section 0 tasks.o(.bss.uxTaskNumber) - uxTopReadyPriority 0x200078b0 Data 4 tasks.o(.bss.uxTopReadyPriority) - [Anonymous Symbol] 0x200078b0 Section 0 tasks.o(.bss.uxTopReadyPriority) - vApplicationGetIdleTaskMemory.Idle_Stack 0x200078b4 Data 512 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_Stack) - [Anonymous Symbol] 0x200078b4 Section 0 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_Stack) - vApplicationGetIdleTaskMemory.Idle_TCB 0x20007ab4 Data 100 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_TCB) - [Anonymous Symbol] 0x20007ab4 Section 0 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_TCB) - vApplicationGetTimerTaskMemory.Timer_Stack 0x20007b18 Data 1024 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_Stack) - [Anonymous Symbol] 0x20007b18 Section 0 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_Stack) - vApplicationGetTimerTaskMemory.Timer_TCB 0x20007f18 Data 100 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_TCB) - [Anonymous Symbol] 0x20007f18 Section 0 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_TCB) - vofa_tx_buf 0x20007f94 Data 260 vofa.o(.bss.vofa_tx_buf) - [Anonymous Symbol] 0x20007f94 Section 0 vofa.o(.bss.vofa_tx_buf) - xActiveTimerList1 0x20008098 Data 20 timers.o(.bss.xActiveTimerList1) - [Anonymous Symbol] 0x20008098 Section 0 timers.o(.bss.xActiveTimerList1) - xActiveTimerList2 0x200080ac Data 20 timers.o(.bss.xActiveTimerList2) - [Anonymous Symbol] 0x200080ac Section 0 timers.o(.bss.xActiveTimerList2) - xBlockAllocatedBit 0x200080c0 Data 4 heap_4.o(.bss.xBlockAllocatedBit) - [Anonymous Symbol] 0x200080c0 Section 0 heap_4.o(.bss.xBlockAllocatedBit) - xDelayedTaskList1 0x200080c4 Data 20 tasks.o(.bss.xDelayedTaskList1) - [Anonymous Symbol] 0x200080c4 Section 0 tasks.o(.bss.xDelayedTaskList1) - xDelayedTaskList2 0x200080d8 Data 20 tasks.o(.bss.xDelayedTaskList2) - [Anonymous Symbol] 0x200080d8 Section 0 tasks.o(.bss.xDelayedTaskList2) - xFreeBytesRemaining 0x200080ec Data 4 heap_4.o(.bss.xFreeBytesRemaining) - [Anonymous Symbol] 0x200080ec Section 0 heap_4.o(.bss.xFreeBytesRemaining) - xIdleTaskHandle 0x200080f0 Data 4 tasks.o(.bss.xIdleTaskHandle) - [Anonymous Symbol] 0x200080f0 Section 0 tasks.o(.bss.xIdleTaskHandle) - xMinimumEverFreeBytesRemaining 0x200080f4 Data 4 heap_4.o(.bss.xMinimumEverFreeBytesRemaining) - [Anonymous Symbol] 0x200080f4 Section 0 heap_4.o(.bss.xMinimumEverFreeBytesRemaining) - xNextTaskUnblockTime 0x200080f8 Data 4 tasks.o(.bss.xNextTaskUnblockTime) - [Anonymous Symbol] 0x200080f8 Section 0 tasks.o(.bss.xNextTaskUnblockTime) - xNumOfOverflows 0x200080fc Data 4 tasks.o(.bss.xNumOfOverflows) - [Anonymous Symbol] 0x200080fc Section 0 tasks.o(.bss.xNumOfOverflows) - xNumberOfSuccessfulAllocations 0x20008100 Data 4 heap_4.o(.bss.xNumberOfSuccessfulAllocations) - [Anonymous Symbol] 0x20008100 Section 0 heap_4.o(.bss.xNumberOfSuccessfulAllocations) - xNumberOfSuccessfulFrees 0x20008104 Data 4 heap_4.o(.bss.xNumberOfSuccessfulFrees) - [Anonymous Symbol] 0x20008104 Section 0 heap_4.o(.bss.xNumberOfSuccessfulFrees) - xPendedTicks 0x20008108 Data 4 tasks.o(.bss.xPendedTicks) - [Anonymous Symbol] 0x20008108 Section 0 tasks.o(.bss.xPendedTicks) - xPendingReadyList 0x2000810c Data 20 tasks.o(.bss.xPendingReadyList) - [Anonymous Symbol] 0x2000810c Section 0 tasks.o(.bss.xPendingReadyList) - xSchedulerRunning 0x20008160 Data 4 tasks.o(.bss.xSchedulerRunning) - [Anonymous Symbol] 0x20008160 Section 0 tasks.o(.bss.xSchedulerRunning) - xStart 0x20008164 Data 8 heap_4.o(.bss.xStart) - [Anonymous Symbol] 0x20008164 Section 0 heap_4.o(.bss.xStart) - xSuspendedTaskList 0x2000816c Data 20 tasks.o(.bss.xSuspendedTaskList) - [Anonymous Symbol] 0x2000816c Section 0 tasks.o(.bss.xSuspendedTaskList) - xTasksWaitingTermination 0x20008180 Data 20 tasks.o(.bss.xTasksWaitingTermination) - [Anonymous Symbol] 0x20008180 Section 0 tasks.o(.bss.xTasksWaitingTermination) - xTickCount 0x20008194 Data 4 tasks.o(.bss.xTickCount) - [Anonymous Symbol] 0x20008194 Section 0 tasks.o(.bss.xTickCount) - xTimerQueue 0x20008198 Data 4 timers.o(.bss.xTimerQueue) - [Anonymous Symbol] 0x20008198 Section 0 timers.o(.bss.xTimerQueue) - xTimerTaskHandle 0x2000819c Data 4 timers.o(.bss.xTimerTaskHandle) - [Anonymous Symbol] 0x2000819c Section 0 timers.o(.bss.xTimerTaskHandle) - xYieldPending 0x200081a0 Data 4 tasks.o(.bss.xYieldPending) - [Anonymous Symbol] 0x200081a0 Section 0 tasks.o(.bss.xYieldPending) - Heap_Mem 0x200081a8 Data 512 startup_stm32f407xx.o(HEAP) - HEAP 0x200081a8 Section 512 startup_stm32f407xx.o(HEAP) - Stack_Mem 0x200083a8 Data 1024 startup_stm32f407xx.o(STACK) - STACK 0x200083a8 Section 1024 startup_stm32f407xx.o(STACK) - __initial_sp 0x200087a8 Data 0 startup_stm32f407xx.o(STACK) + id_parser 0x200009e8 Data 4 can_1.o(.bss.id_parser) + [Anonymous Symbol] 0x200009e8 Section 0 can_1.o(.bss.id_parser) + inited 0x20000a40 Data 1 can_1.o(.bss.inited) + [Anonymous Symbol] 0x20000a40 Section 0 can_1.o(.bss.inited) + inited 0x20000a41 Data 1 bmi088.o(.bss.inited) + [Anonymous Symbol] 0x20000a41 Section 0 bmi088.o(.bss.inited) + prvCheckForValidListAndQueue.ucStaticTimerQueueStorage 0x20000a50 Data 160 timers.o(.bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage) + [Anonymous Symbol] 0x20000a50 Section 0 timers.o(.bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage) + prvCheckForValidListAndQueue.xStaticTimerQueue 0x20000af0 Data 80 timers.o(.bss.prvCheckForValidListAndQueue.xStaticTimerQueue) + [Anonymous Symbol] 0x20000af0 Section 0 timers.o(.bss.prvCheckForValidListAndQueue.xStaticTimerQueue) + prvSampleTimeNow.xLastTime 0x20000b40 Data 4 timers.o(.bss.prvSampleTimeNow.xLastTime) + [Anonymous Symbol] 0x20000b40 Section 0 timers.o(.bss.prvSampleTimeNow.xLastTime) + pxCurrentTimerList 0x20000b48 Data 4 timers.o(.bss.pxCurrentTimerList) + [Anonymous Symbol] 0x20000b48 Section 0 timers.o(.bss.pxCurrentTimerList) + pxDelayedTaskList 0x20000b4c Data 4 tasks.o(.bss.pxDelayedTaskList) + [Anonymous Symbol] 0x20000b4c Section 0 tasks.o(.bss.pxDelayedTaskList) + pxEnd 0x20000b50 Data 4 heap_4.o(.bss.pxEnd) + [Anonymous Symbol] 0x20000b50 Section 0 heap_4.o(.bss.pxEnd) + pxOverflowDelayedTaskList 0x20000b54 Data 4 tasks.o(.bss.pxOverflowDelayedTaskList) + [Anonymous Symbol] 0x20000b54 Section 0 tasks.o(.bss.pxOverflowDelayedTaskList) + pxOverflowTimerList 0x20000b58 Data 4 timers.o(.bss.pxOverflowTimerList) + [Anonymous Symbol] 0x20000b58 Section 0 timers.o(.bss.pxOverflowTimerList) + pxReadyTasksLists 0x20000b5c Data 1120 tasks.o(.bss.pxReadyTasksLists) + [Anonymous Symbol] 0x20000b5c Section 0 tasks.o(.bss.pxReadyTasksLists) + queue_list 0x20000fbc Data 4 can_1.o(.bss.queue_list) + [Anonymous Symbol] 0x20000fbc Section 0 can_1.o(.bss.queue_list) + queue_mutex 0x20000fc0 Data 4 can_1.o(.bss.queue_mutex) + [Anonymous Symbol] 0x20000fc0 Section 0 can_1.o(.bss.queue_mutex) + sbus_rx_buf 0x20000fe8 Data 25 remote_control.o(.bss.sbus_rx_buf) + [Anonymous Symbol] 0x20000fe8 Section 0 remote_control.o(.bss.sbus_rx_buf) + thread_alert 0x2000106c Data 4 bmi088.o(.bss.thread_alert) + [Anonymous Symbol] 0x2000106c Section 0 bmi088.o(.bss.thread_alert) + tx_queues 0x20001070 Data 2064 can_1.o(.bss.tx_queues) + [Anonymous Symbol] 0x20001070 Section 0 can_1.o(.bss.tx_queues) + ucHeap 0x20001880 Data 24576 heap_4.o(.bss.ucHeap) + [Anonymous Symbol] 0x20001880 Section 0 heap_4.o(.bss.ucHeap) + ucMaxSysCallPriority 0x20007880 Data 1 port.o(.bss.ucMaxSysCallPriority) + [Anonymous Symbol] 0x20007880 Section 0 port.o(.bss.ucMaxSysCallPriority) + ulMaxPRIGROUPValue 0x20007884 Data 4 port.o(.bss.ulMaxPRIGROUPValue) + [Anonymous Symbol] 0x20007884 Section 0 port.o(.bss.ulMaxPRIGROUPValue) + ulTaskSwitchedInTime 0x20007888 Data 4 tasks.o(.bss.ulTaskSwitchedInTime) + [Anonymous Symbol] 0x20007888 Section 0 tasks.o(.bss.ulTaskSwitchedInTime) + ulTotalRunTime 0x2000788c Data 4 tasks.o(.bss.ulTotalRunTime) + [Anonymous Symbol] 0x2000788c Section 0 tasks.o(.bss.ulTotalRunTime) + uxCurrentNumberOfTasks 0x20007894 Data 4 tasks.o(.bss.uxCurrentNumberOfTasks) + [Anonymous Symbol] 0x20007894 Section 0 tasks.o(.bss.uxCurrentNumberOfTasks) + uxDeletedTasksWaitingCleanUp 0x20007898 Data 4 tasks.o(.bss.uxDeletedTasksWaitingCleanUp) + [Anonymous Symbol] 0x20007898 Section 0 tasks.o(.bss.uxDeletedTasksWaitingCleanUp) + uxSchedulerSuspended 0x2000789c Data 4 tasks.o(.bss.uxSchedulerSuspended) + [Anonymous Symbol] 0x2000789c Section 0 tasks.o(.bss.uxSchedulerSuspended) + uxTaskNumber 0x200078a0 Data 4 tasks.o(.bss.uxTaskNumber) + [Anonymous Symbol] 0x200078a0 Section 0 tasks.o(.bss.uxTaskNumber) + uxTopReadyPriority 0x200078a4 Data 4 tasks.o(.bss.uxTopReadyPriority) + [Anonymous Symbol] 0x200078a4 Section 0 tasks.o(.bss.uxTopReadyPriority) + vApplicationGetIdleTaskMemory.Idle_Stack 0x200078a8 Data 512 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_Stack) + [Anonymous Symbol] 0x200078a8 Section 0 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_Stack) + vApplicationGetIdleTaskMemory.Idle_TCB 0x20007aa8 Data 100 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_TCB) + [Anonymous Symbol] 0x20007aa8 Section 0 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_TCB) + vApplicationGetTimerTaskMemory.Timer_Stack 0x20007b0c Data 1024 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_Stack) + [Anonymous Symbol] 0x20007b0c Section 0 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_Stack) + vApplicationGetTimerTaskMemory.Timer_TCB 0x20007f0c Data 100 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_TCB) + [Anonymous Symbol] 0x20007f0c Section 0 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_TCB) + vofa_tx_buf 0x20007f88 Data 260 vofa.o(.bss.vofa_tx_buf) + [Anonymous Symbol] 0x20007f88 Section 0 vofa.o(.bss.vofa_tx_buf) + xActiveTimerList1 0x2000808c Data 20 timers.o(.bss.xActiveTimerList1) + [Anonymous Symbol] 0x2000808c Section 0 timers.o(.bss.xActiveTimerList1) + xActiveTimerList2 0x200080a0 Data 20 timers.o(.bss.xActiveTimerList2) + [Anonymous Symbol] 0x200080a0 Section 0 timers.o(.bss.xActiveTimerList2) + xBlockAllocatedBit 0x200080b4 Data 4 heap_4.o(.bss.xBlockAllocatedBit) + [Anonymous Symbol] 0x200080b4 Section 0 heap_4.o(.bss.xBlockAllocatedBit) + xDelayedTaskList1 0x200080b8 Data 20 tasks.o(.bss.xDelayedTaskList1) + [Anonymous Symbol] 0x200080b8 Section 0 tasks.o(.bss.xDelayedTaskList1) + xDelayedTaskList2 0x200080cc Data 20 tasks.o(.bss.xDelayedTaskList2) + [Anonymous Symbol] 0x200080cc Section 0 tasks.o(.bss.xDelayedTaskList2) + xFreeBytesRemaining 0x200080e0 Data 4 heap_4.o(.bss.xFreeBytesRemaining) + [Anonymous Symbol] 0x200080e0 Section 0 heap_4.o(.bss.xFreeBytesRemaining) + xIdleTaskHandle 0x200080e4 Data 4 tasks.o(.bss.xIdleTaskHandle) + [Anonymous Symbol] 0x200080e4 Section 0 tasks.o(.bss.xIdleTaskHandle) + xMinimumEverFreeBytesRemaining 0x200080e8 Data 4 heap_4.o(.bss.xMinimumEverFreeBytesRemaining) + [Anonymous Symbol] 0x200080e8 Section 0 heap_4.o(.bss.xMinimumEverFreeBytesRemaining) + xNextTaskUnblockTime 0x200080ec Data 4 tasks.o(.bss.xNextTaskUnblockTime) + [Anonymous Symbol] 0x200080ec Section 0 tasks.o(.bss.xNextTaskUnblockTime) + xNumOfOverflows 0x200080f0 Data 4 tasks.o(.bss.xNumOfOverflows) + [Anonymous Symbol] 0x200080f0 Section 0 tasks.o(.bss.xNumOfOverflows) + xNumberOfSuccessfulAllocations 0x200080f4 Data 4 heap_4.o(.bss.xNumberOfSuccessfulAllocations) + [Anonymous Symbol] 0x200080f4 Section 0 heap_4.o(.bss.xNumberOfSuccessfulAllocations) + xNumberOfSuccessfulFrees 0x200080f8 Data 4 heap_4.o(.bss.xNumberOfSuccessfulFrees) + [Anonymous Symbol] 0x200080f8 Section 0 heap_4.o(.bss.xNumberOfSuccessfulFrees) + xPendedTicks 0x200080fc Data 4 tasks.o(.bss.xPendedTicks) + [Anonymous Symbol] 0x200080fc Section 0 tasks.o(.bss.xPendedTicks) + xPendingReadyList 0x20008100 Data 20 tasks.o(.bss.xPendingReadyList) + [Anonymous Symbol] 0x20008100 Section 0 tasks.o(.bss.xPendingReadyList) + xSchedulerRunning 0x20008154 Data 4 tasks.o(.bss.xSchedulerRunning) + [Anonymous Symbol] 0x20008154 Section 0 tasks.o(.bss.xSchedulerRunning) + xStart 0x20008158 Data 8 heap_4.o(.bss.xStart) + [Anonymous Symbol] 0x20008158 Section 0 heap_4.o(.bss.xStart) + xSuspendedTaskList 0x20008160 Data 20 tasks.o(.bss.xSuspendedTaskList) + [Anonymous Symbol] 0x20008160 Section 0 tasks.o(.bss.xSuspendedTaskList) + xTasksWaitingTermination 0x20008174 Data 20 tasks.o(.bss.xTasksWaitingTermination) + [Anonymous Symbol] 0x20008174 Section 0 tasks.o(.bss.xTasksWaitingTermination) + xTickCount 0x20008188 Data 4 tasks.o(.bss.xTickCount) + [Anonymous Symbol] 0x20008188 Section 0 tasks.o(.bss.xTickCount) + xTimerQueue 0x2000818c Data 4 timers.o(.bss.xTimerQueue) + [Anonymous Symbol] 0x2000818c Section 0 timers.o(.bss.xTimerQueue) + xTimerTaskHandle 0x20008190 Data 4 timers.o(.bss.xTimerTaskHandle) + [Anonymous Symbol] 0x20008190 Section 0 timers.o(.bss.xTimerTaskHandle) + xYieldPending 0x20008194 Data 4 tasks.o(.bss.xYieldPending) + [Anonymous Symbol] 0x20008194 Section 0 tasks.o(.bss.xYieldPending) + Heap_Mem 0x20008198 Data 512 startup_stm32f407xx.o(HEAP) + HEAP 0x20008198 Section 512 startup_stm32f407xx.o(HEAP) + Stack_Mem 0x20008398 Data 1024 startup_stm32f407xx.o(STACK) + STACK 0x20008398 Section 1024 startup_stm32f407xx.o(STACK) + __initial_sp 0x20008798 Data 0 startup_stm32f407xx.o(STACK) Global Symbols @@ -7642,371 +7642,371 @@ Image Symbol Table EXTI4_IRQHandler 0x080038b1 Thumb Code 10 stm32f4xx_it.o(.text.EXTI4_IRQHandler) EXTI9_5_IRQHandler 0x080038bd Thumb Code 10 stm32f4xx_it.o(.text.EXTI9_5_IRQHandler) Error_Handler 0x080038c9 Thumb Code 6 main.o(.text.Error_Handler) - Gimbal_Control 0x080038d1 Thumb Code 1112 gimbal.o(.text.Gimbal_Control) - Gimbal_Init 0x08003d29 Thumb Code 290 gimbal.o(.text.Gimbal_Init) - Gimbal_Output 0x08003e4d Thumb Code 274 gimbal.o(.text.Gimbal_Output) - Gimbal_UpdateFeedback 0x08004001 Thumb Code 468 gimbal.o(.text.Gimbal_UpdateFeedback) - Gimbal_UpdateIMU 0x080041d5 Thumb Code 74 gimbal.o(.text.Gimbal_UpdateIMU) - HAL_CAN_ActivateNotification 0x08004221 Thumb Code 82 stm32f4xx_hal_can.o(.text.HAL_CAN_ActivateNotification) - HAL_CAN_AddTxMessage 0x08004275 Thumb Code 342 stm32f4xx_hal_can.o(.text.HAL_CAN_AddTxMessage) - HAL_CAN_ConfigFilter 0x080043cd Thumb Code 414 stm32f4xx_hal_can.o(.text.HAL_CAN_ConfigFilter) - HAL_CAN_ErrorCallback 0x0800456d Thumb Code 80 can_1.o(.text.HAL_CAN_ErrorCallback) - HAL_CAN_GetRxFifoFillLevel 0x080045bd Thumb Code 82 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxFifoFillLevel) - HAL_CAN_GetRxMessage 0x08004611 Thumb Code 530 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxMessage) - HAL_CAN_GetTxMailboxesFreeLevel 0x08004825 Thumb Code 112 stm32f4xx_hal_can.o(.text.HAL_CAN_GetTxMailboxesFreeLevel) - HAL_CAN_IRQHandler 0x08004895 Thumb Code 1010 stm32f4xx_hal_can.o(.text.HAL_CAN_IRQHandler) - HAL_CAN_Init 0x08004c89 Thumb Code 478 stm32f4xx_hal_can.o(.text.HAL_CAN_Init) - HAL_CAN_MspInit 0x08004e69 Thumb Code 464 can.o(.text.HAL_CAN_MspInit) - HAL_CAN_RxFifo0FullCallback 0x08005039 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo0FullCallback) - HAL_CAN_RxFifo0MsgPendingCallback 0x08005089 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo0MsgPendingCallback) - HAL_CAN_RxFifo1FullCallback 0x080050d9 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo1FullCallback) - HAL_CAN_RxFifo1MsgPendingCallback 0x08005129 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo1MsgPendingCallback) - HAL_CAN_SleepCallback 0x08005179 Thumb Code 80 can_1.o(.text.HAL_CAN_SleepCallback) - HAL_CAN_Start 0x080051c9 Thumb Code 138 stm32f4xx_hal_can.o(.text.HAL_CAN_Start) - HAL_CAN_TxMailbox0AbortCallback 0x08005255 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox0AbortCallback) - HAL_CAN_TxMailbox0CompleteCallback 0x080052a5 Thumb Code 76 can_1.o(.text.HAL_CAN_TxMailbox0CompleteCallback) - HAL_CAN_TxMailbox1AbortCallback 0x080052f1 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox1AbortCallback) - HAL_CAN_TxMailbox1CompleteCallback 0x08005341 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox1CompleteCallback) - HAL_CAN_TxMailbox2AbortCallback 0x08005391 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox2AbortCallback) - HAL_CAN_TxMailbox2CompleteCallback 0x080053e1 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox2CompleteCallback) - HAL_CAN_WakeUpFromRxMsgCallback 0x08005431 Thumb Code 80 can_1.o(.text.HAL_CAN_WakeUpFromRxMsgCallback) - HAL_DMA_Abort 0x08005481 Thumb Code 236 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort) - HAL_DMA_Abort_IT 0x0800556d Thumb Code 68 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort_IT) - HAL_DMA_GetState 0x080055b1 Thumb Code 14 stm32f4xx_hal_dma.o(.text.HAL_DMA_GetState) - HAL_DMA_IRQHandler 0x080055c1 Thumb Code 798 stm32f4xx_hal_dma.o(.text.HAL_DMA_IRQHandler) - HAL_DMA_Init 0x080058e1 Thumb Code 366 stm32f4xx_hal_dma.o(.text.HAL_DMA_Init) - HAL_DMA_Start_IT 0x08005a51 Thumb Code 194 stm32f4xx_hal_dma.o(.text.HAL_DMA_Start_IT) - HAL_Delay 0x08005b15 Thumb Code 66 stm32f4xx_hal.o(.text.HAL_Delay) - HAL_GPIO_EXTI_Callback 0x08005b59 Thumb Code 102 gpio_1.o(.text.HAL_GPIO_EXTI_Callback) - HAL_GPIO_EXTI_IRQHandler 0x08005bc1 Thumb Code 56 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_EXTI_IRQHandler) - HAL_GPIO_Init 0x08005bf9 Thumb Code 950 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_Init) - HAL_GPIO_ReadPin 0x08005fb1 Thumb Code 46 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_ReadPin) - HAL_GPIO_WritePin 0x08005fe1 Thumb Code 46 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_WritePin) - HAL_GetTick 0x08006011 Thumb Code 12 stm32f4xx_hal.o(.text.HAL_GetTick) - HAL_I2C_AbortCpltCallback 0x0800601d Thumb Code 84 i2c_1.o(.text.HAL_I2C_AbortCpltCallback) - HAL_I2C_AddrCallback 0x08006071 Thumb Code 16 stm32f4xx_hal_i2c.o(.text.HAL_I2C_AddrCallback) - HAL_I2C_ER_IRQHandler 0x08006081 Thumb Code 378 stm32f4xx_hal_i2c.o(.text.HAL_I2C_ER_IRQHandler) - HAL_I2C_EV_IRQHandler 0x080061fd Thumb Code 970 stm32f4xx_hal_i2c.o(.text.HAL_I2C_EV_IRQHandler) - HAL_I2C_ErrorCallback 0x080065c9 Thumb Code 84 i2c_1.o(.text.HAL_I2C_ErrorCallback) - HAL_I2C_Init 0x0800661d Thumb Code 676 stm32f4xx_hal_i2c.o(.text.HAL_I2C_Init) - HAL_I2C_ListenCpltCallback 0x080068c1 Thumb Code 84 i2c_1.o(.text.HAL_I2C_ListenCpltCallback) - HAL_I2C_MasterRxCpltCallback 0x08006915 Thumb Code 84 i2c_1.o(.text.HAL_I2C_MasterRxCpltCallback) - HAL_I2C_MasterTxCpltCallback 0x08006969 Thumb Code 80 i2c_1.o(.text.HAL_I2C_MasterTxCpltCallback) - HAL_I2C_MemRxCpltCallback 0x080069b9 Thumb Code 84 i2c_1.o(.text.HAL_I2C_MemRxCpltCallback) - HAL_I2C_MemTxCpltCallback 0x08006a0d Thumb Code 84 i2c_1.o(.text.HAL_I2C_MemTxCpltCallback) - HAL_I2C_MspInit 0x08006a61 Thumb Code 308 i2c.o(.text.HAL_I2C_MspInit) - HAL_I2C_SlaveRxCpltCallback 0x08006b95 Thumb Code 84 i2c_1.o(.text.HAL_I2C_SlaveRxCpltCallback) - HAL_I2C_SlaveTxCpltCallback 0x08006be9 Thumb Code 84 i2c_1.o(.text.HAL_I2C_SlaveTxCpltCallback) - HAL_IncTick 0x08006c3d Thumb Code 26 stm32f4xx_hal.o(.text.HAL_IncTick) - HAL_Init 0x08006c59 Thumb Code 54 stm32f4xx_hal.o(.text.HAL_Init) - HAL_InitTick 0x08006c91 Thumb Code 112 stm32f4xx_hal.o(.text.HAL_InitTick) - HAL_MspInit 0x08006d01 Thumb Code 88 stm32f4xx_hal_msp.o(.text.HAL_MspInit) - HAL_NVIC_DisableIRQ 0x08006d59 Thumb Code 20 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_DisableIRQ) - HAL_NVIC_EnableIRQ 0x08006d6d Thumb Code 20 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ) - HAL_NVIC_SetPriority 0x08006d81 Thumb Code 50 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) - HAL_NVIC_SetPriorityGrouping 0x08006db5 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) - HAL_RCC_ClockConfig 0x08006dc5 Thumb Code 610 stm32f4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) - HAL_RCC_GetHCLKFreq 0x08007029 Thumb Code 12 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) - HAL_RCC_GetPCLK1Freq 0x08007035 Thumb Code 34 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) - HAL_RCC_GetPCLK2Freq 0x08007059 Thumb Code 34 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) - HAL_RCC_GetSysClockFreq 0x0800707d Thumb Code 230 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) - HAL_RCC_OscConfig 0x08007165 Thumb Code 1726 stm32f4xx_hal_rcc.o(.text.HAL_RCC_OscConfig) - HAL_SPI_ErrorCallback 0x08007825 Thumb Code 84 spi_1.o(.text.HAL_SPI_ErrorCallback) - HAL_SPI_Init 0x08007879 Thumb Code 256 stm32f4xx_hal_spi.o(.text.HAL_SPI_Init) - HAL_SPI_MspInit 0x08007979 Thumb Code 528 spi.o(.text.HAL_SPI_MspInit) - HAL_SPI_Receive 0x08007b89 Thumb Code 590 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive) - HAL_SPI_Receive_DMA 0x08007dd9 Thumb Code 408 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive_DMA) - HAL_SPI_RxCpltCallback 0x08007f71 Thumb Code 84 spi_1.o(.text.HAL_SPI_RxCpltCallback) - HAL_SPI_RxHalfCpltCallback 0x08007fc5 Thumb Code 84 spi_1.o(.text.HAL_SPI_RxHalfCpltCallback) - HAL_SPI_Transmit 0x08008019 Thumb Code 674 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit) - HAL_SPI_TransmitReceive 0x080082bd Thumb Code 930 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive) - HAL_SPI_TransmitReceive_DMA 0x08008661 Thumb Code 532 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive_DMA) - HAL_SPI_Transmit_DMA 0x08008875 Thumb Code 364 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit_DMA) - HAL_SPI_TxCpltCallback 0x080089e1 Thumb Code 72 spi_1.o(.text.HAL_SPI_TxCpltCallback) - HAL_SPI_TxHalfCpltCallback 0x08008a29 Thumb Code 84 spi_1.o(.text.HAL_SPI_TxHalfCpltCallback) - HAL_SPI_TxRxCpltCallback 0x08008a7d Thumb Code 84 spi_1.o(.text.HAL_SPI_TxRxCpltCallback) - HAL_SPI_TxRxHalfCpltCallback 0x08008ad1 Thumb Code 84 spi_1.o(.text.HAL_SPI_TxRxHalfCpltCallback) - HAL_SYSTICK_Config 0x08008b25 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.HAL_SYSTICK_Config) - HAL_TIMEx_BreakCallback 0x08008b35 Thumb Code 8 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_BreakCallback) - HAL_TIMEx_CommutCallback 0x08008b3d Thumb Code 8 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_CommutCallback) - HAL_TIMEx_MasterConfigSynchronization 0x08008b45 Thumb Code 290 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) - HAL_TIM_Base_Init 0x08008c69 Thumb Code 156 stm32f4xx_hal_tim.o(.text.HAL_TIM_Base_Init) - HAL_TIM_Base_MspInit 0x08008d05 Thumb Code 138 tim.o(.text.HAL_TIM_Base_MspInit) - HAL_TIM_IC_CaptureCallback 0x08008d91 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_IC_CaptureCallback) - HAL_TIM_IRQHandler 0x08008d99 Thumb Code 538 stm32f4xx_hal_tim.o(.text.HAL_TIM_IRQHandler) - HAL_TIM_MspPostInit 0x08008fb5 Thumb Code 108 tim.o(.text.HAL_TIM_MspPostInit) - HAL_TIM_OC_DelayElapsedCallback 0x08009021 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_OC_DelayElapsedCallback) - HAL_TIM_PWM_ConfigChannel 0x08009029 Thumb Code 322 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel) - HAL_TIM_PWM_Init 0x0800916d Thumb Code 156 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Init) - HAL_TIM_PWM_MspInit 0x08009209 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit) - HAL_TIM_PWM_PulseFinishedCallback 0x08009211 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_PulseFinishedCallback) - HAL_TIM_PWM_Start 0x08009219 Thumb Code 458 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Start) - HAL_TIM_PeriodElapsedCallback 0x080093e5 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PeriodElapsedCallback) - HAL_TIM_TriggerCallback 0x080093ed Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_TriggerCallback) - HAL_UARTEx_RxEventCallback 0x080093f5 Thumb Code 12 stm32f4xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) - HAL_UART_ErrorCallback 0x08009401 Thumb Code 84 uart.o(.text.HAL_UART_ErrorCallback) - HAL_UART_IRQHandler 0x08009455 Thumb Code 1116 stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler) - HAL_UART_Init 0x080098b1 Thumb Code 158 stm32f4xx_hal_uart.o(.text.HAL_UART_Init) - HAL_UART_MspInit 0x08009951 Thumb Code 478 usart.o(.text.HAL_UART_MspInit) - HAL_UART_RxCpltCallback 0x08009b31 Thumb Code 84 uart.o(.text.HAL_UART_RxCpltCallback) - HAL_UART_Transmit_DMA 0x08009b85 Thumb Code 252 stm32f4xx_hal_uart.o(.text.HAL_UART_Transmit_DMA) - HAL_UART_Transmit_IT 0x08009c81 Thumb Code 114 stm32f4xx_hal_uart.o(.text.HAL_UART_Transmit_IT) - HAL_UART_TxCpltCallback 0x08009cf5 Thumb Code 84 uart.o(.text.HAL_UART_TxCpltCallback) - HAL_UART_TxHalfCpltCallback 0x08009d49 Thumb Code 80 uart.o(.text.HAL_UART_TxHalfCpltCallback) - HardFault_Handler 0x08009d99 Thumb Code 4 stm32f4xx_it.o(.text.HardFault_Handler) - I2C1_ER_IRQHandler 0x08009d9d Thumb Code 16 stm32f4xx_it.o(.text.I2C1_ER_IRQHandler) - I2C1_EV_IRQHandler 0x08009dad Thumb Code 16 stm32f4xx_it.o(.text.I2C1_EV_IRQHandler) - InvSqrt 0x0800b299 Thumb Code 118 user_math.o(.text.InvSqrt) - LowPassFilter2p_Apply 0x0800b311 Thumb Code 184 filter.o(.text.LowPassFilter2p_Apply) - LowPassFilter2p_Init 0x0800b3c9 Thumb Code 316 filter.o(.text.LowPassFilter2p_Init) - LowPassFilter2p_Reset 0x0800b505 Thumb Code 146 filter.o(.text.LowPassFilter2p_Reset) - MOTOR_DM_Enable 0x0800b631 Thumb Code 122 motor_dm.o(.text.MOTOR_DM_Enable) - MOTOR_DM_GetMotor 0x0800b6dd Thumb Code 134 motor_dm.o(.text.MOTOR_DM_GetMotor) - MOTOR_DM_MITCtrl 0x0800b765 Thumb Code 72 motor_dm.o(.text.MOTOR_DM_MITCtrl) - MOTOR_DM_Register 0x0800b905 Thumb Code 300 motor_dm.o(.text.MOTOR_DM_Register) - MOTOR_DM_Update 0x0800bb75 Thumb Code 268 motor_dm.o(.text.MOTOR_DM_Update) - MOTOR_RM_Ctrl 0x0800bd19 Thumb Code 368 motor_rm.o(.text.MOTOR_RM_Ctrl) - MOTOR_RM_GetMotor 0x0800bf8d Thumb Code 120 motor_rm.o(.text.MOTOR_RM_GetMotor) - MOTOR_RM_Register 0x0800c055 Thumb Code 288 motor_rm.o(.text.MOTOR_RM_Register) - MOTOR_RM_SetOutput 0x0800c175 Thumb Code 282 motor_rm.o(.text.MOTOR_RM_SetOutput) - MOTOR_RM_Update 0x0800c291 Thumb Code 258 motor_rm.o(.text.MOTOR_RM_Update) - MX_CAN1_Init 0x0800c395 Thumb Code 78 can.o(.text.MX_CAN1_Init) - MX_CAN2_Init 0x0800c3e5 Thumb Code 78 can.o(.text.MX_CAN2_Init) - MX_DMA_Init 0x0800c435 Thumb Code 134 dma.o(.text.MX_DMA_Init) - MX_FREERTOS_Init 0x0800c4bd Thumb Code 64 freertos.o(.text.MX_FREERTOS_Init) - MX_GPIO_Init 0x0800c4fd Thumb Code 554 gpio.o(.text.MX_GPIO_Init) - MX_I2C1_Init 0x0800c729 Thumb Code 72 i2c.o(.text.MX_I2C1_Init) - MX_I2C2_Init 0x0800c771 Thumb Code 72 i2c.o(.text.MX_I2C2_Init) - MX_SPI1_Init 0x0800c7b9 Thumb Code 82 spi.o(.text.MX_SPI1_Init) - MX_SPI2_Init 0x0800c80d Thumb Code 84 spi.o(.text.MX_SPI2_Init) - MX_TIM10_Init 0x0800c861 Thumb Code 142 tim.o(.text.MX_TIM10_Init) - MX_TIM7_Init 0x0800c8f1 Thumb Code 88 tim.o(.text.MX_TIM7_Init) - MX_USART1_UART_Init 0x0800c949 Thumb Code 64 usart.o(.text.MX_USART1_UART_Init) - MX_USART3_UART_Init 0x0800c989 Thumb Code 76 usart.o(.text.MX_USART3_UART_Init) - MemManage_Handler 0x0800c9d5 Thumb Code 4 stm32f4xx_it.o(.text.MemManage_Handler) - NMI_Handler 0x0800cbf5 Thumb Code 4 stm32f4xx_it.o(.text.NMI_Handler) - PID_Calc 0x0800ccf9 Thumb Code 752 pid.o(.text.PID_Calc) - PID_Init 0x0800cfe9 Thumb Code 406 pid.o(.text.PID_Init) - PID_Reset 0x0800d181 Thumb Code 72 pid.o(.text.PID_Reset) - PendSV_Handler 0x0800d1d1 Thumb Code 100 port.o(.text.PendSV_Handler) - RC_Init 0x0800d235 Thumb Code 148 bsp_rc.o(.text.RC_Init) - RC_restart 0x0800d2c9 Thumb Code 90 bsp_rc.o(.text.RC_restart) - SMC_Init 0x0800d325 Thumb Code 108 sliding.o(.text.SMC_Init) - SMC_PErrorUpdate 0x0800d391 Thumb Code 156 sliding.o(.text.SMC_PErrorUpdate) - SMC_Reset 0x0800d42d Thumb Code 78 sliding.o(.text.SMC_Reset) - SVC_Handler 0x0800da31 Thumb Code 36 port.o(.text.SVC_Handler) - Smc_Calc 0x0800db39 Thumb Code 1688 sliding.o(.text.Smc_Calc) - StartDefaultTask 0x0800e1d1 Thumb Code 18 freertos.o(.text.StartDefaultTask) - SysTick_Handler 0x0800e239 Thumb Code 24 stm32f4xx_it.o(.text.SysTick_Handler) - SystemClock_Config 0x0800e251 Thumb Code 188 main.o(.text.SystemClock_Config) - SystemInit 0x0800e30d Thumb Code 18 system_stm32f4xx.o(.text.SystemInit) - TIM7_IRQHandler 0x0800e321 Thumb Code 16 stm32f4xx_it.o(.text.TIM7_IRQHandler) - TIM_Base_SetConfig 0x0800e331 Thumb Code 420 stm32f4xx_hal_tim.o(.text.TIM_Base_SetConfig) - TIM_CCxChannelCmd 0x0800e4d5 Thumb Code 54 stm32f4xx_hal_tim.o(.text.TIM_CCxChannelCmd) - TIM_OC2_SetConfig 0x0800e5f9 Thumb Code 244 stm32f4xx_hal_tim.o(.text.TIM_OC2_SetConfig) - Task_Init 0x0800e885 Thumb Code 230 init.o(.text.Task_Init) - Task_atti_esti 0x0800e971 Thumb Code 400 atti_esti.o(.text.Task_atti_esti) - Task_gimbal_ctrl 0x0800eb01 Thumb Code 276 gimbal_ctrl.o(.text.Task_gimbal_ctrl) - Task_remote 0x0800ec19 Thumb Code 160 remote.o(.text.Task_remote) - Task_vofa 0x0800ecb9 Thumb Code 144 vofa_1.o(.text.Task_vofa) - USART1_IRQHandler 0x0800f2e9 Thumb Code 16 stm32f4xx_it.o(.text.USART1_IRQHandler) - USART3_IRQHandler 0x0800f2f9 Thumb Code 32 stm32f4xx_it.o(.text.USART3_IRQHandler) - USART3_IRQHandler1 0x0800f319 Thumb Code 34 remote_control.o(.text.USART3_IRQHandler1) - UsageFault_Handler 0x0800f33d Thumb Code 4 stm32f4xx_it.o(.text.UsageFault_Handler) - VOFA_JustFloat_Send 0x0800f341 Thumb Code 104 vofa.o(.text.VOFA_JustFloat_Send) - configureTimerForRunTimeStats 0x0800f5a5 Thumb Code 2 freertos.o(.text.configureTimerForRunTimeStats) - delay_init 0x0800f5c9 Thumb Code 62 bsp_delay.o(.text.delay_init) - eTaskGetState 0x0800f609 Thumb Code 246 tasks.o(.text.eTaskGetState) - getRunTimeCounterValue 0x0800f759 Thumb Code 4 freertos.o(.text.getRunTimeCounterValue) - main 0x0800f75d Thumb Code 80 main.o(.text.main) - map 0x0800f7ad Thumb Code 42 calc_lib.o(.text.map) - osDelay 0x0800f859 Thumb Code 52 cmsis_os2.o(.text.osDelay) - osDelayUntil 0x0800f88d Thumb Code 88 cmsis_os2.o(.text.osDelayUntil) - osKernelGetState 0x0800f8e5 Thumb Code 82 cmsis_os2.o(.text.osKernelGetState) - osKernelGetTickCount 0x0800f939 Thumb Code 38 cmsis_os2.o(.text.osKernelGetTickCount) - osKernelGetTickFreq 0x0800f961 Thumb Code 6 cmsis_os2.o(.text.osKernelGetTickFreq) - osKernelInitialize 0x0800f969 Thumb Code 70 cmsis_os2.o(.text.osKernelInitialize) - osKernelLock 0x0800f9b1 Thumb Code 86 cmsis_os2.o(.text.osKernelLock) - osKernelStart 0x0800fa09 Thumb Code 82 cmsis_os2.o(.text.osKernelStart) - osKernelUnlock 0x0800fa5d Thumb Code 110 cmsis_os2.o(.text.osKernelUnlock) - osMessageQueueGet 0x0800facd Thumb Code 192 cmsis_os2.o(.text.osMessageQueueGet) - osMessageQueueNew 0x0800fb8d Thumb Code 254 cmsis_os2.o(.text.osMessageQueueNew) - osMessageQueuePut 0x0800fc8d Thumb Code 196 cmsis_os2.o(.text.osMessageQueuePut) - osMessageQueueReset 0x0800fd51 Thumb Code 64 cmsis_os2.o(.text.osMessageQueueReset) - osMutexAcquire 0x0800fd91 Thumb Code 158 cmsis_os2.o(.text.osMutexAcquire) - osMutexNew 0x0800fe31 Thumb Code 296 cmsis_os2.o(.text.osMutexNew) - osMutexRelease 0x0800ff59 Thumb Code 126 cmsis_os2.o(.text.osMutexRelease) - osThreadFlagsSet 0x0800ffd9 Thumb Code 164 cmsis_os2.o(.text.osThreadFlagsSet) - osThreadFlagsWait 0x0801007d Thumb Code 282 cmsis_os2.o(.text.osThreadFlagsWait) - osThreadGetId 0x08010199 Thumb Code 16 cmsis_os2.o(.text.osThreadGetId) - osThreadNew 0x080101a9 Thumb Code 346 cmsis_os2.o(.text.osThreadNew) - osThreadTerminate 0x08010305 Thumb Code 94 cmsis_os2.o(.text.osThreadTerminate) - pvPortMalloc 0x08011265 Thumb Code 492 heap_4.o(.text.pvPortMalloc) - pvTaskIncrementMutexHeldCount 0x08011451 Thumb Code 44 tasks.o(.text.pvTaskIncrementMutexHeldCount) - pxPortInitialiseStack 0x0801147d Thumb Code 94 port.o(.text.pxPortInitialiseStack) - remote_ParseHost 0x080114dd Thumb Code 68 ai.o(.text.remote_ParseHost) - remote_control_init 0x08011521 Thumb Code 18 remote_control.o(.text.remote_control_init) - user_delay_ms 0x0801181d Thumb Code 46 calc_lib.o(.text.user_delay_ms) - user_delay_us 0x0801184d Thumb Code 68 calc_lib.o(.text.user_delay_us) - uxListRemove 0x08011891 Thumb Code 72 list.o(.text.uxListRemove) - vApplicationGetIdleTaskMemory 0x080118d9 Thumb Code 42 cmsis_os2.o(.text.vApplicationGetIdleTaskMemory) - vApplicationGetTimerTaskMemory 0x08011905 Thumb Code 44 cmsis_os2.o(.text.vApplicationGetTimerTaskMemory) - vApplicationStackOverflowHook 0x08011931 Thumb Code 10 freertos.o(.text.vApplicationStackOverflowHook) - vListInitialise 0x0801193d Thumb Code 46 list.o(.text.vListInitialise) - vListInitialiseItem 0x0801196d Thumb Code 14 list.o(.text.vListInitialiseItem) - vListInsert 0x0801197d Thumb Code 106 list.o(.text.vListInsert) - vListInsertEnd 0x080119e9 Thumb Code 58 list.o(.text.vListInsertEnd) - vPortEnterCritical 0x08011a39 Thumb Code 86 port.o(.text.vPortEnterCritical) - vPortExitCritical 0x08011a91 Thumb Code 74 port.o(.text.vPortExitCritical) - vPortFree 0x08011add Thumb Code 206 heap_4.o(.text.vPortFree) - vPortSetupTimerInterrupt 0x08011bad Thumb Code 68 port.o(.text.vPortSetupTimerInterrupt) - vPortValidateInterruptPriority 0x08011bf1 Thumb Code 132 port.o(.text.vPortValidateInterruptPriority) - vQueueAddToRegistry 0x08011c75 Thumb Code 82 queue.o(.text.vQueueAddToRegistry) - vQueueWaitForMessageRestricted 0x08011cc9 Thumb Code 100 queue.o(.text.vQueueWaitForMessageRestricted) - vTaskDelay 0x08011d2d Thumb Code 110 tasks.o(.text.vTaskDelay) - vTaskDelayUntil 0x08011d9d Thumb Code 276 tasks.o(.text.vTaskDelayUntil) - vTaskDelete 0x08011eb1 Thumb Code 270 tasks.o(.text.vTaskDelete) - vTaskInternalSetTimeOutState 0x08011fc1 Thumb Code 36 tasks.o(.text.vTaskInternalSetTimeOutState) - vTaskMissedYield 0x08011fe5 Thumb Code 14 tasks.o(.text.vTaskMissedYield) - vTaskPlaceOnEventList 0x08011ff5 Thumb Code 66 tasks.o(.text.vTaskPlaceOnEventList) - vTaskPlaceOnEventListRestricted 0x08012039 Thumb Code 82 tasks.o(.text.vTaskPlaceOnEventListRestricted) - vTaskPriorityDisinheritAfterTimeout 0x0801208d Thumb Code 308 tasks.o(.text.vTaskPriorityDisinheritAfterTimeout) - vTaskStartScheduler 0x080121c1 Thumb Code 228 tasks.o(.text.vTaskStartScheduler) - vTaskSuspendAll 0x080122a5 Thumb Code 16 tasks.o(.text.vTaskSuspendAll) - vTaskSwitchContext 0x080122b5 Thumb Code 384 tasks.o(.text.vTaskSwitchContext) - xPortStartScheduler 0x08012435 Thumb Code 342 port.o(.text.xPortStartScheduler) - xPortSysTickHandler 0x0801258d Thumb Code 60 port.o(.text.xPortSysTickHandler) - xQueueCreateMutex 0x080125c9 Thumb Code 38 queue.o(.text.xQueueCreateMutex) - xQueueCreateMutexStatic 0x080125f1 Thumb Code 50 queue.o(.text.xQueueCreateMutexStatic) - xQueueGenericCreate 0x08012625 Thumb Code 116 queue.o(.text.xQueueGenericCreate) - xQueueGenericCreateStatic 0x08012699 Thumb Code 270 queue.o(.text.xQueueGenericCreateStatic) - xQueueGenericReset 0x080127a9 Thumb Code 186 queue.o(.text.xQueueGenericReset) - xQueueGenericSend 0x08012865 Thumb Code 556 queue.o(.text.xQueueGenericSend) - xQueueGenericSendFromISR 0x08012a91 Thumb Code 332 queue.o(.text.xQueueGenericSendFromISR) - xQueueGiveMutexRecursive 0x08012bdd Thumb Code 108 queue.o(.text.xQueueGiveMutexRecursive) - xQueueReceive 0x08012c49 Thumb Code 476 queue.o(.text.xQueueReceive) - xQueueReceiveFromISR 0x08012e25 Thumb Code 264 queue.o(.text.xQueueReceiveFromISR) - xQueueSemaphoreTake 0x08012f2d Thumb Code 556 queue.o(.text.xQueueSemaphoreTake) - xQueueTakeMutexRecursive 0x08013159 Thumb Code 110 queue.o(.text.xQueueTakeMutexRecursive) - xTaskCheckForTimeOut 0x080131c9 Thumb Code 204 tasks.o(.text.xTaskCheckForTimeOut) - xTaskCreate 0x08013295 Thumb Code 158 tasks.o(.text.xTaskCreate) - xTaskCreateStatic 0x08013335 Thumb Code 206 tasks.o(.text.xTaskCreateStatic) - xTaskGenericNotify 0x08013405 Thumb Code 376 tasks.o(.text.xTaskGenericNotify) - xTaskGenericNotifyFromISR 0x0801357d Thumb Code 452 tasks.o(.text.xTaskGenericNotifyFromISR) - xTaskGetCurrentTaskHandle 0x08013741 Thumb Code 20 tasks.o(.text.xTaskGetCurrentTaskHandle) - xTaskGetSchedulerState 0x08013755 Thumb Code 56 tasks.o(.text.xTaskGetSchedulerState) - xTaskGetTickCount 0x0801378d Thumb Code 20 tasks.o(.text.xTaskGetTickCount) - xTaskGetTickCountFromISR 0x080137a1 Thumb Code 30 tasks.o(.text.xTaskGetTickCountFromISR) - xTaskIncrementTick 0x080137c1 Thumb Code 452 tasks.o(.text.xTaskIncrementTick) - xTaskNotifyWait 0x08013985 Thumb Code 214 tasks.o(.text.xTaskNotifyWait) - xTaskPriorityDisinherit 0x08013a5d Thumb Code 236 tasks.o(.text.xTaskPriorityDisinherit) - xTaskPriorityInherit 0x08013b49 Thumb Code 270 tasks.o(.text.xTaskPriorityInherit) - xTaskRemoveFromEventList 0x08013c59 Thumb Code 206 tasks.o(.text.xTaskRemoveFromEventList) - xTaskResumeAll 0x08013d29 Thumb Code 390 tasks.o(.text.xTaskResumeAll) - xTimerCreateTimerTask 0x08013eb1 Thumb Code 148 timers.o(.text.xTimerCreateTimerTask) - xTimerGenericCommand 0x08013f45 Thumb Code 176 timers.o(.text.xTimerGenericCommand) - __ARM_fpclassify 0x08013ff5 Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) - __ARM_fpclassifyf 0x08014025 Thumb Code 38 fpclassifyf.o(i.__ARM_fpclassifyf) - __hardfp_asinf 0x0801404d Thumb Code 258 asinf.o(i.__hardfp_asinf) - __hardfp_atan 0x08014179 Thumb Code 622 atan.o(i.__hardfp_atan) - __hardfp_atan2 0x08014451 Thumb Code 448 atan2.o(i.__hardfp_atan2) - __hardfp_atan2f 0x08014651 Thumb Code 594 atan2f.o(i.__hardfp_atan2f) - __hardfp_cosf 0x080148fd Thumb Code 280 cosf.o(i.__hardfp_cosf) - __hardfp_pow 0x08014a51 Thumb Code 3088 pow.o(i.__hardfp_pow) - __hardfp_tanf 0x080156b1 Thumb Code 322 tanf.o(i.__hardfp_tanf) - __kernel_poly 0x0801582d Thumb Code 248 poly.o(i.__kernel_poly) - __mathlib_dbl_divzero 0x08015929 Thumb Code 28 dunder.o(i.__mathlib_dbl_divzero) - __mathlib_dbl_infnan 0x08015959 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan) - __mathlib_dbl_infnan2 0x0801596d Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan2) - __mathlib_dbl_invalid 0x08015981 Thumb Code 24 dunder.o(i.__mathlib_dbl_invalid) - __mathlib_dbl_overflow 0x080159a1 Thumb Code 24 dunder.o(i.__mathlib_dbl_overflow) - __mathlib_dbl_underflow 0x080159c1 Thumb Code 24 dunder.o(i.__mathlib_dbl_underflow) - __mathlib_flt_infnan 0x080159e1 Thumb Code 6 funder.o(i.__mathlib_flt_infnan) - __mathlib_flt_infnan2 0x080159e7 Thumb Code 6 funder.o(i.__mathlib_flt_infnan2) - __mathlib_flt_invalid 0x080159ed Thumb Code 10 funder.o(i.__mathlib_flt_invalid) - __mathlib_flt_underflow 0x080159fd Thumb Code 10 funder.o(i.__mathlib_flt_underflow) - __mathlib_rredf2 0x08015a0d Thumb Code 316 rredf.o(i.__mathlib_rredf2) - atan 0x08015b61 Thumb Code 16 atan.o(i.atan) - fabs 0x08015b71 Thumb Code 24 fabs.o(i.fabs) - sqrt 0x08015b89 Thumb Code 110 sqrt.o(i.sqrt) - sqrtf 0x08015bf7 Thumb Code 62 sqrtf.o(i.sqrtf) - __aeabi_dneg 0x08015c35 Thumb Code 0 basic.o(x$fpl$basic) - _dneg 0x08015c35 Thumb Code 6 basic.o(x$fpl$basic) - __aeabi_fneg 0x08015c3b Thumb Code 0 basic.o(x$fpl$basic) - _fneg 0x08015c3b Thumb Code 6 basic.o(x$fpl$basic) - _dabs 0x08015c41 Thumb Code 6 basic.o(x$fpl$basic) - _fabs 0x08015c47 Thumb Code 6 basic.o(x$fpl$basic) - __aeabi_d2f 0x08015c4d Thumb Code 0 d2f.o(x$fpl$d2f) - _d2f 0x08015c4d Thumb Code 98 d2f.o(x$fpl$d2f) - __aeabi_dadd 0x08015cb1 Thumb Code 0 daddsub_clz.o(x$fpl$dadd) - _dadd 0x08015cb1 Thumb Code 332 daddsub_clz.o(x$fpl$dadd) - __fpl_dcheck_NaN1 0x08015e01 Thumb Code 10 dcheck1.o(x$fpl$dcheck1) - __fpl_dcmp_Inf 0x08015e11 Thumb Code 24 dcmpi.o(x$fpl$dcmpinf) - __aeabi_ddiv 0x08015e29 Thumb Code 0 ddiv.o(x$fpl$ddiv) - _ddiv 0x08015e29 Thumb Code 556 ddiv.o(x$fpl$ddiv) - __aeabi_cdcmpeq 0x080160dd Thumb Code 0 deqf.o(x$fpl$deqf) - _dcmpeq 0x080160dd Thumb Code 120 deqf.o(x$fpl$deqf) - __aeabi_d2iz 0x08016155 Thumb Code 0 dfix.o(x$fpl$dfix) - _dfix 0x08016155 Thumb Code 94 dfix.o(x$fpl$dfix) - __aeabi_d2uiz 0x080161b5 Thumb Code 0 dfixu.o(x$fpl$dfixu) - _dfixu 0x080161b5 Thumb Code 90 dfixu.o(x$fpl$dfixu) - __aeabi_i2d 0x0801620f Thumb Code 0 dflt_clz.o(x$fpl$dflt) - _dflt 0x0801620f Thumb Code 46 dflt_clz.o(x$fpl$dflt) - __aeabi_ui2d 0x0801623d Thumb Code 0 dflt_clz.o(x$fpl$dfltu) - _dfltu 0x0801623d Thumb Code 38 dflt_clz.o(x$fpl$dfltu) - __aeabi_cdcmpge 0x08016265 Thumb Code 0 dgeqf.o(x$fpl$dgeqf) - _dcmpge 0x08016265 Thumb Code 120 dgeqf.o(x$fpl$dgeqf) - __aeabi_cdcmple 0x080162dd Thumb Code 0 dleqf.o(x$fpl$dleqf) - _dcmple 0x080162dd Thumb Code 120 dleqf.o(x$fpl$dleqf) - __fpl_dcmple_InfNaN 0x0801633f Thumb Code 0 dleqf.o(x$fpl$dleqf) - __aeabi_dmul 0x08016355 Thumb Code 0 dmul.o(x$fpl$dmul) - _dmul 0x08016355 Thumb Code 332 dmul.o(x$fpl$dmul) - __fpl_dnaninf 0x080164a9 Thumb Code 156 dnaninf.o(x$fpl$dnaninf) - __fpl_dretinf 0x08016545 Thumb Code 12 dretinf.o(x$fpl$dretinf) - __aeabi_cdrcmple 0x08016551 Thumb Code 0 drleqf.o(x$fpl$drleqf) - _drcmple 0x08016551 Thumb Code 108 drleqf.o(x$fpl$drleqf) - __aeabi_drsub 0x080165bd Thumb Code 0 daddsub_clz.o(x$fpl$drsb) - _drsb 0x080165bd Thumb Code 22 daddsub_clz.o(x$fpl$drsb) - _dsqrt 0x080165d5 Thumb Code 404 dsqrt_umaal.o(x$fpl$dsqrt) - __aeabi_dsub 0x0801676d Thumb Code 0 daddsub_clz.o(x$fpl$dsub) - _dsub 0x0801676d Thumb Code 472 daddsub_clz.o(x$fpl$dsub) - __aeabi_f2d 0x08016949 Thumb Code 0 f2d.o(x$fpl$f2d) - _f2d 0x08016949 Thumb Code 86 f2d.o(x$fpl$f2d) - __aeabi_dcmpeq 0x0801699f Thumb Code 0 dcmp.o(x$fpl$fcmp) - _deq 0x0801699f Thumb Code 14 dcmp.o(x$fpl$fcmp) - _dneq 0x080169ad Thumb Code 14 dcmp.o(x$fpl$fcmp) - __aeabi_dcmpgt 0x080169bb Thumb Code 0 dcmp.o(x$fpl$fcmp) - _dgr 0x080169bb Thumb Code 14 dcmp.o(x$fpl$fcmp) - __aeabi_dcmpge 0x080169c9 Thumb Code 0 dcmp.o(x$fpl$fcmp) - _dgeq 0x080169c9 Thumb Code 14 dcmp.o(x$fpl$fcmp) - __aeabi_dcmple 0x080169d7 Thumb Code 0 dcmp.o(x$fpl$fcmp) - _dleq 0x080169d7 Thumb Code 14 dcmp.o(x$fpl$fcmp) - __aeabi_dcmplt 0x080169e5 Thumb Code 0 dcmp.o(x$fpl$fcmp) - _dls 0x080169e5 Thumb Code 14 dcmp.o(x$fpl$fcmp) - __aeabi_ul2f 0x080169f3 Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) - _ll_uto_f 0x080169f3 Thumb Code 6 ffltll_clz.o(x$fpl$ffltll) - __aeabi_l2f 0x080169f9 Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) - _ll_sto_f 0x080169f9 Thumb Code 90 ffltll_clz.o(x$fpl$ffltll) - __fpl_fnaninf 0x08016a53 Thumb Code 140 fnaninf.o(x$fpl$fnaninf) - _fp_init 0x08016adf Thumb Code 26 fpinit.o(x$fpl$fpinit) - __fplib_config_fpu_vfp 0x08016af7 Thumb Code 0 fpinit.o(x$fpl$fpinit) - __fplib_config_pureend_doubles 0x08016af7 Thumb Code 0 fpinit.o(x$fpl$fpinit) - __fpl_fretinf 0x08016af9 Thumb Code 10 fretinf.o(x$fpl$fretinf) - __fpl_return_NaN 0x08016b03 Thumb Code 100 retnan.o(x$fpl$retnan) - __ARM_scalbn 0x08016b67 Thumb Code 92 scalbn.o(x$fpl$scalbn) - __fpl_cmpreturn 0x08016bc3 Thumb Code 48 trapv.o(x$fpl$trapveneer) - __I$use$fp 0x08016bf2 Number 0 usenofp.o(x$fpl$usenofp) - __mathlib_zero 0x08016d18 Data 8 qnan.o(.constdata) - AHBPrescTable 0x08016d40 Data 16 system_stm32f4xx.o(.rodata.AHBPrescTable) - APBPrescTable 0x08016d50 Data 8 system_stm32f4xx.o(.rodata.APBPrescTable) - attr_atti_esti 0x08016da0 Data 36 user_task.o(.rodata.attr_atti_esti) - attr_gimbal_ctrl 0x08016dc4 Data 36 user_task.o(.rodata.attr_gimbal_ctrl) - attr_init 0x08016de8 Data 36 user_task.o(.rodata.attr_init) - attr_remote 0x08016e0c Data 36 user_task.o(.rodata.attr_remote) - attr_vofa 0x08016e30 Data 36 user_task.o(.rodata.attr_vofa) - defaultTask_attributes 0x08016e54 Data 36 freertos.o(.rodata.defaultTask_attributes) - Region$$Table$$Base 0x08016ee4 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x08016f04 Number 0 anon$$obj.o(Region$$Table) + Gimbal_Control 0x080038d1 Thumb Code 1156 gimbal.o(.text.Gimbal_Control) + Gimbal_Init 0x08003d55 Thumb Code 290 gimbal.o(.text.Gimbal_Init) + Gimbal_Output 0x08003e79 Thumb Code 274 gimbal.o(.text.Gimbal_Output) + Gimbal_UpdateFeedback 0x08004021 Thumb Code 528 gimbal.o(.text.Gimbal_UpdateFeedback) + Gimbal_UpdateIMU 0x08004231 Thumb Code 74 gimbal.o(.text.Gimbal_UpdateIMU) + HAL_CAN_ActivateNotification 0x0800427d Thumb Code 82 stm32f4xx_hal_can.o(.text.HAL_CAN_ActivateNotification) + HAL_CAN_AddTxMessage 0x080042d1 Thumb Code 342 stm32f4xx_hal_can.o(.text.HAL_CAN_AddTxMessage) + HAL_CAN_ConfigFilter 0x08004429 Thumb Code 414 stm32f4xx_hal_can.o(.text.HAL_CAN_ConfigFilter) + HAL_CAN_ErrorCallback 0x080045c9 Thumb Code 80 can_1.o(.text.HAL_CAN_ErrorCallback) + HAL_CAN_GetRxFifoFillLevel 0x08004619 Thumb Code 82 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxFifoFillLevel) + HAL_CAN_GetRxMessage 0x0800466d Thumb Code 530 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxMessage) + HAL_CAN_GetTxMailboxesFreeLevel 0x08004881 Thumb Code 112 stm32f4xx_hal_can.o(.text.HAL_CAN_GetTxMailboxesFreeLevel) + HAL_CAN_IRQHandler 0x080048f1 Thumb Code 1010 stm32f4xx_hal_can.o(.text.HAL_CAN_IRQHandler) + HAL_CAN_Init 0x08004ce5 Thumb Code 478 stm32f4xx_hal_can.o(.text.HAL_CAN_Init) + HAL_CAN_MspInit 0x08004ec5 Thumb Code 464 can.o(.text.HAL_CAN_MspInit) + HAL_CAN_RxFifo0FullCallback 0x08005095 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo0FullCallback) + HAL_CAN_RxFifo0MsgPendingCallback 0x080050e5 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo0MsgPendingCallback) + HAL_CAN_RxFifo1FullCallback 0x08005135 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo1FullCallback) + HAL_CAN_RxFifo1MsgPendingCallback 0x08005185 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo1MsgPendingCallback) + HAL_CAN_SleepCallback 0x080051d5 Thumb Code 80 can_1.o(.text.HAL_CAN_SleepCallback) + HAL_CAN_Start 0x08005225 Thumb Code 138 stm32f4xx_hal_can.o(.text.HAL_CAN_Start) + HAL_CAN_TxMailbox0AbortCallback 0x080052b1 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox0AbortCallback) + HAL_CAN_TxMailbox0CompleteCallback 0x08005301 Thumb Code 76 can_1.o(.text.HAL_CAN_TxMailbox0CompleteCallback) + HAL_CAN_TxMailbox1AbortCallback 0x0800534d Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox1AbortCallback) + HAL_CAN_TxMailbox1CompleteCallback 0x0800539d Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox1CompleteCallback) + HAL_CAN_TxMailbox2AbortCallback 0x080053ed Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox2AbortCallback) + HAL_CAN_TxMailbox2CompleteCallback 0x0800543d Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox2CompleteCallback) + HAL_CAN_WakeUpFromRxMsgCallback 0x0800548d Thumb Code 80 can_1.o(.text.HAL_CAN_WakeUpFromRxMsgCallback) + HAL_DMA_Abort 0x080054dd Thumb Code 236 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort) + HAL_DMA_Abort_IT 0x080055c9 Thumb Code 68 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort_IT) + HAL_DMA_GetState 0x0800560d Thumb Code 14 stm32f4xx_hal_dma.o(.text.HAL_DMA_GetState) + HAL_DMA_IRQHandler 0x0800561d Thumb Code 798 stm32f4xx_hal_dma.o(.text.HAL_DMA_IRQHandler) + HAL_DMA_Init 0x0800593d Thumb Code 366 stm32f4xx_hal_dma.o(.text.HAL_DMA_Init) + HAL_DMA_Start_IT 0x08005aad Thumb Code 194 stm32f4xx_hal_dma.o(.text.HAL_DMA_Start_IT) + HAL_Delay 0x08005b71 Thumb Code 66 stm32f4xx_hal.o(.text.HAL_Delay) + HAL_GPIO_EXTI_Callback 0x08005bb5 Thumb Code 102 gpio_1.o(.text.HAL_GPIO_EXTI_Callback) + HAL_GPIO_EXTI_IRQHandler 0x08005c1d Thumb Code 56 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_EXTI_IRQHandler) + HAL_GPIO_Init 0x08005c55 Thumb Code 950 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_Init) + HAL_GPIO_ReadPin 0x0800600d Thumb Code 46 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_ReadPin) + HAL_GPIO_WritePin 0x0800603d Thumb Code 46 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_WritePin) + HAL_GetTick 0x0800606d Thumb Code 12 stm32f4xx_hal.o(.text.HAL_GetTick) + HAL_I2C_AbortCpltCallback 0x08006079 Thumb Code 84 i2c_1.o(.text.HAL_I2C_AbortCpltCallback) + HAL_I2C_AddrCallback 0x080060cd Thumb Code 16 stm32f4xx_hal_i2c.o(.text.HAL_I2C_AddrCallback) + HAL_I2C_ER_IRQHandler 0x080060dd Thumb Code 378 stm32f4xx_hal_i2c.o(.text.HAL_I2C_ER_IRQHandler) + HAL_I2C_EV_IRQHandler 0x08006259 Thumb Code 970 stm32f4xx_hal_i2c.o(.text.HAL_I2C_EV_IRQHandler) + HAL_I2C_ErrorCallback 0x08006625 Thumb Code 84 i2c_1.o(.text.HAL_I2C_ErrorCallback) + HAL_I2C_Init 0x08006679 Thumb Code 676 stm32f4xx_hal_i2c.o(.text.HAL_I2C_Init) + HAL_I2C_ListenCpltCallback 0x0800691d Thumb Code 84 i2c_1.o(.text.HAL_I2C_ListenCpltCallback) + HAL_I2C_MasterRxCpltCallback 0x08006971 Thumb Code 84 i2c_1.o(.text.HAL_I2C_MasterRxCpltCallback) + HAL_I2C_MasterTxCpltCallback 0x080069c5 Thumb Code 80 i2c_1.o(.text.HAL_I2C_MasterTxCpltCallback) + HAL_I2C_MemRxCpltCallback 0x08006a15 Thumb Code 84 i2c_1.o(.text.HAL_I2C_MemRxCpltCallback) + HAL_I2C_MemTxCpltCallback 0x08006a69 Thumb Code 84 i2c_1.o(.text.HAL_I2C_MemTxCpltCallback) + HAL_I2C_MspInit 0x08006abd Thumb Code 308 i2c.o(.text.HAL_I2C_MspInit) + HAL_I2C_SlaveRxCpltCallback 0x08006bf1 Thumb Code 84 i2c_1.o(.text.HAL_I2C_SlaveRxCpltCallback) + HAL_I2C_SlaveTxCpltCallback 0x08006c45 Thumb Code 84 i2c_1.o(.text.HAL_I2C_SlaveTxCpltCallback) + HAL_IncTick 0x08006c99 Thumb Code 26 stm32f4xx_hal.o(.text.HAL_IncTick) + HAL_Init 0x08006cb5 Thumb Code 54 stm32f4xx_hal.o(.text.HAL_Init) + HAL_InitTick 0x08006ced Thumb Code 112 stm32f4xx_hal.o(.text.HAL_InitTick) + HAL_MspInit 0x08006d5d Thumb Code 88 stm32f4xx_hal_msp.o(.text.HAL_MspInit) + HAL_NVIC_DisableIRQ 0x08006db5 Thumb Code 20 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_DisableIRQ) + HAL_NVIC_EnableIRQ 0x08006dc9 Thumb Code 20 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ) + HAL_NVIC_SetPriority 0x08006ddd Thumb Code 50 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) + HAL_NVIC_SetPriorityGrouping 0x08006e11 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) + HAL_RCC_ClockConfig 0x08006e21 Thumb Code 610 stm32f4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) + HAL_RCC_GetHCLKFreq 0x08007085 Thumb Code 12 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) + HAL_RCC_GetPCLK1Freq 0x08007091 Thumb Code 34 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) + HAL_RCC_GetPCLK2Freq 0x080070b5 Thumb Code 34 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) + HAL_RCC_GetSysClockFreq 0x080070d9 Thumb Code 230 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) + HAL_RCC_OscConfig 0x080071c1 Thumb Code 1726 stm32f4xx_hal_rcc.o(.text.HAL_RCC_OscConfig) + HAL_SPI_ErrorCallback 0x08007881 Thumb Code 84 spi_1.o(.text.HAL_SPI_ErrorCallback) + HAL_SPI_Init 0x080078d5 Thumb Code 256 stm32f4xx_hal_spi.o(.text.HAL_SPI_Init) + HAL_SPI_MspInit 0x080079d5 Thumb Code 528 spi.o(.text.HAL_SPI_MspInit) + HAL_SPI_Receive 0x08007be5 Thumb Code 590 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive) + HAL_SPI_Receive_DMA 0x08007e35 Thumb Code 408 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive_DMA) + HAL_SPI_RxCpltCallback 0x08007fcd Thumb Code 84 spi_1.o(.text.HAL_SPI_RxCpltCallback) + HAL_SPI_RxHalfCpltCallback 0x08008021 Thumb Code 84 spi_1.o(.text.HAL_SPI_RxHalfCpltCallback) + HAL_SPI_Transmit 0x08008075 Thumb Code 674 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit) + HAL_SPI_TransmitReceive 0x08008319 Thumb Code 930 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive) + HAL_SPI_TransmitReceive_DMA 0x080086bd Thumb Code 532 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive_DMA) + HAL_SPI_Transmit_DMA 0x080088d1 Thumb Code 364 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit_DMA) + HAL_SPI_TxCpltCallback 0x08008a3d Thumb Code 72 spi_1.o(.text.HAL_SPI_TxCpltCallback) + HAL_SPI_TxHalfCpltCallback 0x08008a85 Thumb Code 84 spi_1.o(.text.HAL_SPI_TxHalfCpltCallback) + HAL_SPI_TxRxCpltCallback 0x08008ad9 Thumb Code 84 spi_1.o(.text.HAL_SPI_TxRxCpltCallback) + HAL_SPI_TxRxHalfCpltCallback 0x08008b2d Thumb Code 84 spi_1.o(.text.HAL_SPI_TxRxHalfCpltCallback) + HAL_SYSTICK_Config 0x08008b81 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.HAL_SYSTICK_Config) + HAL_TIMEx_BreakCallback 0x08008b91 Thumb Code 8 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_BreakCallback) + HAL_TIMEx_CommutCallback 0x08008b99 Thumb Code 8 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_CommutCallback) + HAL_TIMEx_MasterConfigSynchronization 0x08008ba1 Thumb Code 290 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) + HAL_TIM_Base_Init 0x08008cc5 Thumb Code 156 stm32f4xx_hal_tim.o(.text.HAL_TIM_Base_Init) + HAL_TIM_Base_MspInit 0x08008d61 Thumb Code 138 tim.o(.text.HAL_TIM_Base_MspInit) + HAL_TIM_IC_CaptureCallback 0x08008ded Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_IC_CaptureCallback) + HAL_TIM_IRQHandler 0x08008df5 Thumb Code 538 stm32f4xx_hal_tim.o(.text.HAL_TIM_IRQHandler) + HAL_TIM_MspPostInit 0x08009011 Thumb Code 108 tim.o(.text.HAL_TIM_MspPostInit) + HAL_TIM_OC_DelayElapsedCallback 0x0800907d Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_OC_DelayElapsedCallback) + HAL_TIM_PWM_ConfigChannel 0x08009085 Thumb Code 322 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel) + HAL_TIM_PWM_Init 0x080091c9 Thumb Code 156 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Init) + HAL_TIM_PWM_MspInit 0x08009265 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit) + HAL_TIM_PWM_PulseFinishedCallback 0x0800926d Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_PulseFinishedCallback) + HAL_TIM_PWM_Start 0x08009275 Thumb Code 458 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Start) + HAL_TIM_PeriodElapsedCallback 0x08009441 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PeriodElapsedCallback) + HAL_TIM_TriggerCallback 0x08009449 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_TriggerCallback) + HAL_UARTEx_RxEventCallback 0x08009451 Thumb Code 12 stm32f4xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) + HAL_UART_ErrorCallback 0x0800945d Thumb Code 84 uart.o(.text.HAL_UART_ErrorCallback) + HAL_UART_IRQHandler 0x080094b1 Thumb Code 1116 stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler) + HAL_UART_Init 0x0800990d Thumb Code 158 stm32f4xx_hal_uart.o(.text.HAL_UART_Init) + HAL_UART_MspInit 0x080099ad Thumb Code 478 usart.o(.text.HAL_UART_MspInit) + HAL_UART_RxCpltCallback 0x08009b8d Thumb Code 84 uart.o(.text.HAL_UART_RxCpltCallback) + HAL_UART_Transmit_DMA 0x08009be1 Thumb Code 252 stm32f4xx_hal_uart.o(.text.HAL_UART_Transmit_DMA) + HAL_UART_Transmit_IT 0x08009cdd Thumb Code 114 stm32f4xx_hal_uart.o(.text.HAL_UART_Transmit_IT) + HAL_UART_TxCpltCallback 0x08009d51 Thumb Code 84 uart.o(.text.HAL_UART_TxCpltCallback) + HAL_UART_TxHalfCpltCallback 0x08009da5 Thumb Code 80 uart.o(.text.HAL_UART_TxHalfCpltCallback) + HardFault_Handler 0x08009df5 Thumb Code 4 stm32f4xx_it.o(.text.HardFault_Handler) + I2C1_ER_IRQHandler 0x08009df9 Thumb Code 16 stm32f4xx_it.o(.text.I2C1_ER_IRQHandler) + I2C1_EV_IRQHandler 0x08009e09 Thumb Code 16 stm32f4xx_it.o(.text.I2C1_EV_IRQHandler) + InvSqrt 0x0800b2f5 Thumb Code 118 user_math.o(.text.InvSqrt) + LowPassFilter2p_Apply 0x0800b36d Thumb Code 184 filter.o(.text.LowPassFilter2p_Apply) + LowPassFilter2p_Init 0x0800b425 Thumb Code 316 filter.o(.text.LowPassFilter2p_Init) + LowPassFilter2p_Reset 0x0800b561 Thumb Code 146 filter.o(.text.LowPassFilter2p_Reset) + MOTOR_DM_Enable 0x0800b68d Thumb Code 122 motor_dm.o(.text.MOTOR_DM_Enable) + MOTOR_DM_GetMotor 0x0800b739 Thumb Code 134 motor_dm.o(.text.MOTOR_DM_GetMotor) + MOTOR_DM_MITCtrl 0x0800b7c1 Thumb Code 72 motor_dm.o(.text.MOTOR_DM_MITCtrl) + MOTOR_DM_Register 0x0800b961 Thumb Code 300 motor_dm.o(.text.MOTOR_DM_Register) + MOTOR_DM_Update 0x0800bbd1 Thumb Code 268 motor_dm.o(.text.MOTOR_DM_Update) + MOTOR_RM_Ctrl 0x0800bd75 Thumb Code 368 motor_rm.o(.text.MOTOR_RM_Ctrl) + MOTOR_RM_GetMotor 0x0800bfe9 Thumb Code 120 motor_rm.o(.text.MOTOR_RM_GetMotor) + MOTOR_RM_Register 0x0800c0b1 Thumb Code 288 motor_rm.o(.text.MOTOR_RM_Register) + MOTOR_RM_SetOutput 0x0800c1d1 Thumb Code 282 motor_rm.o(.text.MOTOR_RM_SetOutput) + MOTOR_RM_Update 0x0800c2ed Thumb Code 258 motor_rm.o(.text.MOTOR_RM_Update) + MX_CAN1_Init 0x0800c3f1 Thumb Code 78 can.o(.text.MX_CAN1_Init) + MX_CAN2_Init 0x0800c441 Thumb Code 78 can.o(.text.MX_CAN2_Init) + MX_DMA_Init 0x0800c491 Thumb Code 134 dma.o(.text.MX_DMA_Init) + MX_FREERTOS_Init 0x0800c519 Thumb Code 64 freertos.o(.text.MX_FREERTOS_Init) + MX_GPIO_Init 0x0800c559 Thumb Code 554 gpio.o(.text.MX_GPIO_Init) + MX_I2C1_Init 0x0800c785 Thumb Code 72 i2c.o(.text.MX_I2C1_Init) + MX_I2C2_Init 0x0800c7cd Thumb Code 72 i2c.o(.text.MX_I2C2_Init) + MX_SPI1_Init 0x0800c815 Thumb Code 82 spi.o(.text.MX_SPI1_Init) + MX_SPI2_Init 0x0800c869 Thumb Code 84 spi.o(.text.MX_SPI2_Init) + MX_TIM10_Init 0x0800c8bd Thumb Code 142 tim.o(.text.MX_TIM10_Init) + MX_TIM7_Init 0x0800c94d Thumb Code 88 tim.o(.text.MX_TIM7_Init) + MX_USART1_UART_Init 0x0800c9a5 Thumb Code 64 usart.o(.text.MX_USART1_UART_Init) + MX_USART3_UART_Init 0x0800c9e5 Thumb Code 76 usart.o(.text.MX_USART3_UART_Init) + MemManage_Handler 0x0800ca31 Thumb Code 4 stm32f4xx_it.o(.text.MemManage_Handler) + NMI_Handler 0x0800cc51 Thumb Code 4 stm32f4xx_it.o(.text.NMI_Handler) + PID_Calc 0x0800cd55 Thumb Code 752 pid.o(.text.PID_Calc) + PID_Init 0x0800d045 Thumb Code 406 pid.o(.text.PID_Init) + PID_Reset 0x0800d1dd Thumb Code 72 pid.o(.text.PID_Reset) + PendSV_Handler 0x0800d231 Thumb Code 100 port.o(.text.PendSV_Handler) + RC_Init 0x0800d295 Thumb Code 148 bsp_rc.o(.text.RC_Init) + RC_restart 0x0800d329 Thumb Code 90 bsp_rc.o(.text.RC_restart) + SMC_Init 0x0800d385 Thumb Code 110 sliding.o(.text.SMC_Init) + SMC_PErrorUpdate 0x0800d3f5 Thumb Code 260 sliding.o(.text.SMC_PErrorUpdate) + SMC_Reset 0x0800d4f9 Thumb Code 78 sliding.o(.text.SMC_Reset) + SVC_Handler 0x0800db01 Thumb Code 36 port.o(.text.SVC_Handler) + Smc_Calc 0x0800dc09 Thumb Code 1760 sliding.o(.text.Smc_Calc) + StartDefaultTask 0x0800e2e9 Thumb Code 18 freertos.o(.text.StartDefaultTask) + SysTick_Handler 0x0800e351 Thumb Code 24 stm32f4xx_it.o(.text.SysTick_Handler) + SystemClock_Config 0x0800e369 Thumb Code 188 main.o(.text.SystemClock_Config) + SystemInit 0x0800e425 Thumb Code 18 system_stm32f4xx.o(.text.SystemInit) + TIM7_IRQHandler 0x0800e439 Thumb Code 16 stm32f4xx_it.o(.text.TIM7_IRQHandler) + TIM_Base_SetConfig 0x0800e449 Thumb Code 420 stm32f4xx_hal_tim.o(.text.TIM_Base_SetConfig) + TIM_CCxChannelCmd 0x0800e5ed Thumb Code 54 stm32f4xx_hal_tim.o(.text.TIM_CCxChannelCmd) + TIM_OC2_SetConfig 0x0800e711 Thumb Code 244 stm32f4xx_hal_tim.o(.text.TIM_OC2_SetConfig) + Task_Init 0x0800e99d Thumb Code 230 init.o(.text.Task_Init) + Task_atti_esti 0x0800ea89 Thumb Code 400 atti_esti.o(.text.Task_atti_esti) + Task_gimbal_ctrl 0x0800ec19 Thumb Code 244 gimbal_ctrl.o(.text.Task_gimbal_ctrl) + Task_remote 0x0800ed11 Thumb Code 176 remote.o(.text.Task_remote) + Task_vofa 0x0800edc1 Thumb Code 144 vofa_1.o(.text.Task_vofa) + USART1_IRQHandler 0x0800f3f1 Thumb Code 16 stm32f4xx_it.o(.text.USART1_IRQHandler) + USART3_IRQHandler 0x0800f401 Thumb Code 32 stm32f4xx_it.o(.text.USART3_IRQHandler) + USART3_IRQHandler1 0x0800f421 Thumb Code 34 remote_control.o(.text.USART3_IRQHandler1) + UsageFault_Handler 0x0800f445 Thumb Code 4 stm32f4xx_it.o(.text.UsageFault_Handler) + VOFA_JustFloat_Send 0x0800f449 Thumb Code 104 vofa.o(.text.VOFA_JustFloat_Send) + configureTimerForRunTimeStats 0x0800f6ad Thumb Code 2 freertos.o(.text.configureTimerForRunTimeStats) + delay_init 0x0800f6d1 Thumb Code 62 bsp_delay.o(.text.delay_init) + eTaskGetState 0x0800f711 Thumb Code 246 tasks.o(.text.eTaskGetState) + getRunTimeCounterValue 0x0800f861 Thumb Code 4 freertos.o(.text.getRunTimeCounterValue) + main 0x0800f865 Thumb Code 80 main.o(.text.main) + map 0x0800f8b5 Thumb Code 42 calc_lib.o(.text.map) + osDelay 0x0800f961 Thumb Code 52 cmsis_os2.o(.text.osDelay) + osDelayUntil 0x0800f995 Thumb Code 88 cmsis_os2.o(.text.osDelayUntil) + osKernelGetState 0x0800f9ed Thumb Code 82 cmsis_os2.o(.text.osKernelGetState) + osKernelGetTickCount 0x0800fa41 Thumb Code 38 cmsis_os2.o(.text.osKernelGetTickCount) + osKernelGetTickFreq 0x0800fa69 Thumb Code 6 cmsis_os2.o(.text.osKernelGetTickFreq) + osKernelInitialize 0x0800fa71 Thumb Code 70 cmsis_os2.o(.text.osKernelInitialize) + osKernelLock 0x0800fab9 Thumb Code 86 cmsis_os2.o(.text.osKernelLock) + osKernelStart 0x0800fb11 Thumb Code 82 cmsis_os2.o(.text.osKernelStart) + osKernelUnlock 0x0800fb65 Thumb Code 110 cmsis_os2.o(.text.osKernelUnlock) + osMessageQueueGet 0x0800fbd5 Thumb Code 192 cmsis_os2.o(.text.osMessageQueueGet) + osMessageQueueNew 0x0800fc95 Thumb Code 254 cmsis_os2.o(.text.osMessageQueueNew) + osMessageQueuePut 0x0800fd95 Thumb Code 196 cmsis_os2.o(.text.osMessageQueuePut) + osMessageQueueReset 0x0800fe59 Thumb Code 64 cmsis_os2.o(.text.osMessageQueueReset) + osMutexAcquire 0x0800fe99 Thumb Code 158 cmsis_os2.o(.text.osMutexAcquire) + osMutexNew 0x0800ff39 Thumb Code 296 cmsis_os2.o(.text.osMutexNew) + osMutexRelease 0x08010061 Thumb Code 126 cmsis_os2.o(.text.osMutexRelease) + osThreadFlagsSet 0x080100e1 Thumb Code 164 cmsis_os2.o(.text.osThreadFlagsSet) + osThreadFlagsWait 0x08010185 Thumb Code 282 cmsis_os2.o(.text.osThreadFlagsWait) + osThreadGetId 0x080102a1 Thumb Code 16 cmsis_os2.o(.text.osThreadGetId) + osThreadNew 0x080102b1 Thumb Code 346 cmsis_os2.o(.text.osThreadNew) + osThreadTerminate 0x0801040d Thumb Code 94 cmsis_os2.o(.text.osThreadTerminate) + pvPortMalloc 0x0801136d Thumb Code 492 heap_4.o(.text.pvPortMalloc) + pvTaskIncrementMutexHeldCount 0x08011559 Thumb Code 44 tasks.o(.text.pvTaskIncrementMutexHeldCount) + pxPortInitialiseStack 0x08011585 Thumb Code 94 port.o(.text.pxPortInitialiseStack) + remote_ParseHost 0x080115e5 Thumb Code 68 ai.o(.text.remote_ParseHost) + remote_control_init 0x08011629 Thumb Code 18 remote_control.o(.text.remote_control_init) + user_delay_ms 0x08011925 Thumb Code 46 calc_lib.o(.text.user_delay_ms) + user_delay_us 0x08011955 Thumb Code 68 calc_lib.o(.text.user_delay_us) + uxListRemove 0x08011999 Thumb Code 72 list.o(.text.uxListRemove) + vApplicationGetIdleTaskMemory 0x080119e1 Thumb Code 42 cmsis_os2.o(.text.vApplicationGetIdleTaskMemory) + vApplicationGetTimerTaskMemory 0x08011a0d Thumb Code 44 cmsis_os2.o(.text.vApplicationGetTimerTaskMemory) + vApplicationStackOverflowHook 0x08011a39 Thumb Code 10 freertos.o(.text.vApplicationStackOverflowHook) + vListInitialise 0x08011a45 Thumb Code 46 list.o(.text.vListInitialise) + vListInitialiseItem 0x08011a75 Thumb Code 14 list.o(.text.vListInitialiseItem) + vListInsert 0x08011a85 Thumb Code 106 list.o(.text.vListInsert) + vListInsertEnd 0x08011af1 Thumb Code 58 list.o(.text.vListInsertEnd) + vPortEnterCritical 0x08011b41 Thumb Code 86 port.o(.text.vPortEnterCritical) + vPortExitCritical 0x08011b99 Thumb Code 74 port.o(.text.vPortExitCritical) + vPortFree 0x08011be5 Thumb Code 206 heap_4.o(.text.vPortFree) + vPortSetupTimerInterrupt 0x08011cb5 Thumb Code 68 port.o(.text.vPortSetupTimerInterrupt) + vPortValidateInterruptPriority 0x08011cf9 Thumb Code 132 port.o(.text.vPortValidateInterruptPriority) + vQueueAddToRegistry 0x08011d7d Thumb Code 82 queue.o(.text.vQueueAddToRegistry) + vQueueWaitForMessageRestricted 0x08011dd1 Thumb Code 100 queue.o(.text.vQueueWaitForMessageRestricted) + vTaskDelay 0x08011e35 Thumb Code 110 tasks.o(.text.vTaskDelay) + vTaskDelayUntil 0x08011ea5 Thumb Code 276 tasks.o(.text.vTaskDelayUntil) + vTaskDelete 0x08011fb9 Thumb Code 270 tasks.o(.text.vTaskDelete) + vTaskInternalSetTimeOutState 0x080120c9 Thumb Code 36 tasks.o(.text.vTaskInternalSetTimeOutState) + vTaskMissedYield 0x080120ed Thumb Code 14 tasks.o(.text.vTaskMissedYield) + vTaskPlaceOnEventList 0x080120fd Thumb Code 66 tasks.o(.text.vTaskPlaceOnEventList) + vTaskPlaceOnEventListRestricted 0x08012141 Thumb Code 82 tasks.o(.text.vTaskPlaceOnEventListRestricted) + vTaskPriorityDisinheritAfterTimeout 0x08012195 Thumb Code 308 tasks.o(.text.vTaskPriorityDisinheritAfterTimeout) + vTaskStartScheduler 0x080122c9 Thumb Code 228 tasks.o(.text.vTaskStartScheduler) + vTaskSuspendAll 0x080123ad Thumb Code 16 tasks.o(.text.vTaskSuspendAll) + vTaskSwitchContext 0x080123bd Thumb Code 384 tasks.o(.text.vTaskSwitchContext) + xPortStartScheduler 0x0801253d Thumb Code 342 port.o(.text.xPortStartScheduler) + xPortSysTickHandler 0x08012695 Thumb Code 60 port.o(.text.xPortSysTickHandler) + xQueueCreateMutex 0x080126d1 Thumb Code 38 queue.o(.text.xQueueCreateMutex) + xQueueCreateMutexStatic 0x080126f9 Thumb Code 50 queue.o(.text.xQueueCreateMutexStatic) + xQueueGenericCreate 0x0801272d Thumb Code 116 queue.o(.text.xQueueGenericCreate) + xQueueGenericCreateStatic 0x080127a1 Thumb Code 270 queue.o(.text.xQueueGenericCreateStatic) + xQueueGenericReset 0x080128b1 Thumb Code 186 queue.o(.text.xQueueGenericReset) + xQueueGenericSend 0x0801296d Thumb Code 556 queue.o(.text.xQueueGenericSend) + xQueueGenericSendFromISR 0x08012b99 Thumb Code 332 queue.o(.text.xQueueGenericSendFromISR) + xQueueGiveMutexRecursive 0x08012ce5 Thumb Code 108 queue.o(.text.xQueueGiveMutexRecursive) + xQueueReceive 0x08012d51 Thumb Code 476 queue.o(.text.xQueueReceive) + xQueueReceiveFromISR 0x08012f2d Thumb Code 264 queue.o(.text.xQueueReceiveFromISR) + xQueueSemaphoreTake 0x08013035 Thumb Code 556 queue.o(.text.xQueueSemaphoreTake) + xQueueTakeMutexRecursive 0x08013261 Thumb Code 110 queue.o(.text.xQueueTakeMutexRecursive) + xTaskCheckForTimeOut 0x080132d1 Thumb Code 204 tasks.o(.text.xTaskCheckForTimeOut) + xTaskCreate 0x0801339d Thumb Code 158 tasks.o(.text.xTaskCreate) + xTaskCreateStatic 0x0801343d Thumb Code 206 tasks.o(.text.xTaskCreateStatic) + xTaskGenericNotify 0x0801350d Thumb Code 376 tasks.o(.text.xTaskGenericNotify) + xTaskGenericNotifyFromISR 0x08013685 Thumb Code 452 tasks.o(.text.xTaskGenericNotifyFromISR) + xTaskGetCurrentTaskHandle 0x08013849 Thumb Code 20 tasks.o(.text.xTaskGetCurrentTaskHandle) + xTaskGetSchedulerState 0x0801385d Thumb Code 56 tasks.o(.text.xTaskGetSchedulerState) + xTaskGetTickCount 0x08013895 Thumb Code 20 tasks.o(.text.xTaskGetTickCount) + xTaskGetTickCountFromISR 0x080138a9 Thumb Code 30 tasks.o(.text.xTaskGetTickCountFromISR) + xTaskIncrementTick 0x080138c9 Thumb Code 452 tasks.o(.text.xTaskIncrementTick) + xTaskNotifyWait 0x08013a8d Thumb Code 214 tasks.o(.text.xTaskNotifyWait) + xTaskPriorityDisinherit 0x08013b65 Thumb Code 236 tasks.o(.text.xTaskPriorityDisinherit) + xTaskPriorityInherit 0x08013c51 Thumb Code 270 tasks.o(.text.xTaskPriorityInherit) + xTaskRemoveFromEventList 0x08013d61 Thumb Code 206 tasks.o(.text.xTaskRemoveFromEventList) + xTaskResumeAll 0x08013e31 Thumb Code 390 tasks.o(.text.xTaskResumeAll) + xTimerCreateTimerTask 0x08013fb9 Thumb Code 148 timers.o(.text.xTimerCreateTimerTask) + xTimerGenericCommand 0x0801404d Thumb Code 176 timers.o(.text.xTimerGenericCommand) + __ARM_fpclassify 0x080140fd Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) + __ARM_fpclassifyf 0x0801412d Thumb Code 38 fpclassifyf.o(i.__ARM_fpclassifyf) + __hardfp_asinf 0x08014155 Thumb Code 258 asinf.o(i.__hardfp_asinf) + __hardfp_atan 0x08014281 Thumb Code 622 atan.o(i.__hardfp_atan) + __hardfp_atan2 0x08014559 Thumb Code 448 atan2.o(i.__hardfp_atan2) + __hardfp_atan2f 0x08014759 Thumb Code 594 atan2f.o(i.__hardfp_atan2f) + __hardfp_cosf 0x08014a05 Thumb Code 280 cosf.o(i.__hardfp_cosf) + __hardfp_pow 0x08014b59 Thumb Code 3088 pow.o(i.__hardfp_pow) + __hardfp_tanf 0x080157b9 Thumb Code 322 tanf.o(i.__hardfp_tanf) + __kernel_poly 0x08015935 Thumb Code 248 poly.o(i.__kernel_poly) + __mathlib_dbl_divzero 0x08015a31 Thumb Code 28 dunder.o(i.__mathlib_dbl_divzero) + __mathlib_dbl_infnan 0x08015a61 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan) + __mathlib_dbl_infnan2 0x08015a75 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan2) + __mathlib_dbl_invalid 0x08015a89 Thumb Code 24 dunder.o(i.__mathlib_dbl_invalid) + __mathlib_dbl_overflow 0x08015aa9 Thumb Code 24 dunder.o(i.__mathlib_dbl_overflow) + __mathlib_dbl_underflow 0x08015ac9 Thumb Code 24 dunder.o(i.__mathlib_dbl_underflow) + __mathlib_flt_infnan 0x08015ae9 Thumb Code 6 funder.o(i.__mathlib_flt_infnan) + __mathlib_flt_infnan2 0x08015aef Thumb Code 6 funder.o(i.__mathlib_flt_infnan2) + __mathlib_flt_invalid 0x08015af5 Thumb Code 10 funder.o(i.__mathlib_flt_invalid) + __mathlib_flt_underflow 0x08015b05 Thumb Code 10 funder.o(i.__mathlib_flt_underflow) + __mathlib_rredf2 0x08015b15 Thumb Code 316 rredf.o(i.__mathlib_rredf2) + atan 0x08015c69 Thumb Code 16 atan.o(i.atan) + fabs 0x08015c79 Thumb Code 24 fabs.o(i.fabs) + sqrt 0x08015c91 Thumb Code 110 sqrt.o(i.sqrt) + sqrtf 0x08015cff Thumb Code 62 sqrtf.o(i.sqrtf) + __aeabi_dneg 0x08015d3d Thumb Code 0 basic.o(x$fpl$basic) + _dneg 0x08015d3d Thumb Code 6 basic.o(x$fpl$basic) + __aeabi_fneg 0x08015d43 Thumb Code 0 basic.o(x$fpl$basic) + _fneg 0x08015d43 Thumb Code 6 basic.o(x$fpl$basic) + _dabs 0x08015d49 Thumb Code 6 basic.o(x$fpl$basic) + _fabs 0x08015d4f Thumb Code 6 basic.o(x$fpl$basic) + __aeabi_d2f 0x08015d55 Thumb Code 0 d2f.o(x$fpl$d2f) + _d2f 0x08015d55 Thumb Code 98 d2f.o(x$fpl$d2f) + __aeabi_dadd 0x08015db9 Thumb Code 0 daddsub_clz.o(x$fpl$dadd) + _dadd 0x08015db9 Thumb Code 332 daddsub_clz.o(x$fpl$dadd) + __fpl_dcheck_NaN1 0x08015f09 Thumb Code 10 dcheck1.o(x$fpl$dcheck1) + __fpl_dcmp_Inf 0x08015f19 Thumb Code 24 dcmpi.o(x$fpl$dcmpinf) + __aeabi_ddiv 0x08015f31 Thumb Code 0 ddiv.o(x$fpl$ddiv) + _ddiv 0x08015f31 Thumb Code 556 ddiv.o(x$fpl$ddiv) + __aeabi_cdcmpeq 0x080161e5 Thumb Code 0 deqf.o(x$fpl$deqf) + _dcmpeq 0x080161e5 Thumb Code 120 deqf.o(x$fpl$deqf) + __aeabi_d2iz 0x0801625d Thumb Code 0 dfix.o(x$fpl$dfix) + _dfix 0x0801625d Thumb Code 94 dfix.o(x$fpl$dfix) + __aeabi_d2uiz 0x080162bd Thumb Code 0 dfixu.o(x$fpl$dfixu) + _dfixu 0x080162bd Thumb Code 90 dfixu.o(x$fpl$dfixu) + __aeabi_i2d 0x08016317 Thumb Code 0 dflt_clz.o(x$fpl$dflt) + _dflt 0x08016317 Thumb Code 46 dflt_clz.o(x$fpl$dflt) + __aeabi_ui2d 0x08016345 Thumb Code 0 dflt_clz.o(x$fpl$dfltu) + _dfltu 0x08016345 Thumb Code 38 dflt_clz.o(x$fpl$dfltu) + __aeabi_cdcmpge 0x0801636d Thumb Code 0 dgeqf.o(x$fpl$dgeqf) + _dcmpge 0x0801636d Thumb Code 120 dgeqf.o(x$fpl$dgeqf) + __aeabi_cdcmple 0x080163e5 Thumb Code 0 dleqf.o(x$fpl$dleqf) + _dcmple 0x080163e5 Thumb Code 120 dleqf.o(x$fpl$dleqf) + __fpl_dcmple_InfNaN 0x08016447 Thumb Code 0 dleqf.o(x$fpl$dleqf) + __aeabi_dmul 0x0801645d Thumb Code 0 dmul.o(x$fpl$dmul) + _dmul 0x0801645d Thumb Code 332 dmul.o(x$fpl$dmul) + __fpl_dnaninf 0x080165b1 Thumb Code 156 dnaninf.o(x$fpl$dnaninf) + __fpl_dretinf 0x0801664d Thumb Code 12 dretinf.o(x$fpl$dretinf) + __aeabi_cdrcmple 0x08016659 Thumb Code 0 drleqf.o(x$fpl$drleqf) + _drcmple 0x08016659 Thumb Code 108 drleqf.o(x$fpl$drleqf) + __aeabi_drsub 0x080166c5 Thumb Code 0 daddsub_clz.o(x$fpl$drsb) + _drsb 0x080166c5 Thumb Code 22 daddsub_clz.o(x$fpl$drsb) + _dsqrt 0x080166dd Thumb Code 404 dsqrt_umaal.o(x$fpl$dsqrt) + __aeabi_dsub 0x08016875 Thumb Code 0 daddsub_clz.o(x$fpl$dsub) + _dsub 0x08016875 Thumb Code 472 daddsub_clz.o(x$fpl$dsub) + __aeabi_f2d 0x08016a51 Thumb Code 0 f2d.o(x$fpl$f2d) + _f2d 0x08016a51 Thumb Code 86 f2d.o(x$fpl$f2d) + __aeabi_dcmpeq 0x08016aa7 Thumb Code 0 dcmp.o(x$fpl$fcmp) + _deq 0x08016aa7 Thumb Code 14 dcmp.o(x$fpl$fcmp) + _dneq 0x08016ab5 Thumb Code 14 dcmp.o(x$fpl$fcmp) + __aeabi_dcmpgt 0x08016ac3 Thumb Code 0 dcmp.o(x$fpl$fcmp) + _dgr 0x08016ac3 Thumb Code 14 dcmp.o(x$fpl$fcmp) + __aeabi_dcmpge 0x08016ad1 Thumb Code 0 dcmp.o(x$fpl$fcmp) + _dgeq 0x08016ad1 Thumb Code 14 dcmp.o(x$fpl$fcmp) + __aeabi_dcmple 0x08016adf Thumb Code 0 dcmp.o(x$fpl$fcmp) + _dleq 0x08016adf Thumb Code 14 dcmp.o(x$fpl$fcmp) + __aeabi_dcmplt 0x08016aed Thumb Code 0 dcmp.o(x$fpl$fcmp) + _dls 0x08016aed Thumb Code 14 dcmp.o(x$fpl$fcmp) + __aeabi_ul2f 0x08016afb Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) + _ll_uto_f 0x08016afb Thumb Code 6 ffltll_clz.o(x$fpl$ffltll) + __aeabi_l2f 0x08016b01 Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) + _ll_sto_f 0x08016b01 Thumb Code 90 ffltll_clz.o(x$fpl$ffltll) + __fpl_fnaninf 0x08016b5b Thumb Code 140 fnaninf.o(x$fpl$fnaninf) + _fp_init 0x08016be7 Thumb Code 26 fpinit.o(x$fpl$fpinit) + __fplib_config_fpu_vfp 0x08016bff Thumb Code 0 fpinit.o(x$fpl$fpinit) + __fplib_config_pureend_doubles 0x08016bff Thumb Code 0 fpinit.o(x$fpl$fpinit) + __fpl_fretinf 0x08016c01 Thumb Code 10 fretinf.o(x$fpl$fretinf) + __fpl_return_NaN 0x08016c0b Thumb Code 100 retnan.o(x$fpl$retnan) + __ARM_scalbn 0x08016c6f Thumb Code 92 scalbn.o(x$fpl$scalbn) + __fpl_cmpreturn 0x08016ccb Thumb Code 48 trapv.o(x$fpl$trapveneer) + __I$use$fp 0x08016cfa Number 0 usenofp.o(x$fpl$usenofp) + __mathlib_zero 0x08016e20 Data 8 qnan.o(.constdata) + AHBPrescTable 0x08016e48 Data 16 system_stm32f4xx.o(.rodata.AHBPrescTable) + APBPrescTable 0x08016e58 Data 8 system_stm32f4xx.o(.rodata.APBPrescTable) + attr_atti_esti 0x08016ea8 Data 36 user_task.o(.rodata.attr_atti_esti) + attr_gimbal_ctrl 0x08016ecc Data 36 user_task.o(.rodata.attr_gimbal_ctrl) + attr_init 0x08016ef0 Data 36 user_task.o(.rodata.attr_init) + attr_remote 0x08016f14 Data 36 user_task.o(.rodata.attr_remote) + attr_vofa 0x08016f38 Data 36 user_task.o(.rodata.attr_vofa) + defaultTask_attributes 0x08016f5c Data 36 freertos.o(.rodata.defaultTask_attributes) + Region$$Table$$Base 0x08016fec Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x0801700c Number 0 anon$$obj.o(Region$$Table) SystemCoreClock 0x20000000 Data 4 system_stm32f4xx.o(.data.SystemCoreClock) cali_bmi088 0x20000008 Data 12 atti_esti.o(.data.cali_bmi088) robot_config 0x20000014 Data 220 config.o(.data.robot_config) @@ -8018,35 +8018,34 @@ Image Symbol Table channels 0x20000340 Data 16 vofa_1.o(.bss.channels) defaultTaskHandle 0x20000350 Data 4 freertos.o(.bss.defaultTaskHandle) eulr_to_send 0x20000354 Data 12 atti_esti.o(.bss.eulr_to_send) - gimbal 0x20000368 Data 592 gimbal_ctrl.o(.bss.gimbal) - gimbal_ahrs 0x200005b8 Data 20 atti_esti.o(.bss.gimbal_ahrs) - gimbal_cmd 0x200005cc Data 12 gimbal_ctrl.o(.bss.gimbal_cmd) - gimbal_imu 0x200005d8 Data 24 gimbal_ctrl.o(.bss.gimbal_imu) - gimbal_to_send 0x200005f0 Data 24 atti_esti.o(.bss.gimbal_to_send) - hcan1 0x20000608 Data 40 can.o(.bss.hcan1) - hcan2 0x20000630 Data 40 can.o(.bss.hcan2) - hdma_spi1_rx 0x20000658 Data 96 spi.o(.bss.hdma_spi1_rx) - hdma_spi1_tx 0x200006b8 Data 96 spi.o(.bss.hdma_spi1_tx) - hdma_usart3_rx 0x20000718 Data 96 usart.o(.bss.hdma_usart3_rx) - hhhh 0x20000778 Data 4 gimbal.o(.bss.hhhh) - hi2c1 0x2000077c Data 84 i2c.o(.bss.hi2c1) - hi2c2 0x200007d0 Data 84 i2c.o(.bss.hi2c2) - hspi1 0x20000824 Data 88 spi.o(.bss.hspi1) - hspi2 0x2000087c Data 88 spi.o(.bss.hspi2) - htim10 0x200008d4 Data 72 tim.o(.bss.htim10) - htim7 0x2000091c Data 72 tim.o(.bss.htim7) - huart1 0x20000964 Data 72 usart.o(.bss.huart1) - huart3 0x200009ac Data 72 usart.o(.bss.huart3) - imu 0x200009f8 Data 24 remote.o(.bss.imu) - imu_temp_ctrl_pid 0x20000a10 Data 60 atti_esti.o(.bss.imu_temp_ctrl_pid) - magn 0x20000a50 Data 12 atti_esti.o(.bss.magn) - pxCurrentTCB 0x20000b50 Data 4 tasks.o(.bss.pxCurrentTCB) - rc_ctrl 0x20000fd0 Data 24 remote_control.o(.bss.rc_ctrl) - remote_cmd 0x20000fe8 Data 12 remote.o(.bss.remote_cmd) - task_runtime 0x20001010 Data 104 user_task.o(.bss.task_runtime) - uwTick 0x2000789c Data 4 stm32f4xx_hal.o(.bss.uwTick) - vofa_imu 0x20007f7c Data 24 vofa_1.o(.bss.vofa_imu) - xQueueRegistry 0x20008120 Data 64 queue.o(.bss.xQueueRegistry) + gimbal 0x20000368 Data 584 gimbal_ctrl.o(.bss.gimbal) + gimbal_ahrs 0x200005b0 Data 20 atti_esti.o(.bss.gimbal_ahrs) + gimbal_cmd 0x200005c4 Data 12 gimbal_ctrl.o(.bss.gimbal_cmd) + gimbal_imu 0x200005d0 Data 24 gimbal_ctrl.o(.bss.gimbal_imu) + gimbal_to_send 0x200005e8 Data 24 atti_esti.o(.bss.gimbal_to_send) + hcan1 0x20000600 Data 40 can.o(.bss.hcan1) + hcan2 0x20000628 Data 40 can.o(.bss.hcan2) + hdma_spi1_rx 0x20000650 Data 96 spi.o(.bss.hdma_spi1_rx) + hdma_spi1_tx 0x200006b0 Data 96 spi.o(.bss.hdma_spi1_tx) + hdma_usart3_rx 0x20000710 Data 96 usart.o(.bss.hdma_usart3_rx) + hi2c1 0x20000770 Data 84 i2c.o(.bss.hi2c1) + hi2c2 0x200007c4 Data 84 i2c.o(.bss.hi2c2) + hspi1 0x20000818 Data 88 spi.o(.bss.hspi1) + hspi2 0x20000870 Data 88 spi.o(.bss.hspi2) + htim10 0x200008c8 Data 72 tim.o(.bss.htim10) + htim7 0x20000910 Data 72 tim.o(.bss.htim7) + huart1 0x20000958 Data 72 usart.o(.bss.huart1) + huart3 0x200009a0 Data 72 usart.o(.bss.huart3) + imu 0x200009ec Data 24 remote.o(.bss.imu) + imu_temp_ctrl_pid 0x20000a04 Data 60 atti_esti.o(.bss.imu_temp_ctrl_pid) + magn 0x20000a44 Data 12 atti_esti.o(.bss.magn) + pxCurrentTCB 0x20000b44 Data 4 tasks.o(.bss.pxCurrentTCB) + rc_ctrl 0x20000fc4 Data 24 remote_control.o(.bss.rc_ctrl) + remote_cmd 0x20000fdc Data 12 remote.o(.bss.remote_cmd) + task_runtime 0x20001004 Data 104 user_task.o(.bss.task_runtime) + uwTick 0x20007890 Data 4 stm32f4xx_hal.o(.bss.uwTick) + vofa_imu 0x20007f70 Data 24 vofa_1.o(.bss.vofa_imu) + xQueueRegistry 0x20008114 Data 64 queue.o(.bss.xQueueRegistry) @@ -8056,75 +8055,75 @@ Memory Map of the image Image Entry point : 0x08000189 - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00017008, Max: 0x00100000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00017110, Max: 0x00100000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00016f04, Max: 0x00100000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0001700c, Max: 0x00100000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x08000000 0x08000000 0x00000188 Data RO 3 RESET startup_stm32f407xx.o - 0x08000188 0x08000188 0x00000008 Code RO 3172 * !!!main c_w.l(__main.o) - 0x08000190 0x08000190 0x00000034 Code RO 3690 !!!scatter c_w.l(__scatter.o) - 0x080001c4 0x080001c4 0x0000001a Code RO 3692 !!handler_copy c_w.l(__scatter_copy.o) + 0x08000188 0x08000188 0x00000008 Code RO 3171 * !!!main c_w.l(__main.o) + 0x08000190 0x08000190 0x00000034 Code RO 3689 !!!scatter c_w.l(__scatter.o) + 0x080001c4 0x080001c4 0x0000001a Code RO 3691 !!handler_copy c_w.l(__scatter_copy.o) 0x080001de 0x080001de 0x00000002 PAD - 0x080001e0 0x080001e0 0x0000001c Code RO 3694 !!handler_zi c_w.l(__scatter_zi.o) - 0x080001fc 0x080001fc 0x00000002 Code RO 3542 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) - 0x080001fe 0x080001fe 0x00000004 Code RO 3562 .ARM.Collect$$libinit$$00000001 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3565 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3568 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3570 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3572 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3575 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3577 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3579 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3581 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3583 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3585 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3587 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3589 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3591 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3593 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3595 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3599 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3601 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3603 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000000 Code RO 3605 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) - 0x08000202 0x08000202 0x00000002 Code RO 3606 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) - 0x08000204 0x08000204 0x00000002 Code RO 3645 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) - 0x08000206 0x08000206 0x00000000 Code RO 3673 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) - 0x08000206 0x08000206 0x00000000 Code RO 3675 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) - 0x08000206 0x08000206 0x00000000 Code RO 3678 .ARM.Collect$$libshutdown$$00000007 c_w.l(libshutdown2.o) - 0x08000206 0x08000206 0x00000000 Code RO 3681 .ARM.Collect$$libshutdown$$0000000A c_w.l(libshutdown2.o) - 0x08000206 0x08000206 0x00000000 Code RO 3683 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) - 0x08000206 0x08000206 0x00000000 Code RO 3686 .ARM.Collect$$libshutdown$$0000000F c_w.l(libshutdown2.o) - 0x08000206 0x08000206 0x00000002 Code RO 3687 .ARM.Collect$$libshutdown$$00000010 c_w.l(libshutdown2.o) - 0x08000208 0x08000208 0x00000000 Code RO 3245 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) - 0x08000208 0x08000208 0x00000000 Code RO 3440 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) - 0x08000208 0x08000208 0x00000006 Code RO 3452 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) - 0x0800020e 0x0800020e 0x00000000 Code RO 3442 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) - 0x0800020e 0x0800020e 0x00000004 Code RO 3443 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) - 0x08000212 0x08000212 0x00000000 Code RO 3445 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) - 0x08000212 0x08000212 0x00000008 Code RO 3446 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) - 0x0800021a 0x0800021a 0x00000002 Code RO 3547 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) - 0x0800021c 0x0800021c 0x00000000 Code RO 3614 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) - 0x0800021c 0x0800021c 0x00000004 Code RO 3615 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) - 0x08000220 0x08000220 0x00000006 Code RO 3616 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) + 0x080001e0 0x080001e0 0x0000001c Code RO 3693 !!handler_zi c_w.l(__scatter_zi.o) + 0x080001fc 0x080001fc 0x00000002 Code RO 3541 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) + 0x080001fe 0x080001fe 0x00000004 Code RO 3561 .ARM.Collect$$libinit$$00000001 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3564 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3567 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3569 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3571 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3574 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3576 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3578 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3580 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3582 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3584 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3586 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3588 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3590 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3592 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3594 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3598 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3600 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3602 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000000 Code RO 3604 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) + 0x08000202 0x08000202 0x00000002 Code RO 3605 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) + 0x08000204 0x08000204 0x00000002 Code RO 3644 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) + 0x08000206 0x08000206 0x00000000 Code RO 3672 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) + 0x08000206 0x08000206 0x00000000 Code RO 3674 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) + 0x08000206 0x08000206 0x00000000 Code RO 3677 .ARM.Collect$$libshutdown$$00000007 c_w.l(libshutdown2.o) + 0x08000206 0x08000206 0x00000000 Code RO 3680 .ARM.Collect$$libshutdown$$0000000A c_w.l(libshutdown2.o) + 0x08000206 0x08000206 0x00000000 Code RO 3682 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) + 0x08000206 0x08000206 0x00000000 Code RO 3685 .ARM.Collect$$libshutdown$$0000000F c_w.l(libshutdown2.o) + 0x08000206 0x08000206 0x00000002 Code RO 3686 .ARM.Collect$$libshutdown$$00000010 c_w.l(libshutdown2.o) + 0x08000208 0x08000208 0x00000000 Code RO 3244 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) + 0x08000208 0x08000208 0x00000000 Code RO 3439 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) + 0x08000208 0x08000208 0x00000006 Code RO 3451 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) + 0x0800020e 0x0800020e 0x00000000 Code RO 3441 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) + 0x0800020e 0x0800020e 0x00000004 Code RO 3442 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) + 0x08000212 0x08000212 0x00000000 Code RO 3444 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) + 0x08000212 0x08000212 0x00000008 Code RO 3445 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) + 0x0800021a 0x0800021a 0x00000002 Code RO 3546 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) + 0x0800021c 0x0800021c 0x00000000 Code RO 3613 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) + 0x0800021c 0x0800021c 0x00000004 Code RO 3614 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) + 0x08000220 0x08000220 0x00000006 Code RO 3615 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) 0x08000226 0x08000226 0x00000002 PAD 0x08000228 0x08000228 0x00000040 Code RO 4 .text startup_stm32f407xx.o - 0x08000268 0x08000268 0x000000f0 Code RO 3144 .text c_w.l(lludivv7m.o) - 0x08000358 0x08000358 0x0000008a Code RO 3158 .text c_w.l(rt_memcpy_v6.o) - 0x080003e2 0x080003e2 0x00000010 Code RO 3162 .text c_w.l(aeabi_memset4.o) - 0x080003f2 0x080003f2 0x0000004e Code RO 3166 .text c_w.l(rt_memclr_w.o) - 0x08000440 0x08000440 0x00000006 Code RO 3170 .text c_w.l(heapauxi.o) - 0x08000446 0x08000446 0x00000016 Code RO 3250 .text c_w.l(_rserrno.o) - 0x0800045c 0x0800045c 0x00000064 Code RO 3345 .text c_w.l(rt_memcpy_w.o) - 0x080004c0 0x080004c0 0x00000008 Code RO 3459 .text c_w.l(rt_errno_addr_intlibspace.o) - 0x080004c8 0x080004c8 0x00000008 Code RO 3487 .text c_w.l(libspace.o) - 0x080004d0 0x080004d0 0x0000004a Code RO 3490 .text c_w.l(sys_stackheap_outer.o) - 0x0800051a 0x0800051a 0x00000012 Code RO 3531 .text c_w.l(exit.o) - 0x0800052c 0x0800052c 0x0000000c Code RO 3609 .text c_w.l(sys_exit.o) - 0x08000538 0x08000538 0x00000002 Code RO 3634 .text c_w.l(use_no_semi.o) - 0x0800053a 0x0800053a 0x00000000 Code RO 3636 .text c_w.l(indicate_semi.o) + 0x08000268 0x08000268 0x000000f0 Code RO 3143 .text c_w.l(lludivv7m.o) + 0x08000358 0x08000358 0x0000008a Code RO 3157 .text c_w.l(rt_memcpy_v6.o) + 0x080003e2 0x080003e2 0x00000010 Code RO 3161 .text c_w.l(aeabi_memset4.o) + 0x080003f2 0x080003f2 0x0000004e Code RO 3165 .text c_w.l(rt_memclr_w.o) + 0x08000440 0x08000440 0x00000006 Code RO 3169 .text c_w.l(heapauxi.o) + 0x08000446 0x08000446 0x00000016 Code RO 3249 .text c_w.l(_rserrno.o) + 0x0800045c 0x0800045c 0x00000064 Code RO 3344 .text c_w.l(rt_memcpy_w.o) + 0x080004c0 0x080004c0 0x00000008 Code RO 3458 .text c_w.l(rt_errno_addr_intlibspace.o) + 0x080004c8 0x080004c8 0x00000008 Code RO 3486 .text c_w.l(libspace.o) + 0x080004d0 0x080004d0 0x0000004a Code RO 3489 .text c_w.l(sys_stackheap_outer.o) + 0x0800051a 0x0800051a 0x00000012 Code RO 3530 .text c_w.l(exit.o) + 0x0800052c 0x0800052c 0x0000000c Code RO 3608 .text c_w.l(sys_exit.o) + 0x08000538 0x08000538 0x00000002 Code RO 3633 .text c_w.l(use_no_semi.o) + 0x0800053a 0x0800053a 0x00000000 Code RO 3635 .text c_w.l(indicate_semi.o) 0x0800053a 0x0800053a 0x00000002 PAD 0x0800053c 0x0800053c 0x0000015c Code RO 2482 .text.AHRS_GetEulr ahrs.o 0x08000698 0x08000698 0x00000284 Code RO 2476 .text.AHRS_Init ahrs.o @@ -8222,7 +8221,7 @@ Memory Map of the image 0x0800357c 0x0800357c 0x0000009a Code RO 2689 .text.CircleError user_math.o 0x08003616 0x08003616 0x00000002 PAD 0x08003618 0x08003618 0x0000004c Code RO 2683 .text.Clip user_math.o - 0x08003664 0x08003664 0x0000000a Code RO 3134 .text.Config_GetRobotParam config.o + 0x08003664 0x08003664 0x0000000a Code RO 3133 .text.Config_GetRobotParam config.o 0x0800366e 0x0800366e 0x00000002 PAD 0x08003670 0x08003670 0x00000014 Code RO 172 .text.DMA1_Stream1_IRQHandler stm32f4xx_it.o 0x08003684 0x08003684 0x00000056 Code RO 2965 .text.DMA1_Stream1_IRQHandler1 remote_control.o @@ -8245,647 +8244,648 @@ Memory Map of the image 0x080038c6 0x080038c6 0x00000002 PAD 0x080038c8 0x080038c8 0x00000006 Code RO 15 .text.Error_Handler main.o 0x080038ce 0x080038ce 0x00000002 PAD - 0x080038d0 0x080038d0 0x00000458 Code RO 3118 .text.Gimbal_Control gimbal.o - 0x08003d28 0x08003d28 0x00000122 Code RO 3112 .text.Gimbal_Init gimbal.o - 0x08003e4a 0x08003e4a 0x00000002 PAD - 0x08003e4c 0x08003e4c 0x00000112 Code RO 3124 .text.Gimbal_Output gimbal.o - 0x08003f5e 0x08003f5e 0x00000002 PAD - 0x08003f60 0x08003f60 0x000000a0 Code RO 3120 .text.Gimbal_SetMode gimbal.o - 0x08004000 0x08004000 0x000001d4 Code RO 3114 .text.Gimbal_UpdateFeedback gimbal.o - 0x080041d4 0x080041d4 0x0000004a Code RO 3116 .text.Gimbal_UpdateIMU gimbal.o - 0x0800421e 0x0800421e 0x00000002 PAD - 0x08004220 0x08004220 0x00000052 Code RO 251 .text.HAL_CAN_ActivateNotification stm32f4xx_hal_can.o - 0x08004272 0x08004272 0x00000002 PAD - 0x08004274 0x08004274 0x00000156 Code RO 237 .text.HAL_CAN_AddTxMessage stm32f4xx_hal_can.o - 0x080043ca 0x080043ca 0x00000002 PAD - 0x080043cc 0x080043cc 0x0000019e Code RO 227 .text.HAL_CAN_ConfigFilter stm32f4xx_hal_can.o - 0x0800456a 0x0800456a 0x00000002 PAD - 0x0800456c 0x0800456c 0x00000050 Code RO 2214 .text.HAL_CAN_ErrorCallback can_1.o - 0x080045bc 0x080045bc 0x00000052 Code RO 249 .text.HAL_CAN_GetRxFifoFillLevel stm32f4xx_hal_can.o - 0x0800460e 0x0800460e 0x00000002 PAD - 0x08004610 0x08004610 0x00000212 Code RO 247 .text.HAL_CAN_GetRxMessage stm32f4xx_hal_can.o - 0x08004822 0x08004822 0x00000002 PAD - 0x08004824 0x08004824 0x00000070 Code RO 241 .text.HAL_CAN_GetTxMailboxesFreeLevel stm32f4xx_hal_can.o - 0x08004894 0x08004894 0x000003f2 Code RO 255 .text.HAL_CAN_IRQHandler stm32f4xx_hal_can.o - 0x08004c86 0x08004c86 0x00000002 PAD - 0x08004c88 0x08004c88 0x000001de Code RO 217 .text.HAL_CAN_Init stm32f4xx_hal_can.o - 0x08004e66 0x08004e66 0x00000002 PAD - 0x08004e68 0x08004e68 0x000001d0 Code RO 57 .text.HAL_CAN_MspInit can.o - 0x08005038 0x08005038 0x00000050 Code RO 2204 .text.HAL_CAN_RxFifo0FullCallback can_1.o - 0x08005088 0x08005088 0x00000050 Code RO 2202 .text.HAL_CAN_RxFifo0MsgPendingCallback can_1.o - 0x080050d8 0x080050d8 0x00000050 Code RO 2208 .text.HAL_CAN_RxFifo1FullCallback can_1.o - 0x08005128 0x08005128 0x00000050 Code RO 2206 .text.HAL_CAN_RxFifo1MsgPendingCallback can_1.o - 0x08005178 0x08005178 0x00000050 Code RO 2210 .text.HAL_CAN_SleepCallback can_1.o - 0x080051c8 0x080051c8 0x0000008a Code RO 229 .text.HAL_CAN_Start stm32f4xx_hal_can.o - 0x08005252 0x08005252 0x00000002 PAD - 0x08005254 0x08005254 0x00000050 Code RO 2196 .text.HAL_CAN_TxMailbox0AbortCallback can_1.o - 0x080052a4 0x080052a4 0x0000004c Code RO 2188 .text.HAL_CAN_TxMailbox0CompleteCallback can_1.o - 0x080052f0 0x080052f0 0x00000050 Code RO 2198 .text.HAL_CAN_TxMailbox1AbortCallback can_1.o - 0x08005340 0x08005340 0x00000050 Code RO 2192 .text.HAL_CAN_TxMailbox1CompleteCallback can_1.o - 0x08005390 0x08005390 0x00000050 Code RO 2200 .text.HAL_CAN_TxMailbox2AbortCallback can_1.o - 0x080053e0 0x080053e0 0x00000050 Code RO 2194 .text.HAL_CAN_TxMailbox2CompleteCallback can_1.o - 0x08005430 0x08005430 0x00000050 Code RO 2212 .text.HAL_CAN_WakeUpFromRxMsgCallback can_1.o - 0x08005480 0x08005480 0x000000ec Code RO 484 .text.HAL_DMA_Abort stm32f4xx_hal_dma.o - 0x0800556c 0x0800556c 0x00000044 Code RO 486 .text.HAL_DMA_Abort_IT stm32f4xx_hal_dma.o - 0x080055b0 0x080055b0 0x0000000e Code RO 496 .text.HAL_DMA_GetState stm32f4xx_hal_dma.o - 0x080055be 0x080055be 0x00000002 PAD - 0x080055c0 0x080055c0 0x0000031e Code RO 490 .text.HAL_DMA_IRQHandler stm32f4xx_hal_dma.o - 0x080058de 0x080058de 0x00000002 PAD - 0x080058e0 0x080058e0 0x0000016e Code RO 470 .text.HAL_DMA_Init stm32f4xx_hal_dma.o - 0x08005a4e 0x08005a4e 0x00000002 PAD - 0x08005a50 0x08005a50 0x000000c2 Code RO 482 .text.HAL_DMA_Start_IT stm32f4xx_hal_dma.o - 0x08005b12 0x08005b12 0x00000002 PAD - 0x08005b14 0x08005b14 0x00000042 Code RO 665 .text.HAL_Delay stm32f4xx_hal.o - 0x08005b56 0x08005b56 0x00000002 PAD - 0x08005b58 0x08005b58 0x00000066 Code RO 2277 .text.HAL_GPIO_EXTI_Callback gpio_1.o - 0x08005bbe 0x08005bbe 0x00000002 PAD - 0x08005bc0 0x08005bc0 0x00000038 Code RO 444 .text.HAL_GPIO_EXTI_IRQHandler stm32f4xx_hal_gpio.o - 0x08005bf8 0x08005bf8 0x000003b6 Code RO 432 .text.HAL_GPIO_Init stm32f4xx_hal_gpio.o - 0x08005fae 0x08005fae 0x00000002 PAD - 0x08005fb0 0x08005fb0 0x0000002e Code RO 436 .text.HAL_GPIO_ReadPin stm32f4xx_hal_gpio.o - 0x08005fde 0x08005fde 0x00000002 PAD - 0x08005fe0 0x08005fe0 0x0000002e Code RO 438 .text.HAL_GPIO_WritePin stm32f4xx_hal_gpio.o - 0x0800600e 0x0800600e 0x00000002 PAD - 0x08006010 0x08006010 0x0000000c Code RO 657 .text.HAL_GetTick stm32f4xx_hal.o - 0x0800601c 0x0800601c 0x00000054 Code RO 2318 .text.HAL_I2C_AbortCpltCallback i2c_1.o - 0x08006070 0x08006070 0x00000010 Code RO 872 .text.HAL_I2C_AddrCallback stm32f4xx_hal_i2c.o - 0x08006080 0x08006080 0x0000017a Code RO 860 .text.HAL_I2C_ER_IRQHandler stm32f4xx_hal_i2c.o - 0x080061fa 0x080061fa 0x00000002 PAD - 0x080061fc 0x080061fc 0x000003ca Code RO 828 .text.HAL_I2C_EV_IRQHandler stm32f4xx_hal_i2c.o - 0x080065c6 0x080065c6 0x00000002 PAD - 0x080065c8 0x080065c8 0x00000054 Code RO 2316 .text.HAL_I2C_ErrorCallback i2c_1.o - 0x0800661c 0x0800661c 0x000002a4 Code RO 734 .text.HAL_I2C_Init stm32f4xx_hal_i2c.o - 0x080068c0 0x080068c0 0x00000054 Code RO 2310 .text.HAL_I2C_ListenCpltCallback i2c_1.o - 0x08006914 0x08006914 0x00000054 Code RO 2304 .text.HAL_I2C_MasterRxCpltCallback i2c_1.o - 0x08006968 0x08006968 0x00000050 Code RO 2300 .text.HAL_I2C_MasterTxCpltCallback i2c_1.o - 0x080069b8 0x080069b8 0x00000054 Code RO 2314 .text.HAL_I2C_MemRxCpltCallback i2c_1.o - 0x08006a0c 0x08006a0c 0x00000054 Code RO 2312 .text.HAL_I2C_MemTxCpltCallback i2c_1.o - 0x08006a60 0x08006a60 0x00000134 Code RO 83 .text.HAL_I2C_MspInit i2c.o - 0x08006b94 0x08006b94 0x00000054 Code RO 2308 .text.HAL_I2C_SlaveRxCpltCallback i2c_1.o - 0x08006be8 0x08006be8 0x00000054 Code RO 2306 .text.HAL_I2C_SlaveTxCpltCallback i2c_1.o - 0x08006c3c 0x08006c3c 0x0000001a Code RO 655 .text.HAL_IncTick stm32f4xx_hal.o - 0x08006c56 0x08006c56 0x00000002 PAD - 0x08006c58 0x08006c58 0x00000036 Code RO 645 .text.HAL_Init stm32f4xx_hal.o - 0x08006c8e 0x08006c8e 0x00000002 PAD - 0x08006c90 0x08006c90 0x00000070 Code RO 647 .text.HAL_InitTick stm32f4xx_hal.o - 0x08006d00 0x08006d00 0x00000058 Code RO 209 .text.HAL_MspInit stm32f4xx_hal_msp.o - 0x08006d58 0x08006d58 0x00000014 Code RO 584 .text.HAL_NVIC_DisableIRQ stm32f4xx_hal_cortex.o - 0x08006d6c 0x08006d6c 0x00000014 Code RO 580 .text.HAL_NVIC_EnableIRQ stm32f4xx_hal_cortex.o - 0x08006d80 0x08006d80 0x00000032 Code RO 572 .text.HAL_NVIC_SetPriority stm32f4xx_hal_cortex.o - 0x08006db2 0x08006db2 0x00000002 PAD - 0x08006db4 0x08006db4 0x00000010 Code RO 568 .text.HAL_NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o - 0x08006dc4 0x08006dc4 0x00000262 Code RO 300 .text.HAL_RCC_ClockConfig stm32f4xx_hal_rcc.o - 0x08007026 0x08007026 0x00000002 PAD - 0x08007028 0x08007028 0x0000000c Code RO 310 .text.HAL_RCC_GetHCLKFreq stm32f4xx_hal_rcc.o - 0x08007034 0x08007034 0x00000022 Code RO 312 .text.HAL_RCC_GetPCLK1Freq stm32f4xx_hal_rcc.o - 0x08007056 0x08007056 0x00000002 PAD - 0x08007058 0x08007058 0x00000022 Code RO 314 .text.HAL_RCC_GetPCLK2Freq stm32f4xx_hal_rcc.o - 0x0800707a 0x0800707a 0x00000002 PAD - 0x0800707c 0x0800707c 0x000000e6 Code RO 302 .text.HAL_RCC_GetSysClockFreq stm32f4xx_hal_rcc.o - 0x08007162 0x08007162 0x00000002 PAD - 0x08007164 0x08007164 0x000006be Code RO 298 .text.HAL_RCC_OscConfig stm32f4xx_hal_rcc.o - 0x08007822 0x08007822 0x00000002 PAD - 0x08007824 0x08007824 0x00000054 Code RO 2395 .text.HAL_SPI_ErrorCallback spi_1.o - 0x08007878 0x08007878 0x00000100 Code RO 906 .text.HAL_SPI_Init stm32f4xx_hal_spi.o - 0x08007978 0x08007978 0x00000210 Code RO 100 .text.HAL_SPI_MspInit spi.o - 0x08007b88 0x08007b88 0x0000024e Code RO 918 .text.HAL_SPI_Receive stm32f4xx_hal_spi.o - 0x08007dd6 0x08007dd6 0x00000002 PAD - 0x08007dd8 0x08007dd8 0x00000198 Code RO 954 .text.HAL_SPI_Receive_DMA stm32f4xx_hal_spi.o - 0x08007f70 0x08007f70 0x00000054 Code RO 2385 .text.HAL_SPI_RxCpltCallback spi_1.o - 0x08007fc4 0x08007fc4 0x00000054 Code RO 2391 .text.HAL_SPI_RxHalfCpltCallback spi_1.o - 0x08008018 0x08008018 0x000002a2 Code RO 914 .text.HAL_SPI_Transmit stm32f4xx_hal_spi.o - 0x080082ba 0x080082ba 0x00000002 PAD - 0x080082bc 0x080082bc 0x000003a2 Code RO 920 .text.HAL_SPI_TransmitReceive stm32f4xx_hal_spi.o - 0x0800865e 0x0800865e 0x00000002 PAD - 0x08008660 0x08008660 0x00000214 Code RO 956 .text.HAL_SPI_TransmitReceive_DMA stm32f4xx_hal_spi.o - 0x08008874 0x08008874 0x0000016c Code RO 946 .text.HAL_SPI_Transmit_DMA stm32f4xx_hal_spi.o - 0x080089e0 0x080089e0 0x00000048 Code RO 2381 .text.HAL_SPI_TxCpltCallback spi_1.o - 0x08008a28 0x08008a28 0x00000054 Code RO 2389 .text.HAL_SPI_TxHalfCpltCallback spi_1.o - 0x08008a7c 0x08008a7c 0x00000054 Code RO 2387 .text.HAL_SPI_TxRxCpltCallback spi_1.o - 0x08008ad0 0x08008ad0 0x00000054 Code RO 2393 .text.HAL_SPI_TxRxHalfCpltCallback spi_1.o - 0x08008b24 0x08008b24 0x00000010 Code RO 592 .text.HAL_SYSTICK_Config stm32f4xx_hal_cortex.o - 0x08008b34 0x08008b34 0x00000008 Code RO 1346 .text.HAL_TIMEx_BreakCallback stm32f4xx_hal_tim_ex.o - 0x08008b3c 0x08008b3c 0x00000008 Code RO 1342 .text.HAL_TIMEx_CommutCallback stm32f4xx_hal_tim_ex.o - 0x08008b44 0x08008b44 0x00000122 Code RO 1336 .text.HAL_TIMEx_MasterConfigSynchronization stm32f4xx_hal_tim_ex.o - 0x08008c66 0x08008c66 0x00000002 PAD - 0x08008c68 0x08008c68 0x0000009c Code RO 1023 .text.HAL_TIM_Base_Init stm32f4xx_hal_tim.o - 0x08008d04 0x08008d04 0x0000008a Code RO 121 .text.HAL_TIM_Base_MspInit tim.o - 0x08008d8e 0x08008d8e 0x00000002 PAD - 0x08008d90 0x08008d90 0x00000008 Code RO 1159 .text.HAL_TIM_IC_CaptureCallback stm32f4xx_hal_tim.o - 0x08008d98 0x08008d98 0x0000021a Code RO 1157 .text.HAL_TIM_IRQHandler stm32f4xx_hal_tim.o - 0x08008fb2 0x08008fb2 0x00000002 PAD - 0x08008fb4 0x08008fb4 0x0000006c Code RO 119 .text.HAL_TIM_MspPostInit tim.o - 0x08009020 0x08009020 0x00000008 Code RO 1161 .text.HAL_TIM_OC_DelayElapsedCallback stm32f4xx_hal_tim.o - 0x08009028 0x08009028 0x00000142 Code RO 1189 .text.HAL_TIM_PWM_ConfigChannel stm32f4xx_hal_tim.o - 0x0800916a 0x0800916a 0x00000002 PAD - 0x0800916c 0x0800916c 0x0000009c Code RO 1077 .text.HAL_TIM_PWM_Init stm32f4xx_hal_tim.o - 0x08009208 0x08009208 0x00000008 Code RO 1079 .text.HAL_TIM_PWM_MspInit stm32f4xx_hal_tim.o - 0x08009210 0x08009210 0x00000008 Code RO 1163 .text.HAL_TIM_PWM_PulseFinishedCallback stm32f4xx_hal_tim.o - 0x08009218 0x08009218 0x000001ca Code RO 1085 .text.HAL_TIM_PWM_Start stm32f4xx_hal_tim.o - 0x080093e2 0x080093e2 0x00000002 PAD - 0x080093e4 0x080093e4 0x00000008 Code RO 1165 .text.HAL_TIM_PeriodElapsedCallback stm32f4xx_hal_tim.o - 0x080093ec 0x080093ec 0x00000008 Code RO 1167 .text.HAL_TIM_TriggerCallback stm32f4xx_hal_tim.o - 0x080093f4 0x080093f4 0x0000000c Code RO 1451 .text.HAL_UARTEx_RxEventCallback stm32f4xx_hal_uart.o - 0x08009400 0x08009400 0x00000054 Code RO 2450 .text.HAL_UART_ErrorCallback uart.o - 0x08009454 0x08009454 0x0000045c Code RO 1443 .text.HAL_UART_IRQHandler stm32f4xx_hal_uart.o - 0x080098b0 0x080098b0 0x0000009e Code RO 1359 .text.HAL_UART_Init stm32f4xx_hal_uart.o - 0x0800994e 0x0800994e 0x00000002 PAD - 0x08009950 0x08009950 0x000001de Code RO 138 .text.HAL_UART_MspInit usart.o - 0x08009b2e 0x08009b2e 0x00000002 PAD - 0x08009b30 0x08009b30 0x00000054 Code RO 2446 .text.HAL_UART_RxCpltCallback uart.o - 0x08009b84 0x08009b84 0x000000fc Code RO 1387 .text.HAL_UART_Transmit_DMA stm32f4xx_hal_uart.o - 0x08009c80 0x08009c80 0x00000072 Code RO 1381 .text.HAL_UART_Transmit_IT stm32f4xx_hal_uart.o - 0x08009cf2 0x08009cf2 0x00000002 PAD - 0x08009cf4 0x08009cf4 0x00000054 Code RO 2440 .text.HAL_UART_TxCpltCallback uart.o - 0x08009d48 0x08009d48 0x00000050 Code RO 2444 .text.HAL_UART_TxHalfCpltCallback uart.o - 0x08009d98 0x08009d98 0x00000004 Code RO 154 .text.HardFault_Handler stm32f4xx_it.o - 0x08009d9c 0x08009d9c 0x00000010 Code RO 184 .text.I2C1_ER_IRQHandler stm32f4xx_it.o - 0x08009dac 0x08009dac 0x00000010 Code RO 182 .text.I2C1_EV_IRQHandler stm32f4xx_it.o - 0x08009dbc 0x08009dbc 0x00000034 Code RO 830 .text.I2C_ConvertOtherXferOptions stm32f4xx_hal_i2c.o - 0x08009df0 0x08009df0 0x00000156 Code RO 814 .text.I2C_DMAAbort stm32f4xx_hal_i2c.o - 0x08009f46 0x08009f46 0x00000002 PAD - 0x08009f48 0x08009f48 0x00000024 Code RO 890 .text.I2C_Flush_DR stm32f4xx_hal_i2c.o - 0x08009f6c 0x08009f6c 0x00000048 Code RO 2302 .text.I2C_Get i2c_1.o - 0x08009fb4 0x08009fb4 0x0000027a Code RO 826 .text.I2C_ITError stm32f4xx_hal_i2c.o - 0x0800a22e 0x0800a22e 0x00000002 PAD - 0x0800a230 0x0800a230 0x000001ac Code RO 846 .text.I2C_MasterReceive_BTF stm32f4xx_hal_i2c.o - 0x0800a3dc 0x0800a3dc 0x0000016a Code RO 844 .text.I2C_MasterReceive_RXNE stm32f4xx_hal_i2c.o - 0x0800a546 0x0800a546 0x00000002 PAD - 0x0800a548 0x0800a548 0x000000de Code RO 840 .text.I2C_MasterTransmit_BTF stm32f4xx_hal_i2c.o - 0x0800a626 0x0800a626 0x00000002 PAD - 0x0800a628 0x0800a628 0x0000013e Code RO 838 .text.I2C_MasterTransmit_TXE stm32f4xx_hal_i2c.o - 0x0800a766 0x0800a766 0x00000002 PAD - 0x0800a768 0x0800a768 0x00000046 Code RO 834 .text.I2C_Master_ADD10 stm32f4xx_hal_i2c.o - 0x0800a7ae 0x0800a7ae 0x00000002 PAD - 0x0800a7b0 0x0800a7b0 0x0000033e Code RO 836 .text.I2C_Master_ADDR stm32f4xx_hal_i2c.o - 0x0800aaee 0x0800aaee 0x00000002 PAD - 0x0800aaf0 0x0800aaf0 0x000000f0 Code RO 832 .text.I2C_Master_SB stm32f4xx_hal_i2c.o - 0x0800abe0 0x0800abe0 0x00000128 Code RO 842 .text.I2C_MemoryTransmit_TXE_BTF stm32f4xx_hal_i2c.o - 0x0800ad08 0x0800ad08 0x0000002e Code RO 858 .text.I2C_SlaveReceive_BTF stm32f4xx_hal_i2c.o - 0x0800ad36 0x0800ad36 0x00000002 PAD - 0x0800ad38 0x0800ad38 0x0000006e Code RO 856 .text.I2C_SlaveReceive_RXNE stm32f4xx_hal_i2c.o - 0x0800ada6 0x0800ada6 0x00000002 PAD - 0x0800ada8 0x0800ada8 0x0000002c Code RO 854 .text.I2C_SlaveTransmit_BTF stm32f4xx_hal_i2c.o - 0x0800add4 0x0800add4 0x0000006c Code RO 852 .text.I2C_SlaveTransmit_TXE stm32f4xx_hal_i2c.o - 0x0800ae40 0x0800ae40 0x000000ae Code RO 848 .text.I2C_Slave_ADDR stm32f4xx_hal_i2c.o - 0x0800aeee 0x0800aeee 0x00000002 PAD - 0x0800aef0 0x0800aef0 0x000000e4 Code RO 862 .text.I2C_Slave_AF stm32f4xx_hal_i2c.o - 0x0800afd4 0x0800afd4 0x0000024a Code RO 850 .text.I2C_Slave_STOPF stm32f4xx_hal_i2c.o - 0x0800b21e 0x0800b21e 0x00000002 PAD - 0x0800b220 0x0800b220 0x00000078 Code RO 892 .text.I2C_WaitOnSTOPRequestThroughIT stm32f4xx_hal_i2c.o - 0x0800b298 0x0800b298 0x00000076 Code RO 2677 .text.InvSqrt user_math.o - 0x0800b30e 0x0800b30e 0x00000002 PAD - 0x0800b310 0x0800b310 0x000000b8 Code RO 2529 .text.LowPassFilter2p_Apply filter.o - 0x0800b3c8 0x0800b3c8 0x0000013c Code RO 2527 .text.LowPassFilter2p_Init filter.o - 0x0800b504 0x0800b504 0x00000092 Code RO 2535 .text.LowPassFilter2p_Reset filter.o - 0x0800b596 0x0800b596 0x00000002 PAD - 0x0800b598 0x0800b598 0x00000096 Code RO 2980 .text.MOTOR_DM_CreateCANManager motor_dm.o - 0x0800b62e 0x0800b62e 0x00000002 PAD - 0x0800b630 0x0800b630 0x0000007a Code RO 3004 .text.MOTOR_DM_Enable motor_dm.o - 0x0800b6aa 0x0800b6aa 0x00000002 PAD - 0x0800b6ac 0x0800b6ac 0x00000030 Code RO 2982 .text.MOTOR_DM_GetCANManager motor_dm.o - 0x0800b6dc 0x0800b6dc 0x00000086 Code RO 2992 .text.MOTOR_DM_GetMotor motor_dm.o - 0x0800b762 0x0800b762 0x00000002 PAD - 0x0800b764 0x0800b764 0x00000048 Code RO 2990 .text.MOTOR_DM_MITCtrl motor_dm.o - 0x0800b7ac 0x0800b7ac 0x00000158 Code RO 2986 .text.MOTOR_DM_ParseFeedbackFrame motor_dm.o - 0x0800b904 0x0800b904 0x0000012c Code RO 2978 .text.MOTOR_DM_Register motor_dm.o - 0x0800ba30 0x0800ba30 0x00000144 Code RO 2994 .text.MOTOR_DM_SendMITCmd motor_dm.o - 0x0800bb74 0x0800bb74 0x0000010c Code RO 2984 .text.MOTOR_DM_Update motor_dm.o - 0x0800bc80 0x0800bc80 0x00000096 Code RO 2887 .text.MOTOR_RM_CreateCANManager motor_rm.o - 0x0800bd16 0x0800bd16 0x00000002 PAD - 0x0800bd18 0x0800bd18 0x00000170 Code RO 2905 .text.MOTOR_RM_Ctrl motor_rm.o - 0x0800be88 0x0800be88 0x00000030 Code RO 2889 .text.MOTOR_RM_GetCANManager motor_rm.o - 0x0800beb8 0x0800beb8 0x00000052 Code RO 2903 .text.MOTOR_RM_GetLSB motor_rm.o - 0x0800bf0a 0x0800bf0a 0x00000002 PAD - 0x0800bf0c 0x0800bf0c 0x00000080 Code RO 2901 .text.MOTOR_RM_GetLogicalIndex motor_rm.o - 0x0800bf8c 0x0800bf8c 0x00000078 Code RO 2899 .text.MOTOR_RM_GetMotor motor_rm.o - 0x0800c004 0x0800c004 0x00000050 Code RO 2911 .text.MOTOR_RM_GetRatio motor_rm.o - 0x0800c054 0x0800c054 0x00000120 Code RO 2885 .text.MOTOR_RM_Register motor_rm.o - 0x0800c174 0x0800c174 0x0000011a Code RO 2897 .text.MOTOR_RM_SetOutput motor_rm.o - 0x0800c28e 0x0800c28e 0x00000002 PAD - 0x0800c290 0x0800c290 0x00000102 Code RO 2891 .text.MOTOR_RM_Update motor_rm.o - 0x0800c392 0x0800c392 0x00000002 PAD - 0x0800c394 0x0800c394 0x0000004e Code RO 53 .text.MX_CAN1_Init can.o - 0x0800c3e2 0x0800c3e2 0x00000002 PAD - 0x0800c3e4 0x0800c3e4 0x0000004e Code RO 55 .text.MX_CAN2_Init can.o - 0x0800c432 0x0800c432 0x00000002 PAD - 0x0800c434 0x0800c434 0x00000086 Code RO 71 .text.MX_DMA_Init dma.o - 0x0800c4ba 0x0800c4ba 0x00000002 PAD - 0x0800c4bc 0x0800c4bc 0x00000040 Code RO 39 .text.MX_FREERTOS_Init freertos.o - 0x0800c4fc 0x0800c4fc 0x0000022a Code RO 25 .text.MX_GPIO_Init gpio.o - 0x0800c726 0x0800c726 0x00000002 PAD - 0x0800c728 0x0800c728 0x00000048 Code RO 79 .text.MX_I2C1_Init i2c.o - 0x0800c770 0x0800c770 0x00000048 Code RO 81 .text.MX_I2C2_Init i2c.o - 0x0800c7b8 0x0800c7b8 0x00000052 Code RO 96 .text.MX_SPI1_Init spi.o - 0x0800c80a 0x0800c80a 0x00000002 PAD - 0x0800c80c 0x0800c80c 0x00000054 Code RO 98 .text.MX_SPI2_Init spi.o - 0x0800c860 0x0800c860 0x0000008e Code RO 117 .text.MX_TIM10_Init tim.o - 0x0800c8ee 0x0800c8ee 0x00000002 PAD - 0x0800c8f0 0x0800c8f0 0x00000058 Code RO 115 .text.MX_TIM7_Init tim.o - 0x0800c948 0x0800c948 0x00000040 Code RO 134 .text.MX_USART1_UART_Init usart.o - 0x0800c988 0x0800c988 0x0000004c Code RO 136 .text.MX_USART3_UART_Init usart.o - 0x0800c9d4 0x0800c9d4 0x00000004 Code RO 156 .text.MemManage_Handler stm32f4xx_it.o - 0x0800c9d8 0x0800c9d8 0x0000021c Code RO 2893 .text.Motor_RM_Decode motor_rm.o - 0x0800cbf4 0x0800cbf4 0x00000004 Code RO 152 .text.NMI_Handler stm32f4xx_it.o - 0x0800cbf8 0x0800cbf8 0x0000006c Code RO 578 .text.NVIC_EncodePriority stm32f4xx_hal_cortex.o - 0x0800cc64 0x0800cc64 0x00000094 Code RO 2769 .text.OutContinuation sliding.o - 0x0800ccf8 0x0800ccf8 0x000002f0 Code RO 2640 .text.PID_Calc pid.o - 0x0800cfe8 0x0800cfe8 0x00000196 Code RO 2632 .text.PID_Init pid.o - 0x0800d17e 0x0800d17e 0x00000002 PAD - 0x0800d180 0x0800d180 0x00000048 Code RO 2638 .text.PID_Reset pid.o - 0x0800d1c8 0x0800d1c8 0x00000008 PAD - 0x0800d1d0 0x0800d1d0 0x00000064 Code RO 2172 .text.PendSV_Handler port.o - 0x0800d234 0x0800d234 0x00000094 Code RO 2719 .text.RC_Init bsp_rc.o - 0x0800d2c8 0x0800d2c8 0x0000005a Code RO 2723 .text.RC_restart bsp_rc.o - 0x0800d322 0x0800d322 0x00000002 PAD - 0x0800d324 0x0800d324 0x0000006c Code RO 2757 .text.SMC_Init sliding.o - 0x0800d390 0x0800d390 0x0000009c Code RO 2761 .text.SMC_PErrorUpdate sliding.o - 0x0800d42c 0x0800d42c 0x0000004e Code RO 2755 .text.SMC_Reset sliding.o - 0x0800d47a 0x0800d47a 0x00000002 PAD - 0x0800d47c 0x0800d47c 0x0000004e Code RO 2759 .text.SMC_SetParam sliding.o - 0x0800d4ca 0x0800d4ca 0x00000002 PAD - 0x0800d4cc 0x0800d4cc 0x00000034 Code RO 952 .text.SPI_DMAError stm32f4xx_hal_spi.o - 0x0800d500 0x0800d500 0x00000016 Code RO 958 .text.SPI_DMAHalfReceiveCplt stm32f4xx_hal_spi.o - 0x0800d516 0x0800d516 0x00000002 PAD - 0x0800d518 0x0800d518 0x00000016 Code RO 948 .text.SPI_DMAHalfTransmitCplt stm32f4xx_hal_spi.o - 0x0800d52e 0x0800d52e 0x00000002 PAD - 0x0800d530 0x0800d530 0x00000016 Code RO 962 .text.SPI_DMAHalfTransmitReceiveCplt stm32f4xx_hal_spi.o + 0x080038d0 0x080038d0 0x00000484 Code RO 3118 .text.Gimbal_Control gimbal.o + 0x08003d54 0x08003d54 0x00000122 Code RO 3112 .text.Gimbal_Init gimbal.o + 0x08003e76 0x08003e76 0x00000002 PAD + 0x08003e78 0x08003e78 0x00000112 Code RO 3124 .text.Gimbal_Output gimbal.o + 0x08003f8a 0x08003f8a 0x00000002 PAD + 0x08003f8c 0x08003f8c 0x00000094 Code RO 3120 .text.Gimbal_SetMode gimbal.o + 0x08004020 0x08004020 0x00000210 Code RO 3114 .text.Gimbal_UpdateFeedback gimbal.o + 0x08004230 0x08004230 0x0000004a Code RO 3116 .text.Gimbal_UpdateIMU gimbal.o + 0x0800427a 0x0800427a 0x00000002 PAD + 0x0800427c 0x0800427c 0x00000052 Code RO 251 .text.HAL_CAN_ActivateNotification stm32f4xx_hal_can.o + 0x080042ce 0x080042ce 0x00000002 PAD + 0x080042d0 0x080042d0 0x00000156 Code RO 237 .text.HAL_CAN_AddTxMessage stm32f4xx_hal_can.o + 0x08004426 0x08004426 0x00000002 PAD + 0x08004428 0x08004428 0x0000019e Code RO 227 .text.HAL_CAN_ConfigFilter stm32f4xx_hal_can.o + 0x080045c6 0x080045c6 0x00000002 PAD + 0x080045c8 0x080045c8 0x00000050 Code RO 2214 .text.HAL_CAN_ErrorCallback can_1.o + 0x08004618 0x08004618 0x00000052 Code RO 249 .text.HAL_CAN_GetRxFifoFillLevel stm32f4xx_hal_can.o + 0x0800466a 0x0800466a 0x00000002 PAD + 0x0800466c 0x0800466c 0x00000212 Code RO 247 .text.HAL_CAN_GetRxMessage stm32f4xx_hal_can.o + 0x0800487e 0x0800487e 0x00000002 PAD + 0x08004880 0x08004880 0x00000070 Code RO 241 .text.HAL_CAN_GetTxMailboxesFreeLevel stm32f4xx_hal_can.o + 0x080048f0 0x080048f0 0x000003f2 Code RO 255 .text.HAL_CAN_IRQHandler stm32f4xx_hal_can.o + 0x08004ce2 0x08004ce2 0x00000002 PAD + 0x08004ce4 0x08004ce4 0x000001de Code RO 217 .text.HAL_CAN_Init stm32f4xx_hal_can.o + 0x08004ec2 0x08004ec2 0x00000002 PAD + 0x08004ec4 0x08004ec4 0x000001d0 Code RO 57 .text.HAL_CAN_MspInit can.o + 0x08005094 0x08005094 0x00000050 Code RO 2204 .text.HAL_CAN_RxFifo0FullCallback can_1.o + 0x080050e4 0x080050e4 0x00000050 Code RO 2202 .text.HAL_CAN_RxFifo0MsgPendingCallback can_1.o + 0x08005134 0x08005134 0x00000050 Code RO 2208 .text.HAL_CAN_RxFifo1FullCallback can_1.o + 0x08005184 0x08005184 0x00000050 Code RO 2206 .text.HAL_CAN_RxFifo1MsgPendingCallback can_1.o + 0x080051d4 0x080051d4 0x00000050 Code RO 2210 .text.HAL_CAN_SleepCallback can_1.o + 0x08005224 0x08005224 0x0000008a Code RO 229 .text.HAL_CAN_Start stm32f4xx_hal_can.o + 0x080052ae 0x080052ae 0x00000002 PAD + 0x080052b0 0x080052b0 0x00000050 Code RO 2196 .text.HAL_CAN_TxMailbox0AbortCallback can_1.o + 0x08005300 0x08005300 0x0000004c Code RO 2188 .text.HAL_CAN_TxMailbox0CompleteCallback can_1.o + 0x0800534c 0x0800534c 0x00000050 Code RO 2198 .text.HAL_CAN_TxMailbox1AbortCallback can_1.o + 0x0800539c 0x0800539c 0x00000050 Code RO 2192 .text.HAL_CAN_TxMailbox1CompleteCallback can_1.o + 0x080053ec 0x080053ec 0x00000050 Code RO 2200 .text.HAL_CAN_TxMailbox2AbortCallback can_1.o + 0x0800543c 0x0800543c 0x00000050 Code RO 2194 .text.HAL_CAN_TxMailbox2CompleteCallback can_1.o + 0x0800548c 0x0800548c 0x00000050 Code RO 2212 .text.HAL_CAN_WakeUpFromRxMsgCallback can_1.o + 0x080054dc 0x080054dc 0x000000ec Code RO 484 .text.HAL_DMA_Abort stm32f4xx_hal_dma.o + 0x080055c8 0x080055c8 0x00000044 Code RO 486 .text.HAL_DMA_Abort_IT stm32f4xx_hal_dma.o + 0x0800560c 0x0800560c 0x0000000e Code RO 496 .text.HAL_DMA_GetState stm32f4xx_hal_dma.o + 0x0800561a 0x0800561a 0x00000002 PAD + 0x0800561c 0x0800561c 0x0000031e Code RO 490 .text.HAL_DMA_IRQHandler stm32f4xx_hal_dma.o + 0x0800593a 0x0800593a 0x00000002 PAD + 0x0800593c 0x0800593c 0x0000016e Code RO 470 .text.HAL_DMA_Init stm32f4xx_hal_dma.o + 0x08005aaa 0x08005aaa 0x00000002 PAD + 0x08005aac 0x08005aac 0x000000c2 Code RO 482 .text.HAL_DMA_Start_IT stm32f4xx_hal_dma.o + 0x08005b6e 0x08005b6e 0x00000002 PAD + 0x08005b70 0x08005b70 0x00000042 Code RO 665 .text.HAL_Delay stm32f4xx_hal.o + 0x08005bb2 0x08005bb2 0x00000002 PAD + 0x08005bb4 0x08005bb4 0x00000066 Code RO 2277 .text.HAL_GPIO_EXTI_Callback gpio_1.o + 0x08005c1a 0x08005c1a 0x00000002 PAD + 0x08005c1c 0x08005c1c 0x00000038 Code RO 444 .text.HAL_GPIO_EXTI_IRQHandler stm32f4xx_hal_gpio.o + 0x08005c54 0x08005c54 0x000003b6 Code RO 432 .text.HAL_GPIO_Init stm32f4xx_hal_gpio.o + 0x0800600a 0x0800600a 0x00000002 PAD + 0x0800600c 0x0800600c 0x0000002e Code RO 436 .text.HAL_GPIO_ReadPin stm32f4xx_hal_gpio.o + 0x0800603a 0x0800603a 0x00000002 PAD + 0x0800603c 0x0800603c 0x0000002e Code RO 438 .text.HAL_GPIO_WritePin stm32f4xx_hal_gpio.o + 0x0800606a 0x0800606a 0x00000002 PAD + 0x0800606c 0x0800606c 0x0000000c Code RO 657 .text.HAL_GetTick stm32f4xx_hal.o + 0x08006078 0x08006078 0x00000054 Code RO 2318 .text.HAL_I2C_AbortCpltCallback i2c_1.o + 0x080060cc 0x080060cc 0x00000010 Code RO 872 .text.HAL_I2C_AddrCallback stm32f4xx_hal_i2c.o + 0x080060dc 0x080060dc 0x0000017a Code RO 860 .text.HAL_I2C_ER_IRQHandler stm32f4xx_hal_i2c.o + 0x08006256 0x08006256 0x00000002 PAD + 0x08006258 0x08006258 0x000003ca Code RO 828 .text.HAL_I2C_EV_IRQHandler stm32f4xx_hal_i2c.o + 0x08006622 0x08006622 0x00000002 PAD + 0x08006624 0x08006624 0x00000054 Code RO 2316 .text.HAL_I2C_ErrorCallback i2c_1.o + 0x08006678 0x08006678 0x000002a4 Code RO 734 .text.HAL_I2C_Init stm32f4xx_hal_i2c.o + 0x0800691c 0x0800691c 0x00000054 Code RO 2310 .text.HAL_I2C_ListenCpltCallback i2c_1.o + 0x08006970 0x08006970 0x00000054 Code RO 2304 .text.HAL_I2C_MasterRxCpltCallback i2c_1.o + 0x080069c4 0x080069c4 0x00000050 Code RO 2300 .text.HAL_I2C_MasterTxCpltCallback i2c_1.o + 0x08006a14 0x08006a14 0x00000054 Code RO 2314 .text.HAL_I2C_MemRxCpltCallback i2c_1.o + 0x08006a68 0x08006a68 0x00000054 Code RO 2312 .text.HAL_I2C_MemTxCpltCallback i2c_1.o + 0x08006abc 0x08006abc 0x00000134 Code RO 83 .text.HAL_I2C_MspInit i2c.o + 0x08006bf0 0x08006bf0 0x00000054 Code RO 2308 .text.HAL_I2C_SlaveRxCpltCallback i2c_1.o + 0x08006c44 0x08006c44 0x00000054 Code RO 2306 .text.HAL_I2C_SlaveTxCpltCallback i2c_1.o + 0x08006c98 0x08006c98 0x0000001a Code RO 655 .text.HAL_IncTick stm32f4xx_hal.o + 0x08006cb2 0x08006cb2 0x00000002 PAD + 0x08006cb4 0x08006cb4 0x00000036 Code RO 645 .text.HAL_Init stm32f4xx_hal.o + 0x08006cea 0x08006cea 0x00000002 PAD + 0x08006cec 0x08006cec 0x00000070 Code RO 647 .text.HAL_InitTick stm32f4xx_hal.o + 0x08006d5c 0x08006d5c 0x00000058 Code RO 209 .text.HAL_MspInit stm32f4xx_hal_msp.o + 0x08006db4 0x08006db4 0x00000014 Code RO 584 .text.HAL_NVIC_DisableIRQ stm32f4xx_hal_cortex.o + 0x08006dc8 0x08006dc8 0x00000014 Code RO 580 .text.HAL_NVIC_EnableIRQ stm32f4xx_hal_cortex.o + 0x08006ddc 0x08006ddc 0x00000032 Code RO 572 .text.HAL_NVIC_SetPriority stm32f4xx_hal_cortex.o + 0x08006e0e 0x08006e0e 0x00000002 PAD + 0x08006e10 0x08006e10 0x00000010 Code RO 568 .text.HAL_NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o + 0x08006e20 0x08006e20 0x00000262 Code RO 300 .text.HAL_RCC_ClockConfig stm32f4xx_hal_rcc.o + 0x08007082 0x08007082 0x00000002 PAD + 0x08007084 0x08007084 0x0000000c Code RO 310 .text.HAL_RCC_GetHCLKFreq stm32f4xx_hal_rcc.o + 0x08007090 0x08007090 0x00000022 Code RO 312 .text.HAL_RCC_GetPCLK1Freq stm32f4xx_hal_rcc.o + 0x080070b2 0x080070b2 0x00000002 PAD + 0x080070b4 0x080070b4 0x00000022 Code RO 314 .text.HAL_RCC_GetPCLK2Freq stm32f4xx_hal_rcc.o + 0x080070d6 0x080070d6 0x00000002 PAD + 0x080070d8 0x080070d8 0x000000e6 Code RO 302 .text.HAL_RCC_GetSysClockFreq stm32f4xx_hal_rcc.o + 0x080071be 0x080071be 0x00000002 PAD + 0x080071c0 0x080071c0 0x000006be Code RO 298 .text.HAL_RCC_OscConfig stm32f4xx_hal_rcc.o + 0x0800787e 0x0800787e 0x00000002 PAD + 0x08007880 0x08007880 0x00000054 Code RO 2395 .text.HAL_SPI_ErrorCallback spi_1.o + 0x080078d4 0x080078d4 0x00000100 Code RO 906 .text.HAL_SPI_Init stm32f4xx_hal_spi.o + 0x080079d4 0x080079d4 0x00000210 Code RO 100 .text.HAL_SPI_MspInit spi.o + 0x08007be4 0x08007be4 0x0000024e Code RO 918 .text.HAL_SPI_Receive stm32f4xx_hal_spi.o + 0x08007e32 0x08007e32 0x00000002 PAD + 0x08007e34 0x08007e34 0x00000198 Code RO 954 .text.HAL_SPI_Receive_DMA stm32f4xx_hal_spi.o + 0x08007fcc 0x08007fcc 0x00000054 Code RO 2385 .text.HAL_SPI_RxCpltCallback spi_1.o + 0x08008020 0x08008020 0x00000054 Code RO 2391 .text.HAL_SPI_RxHalfCpltCallback spi_1.o + 0x08008074 0x08008074 0x000002a2 Code RO 914 .text.HAL_SPI_Transmit stm32f4xx_hal_spi.o + 0x08008316 0x08008316 0x00000002 PAD + 0x08008318 0x08008318 0x000003a2 Code RO 920 .text.HAL_SPI_TransmitReceive stm32f4xx_hal_spi.o + 0x080086ba 0x080086ba 0x00000002 PAD + 0x080086bc 0x080086bc 0x00000214 Code RO 956 .text.HAL_SPI_TransmitReceive_DMA stm32f4xx_hal_spi.o + 0x080088d0 0x080088d0 0x0000016c Code RO 946 .text.HAL_SPI_Transmit_DMA stm32f4xx_hal_spi.o + 0x08008a3c 0x08008a3c 0x00000048 Code RO 2381 .text.HAL_SPI_TxCpltCallback spi_1.o + 0x08008a84 0x08008a84 0x00000054 Code RO 2389 .text.HAL_SPI_TxHalfCpltCallback spi_1.o + 0x08008ad8 0x08008ad8 0x00000054 Code RO 2387 .text.HAL_SPI_TxRxCpltCallback spi_1.o + 0x08008b2c 0x08008b2c 0x00000054 Code RO 2393 .text.HAL_SPI_TxRxHalfCpltCallback spi_1.o + 0x08008b80 0x08008b80 0x00000010 Code RO 592 .text.HAL_SYSTICK_Config stm32f4xx_hal_cortex.o + 0x08008b90 0x08008b90 0x00000008 Code RO 1346 .text.HAL_TIMEx_BreakCallback stm32f4xx_hal_tim_ex.o + 0x08008b98 0x08008b98 0x00000008 Code RO 1342 .text.HAL_TIMEx_CommutCallback stm32f4xx_hal_tim_ex.o + 0x08008ba0 0x08008ba0 0x00000122 Code RO 1336 .text.HAL_TIMEx_MasterConfigSynchronization stm32f4xx_hal_tim_ex.o + 0x08008cc2 0x08008cc2 0x00000002 PAD + 0x08008cc4 0x08008cc4 0x0000009c Code RO 1023 .text.HAL_TIM_Base_Init stm32f4xx_hal_tim.o + 0x08008d60 0x08008d60 0x0000008a Code RO 121 .text.HAL_TIM_Base_MspInit tim.o + 0x08008dea 0x08008dea 0x00000002 PAD + 0x08008dec 0x08008dec 0x00000008 Code RO 1159 .text.HAL_TIM_IC_CaptureCallback stm32f4xx_hal_tim.o + 0x08008df4 0x08008df4 0x0000021a Code RO 1157 .text.HAL_TIM_IRQHandler stm32f4xx_hal_tim.o + 0x0800900e 0x0800900e 0x00000002 PAD + 0x08009010 0x08009010 0x0000006c Code RO 119 .text.HAL_TIM_MspPostInit tim.o + 0x0800907c 0x0800907c 0x00000008 Code RO 1161 .text.HAL_TIM_OC_DelayElapsedCallback stm32f4xx_hal_tim.o + 0x08009084 0x08009084 0x00000142 Code RO 1189 .text.HAL_TIM_PWM_ConfigChannel stm32f4xx_hal_tim.o + 0x080091c6 0x080091c6 0x00000002 PAD + 0x080091c8 0x080091c8 0x0000009c Code RO 1077 .text.HAL_TIM_PWM_Init stm32f4xx_hal_tim.o + 0x08009264 0x08009264 0x00000008 Code RO 1079 .text.HAL_TIM_PWM_MspInit stm32f4xx_hal_tim.o + 0x0800926c 0x0800926c 0x00000008 Code RO 1163 .text.HAL_TIM_PWM_PulseFinishedCallback stm32f4xx_hal_tim.o + 0x08009274 0x08009274 0x000001ca Code RO 1085 .text.HAL_TIM_PWM_Start stm32f4xx_hal_tim.o + 0x0800943e 0x0800943e 0x00000002 PAD + 0x08009440 0x08009440 0x00000008 Code RO 1165 .text.HAL_TIM_PeriodElapsedCallback stm32f4xx_hal_tim.o + 0x08009448 0x08009448 0x00000008 Code RO 1167 .text.HAL_TIM_TriggerCallback stm32f4xx_hal_tim.o + 0x08009450 0x08009450 0x0000000c Code RO 1451 .text.HAL_UARTEx_RxEventCallback stm32f4xx_hal_uart.o + 0x0800945c 0x0800945c 0x00000054 Code RO 2450 .text.HAL_UART_ErrorCallback uart.o + 0x080094b0 0x080094b0 0x0000045c Code RO 1443 .text.HAL_UART_IRQHandler stm32f4xx_hal_uart.o + 0x0800990c 0x0800990c 0x0000009e Code RO 1359 .text.HAL_UART_Init stm32f4xx_hal_uart.o + 0x080099aa 0x080099aa 0x00000002 PAD + 0x080099ac 0x080099ac 0x000001de Code RO 138 .text.HAL_UART_MspInit usart.o + 0x08009b8a 0x08009b8a 0x00000002 PAD + 0x08009b8c 0x08009b8c 0x00000054 Code RO 2446 .text.HAL_UART_RxCpltCallback uart.o + 0x08009be0 0x08009be0 0x000000fc Code RO 1387 .text.HAL_UART_Transmit_DMA stm32f4xx_hal_uart.o + 0x08009cdc 0x08009cdc 0x00000072 Code RO 1381 .text.HAL_UART_Transmit_IT stm32f4xx_hal_uart.o + 0x08009d4e 0x08009d4e 0x00000002 PAD + 0x08009d50 0x08009d50 0x00000054 Code RO 2440 .text.HAL_UART_TxCpltCallback uart.o + 0x08009da4 0x08009da4 0x00000050 Code RO 2444 .text.HAL_UART_TxHalfCpltCallback uart.o + 0x08009df4 0x08009df4 0x00000004 Code RO 154 .text.HardFault_Handler stm32f4xx_it.o + 0x08009df8 0x08009df8 0x00000010 Code RO 184 .text.I2C1_ER_IRQHandler stm32f4xx_it.o + 0x08009e08 0x08009e08 0x00000010 Code RO 182 .text.I2C1_EV_IRQHandler stm32f4xx_it.o + 0x08009e18 0x08009e18 0x00000034 Code RO 830 .text.I2C_ConvertOtherXferOptions stm32f4xx_hal_i2c.o + 0x08009e4c 0x08009e4c 0x00000156 Code RO 814 .text.I2C_DMAAbort stm32f4xx_hal_i2c.o + 0x08009fa2 0x08009fa2 0x00000002 PAD + 0x08009fa4 0x08009fa4 0x00000024 Code RO 890 .text.I2C_Flush_DR stm32f4xx_hal_i2c.o + 0x08009fc8 0x08009fc8 0x00000048 Code RO 2302 .text.I2C_Get i2c_1.o + 0x0800a010 0x0800a010 0x0000027a Code RO 826 .text.I2C_ITError stm32f4xx_hal_i2c.o + 0x0800a28a 0x0800a28a 0x00000002 PAD + 0x0800a28c 0x0800a28c 0x000001ac Code RO 846 .text.I2C_MasterReceive_BTF stm32f4xx_hal_i2c.o + 0x0800a438 0x0800a438 0x0000016a Code RO 844 .text.I2C_MasterReceive_RXNE stm32f4xx_hal_i2c.o + 0x0800a5a2 0x0800a5a2 0x00000002 PAD + 0x0800a5a4 0x0800a5a4 0x000000de Code RO 840 .text.I2C_MasterTransmit_BTF stm32f4xx_hal_i2c.o + 0x0800a682 0x0800a682 0x00000002 PAD + 0x0800a684 0x0800a684 0x0000013e Code RO 838 .text.I2C_MasterTransmit_TXE stm32f4xx_hal_i2c.o + 0x0800a7c2 0x0800a7c2 0x00000002 PAD + 0x0800a7c4 0x0800a7c4 0x00000046 Code RO 834 .text.I2C_Master_ADD10 stm32f4xx_hal_i2c.o + 0x0800a80a 0x0800a80a 0x00000002 PAD + 0x0800a80c 0x0800a80c 0x0000033e Code RO 836 .text.I2C_Master_ADDR stm32f4xx_hal_i2c.o + 0x0800ab4a 0x0800ab4a 0x00000002 PAD + 0x0800ab4c 0x0800ab4c 0x000000f0 Code RO 832 .text.I2C_Master_SB stm32f4xx_hal_i2c.o + 0x0800ac3c 0x0800ac3c 0x00000128 Code RO 842 .text.I2C_MemoryTransmit_TXE_BTF stm32f4xx_hal_i2c.o + 0x0800ad64 0x0800ad64 0x0000002e Code RO 858 .text.I2C_SlaveReceive_BTF stm32f4xx_hal_i2c.o + 0x0800ad92 0x0800ad92 0x00000002 PAD + 0x0800ad94 0x0800ad94 0x0000006e Code RO 856 .text.I2C_SlaveReceive_RXNE stm32f4xx_hal_i2c.o + 0x0800ae02 0x0800ae02 0x00000002 PAD + 0x0800ae04 0x0800ae04 0x0000002c Code RO 854 .text.I2C_SlaveTransmit_BTF stm32f4xx_hal_i2c.o + 0x0800ae30 0x0800ae30 0x0000006c Code RO 852 .text.I2C_SlaveTransmit_TXE stm32f4xx_hal_i2c.o + 0x0800ae9c 0x0800ae9c 0x000000ae Code RO 848 .text.I2C_Slave_ADDR stm32f4xx_hal_i2c.o + 0x0800af4a 0x0800af4a 0x00000002 PAD + 0x0800af4c 0x0800af4c 0x000000e4 Code RO 862 .text.I2C_Slave_AF stm32f4xx_hal_i2c.o + 0x0800b030 0x0800b030 0x0000024a Code RO 850 .text.I2C_Slave_STOPF stm32f4xx_hal_i2c.o + 0x0800b27a 0x0800b27a 0x00000002 PAD + 0x0800b27c 0x0800b27c 0x00000078 Code RO 892 .text.I2C_WaitOnSTOPRequestThroughIT stm32f4xx_hal_i2c.o + 0x0800b2f4 0x0800b2f4 0x00000076 Code RO 2677 .text.InvSqrt user_math.o + 0x0800b36a 0x0800b36a 0x00000002 PAD + 0x0800b36c 0x0800b36c 0x000000b8 Code RO 2529 .text.LowPassFilter2p_Apply filter.o + 0x0800b424 0x0800b424 0x0000013c Code RO 2527 .text.LowPassFilter2p_Init filter.o + 0x0800b560 0x0800b560 0x00000092 Code RO 2535 .text.LowPassFilter2p_Reset filter.o + 0x0800b5f2 0x0800b5f2 0x00000002 PAD + 0x0800b5f4 0x0800b5f4 0x00000096 Code RO 2980 .text.MOTOR_DM_CreateCANManager motor_dm.o + 0x0800b68a 0x0800b68a 0x00000002 PAD + 0x0800b68c 0x0800b68c 0x0000007a Code RO 3004 .text.MOTOR_DM_Enable motor_dm.o + 0x0800b706 0x0800b706 0x00000002 PAD + 0x0800b708 0x0800b708 0x00000030 Code RO 2982 .text.MOTOR_DM_GetCANManager motor_dm.o + 0x0800b738 0x0800b738 0x00000086 Code RO 2992 .text.MOTOR_DM_GetMotor motor_dm.o + 0x0800b7be 0x0800b7be 0x00000002 PAD + 0x0800b7c0 0x0800b7c0 0x00000048 Code RO 2990 .text.MOTOR_DM_MITCtrl motor_dm.o + 0x0800b808 0x0800b808 0x00000158 Code RO 2986 .text.MOTOR_DM_ParseFeedbackFrame motor_dm.o + 0x0800b960 0x0800b960 0x0000012c Code RO 2978 .text.MOTOR_DM_Register motor_dm.o + 0x0800ba8c 0x0800ba8c 0x00000144 Code RO 2994 .text.MOTOR_DM_SendMITCmd motor_dm.o + 0x0800bbd0 0x0800bbd0 0x0000010c Code RO 2984 .text.MOTOR_DM_Update motor_dm.o + 0x0800bcdc 0x0800bcdc 0x00000096 Code RO 2887 .text.MOTOR_RM_CreateCANManager motor_rm.o + 0x0800bd72 0x0800bd72 0x00000002 PAD + 0x0800bd74 0x0800bd74 0x00000170 Code RO 2905 .text.MOTOR_RM_Ctrl motor_rm.o + 0x0800bee4 0x0800bee4 0x00000030 Code RO 2889 .text.MOTOR_RM_GetCANManager motor_rm.o + 0x0800bf14 0x0800bf14 0x00000052 Code RO 2903 .text.MOTOR_RM_GetLSB motor_rm.o + 0x0800bf66 0x0800bf66 0x00000002 PAD + 0x0800bf68 0x0800bf68 0x00000080 Code RO 2901 .text.MOTOR_RM_GetLogicalIndex motor_rm.o + 0x0800bfe8 0x0800bfe8 0x00000078 Code RO 2899 .text.MOTOR_RM_GetMotor motor_rm.o + 0x0800c060 0x0800c060 0x00000050 Code RO 2911 .text.MOTOR_RM_GetRatio motor_rm.o + 0x0800c0b0 0x0800c0b0 0x00000120 Code RO 2885 .text.MOTOR_RM_Register motor_rm.o + 0x0800c1d0 0x0800c1d0 0x0000011a Code RO 2897 .text.MOTOR_RM_SetOutput motor_rm.o + 0x0800c2ea 0x0800c2ea 0x00000002 PAD + 0x0800c2ec 0x0800c2ec 0x00000102 Code RO 2891 .text.MOTOR_RM_Update motor_rm.o + 0x0800c3ee 0x0800c3ee 0x00000002 PAD + 0x0800c3f0 0x0800c3f0 0x0000004e Code RO 53 .text.MX_CAN1_Init can.o + 0x0800c43e 0x0800c43e 0x00000002 PAD + 0x0800c440 0x0800c440 0x0000004e Code RO 55 .text.MX_CAN2_Init can.o + 0x0800c48e 0x0800c48e 0x00000002 PAD + 0x0800c490 0x0800c490 0x00000086 Code RO 71 .text.MX_DMA_Init dma.o + 0x0800c516 0x0800c516 0x00000002 PAD + 0x0800c518 0x0800c518 0x00000040 Code RO 39 .text.MX_FREERTOS_Init freertos.o + 0x0800c558 0x0800c558 0x0000022a Code RO 25 .text.MX_GPIO_Init gpio.o + 0x0800c782 0x0800c782 0x00000002 PAD + 0x0800c784 0x0800c784 0x00000048 Code RO 79 .text.MX_I2C1_Init i2c.o + 0x0800c7cc 0x0800c7cc 0x00000048 Code RO 81 .text.MX_I2C2_Init i2c.o + 0x0800c814 0x0800c814 0x00000052 Code RO 96 .text.MX_SPI1_Init spi.o + 0x0800c866 0x0800c866 0x00000002 PAD + 0x0800c868 0x0800c868 0x00000054 Code RO 98 .text.MX_SPI2_Init spi.o + 0x0800c8bc 0x0800c8bc 0x0000008e Code RO 117 .text.MX_TIM10_Init tim.o + 0x0800c94a 0x0800c94a 0x00000002 PAD + 0x0800c94c 0x0800c94c 0x00000058 Code RO 115 .text.MX_TIM7_Init tim.o + 0x0800c9a4 0x0800c9a4 0x00000040 Code RO 134 .text.MX_USART1_UART_Init usart.o + 0x0800c9e4 0x0800c9e4 0x0000004c Code RO 136 .text.MX_USART3_UART_Init usart.o + 0x0800ca30 0x0800ca30 0x00000004 Code RO 156 .text.MemManage_Handler stm32f4xx_it.o + 0x0800ca34 0x0800ca34 0x0000021c Code RO 2893 .text.Motor_RM_Decode motor_rm.o + 0x0800cc50 0x0800cc50 0x00000004 Code RO 152 .text.NMI_Handler stm32f4xx_it.o + 0x0800cc54 0x0800cc54 0x0000006c Code RO 578 .text.NVIC_EncodePriority stm32f4xx_hal_cortex.o + 0x0800ccc0 0x0800ccc0 0x00000094 Code RO 2769 .text.OutContinuation sliding.o + 0x0800cd54 0x0800cd54 0x000002f0 Code RO 2640 .text.PID_Calc pid.o + 0x0800d044 0x0800d044 0x00000196 Code RO 2632 .text.PID_Init pid.o + 0x0800d1da 0x0800d1da 0x00000002 PAD + 0x0800d1dc 0x0800d1dc 0x00000048 Code RO 2638 .text.PID_Reset pid.o + 0x0800d224 0x0800d224 0x0000000c PAD + 0x0800d230 0x0800d230 0x00000064 Code RO 2172 .text.PendSV_Handler port.o + 0x0800d294 0x0800d294 0x00000094 Code RO 2719 .text.RC_Init bsp_rc.o + 0x0800d328 0x0800d328 0x0000005a Code RO 2723 .text.RC_restart bsp_rc.o + 0x0800d382 0x0800d382 0x00000002 PAD + 0x0800d384 0x0800d384 0x0000006e Code RO 2757 .text.SMC_Init sliding.o + 0x0800d3f2 0x0800d3f2 0x00000002 PAD + 0x0800d3f4 0x0800d3f4 0x00000104 Code RO 2761 .text.SMC_PErrorUpdate sliding.o + 0x0800d4f8 0x0800d4f8 0x0000004e Code RO 2755 .text.SMC_Reset sliding.o 0x0800d546 0x0800d546 0x00000002 PAD - 0x0800d548 0x0800d548 0x000000a2 Code RO 960 .text.SPI_DMAReceiveCplt stm32f4xx_hal_spi.o - 0x0800d5ea 0x0800d5ea 0x00000002 PAD - 0x0800d5ec 0x0800d5ec 0x000000a6 Code RO 950 .text.SPI_DMATransmitCplt stm32f4xx_hal_spi.o - 0x0800d692 0x0800d692 0x00000002 PAD - 0x0800d694 0x0800d694 0x00000086 Code RO 964 .text.SPI_DMATransmitReceiveCplt stm32f4xx_hal_spi.o - 0x0800d71a 0x0800d71a 0x00000002 PAD - 0x0800d71c 0x0800d71c 0x000000e4 Code RO 922 .text.SPI_EndRxTransaction stm32f4xx_hal_spi.o - 0x0800d800 0x0800d800 0x000000cc Code RO 916 .text.SPI_EndRxTxTransaction stm32f4xx_hal_spi.o - 0x0800d8cc 0x0800d8cc 0x0000002e Code RO 2383 .text.SPI_Get spi_1.o - 0x0800d8fa 0x0800d8fa 0x00000002 PAD - 0x0800d8fc 0x0800d8fc 0x0000012c Code RO 1014 .text.SPI_WaitFlagStateUntilTimeout stm32f4xx_hal_spi.o - 0x0800da28 0x0800da28 0x00000008 PAD - 0x0800da30 0x0800da30 0x00000024 Code RO 2156 .text.SVC_Handler port.o - 0x0800da54 0x0800da54 0x0000000e Code RO 1950 .text.SVC_Setup cmsis_os2.o - 0x0800da62 0x0800da62 0x00000006 PAD - 0x0800da68 0x0800da68 0x00000088 Code RO 2767 .text.Sat sliding.o - 0x0800daf0 0x0800daf0 0x00000046 Code RO 2771 .text.Signal sliding.o - 0x0800db36 0x0800db36 0x00000002 PAD - 0x0800db38 0x0800db38 0x00000698 Code RO 2765 .text.Smc_Calc sliding.o - 0x0800e1d0 0x0800e1d0 0x00000012 Code RO 41 .text.StartDefaultTask freertos.o - 0x0800e1e2 0x0800e1e2 0x00000002 PAD - 0x0800e1e4 0x0800e1e4 0x00000052 Code RO 594 .text.SysTick_Config stm32f4xx_hal_cortex.o - 0x0800e236 0x0800e236 0x00000002 PAD - 0x0800e238 0x0800e238 0x00000018 Code RO 164 .text.SysTick_Handler stm32f4xx_it.o - 0x0800e250 0x0800e250 0x000000bc Code RO 13 .text.SystemClock_Config main.o - 0x0800e30c 0x0800e30c 0x00000012 Code RO 1490 .text.SystemInit system_stm32f4xx.o - 0x0800e31e 0x0800e31e 0x00000002 PAD - 0x0800e320 0x0800e320 0x00000010 Code RO 190 .text.TIM7_IRQHandler stm32f4xx_it.o - 0x0800e330 0x0800e330 0x000001a4 Code RO 1027 .text.TIM_Base_SetConfig stm32f4xx_hal_tim.o - 0x0800e4d4 0x0800e4d4 0x00000036 Code RO 1061 .text.TIM_CCxChannelCmd stm32f4xx_hal_tim.o - 0x0800e50a 0x0800e50a 0x00000002 PAD - 0x0800e50c 0x0800e50c 0x000000ea Code RO 1171 .text.TIM_OC1_SetConfig stm32f4xx_hal_tim.o - 0x0800e5f6 0x0800e5f6 0x00000002 PAD - 0x0800e5f8 0x0800e5f8 0x000000f4 Code RO 1173 .text.TIM_OC2_SetConfig stm32f4xx_hal_tim.o - 0x0800e6ec 0x0800e6ec 0x000000f2 Code RO 1175 .text.TIM_OC3_SetConfig stm32f4xx_hal_tim.o - 0x0800e7de 0x0800e7de 0x00000002 PAD - 0x0800e7e0 0x0800e7e0 0x000000a4 Code RO 1177 .text.TIM_OC4_SetConfig stm32f4xx_hal_tim.o - 0x0800e884 0x0800e884 0x000000e6 Code RO 3042 .text.Task_Init init.o - 0x0800e96a 0x0800e96a 0x00000006 PAD - 0x0800e970 0x0800e970 0x00000190 Code RO 3050 .text.Task_atti_esti atti_esti.o - 0x0800eb00 0x0800eb00 0x00000114 Code RO 3091 .text.Task_gimbal_ctrl gimbal_ctrl.o - 0x0800ec14 0x0800ec14 0x00000004 PAD - 0x0800ec18 0x0800ec18 0x000000a0 Code RO 3069 .text.Task_remote remote.o - 0x0800ecb8 0x0800ecb8 0x00000090 Code RO 3102 .text.Task_vofa vofa_1.o - 0x0800ed48 0x0800ed48 0x0000001c Code RO 1447 .text.UART_DMAAbortOnError stm32f4xx_hal_uart.o - 0x0800ed64 0x0800ed64 0x0000007c Code RO 1393 .text.UART_DMAError stm32f4xx_hal_uart.o - 0x0800ede0 0x0800ede0 0x0000007a Code RO 1389 .text.UART_DMATransmitCplt stm32f4xx_hal_uart.o - 0x0800ee5a 0x0800ee5a 0x00000002 PAD - 0x0800ee5c 0x0800ee5c 0x00000016 Code RO 1391 .text.UART_DMATxHalfCplt stm32f4xx_hal_uart.o - 0x0800ee72 0x0800ee72 0x00000002 PAD - 0x0800ee74 0x0800ee74 0x00000094 Code RO 1407 .text.UART_EndRxTransfer stm32f4xx_hal_uart.o - 0x0800ef08 0x0800ef08 0x00000026 Code RO 1455 .text.UART_EndTransmit_IT stm32f4xx_hal_uart.o - 0x0800ef2e 0x0800ef2e 0x00000002 PAD - 0x0800ef30 0x0800ef30 0x00000036 Code RO 1405 .text.UART_EndTxTransfer stm32f4xx_hal_uart.o - 0x0800ef66 0x0800ef66 0x00000002 PAD - 0x0800ef68 0x0800ef68 0x00000048 Code RO 2442 .text.UART_Get uart.o - 0x0800efb0 0x0800efb0 0x00000168 Code RO 1445 .text.UART_Receive_IT stm32f4xx_hal_uart.o - 0x0800f118 0x0800f118 0x0000013a Code RO 1363 .text.UART_SetConfig stm32f4xx_hal_uart.o - 0x0800f252 0x0800f252 0x00000002 PAD - 0x0800f254 0x0800f254 0x00000094 Code RO 1453 .text.UART_Transmit_IT stm32f4xx_hal_uart.o - 0x0800f2e8 0x0800f2e8 0x00000010 Code RO 186 .text.USART1_IRQHandler stm32f4xx_it.o - 0x0800f2f8 0x0800f2f8 0x00000020 Code RO 188 .text.USART3_IRQHandler stm32f4xx_it.o - 0x0800f318 0x0800f318 0x00000022 Code RO 2963 .text.USART3_IRQHandler1 remote_control.o - 0x0800f33a 0x0800f33a 0x00000002 PAD - 0x0800f33c 0x0800f33c 0x00000004 Code RO 160 .text.UsageFault_Handler stm32f4xx_it.o - 0x0800f340 0x0800f340 0x00000068 Code RO 3026 .text.VOFA_JustFloat_Send vofa.o - 0x0800f3a8 0x0800f3a8 0x0000001e Code RO 2539 .text.__ARM_isfinite filter.o - 0x0800f3c6 0x0800f3c6 0x00000002 PAD - 0x0800f3c8 0x0800f3c8 0x0000001e Code RO 2636 .text.__ARM_isfinite pid.o - 0x0800f3e6 0x0800f3e6 0x00000002 PAD - 0x0800f3e8 0x0800f3e8 0x00000018 Code RO 2537 .text.__ARM_isfinitef filter.o - 0x0800f400 0x0800f400 0x00000018 Code RO 2634 .text.__ARM_isfinitef pid.o - 0x0800f418 0x0800f418 0x00000034 Code RO 2533 .text.__ARM_isinf filter.o - 0x0800f44c 0x0800f44c 0x0000001c Code RO 2531 .text.__ARM_isinff filter.o - 0x0800f468 0x0800f468 0x00000038 Code RO 586 .text.__NVIC_DisableIRQ stm32f4xx_hal_cortex.o - 0x0800f4a0 0x0800f4a0 0x00000030 Code RO 582 .text.__NVIC_EnableIRQ stm32f4xx_hal_cortex.o - 0x0800f4d0 0x0800f4d0 0x00000010 Code RO 574 .text.__NVIC_GetPriorityGrouping stm32f4xx_hal_cortex.o - 0x0800f4e0 0x0800f4e0 0x00000042 Code RO 576 .text.__NVIC_SetPriority stm32f4xx_hal_cortex.o - 0x0800f522 0x0800f522 0x00000002 PAD - 0x0800f524 0x0800f524 0x00000042 Code RO 2106 .text.__NVIC_SetPriority cmsis_os2.o - 0x0800f566 0x0800f566 0x00000002 PAD - 0x0800f568 0x0800f568 0x0000003c Code RO 570 .text.__NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o - 0x0800f5a4 0x0800f5a4 0x00000002 Code RO 33 .text.configureTimerForRunTimeStats freertos.o - 0x0800f5a6 0x0800f5a6 0x00000002 PAD - 0x0800f5a8 0x0800f5a8 0x0000001e Code RO 2484 .text.copysignf ahrs.o - 0x0800f5c6 0x0800f5c6 0x00000002 PAD - 0x0800f5c8 0x0800f5c8 0x0000003e Code RO 2704 .text.delay_init bsp_delay.o - 0x0800f606 0x0800f606 0x00000002 PAD - 0x0800f608 0x0800f608 0x000000f6 Code RO 1728 .text.eTaskGetState tasks.o - 0x0800f6fe 0x0800f6fe 0x00000002 PAD - 0x0800f700 0x0800f700 0x00000058 Code RO 3012 .text.float_to_uint motor_dm.o - 0x0800f758 0x0800f758 0x00000004 Code RO 35 .text.getRunTimeCounterValue freertos.o - 0x0800f75c 0x0800f75c 0x00000050 Code RO 11 .text.main main.o - 0x0800f7ac 0x0800f7ac 0x0000002a Code RO 2744 .text.map calc_lib.o - 0x0800f7d6 0x0800f7d6 0x00000002 PAD - 0x0800f7d8 0x0800f7d8 0x00000080 Code RO 3122 .text.motor_imu_offset gimbal.o - 0x0800f858 0x0800f858 0x00000034 Code RO 2008 .text.osDelay cmsis_os2.o - 0x0800f88c 0x0800f88c 0x00000058 Code RO 2010 .text.osDelayUntil cmsis_os2.o - 0x0800f8e4 0x0800f8e4 0x00000052 Code RO 1946 .text.osKernelGetState cmsis_os2.o - 0x0800f936 0x0800f936 0x00000002 PAD - 0x0800f938 0x0800f938 0x00000026 Code RO 1958 .text.osKernelGetTickCount cmsis_os2.o - 0x0800f95e 0x0800f95e 0x00000002 PAD - 0x0800f960 0x0800f960 0x00000006 Code RO 1960 .text.osKernelGetTickFreq cmsis_os2.o - 0x0800f966 0x0800f966 0x00000002 PAD - 0x0800f968 0x0800f968 0x00000046 Code RO 1942 .text.osKernelInitialize cmsis_os2.o - 0x0800f9ae 0x0800f9ae 0x00000002 PAD - 0x0800f9b0 0x0800f9b0 0x00000056 Code RO 1952 .text.osKernelLock cmsis_os2.o - 0x0800fa06 0x0800fa06 0x00000002 PAD - 0x0800fa08 0x0800fa08 0x00000052 Code RO 1948 .text.osKernelStart cmsis_os2.o - 0x0800fa5a 0x0800fa5a 0x00000002 PAD - 0x0800fa5c 0x0800fa5c 0x0000006e Code RO 1954 .text.osKernelUnlock cmsis_os2.o - 0x0800faca 0x0800faca 0x00000002 PAD - 0x0800facc 0x0800facc 0x000000c0 Code RO 2062 .text.osMessageQueueGet cmsis_os2.o - 0x0800fb8c 0x0800fb8c 0x000000fe Code RO 2058 .text.osMessageQueueNew cmsis_os2.o - 0x0800fc8a 0x0800fc8a 0x00000002 PAD - 0x0800fc8c 0x0800fc8c 0x000000c4 Code RO 2060 .text.osMessageQueuePut cmsis_os2.o - 0x0800fd50 0x0800fd50 0x00000040 Code RO 2072 .text.osMessageQueueReset cmsis_os2.o - 0x0800fd90 0x0800fd90 0x0000009e Code RO 2040 .text.osMutexAcquire cmsis_os2.o - 0x0800fe2e 0x0800fe2e 0x00000002 PAD - 0x0800fe30 0x0800fe30 0x00000128 Code RO 2038 .text.osMutexNew cmsis_os2.o - 0x0800ff58 0x0800ff58 0x0000007e Code RO 2042 .text.osMutexRelease cmsis_os2.o - 0x0800ffd6 0x0800ffd6 0x00000002 PAD - 0x0800ffd8 0x0800ffd8 0x000000a4 Code RO 2000 .text.osThreadFlagsSet cmsis_os2.o - 0x0801007c 0x0801007c 0x0000011a Code RO 2006 .text.osThreadFlagsWait cmsis_os2.o - 0x08010196 0x08010196 0x00000002 PAD - 0x08010198 0x08010198 0x00000010 Code RO 1976 .text.osThreadGetId cmsis_os2.o - 0x080101a8 0x080101a8 0x0000015a Code RO 1972 .text.osThreadNew cmsis_os2.o - 0x08010302 0x08010302 0x00000002 PAD - 0x08010304 0x08010304 0x0000005e Code RO 1994 .text.osThreadTerminate cmsis_os2.o - 0x08010362 0x08010362 0x00000002 PAD - 0x08010364 0x08010364 0x000000d4 Code RO 1722 .text.prvAddCurrentTaskToDelayedList tasks.o - 0x08010438 0x08010438 0x00000122 Code RO 1708 .text.prvAddNewTaskToReadyList tasks.o - 0x0801055a 0x0801055a 0x00000002 PAD - 0x0801055c 0x0801055c 0x000000a2 Code RO 1873 .text.prvCheckForValidListAndQueue timers.o - 0x080105fe 0x080105fe 0x00000002 PAD - 0x08010600 0x08010600 0x0000005a Code RO 1838 .text.prvCheckTasksWaitingTermination tasks.o - 0x0801065a 0x0801065a 0x00000002 PAD - 0x0801065c 0x0801065c 0x00000042 Code RO 1601 .text.prvCopyDataFromQueue queue.o - 0x0801069e 0x0801069e 0x00000002 PAD - 0x080106a0 0x080106a0 0x000000cc Code RO 1589 .text.prvCopyDataToQueue queue.o - 0x0801076c 0x0801076c 0x0000005e Code RO 1714 .text.prvDeleteTCB tasks.o - 0x080107ca 0x080107ca 0x00000002 PAD - 0x080107cc 0x080107cc 0x00000026 Code RO 1605 .text.prvGetDisinheritPriorityAfterTimeout queue.o - 0x080107f2 0x080107f2 0x00000002 PAD - 0x080107f4 0x080107f4 0x00000040 Code RO 1911 .text.prvGetNextExpireTime timers.o - 0x08010834 0x08010834 0x000000bc Code RO 2123 .text.prvHeapInit heap_4.o - 0x080108f0 0x080108f0 0x00000038 Code RO 1748 .text.prvIdleTask tasks.o - 0x08010928 0x08010928 0x0000002c Code RO 1569 .text.prvInitialiseMutex queue.o - 0x08010954 0x08010954 0x00000048 Code RO 1563 .text.prvInitialiseNewQueue queue.o - 0x0801099c 0x0801099c 0x0000012c Code RO 1706 .text.prvInitialiseNewTask tasks.o - 0x08010ac8 0x08010ac8 0x0000008e Code RO 1836 .text.prvInitialiseTaskLists tasks.o - 0x08010b56 0x08010b56 0x00000002 PAD - 0x08010b58 0x08010b58 0x000000c6 Code RO 2125 .text.prvInsertBlockIntoFreeList heap_4.o - 0x08010c1e 0x08010c1e 0x00000002 PAD - 0x08010c20 0x08010c20 0x00000086 Code RO 1923 .text.prvInsertTimerInActiveList timers.o - 0x08010ca6 0x08010ca6 0x00000002 PAD - 0x08010ca8 0x08010ca8 0x00000028 Code RO 1603 .text.prvIsQueueEmpty queue.o - 0x08010cd0 0x08010cd0 0x0000002e Code RO 1591 .text.prvIsQueueFull queue.o - 0x08010cfe 0x08010cfe 0x00000002 PAD - 0x08010d00 0x08010d00 0x00000028 Code RO 2164 .text.prvPortStartFirstTask port.o - 0x08010d28 0x08010d28 0x0000008e Code RO 1919 .text.prvProcessExpiredTimer timers.o - 0x08010db6 0x08010db6 0x00000002 PAD - 0x08010db8 0x08010db8 0x00000192 Code RO 1915 .text.prvProcessReceivedCommands timers.o - 0x08010f4a 0x08010f4a 0x00000002 PAD - 0x08010f4c 0x08010f4c 0x0000009a Code RO 1913 .text.prvProcessTimerOrBlockTask timers.o - 0x08010fe6 0x08010fe6 0x00000002 PAD - 0x08010fe8 0x08010fe8 0x00000046 Code RO 1716 .text.prvResetNextTaskUnblockTime tasks.o - 0x0801102e 0x0801102e 0x00000002 PAD - 0x08011030 0x08011030 0x00000044 Code RO 1917 .text.prvSampleTimeNow timers.o - 0x08011074 0x08011074 0x000000d4 Code RO 1921 .text.prvSwitchTimerLists timers.o - 0x08011148 0x08011148 0x0000004c Code RO 2154 .text.prvTaskExitError port.o - 0x08011194 0x08011194 0x0000001e Code RO 1875 .text.prvTimerTask timers.o - 0x080111b2 0x080111b2 0x00000002 PAD - 0x080111b4 0x080111b4 0x000000ae Code RO 1593 .text.prvUnlockQueue queue.o - 0x08011262 0x08011262 0x00000002 PAD - 0x08011264 0x08011264 0x000001ec Code RO 2121 .text.pvPortMalloc heap_4.o - 0x08011450 0x08011450 0x0000002c Code RO 1820 .text.pvTaskIncrementMutexHeldCount tasks.o - 0x0801147c 0x0801147c 0x0000005e Code RO 2152 .text.pxPortInitialiseStack port.o - 0x080114da 0x080114da 0x00000002 PAD - 0x080114dc 0x080114dc 0x00000044 Code RO 2832 .text.remote_ParseHost ai.o - 0x08011520 0x08011520 0x00000012 Code RO 2959 .text.remote_control_init remote_control.o - 0x08011532 0x08011532 0x00000006 PAD - 0x08011538 0x08011538 0x00000290 Code RO 2967 .text.sbus_to_rc remote_control.o - 0x080117c8 0x080117c8 0x00000052 Code RO 3010 .text.uint_to_float motor_dm.o - 0x0801181a 0x0801181a 0x00000002 PAD - 0x0801181c 0x0801181c 0x0000002e Code RO 2734 .text.user_delay_ms calc_lib.o - 0x0801184a 0x0801184a 0x00000002 PAD - 0x0801184c 0x0801184c 0x00000044 Code RO 2732 .text.user_delay_us calc_lib.o - 0x08011890 0x08011890 0x00000048 Code RO 1550 .text.uxListRemove list.o - 0x080118d8 0x080118d8 0x0000002a Code RO 2102 .text.vApplicationGetIdleTaskMemory cmsis_os2.o - 0x08011902 0x08011902 0x00000002 PAD - 0x08011904 0x08011904 0x0000002c Code RO 2104 .text.vApplicationGetTimerTaskMemory cmsis_os2.o - 0x08011930 0x08011930 0x0000000a Code RO 37 .text.vApplicationStackOverflowHook freertos.o - 0x0801193a 0x0801193a 0x00000002 PAD - 0x0801193c 0x0801193c 0x0000002e Code RO 1542 .text.vListInitialise list.o - 0x0801196a 0x0801196a 0x00000002 PAD - 0x0801196c 0x0801196c 0x0000000e Code RO 1544 .text.vListInitialiseItem list.o - 0x0801197a 0x0801197a 0x00000002 PAD - 0x0801197c 0x0801197c 0x0000006a Code RO 1548 .text.vListInsert list.o - 0x080119e6 0x080119e6 0x00000002 PAD - 0x080119e8 0x080119e8 0x0000003a Code RO 1546 .text.vListInsertEnd list.o - 0x08011a22 0x08011a22 0x00000002 PAD - 0x08011a24 0x08011a24 0x00000014 Code RO 2162 .text.vPortEnableVFP port.o - 0x08011a38 0x08011a38 0x00000056 Code RO 2168 .text.vPortEnterCritical port.o - 0x08011a8e 0x08011a8e 0x00000002 PAD - 0x08011a90 0x08011a90 0x0000004a Code RO 2170 .text.vPortExitCritical port.o - 0x08011ada 0x08011ada 0x00000002 PAD - 0x08011adc 0x08011adc 0x000000ce Code RO 2127 .text.vPortFree heap_4.o - 0x08011baa 0x08011baa 0x00000002 PAD - 0x08011bac 0x08011bac 0x00000044 Code RO 2160 .text.vPortSetupTimerInterrupt port.o - 0x08011bf0 0x08011bf0 0x00000084 Code RO 2176 .text.vPortValidateInterruptPriority port.o - 0x08011c74 0x08011c74 0x00000052 Code RO 1633 .text.vQueueAddToRegistry queue.o - 0x08011cc6 0x08011cc6 0x00000002 PAD - 0x08011cc8 0x08011cc8 0x00000064 Code RO 1637 .text.vQueueWaitForMessageRestricted queue.o - 0x08011d2c 0x08011d2c 0x0000006e Code RO 1726 .text.vTaskDelay tasks.o - 0x08011d9a 0x08011d9a 0x00000002 PAD - 0x08011d9c 0x08011d9c 0x00000114 Code RO 1718 .text.vTaskDelayUntil tasks.o - 0x08011eb0 0x08011eb0 0x0000010e Code RO 1712 .text.vTaskDelete tasks.o - 0x08011fbe 0x08011fbe 0x00000002 PAD - 0x08011fc0 0x08011fc0 0x00000024 Code RO 1784 .text.vTaskInternalSetTimeOutState tasks.o - 0x08011fe4 0x08011fe4 0x0000000e Code RO 1788 .text.vTaskMissedYield tasks.o - 0x08011ff2 0x08011ff2 0x00000002 PAD - 0x08011ff4 0x08011ff4 0x00000042 Code RO 1772 .text.vTaskPlaceOnEventList tasks.o - 0x08012036 0x08012036 0x00000002 PAD - 0x08012038 0x08012038 0x00000052 Code RO 1776 .text.vTaskPlaceOnEventListRestricted tasks.o - 0x0801208a 0x0801208a 0x00000002 PAD - 0x0801208c 0x0801208c 0x00000134 Code RO 1810 .text.vTaskPriorityDisinheritAfterTimeout tasks.o - 0x080121c0 0x080121c0 0x000000e4 Code RO 1746 .text.vTaskStartScheduler tasks.o - 0x080122a4 0x080122a4 0x00000010 Code RO 1720 .text.vTaskSuspendAll tasks.o - 0x080122b4 0x080122b4 0x00000180 Code RO 1738 .text.vTaskSwitchContext tasks.o - 0x08012434 0x08012434 0x00000156 Code RO 2158 .text.xPortStartScheduler port.o - 0x0801258a 0x0801258a 0x00000002 PAD - 0x0801258c 0x0801258c 0x0000003c Code RO 2174 .text.xPortSysTickHandler port.o - 0x080125c8 0x080125c8 0x00000026 Code RO 1567 .text.xQueueCreateMutex queue.o - 0x080125ee 0x080125ee 0x00000002 PAD - 0x080125f0 0x080125f0 0x00000032 Code RO 1571 .text.xQueueCreateMutexStatic queue.o - 0x08012622 0x08012622 0x00000002 PAD - 0x08012624 0x08012624 0x00000074 Code RO 1565 .text.xQueueGenericCreate queue.o - 0x08012698 0x08012698 0x0000010e Code RO 1561 .text.xQueueGenericCreateStatic queue.o - 0x080127a6 0x080127a6 0x00000002 PAD - 0x080127a8 0x080127a8 0x000000ba Code RO 1559 .text.xQueueGenericReset queue.o - 0x08012862 0x08012862 0x00000002 PAD - 0x08012864 0x08012864 0x0000022c Code RO 1579 .text.xQueueGenericSend queue.o - 0x08012a90 0x08012a90 0x0000014c Code RO 1595 .text.xQueueGenericSendFromISR queue.o - 0x08012bdc 0x08012bdc 0x0000006c Code RO 1577 .text.xQueueGiveMutexRecursive queue.o - 0x08012c48 0x08012c48 0x000001dc Code RO 1599 .text.xQueueReceive queue.o - 0x08012e24 0x08012e24 0x00000108 Code RO 1609 .text.xQueueReceiveFromISR queue.o - 0x08012f2c 0x08012f2c 0x0000022c Code RO 1583 .text.xQueueSemaphoreTake queue.o - 0x08013158 0x08013158 0x0000006e Code RO 1581 .text.xQueueTakeMutexRecursive queue.o - 0x080131c6 0x080131c6 0x00000002 PAD - 0x080131c8 0x080131c8 0x000000cc Code RO 1786 .text.xTaskCheckForTimeOut tasks.o - 0x08013294 0x08013294 0x0000009e Code RO 1710 .text.xTaskCreate tasks.o - 0x08013332 0x08013332 0x00000002 PAD - 0x08013334 0x08013334 0x000000ce Code RO 1704 .text.xTaskCreateStatic tasks.o - 0x08013402 0x08013402 0x00000002 PAD - 0x08013404 0x08013404 0x00000178 Code RO 1826 .text.xTaskGenericNotify tasks.o - 0x0801357c 0x0801357c 0x000001c4 Code RO 1828 .text.xTaskGenericNotifyFromISR tasks.o - 0x08013740 0x08013740 0x00000014 Code RO 1802 .text.xTaskGetCurrentTaskHandle tasks.o - 0x08013754 0x08013754 0x00000038 Code RO 1804 .text.xTaskGetSchedulerState tasks.o - 0x0801378c 0x0801378c 0x00000014 Code RO 1754 .text.xTaskGetTickCount tasks.o - 0x080137a0 0x080137a0 0x0000001e Code RO 1756 .text.xTaskGetTickCountFromISR tasks.o - 0x080137be 0x080137be 0x00000002 PAD - 0x080137c0 0x080137c0 0x000001c4 Code RO 1752 .text.xTaskIncrementTick tasks.o - 0x08013984 0x08013984 0x000000d6 Code RO 1824 .text.xTaskNotifyWait tasks.o - 0x08013a5a 0x08013a5a 0x00000002 PAD - 0x08013a5c 0x08013a5c 0x000000ec Code RO 1808 .text.xTaskPriorityDisinherit tasks.o - 0x08013b48 0x08013b48 0x0000010e Code RO 1806 .text.xTaskPriorityInherit tasks.o - 0x08013c56 0x08013c56 0x00000002 PAD - 0x08013c58 0x08013c58 0x000000ce Code RO 1778 .text.xTaskRemoveFromEventList tasks.o - 0x08013d26 0x08013d26 0x00000002 PAD - 0x08013d28 0x08013d28 0x00000186 Code RO 1724 .text.xTaskResumeAll tasks.o - 0x08013eae 0x08013eae 0x00000002 PAD - 0x08013eb0 0x08013eb0 0x00000094 Code RO 1871 .text.xTimerCreateTimerTask timers.o - 0x08013f44 0x08013f44 0x000000b0 Code RO 1883 .text.xTimerGenericCommand timers.o - 0x08013ff4 0x08013ff4 0x00000030 Code RO 3403 i.__ARM_fpclassify m_wm.l(fpclassify.o) - 0x08014024 0x08014024 0x00000026 Code RO 3405 i.__ARM_fpclassifyf m_wm.l(fpclassifyf.o) - 0x0801404a 0x0801404a 0x00000002 PAD - 0x0801404c 0x0801404c 0x0000012c Code RO 3208 i.__hardfp_asinf m_wm.l(asinf.o) - 0x08014178 0x08014178 0x000002d8 Code RO 3376 i.__hardfp_atan m_wm.l(atan.o) - 0x08014450 0x08014450 0x00000200 Code RO 3214 i.__hardfp_atan2 m_wm.l(atan2.o) - 0x08014650 0x08014650 0x000002ac Code RO 3220 i.__hardfp_atan2f m_wm.l(atan2f.o) - 0x080148fc 0x080148fc 0x00000150 Code RO 3226 i.__hardfp_cosf m_wm.l(cosf.o) - 0x08014a4c 0x08014a4c 0x00000004 PAD - 0x08014a50 0x08014a50 0x00000c60 Code RO 3232 i.__hardfp_pow m_wm.l(pow.o) - 0x080156b0 0x080156b0 0x0000017c Code RO 3239 i.__hardfp_tanf m_wm.l(tanf.o) - 0x0801582c 0x0801582c 0x000000f8 Code RO 3421 i.__kernel_poly m_wm.l(poly.o) - 0x08015924 0x08015924 0x00000004 PAD - 0x08015928 0x08015928 0x00000030 Code RO 3383 i.__mathlib_dbl_divzero m_wm.l(dunder.o) - 0x08015958 0x08015958 0x00000014 Code RO 3384 i.__mathlib_dbl_infnan m_wm.l(dunder.o) - 0x0801596c 0x0801596c 0x00000014 Code RO 3385 i.__mathlib_dbl_infnan2 m_wm.l(dunder.o) - 0x08015980 0x08015980 0x00000020 Code RO 3386 i.__mathlib_dbl_invalid m_wm.l(dunder.o) - 0x080159a0 0x080159a0 0x00000020 Code RO 3387 i.__mathlib_dbl_overflow m_wm.l(dunder.o) - 0x080159c0 0x080159c0 0x00000020 Code RO 3389 i.__mathlib_dbl_underflow m_wm.l(dunder.o) - 0x080159e0 0x080159e0 0x00000006 Code RO 3408 i.__mathlib_flt_infnan m_wm.l(funder.o) - 0x080159e6 0x080159e6 0x00000006 Code RO 3409 i.__mathlib_flt_infnan2 m_wm.l(funder.o) - 0x080159ec 0x080159ec 0x00000010 Code RO 3410 i.__mathlib_flt_invalid m_wm.l(funder.o) - 0x080159fc 0x080159fc 0x00000010 Code RO 3413 i.__mathlib_flt_underflow m_wm.l(funder.o) - 0x08015a0c 0x08015a0c 0x00000154 Code RO 3424 i.__mathlib_rredf2 m_wm.l(rredf.o) - 0x08015b60 0x08015b60 0x00000010 Code RO 3378 i.atan m_wm.l(atan.o) - 0x08015b70 0x08015b70 0x00000018 Code RO 3399 i.fabs m_wm.l(fabs.o) - 0x08015b88 0x08015b88 0x0000006e Code RO 3429 i.sqrt m_wm.l(sqrt.o) - 0x08015bf6 0x08015bf6 0x0000003e Code RO 3435 i.sqrtf m_wm.l(sqrtf.o) - 0x08015c34 0x08015c34 0x00000018 Code RO 3347 x$fpl$basic fz_wm.l(basic.o) - 0x08015c4c 0x08015c4c 0x00000062 Code RO 3174 x$fpl$d2f fz_wm.l(d2f.o) - 0x08015cae 0x08015cae 0x00000002 PAD - 0x08015cb0 0x08015cb0 0x00000150 Code RO 3176 x$fpl$dadd fz_wm.l(daddsub_clz.o) - 0x08015e00 0x08015e00 0x00000010 Code RO 3481 x$fpl$dcheck1 fz_wm.l(dcheck1.o) - 0x08015e10 0x08015e10 0x00000018 Code RO 3483 x$fpl$dcmpinf fz_wm.l(dcmpi.o) - 0x08015e28 0x08015e28 0x000002b4 Code RO 3185 x$fpl$ddiv fz_wm.l(ddiv.o) - 0x080160dc 0x080160dc 0x00000078 Code RO 3349 x$fpl$deqf fz_wm.l(deqf.o) - 0x08016154 0x08016154 0x0000005e Code RO 3188 x$fpl$dfix fz_wm.l(dfix.o) - 0x080161b2 0x080161b2 0x00000002 PAD - 0x080161b4 0x080161b4 0x0000005a Code RO 3192 x$fpl$dfixu fz_wm.l(dfixu.o) - 0x0801620e 0x0801620e 0x0000002e Code RO 3197 x$fpl$dflt fz_wm.l(dflt_clz.o) - 0x0801623c 0x0801623c 0x00000026 Code RO 3196 x$fpl$dfltu fz_wm.l(dflt_clz.o) - 0x08016262 0x08016262 0x00000002 PAD - 0x08016264 0x08016264 0x00000078 Code RO 3351 x$fpl$dgeqf fz_wm.l(dgeqf.o) - 0x080162dc 0x080162dc 0x00000078 Code RO 3353 x$fpl$dleqf fz_wm.l(dleqf.o) - 0x08016354 0x08016354 0x00000154 Code RO 3202 x$fpl$dmul fz_wm.l(dmul.o) - 0x080164a8 0x080164a8 0x0000009c Code RO 3355 x$fpl$dnaninf fz_wm.l(dnaninf.o) - 0x08016544 0x08016544 0x0000000c Code RO 3357 x$fpl$dretinf fz_wm.l(dretinf.o) - 0x08016550 0x08016550 0x0000006c Code RO 3359 x$fpl$drleqf fz_wm.l(drleqf.o) - 0x080165bc 0x080165bc 0x00000016 Code RO 3177 x$fpl$drsb fz_wm.l(daddsub_clz.o) - 0x080165d2 0x080165d2 0x00000002 PAD - 0x080165d4 0x080165d4 0x00000198 Code RO 3485 x$fpl$dsqrt fz_wm.l(dsqrt_umaal.o) - 0x0801676c 0x0801676c 0x000001dc Code RO 3178 x$fpl$dsub fz_wm.l(daddsub_clz.o) - 0x08016948 0x08016948 0x00000056 Code RO 3204 x$fpl$f2d fz_wm.l(f2d.o) - 0x0801699e 0x0801699e 0x00000054 Code RO 3182 x$fpl$fcmp fz_wm.l(dcmp.o) - 0x080169f2 0x080169f2 0x00000060 Code RO 3206 x$fpl$ffltll fz_wm.l(ffltll_clz.o) - 0x08016a52 0x08016a52 0x0000008c Code RO 3361 x$fpl$fnaninf fz_wm.l(fnaninf.o) - 0x08016ade 0x08016ade 0x0000001a Code RO 3628 x$fpl$fpinit fz_wm.l(fpinit.o) - 0x08016af8 0x08016af8 0x0000000a Code RO 3363 x$fpl$fretinf fz_wm.l(fretinf.o) - 0x08016b02 0x08016b02 0x00000064 Code RO 3545 x$fpl$retnan fz_wm.l(retnan.o) - 0x08016b66 0x08016b66 0x0000005c Code RO 3373 x$fpl$scalbn fz_wm.l(scalbn.o) - 0x08016bc2 0x08016bc2 0x00000030 Code RO 3607 x$fpl$trapveneer fz_wm.l(trapv.o) - 0x08016bf2 0x08016bf2 0x00000000 Code RO 3375 x$fpl$usenofp fz_wm.l(usenofp.o) - 0x08016bf2 0x08016bf2 0x00000006 PAD - 0x08016bf8 0x08016bf8 0x00000088 Data RO 3235 .constdata m_wm.l(pow.o) - 0x08016c80 0x08016c80 0x00000098 Data RO 3379 .constdata m_wm.l(atan.o) - 0x08016d18 0x08016d18 0x00000008 Data RO 3423 .constdata m_wm.l(qnan.o) - 0x08016d20 0x08016d20 0x00000020 Data RO 3425 .constdata m_wm.l(rredf.o) - 0x08016d40 0x08016d40 0x00000010 Data RO 1495 .rodata.AHBPrescTable system_stm32f4xx.o - 0x08016d50 0x08016d50 0x00000008 Data RO 1496 .rodata.APBPrescTable system_stm32f4xx.o - 0x08016d58 0x08016d58 0x00000008 Data RO 500 .rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset stm32f4xx_hal_dma.o - 0x08016d60 0x08016d60 0x00000038 Data RO 2292 .rodata.GPIO_Map gpio_1.o - 0x08016d98 0x08016d98 0x00000008 Data RO 2373 .rodata.PWM_Map pwm.o - 0x08016da0 0x08016da0 0x00000024 Data RO 3081 .rodata.attr_atti_esti user_task.o - 0x08016dc4 0x08016dc4 0x00000024 Data RO 3082 .rodata.attr_gimbal_ctrl user_task.o - 0x08016de8 0x08016de8 0x00000024 Data RO 3080 .rodata.attr_init user_task.o - 0x08016e0c 0x08016e0c 0x00000024 Data RO 3083 .rodata.attr_remote user_task.o - 0x08016e30 0x08016e30 0x00000024 Data RO 3084 .rodata.attr_vofa user_task.o - 0x08016e54 0x08016e54 0x00000024 Data RO 44 .rodata.defaultTask_attributes freertos.o - 0x08016e78 0x08016e78 0x00000020 Data RO 3057 .rodata.imu_temp_ctrl_pid_param atti_esti.o - 0x08016e98 0x08016e98 0x0000000c Data RO 43 .rodata.str1.1 freertos.o - 0x08016ea4 0x08016ea4 0x00000005 Data RO 1854 .rodata.str1.1 tasks.o - 0x08016ea9 0x08016ea9 0x0000000d Data RO 1926 .rodata.str1.1 timers.o - 0x08016eb6 0x08016eb6 0x0000002c Data RO 3079 .rodata.str1.1 user_task.o - 0x08016ee2 0x08016ee2 0x00000002 PAD - 0x08016ee4 0x08016ee4 0x00000020 Data RO 3689 Region$$Table anon$$obj.o + 0x0800d548 0x0800d548 0x0000004e Code RO 2759 .text.SMC_SetParam sliding.o + 0x0800d596 0x0800d596 0x00000002 PAD + 0x0800d598 0x0800d598 0x00000034 Code RO 952 .text.SPI_DMAError stm32f4xx_hal_spi.o + 0x0800d5cc 0x0800d5cc 0x00000016 Code RO 958 .text.SPI_DMAHalfReceiveCplt stm32f4xx_hal_spi.o + 0x0800d5e2 0x0800d5e2 0x00000002 PAD + 0x0800d5e4 0x0800d5e4 0x00000016 Code RO 948 .text.SPI_DMAHalfTransmitCplt stm32f4xx_hal_spi.o + 0x0800d5fa 0x0800d5fa 0x00000002 PAD + 0x0800d5fc 0x0800d5fc 0x00000016 Code RO 962 .text.SPI_DMAHalfTransmitReceiveCplt stm32f4xx_hal_spi.o + 0x0800d612 0x0800d612 0x00000002 PAD + 0x0800d614 0x0800d614 0x000000a2 Code RO 960 .text.SPI_DMAReceiveCplt stm32f4xx_hal_spi.o + 0x0800d6b6 0x0800d6b6 0x00000002 PAD + 0x0800d6b8 0x0800d6b8 0x000000a6 Code RO 950 .text.SPI_DMATransmitCplt stm32f4xx_hal_spi.o + 0x0800d75e 0x0800d75e 0x00000002 PAD + 0x0800d760 0x0800d760 0x00000086 Code RO 964 .text.SPI_DMATransmitReceiveCplt stm32f4xx_hal_spi.o + 0x0800d7e6 0x0800d7e6 0x00000002 PAD + 0x0800d7e8 0x0800d7e8 0x000000e4 Code RO 922 .text.SPI_EndRxTransaction stm32f4xx_hal_spi.o + 0x0800d8cc 0x0800d8cc 0x000000cc Code RO 916 .text.SPI_EndRxTxTransaction stm32f4xx_hal_spi.o + 0x0800d998 0x0800d998 0x0000002e Code RO 2383 .text.SPI_Get spi_1.o + 0x0800d9c6 0x0800d9c6 0x00000002 PAD + 0x0800d9c8 0x0800d9c8 0x0000012c Code RO 1014 .text.SPI_WaitFlagStateUntilTimeout stm32f4xx_hal_spi.o + 0x0800daf4 0x0800daf4 0x0000000c PAD + 0x0800db00 0x0800db00 0x00000024 Code RO 2156 .text.SVC_Handler port.o + 0x0800db24 0x0800db24 0x0000000e Code RO 1950 .text.SVC_Setup cmsis_os2.o + 0x0800db32 0x0800db32 0x00000006 PAD + 0x0800db38 0x0800db38 0x00000088 Code RO 2767 .text.Sat sliding.o + 0x0800dbc0 0x0800dbc0 0x00000046 Code RO 2771 .text.Signal sliding.o + 0x0800dc06 0x0800dc06 0x00000002 PAD + 0x0800dc08 0x0800dc08 0x000006e0 Code RO 2765 .text.Smc_Calc sliding.o + 0x0800e2e8 0x0800e2e8 0x00000012 Code RO 41 .text.StartDefaultTask freertos.o + 0x0800e2fa 0x0800e2fa 0x00000002 PAD + 0x0800e2fc 0x0800e2fc 0x00000052 Code RO 594 .text.SysTick_Config stm32f4xx_hal_cortex.o + 0x0800e34e 0x0800e34e 0x00000002 PAD + 0x0800e350 0x0800e350 0x00000018 Code RO 164 .text.SysTick_Handler stm32f4xx_it.o + 0x0800e368 0x0800e368 0x000000bc Code RO 13 .text.SystemClock_Config main.o + 0x0800e424 0x0800e424 0x00000012 Code RO 1490 .text.SystemInit system_stm32f4xx.o + 0x0800e436 0x0800e436 0x00000002 PAD + 0x0800e438 0x0800e438 0x00000010 Code RO 190 .text.TIM7_IRQHandler stm32f4xx_it.o + 0x0800e448 0x0800e448 0x000001a4 Code RO 1027 .text.TIM_Base_SetConfig stm32f4xx_hal_tim.o + 0x0800e5ec 0x0800e5ec 0x00000036 Code RO 1061 .text.TIM_CCxChannelCmd stm32f4xx_hal_tim.o + 0x0800e622 0x0800e622 0x00000002 PAD + 0x0800e624 0x0800e624 0x000000ea Code RO 1171 .text.TIM_OC1_SetConfig stm32f4xx_hal_tim.o + 0x0800e70e 0x0800e70e 0x00000002 PAD + 0x0800e710 0x0800e710 0x000000f4 Code RO 1173 .text.TIM_OC2_SetConfig stm32f4xx_hal_tim.o + 0x0800e804 0x0800e804 0x000000f2 Code RO 1175 .text.TIM_OC3_SetConfig stm32f4xx_hal_tim.o + 0x0800e8f6 0x0800e8f6 0x00000002 PAD + 0x0800e8f8 0x0800e8f8 0x000000a4 Code RO 1177 .text.TIM_OC4_SetConfig stm32f4xx_hal_tim.o + 0x0800e99c 0x0800e99c 0x000000e6 Code RO 3042 .text.Task_Init init.o + 0x0800ea82 0x0800ea82 0x00000006 PAD + 0x0800ea88 0x0800ea88 0x00000190 Code RO 3050 .text.Task_atti_esti atti_esti.o + 0x0800ec18 0x0800ec18 0x000000f4 Code RO 3091 .text.Task_gimbal_ctrl gimbal_ctrl.o + 0x0800ed0c 0x0800ed0c 0x00000004 PAD + 0x0800ed10 0x0800ed10 0x000000b0 Code RO 3069 .text.Task_remote remote.o + 0x0800edc0 0x0800edc0 0x00000090 Code RO 3102 .text.Task_vofa vofa_1.o + 0x0800ee50 0x0800ee50 0x0000001c Code RO 1447 .text.UART_DMAAbortOnError stm32f4xx_hal_uart.o + 0x0800ee6c 0x0800ee6c 0x0000007c Code RO 1393 .text.UART_DMAError stm32f4xx_hal_uart.o + 0x0800eee8 0x0800eee8 0x0000007a Code RO 1389 .text.UART_DMATransmitCplt stm32f4xx_hal_uart.o + 0x0800ef62 0x0800ef62 0x00000002 PAD + 0x0800ef64 0x0800ef64 0x00000016 Code RO 1391 .text.UART_DMATxHalfCplt stm32f4xx_hal_uart.o + 0x0800ef7a 0x0800ef7a 0x00000002 PAD + 0x0800ef7c 0x0800ef7c 0x00000094 Code RO 1407 .text.UART_EndRxTransfer stm32f4xx_hal_uart.o + 0x0800f010 0x0800f010 0x00000026 Code RO 1455 .text.UART_EndTransmit_IT stm32f4xx_hal_uart.o + 0x0800f036 0x0800f036 0x00000002 PAD + 0x0800f038 0x0800f038 0x00000036 Code RO 1405 .text.UART_EndTxTransfer stm32f4xx_hal_uart.o + 0x0800f06e 0x0800f06e 0x00000002 PAD + 0x0800f070 0x0800f070 0x00000048 Code RO 2442 .text.UART_Get uart.o + 0x0800f0b8 0x0800f0b8 0x00000168 Code RO 1445 .text.UART_Receive_IT stm32f4xx_hal_uart.o + 0x0800f220 0x0800f220 0x0000013a Code RO 1363 .text.UART_SetConfig stm32f4xx_hal_uart.o + 0x0800f35a 0x0800f35a 0x00000002 PAD + 0x0800f35c 0x0800f35c 0x00000094 Code RO 1453 .text.UART_Transmit_IT stm32f4xx_hal_uart.o + 0x0800f3f0 0x0800f3f0 0x00000010 Code RO 186 .text.USART1_IRQHandler stm32f4xx_it.o + 0x0800f400 0x0800f400 0x00000020 Code RO 188 .text.USART3_IRQHandler stm32f4xx_it.o + 0x0800f420 0x0800f420 0x00000022 Code RO 2963 .text.USART3_IRQHandler1 remote_control.o + 0x0800f442 0x0800f442 0x00000002 PAD + 0x0800f444 0x0800f444 0x00000004 Code RO 160 .text.UsageFault_Handler stm32f4xx_it.o + 0x0800f448 0x0800f448 0x00000068 Code RO 3026 .text.VOFA_JustFloat_Send vofa.o + 0x0800f4b0 0x0800f4b0 0x0000001e Code RO 2539 .text.__ARM_isfinite filter.o + 0x0800f4ce 0x0800f4ce 0x00000002 PAD + 0x0800f4d0 0x0800f4d0 0x0000001e Code RO 2636 .text.__ARM_isfinite pid.o + 0x0800f4ee 0x0800f4ee 0x00000002 PAD + 0x0800f4f0 0x0800f4f0 0x00000018 Code RO 2537 .text.__ARM_isfinitef filter.o + 0x0800f508 0x0800f508 0x00000018 Code RO 2634 .text.__ARM_isfinitef pid.o + 0x0800f520 0x0800f520 0x00000034 Code RO 2533 .text.__ARM_isinf filter.o + 0x0800f554 0x0800f554 0x0000001c Code RO 2531 .text.__ARM_isinff filter.o + 0x0800f570 0x0800f570 0x00000038 Code RO 586 .text.__NVIC_DisableIRQ stm32f4xx_hal_cortex.o + 0x0800f5a8 0x0800f5a8 0x00000030 Code RO 582 .text.__NVIC_EnableIRQ stm32f4xx_hal_cortex.o + 0x0800f5d8 0x0800f5d8 0x00000010 Code RO 574 .text.__NVIC_GetPriorityGrouping stm32f4xx_hal_cortex.o + 0x0800f5e8 0x0800f5e8 0x00000042 Code RO 576 .text.__NVIC_SetPriority stm32f4xx_hal_cortex.o + 0x0800f62a 0x0800f62a 0x00000002 PAD + 0x0800f62c 0x0800f62c 0x00000042 Code RO 2106 .text.__NVIC_SetPriority cmsis_os2.o + 0x0800f66e 0x0800f66e 0x00000002 PAD + 0x0800f670 0x0800f670 0x0000003c Code RO 570 .text.__NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o + 0x0800f6ac 0x0800f6ac 0x00000002 Code RO 33 .text.configureTimerForRunTimeStats freertos.o + 0x0800f6ae 0x0800f6ae 0x00000002 PAD + 0x0800f6b0 0x0800f6b0 0x0000001e Code RO 2484 .text.copysignf ahrs.o + 0x0800f6ce 0x0800f6ce 0x00000002 PAD + 0x0800f6d0 0x0800f6d0 0x0000003e Code RO 2704 .text.delay_init bsp_delay.o + 0x0800f70e 0x0800f70e 0x00000002 PAD + 0x0800f710 0x0800f710 0x000000f6 Code RO 1728 .text.eTaskGetState tasks.o + 0x0800f806 0x0800f806 0x00000002 PAD + 0x0800f808 0x0800f808 0x00000058 Code RO 3012 .text.float_to_uint motor_dm.o + 0x0800f860 0x0800f860 0x00000004 Code RO 35 .text.getRunTimeCounterValue freertos.o + 0x0800f864 0x0800f864 0x00000050 Code RO 11 .text.main main.o + 0x0800f8b4 0x0800f8b4 0x0000002a Code RO 2744 .text.map calc_lib.o + 0x0800f8de 0x0800f8de 0x00000002 PAD + 0x0800f8e0 0x0800f8e0 0x00000080 Code RO 3122 .text.motor_imu_offset gimbal.o + 0x0800f960 0x0800f960 0x00000034 Code RO 2008 .text.osDelay cmsis_os2.o + 0x0800f994 0x0800f994 0x00000058 Code RO 2010 .text.osDelayUntil cmsis_os2.o + 0x0800f9ec 0x0800f9ec 0x00000052 Code RO 1946 .text.osKernelGetState cmsis_os2.o + 0x0800fa3e 0x0800fa3e 0x00000002 PAD + 0x0800fa40 0x0800fa40 0x00000026 Code RO 1958 .text.osKernelGetTickCount cmsis_os2.o + 0x0800fa66 0x0800fa66 0x00000002 PAD + 0x0800fa68 0x0800fa68 0x00000006 Code RO 1960 .text.osKernelGetTickFreq cmsis_os2.o + 0x0800fa6e 0x0800fa6e 0x00000002 PAD + 0x0800fa70 0x0800fa70 0x00000046 Code RO 1942 .text.osKernelInitialize cmsis_os2.o + 0x0800fab6 0x0800fab6 0x00000002 PAD + 0x0800fab8 0x0800fab8 0x00000056 Code RO 1952 .text.osKernelLock cmsis_os2.o + 0x0800fb0e 0x0800fb0e 0x00000002 PAD + 0x0800fb10 0x0800fb10 0x00000052 Code RO 1948 .text.osKernelStart cmsis_os2.o + 0x0800fb62 0x0800fb62 0x00000002 PAD + 0x0800fb64 0x0800fb64 0x0000006e Code RO 1954 .text.osKernelUnlock cmsis_os2.o + 0x0800fbd2 0x0800fbd2 0x00000002 PAD + 0x0800fbd4 0x0800fbd4 0x000000c0 Code RO 2062 .text.osMessageQueueGet cmsis_os2.o + 0x0800fc94 0x0800fc94 0x000000fe Code RO 2058 .text.osMessageQueueNew cmsis_os2.o + 0x0800fd92 0x0800fd92 0x00000002 PAD + 0x0800fd94 0x0800fd94 0x000000c4 Code RO 2060 .text.osMessageQueuePut cmsis_os2.o + 0x0800fe58 0x0800fe58 0x00000040 Code RO 2072 .text.osMessageQueueReset cmsis_os2.o + 0x0800fe98 0x0800fe98 0x0000009e Code RO 2040 .text.osMutexAcquire cmsis_os2.o + 0x0800ff36 0x0800ff36 0x00000002 PAD + 0x0800ff38 0x0800ff38 0x00000128 Code RO 2038 .text.osMutexNew cmsis_os2.o + 0x08010060 0x08010060 0x0000007e Code RO 2042 .text.osMutexRelease cmsis_os2.o + 0x080100de 0x080100de 0x00000002 PAD + 0x080100e0 0x080100e0 0x000000a4 Code RO 2000 .text.osThreadFlagsSet cmsis_os2.o + 0x08010184 0x08010184 0x0000011a Code RO 2006 .text.osThreadFlagsWait cmsis_os2.o + 0x0801029e 0x0801029e 0x00000002 PAD + 0x080102a0 0x080102a0 0x00000010 Code RO 1976 .text.osThreadGetId cmsis_os2.o + 0x080102b0 0x080102b0 0x0000015a Code RO 1972 .text.osThreadNew cmsis_os2.o + 0x0801040a 0x0801040a 0x00000002 PAD + 0x0801040c 0x0801040c 0x0000005e Code RO 1994 .text.osThreadTerminate cmsis_os2.o + 0x0801046a 0x0801046a 0x00000002 PAD + 0x0801046c 0x0801046c 0x000000d4 Code RO 1722 .text.prvAddCurrentTaskToDelayedList tasks.o + 0x08010540 0x08010540 0x00000122 Code RO 1708 .text.prvAddNewTaskToReadyList tasks.o + 0x08010662 0x08010662 0x00000002 PAD + 0x08010664 0x08010664 0x000000a2 Code RO 1873 .text.prvCheckForValidListAndQueue timers.o + 0x08010706 0x08010706 0x00000002 PAD + 0x08010708 0x08010708 0x0000005a Code RO 1838 .text.prvCheckTasksWaitingTermination tasks.o + 0x08010762 0x08010762 0x00000002 PAD + 0x08010764 0x08010764 0x00000042 Code RO 1601 .text.prvCopyDataFromQueue queue.o + 0x080107a6 0x080107a6 0x00000002 PAD + 0x080107a8 0x080107a8 0x000000cc Code RO 1589 .text.prvCopyDataToQueue queue.o + 0x08010874 0x08010874 0x0000005e Code RO 1714 .text.prvDeleteTCB tasks.o + 0x080108d2 0x080108d2 0x00000002 PAD + 0x080108d4 0x080108d4 0x00000026 Code RO 1605 .text.prvGetDisinheritPriorityAfterTimeout queue.o + 0x080108fa 0x080108fa 0x00000002 PAD + 0x080108fc 0x080108fc 0x00000040 Code RO 1911 .text.prvGetNextExpireTime timers.o + 0x0801093c 0x0801093c 0x000000bc Code RO 2123 .text.prvHeapInit heap_4.o + 0x080109f8 0x080109f8 0x00000038 Code RO 1748 .text.prvIdleTask tasks.o + 0x08010a30 0x08010a30 0x0000002c Code RO 1569 .text.prvInitialiseMutex queue.o + 0x08010a5c 0x08010a5c 0x00000048 Code RO 1563 .text.prvInitialiseNewQueue queue.o + 0x08010aa4 0x08010aa4 0x0000012c Code RO 1706 .text.prvInitialiseNewTask tasks.o + 0x08010bd0 0x08010bd0 0x0000008e Code RO 1836 .text.prvInitialiseTaskLists tasks.o + 0x08010c5e 0x08010c5e 0x00000002 PAD + 0x08010c60 0x08010c60 0x000000c6 Code RO 2125 .text.prvInsertBlockIntoFreeList heap_4.o + 0x08010d26 0x08010d26 0x00000002 PAD + 0x08010d28 0x08010d28 0x00000086 Code RO 1923 .text.prvInsertTimerInActiveList timers.o + 0x08010dae 0x08010dae 0x00000002 PAD + 0x08010db0 0x08010db0 0x00000028 Code RO 1603 .text.prvIsQueueEmpty queue.o + 0x08010dd8 0x08010dd8 0x0000002e Code RO 1591 .text.prvIsQueueFull queue.o + 0x08010e06 0x08010e06 0x00000002 PAD + 0x08010e08 0x08010e08 0x00000028 Code RO 2164 .text.prvPortStartFirstTask port.o + 0x08010e30 0x08010e30 0x0000008e Code RO 1919 .text.prvProcessExpiredTimer timers.o + 0x08010ebe 0x08010ebe 0x00000002 PAD + 0x08010ec0 0x08010ec0 0x00000192 Code RO 1915 .text.prvProcessReceivedCommands timers.o + 0x08011052 0x08011052 0x00000002 PAD + 0x08011054 0x08011054 0x0000009a Code RO 1913 .text.prvProcessTimerOrBlockTask timers.o + 0x080110ee 0x080110ee 0x00000002 PAD + 0x080110f0 0x080110f0 0x00000046 Code RO 1716 .text.prvResetNextTaskUnblockTime tasks.o + 0x08011136 0x08011136 0x00000002 PAD + 0x08011138 0x08011138 0x00000044 Code RO 1917 .text.prvSampleTimeNow timers.o + 0x0801117c 0x0801117c 0x000000d4 Code RO 1921 .text.prvSwitchTimerLists timers.o + 0x08011250 0x08011250 0x0000004c Code RO 2154 .text.prvTaskExitError port.o + 0x0801129c 0x0801129c 0x0000001e Code RO 1875 .text.prvTimerTask timers.o + 0x080112ba 0x080112ba 0x00000002 PAD + 0x080112bc 0x080112bc 0x000000ae Code RO 1593 .text.prvUnlockQueue queue.o + 0x0801136a 0x0801136a 0x00000002 PAD + 0x0801136c 0x0801136c 0x000001ec Code RO 2121 .text.pvPortMalloc heap_4.o + 0x08011558 0x08011558 0x0000002c Code RO 1820 .text.pvTaskIncrementMutexHeldCount tasks.o + 0x08011584 0x08011584 0x0000005e Code RO 2152 .text.pxPortInitialiseStack port.o + 0x080115e2 0x080115e2 0x00000002 PAD + 0x080115e4 0x080115e4 0x00000044 Code RO 2832 .text.remote_ParseHost ai.o + 0x08011628 0x08011628 0x00000012 Code RO 2959 .text.remote_control_init remote_control.o + 0x0801163a 0x0801163a 0x00000006 PAD + 0x08011640 0x08011640 0x00000290 Code RO 2967 .text.sbus_to_rc remote_control.o + 0x080118d0 0x080118d0 0x00000052 Code RO 3010 .text.uint_to_float motor_dm.o + 0x08011922 0x08011922 0x00000002 PAD + 0x08011924 0x08011924 0x0000002e Code RO 2734 .text.user_delay_ms calc_lib.o + 0x08011952 0x08011952 0x00000002 PAD + 0x08011954 0x08011954 0x00000044 Code RO 2732 .text.user_delay_us calc_lib.o + 0x08011998 0x08011998 0x00000048 Code RO 1550 .text.uxListRemove list.o + 0x080119e0 0x080119e0 0x0000002a Code RO 2102 .text.vApplicationGetIdleTaskMemory cmsis_os2.o + 0x08011a0a 0x08011a0a 0x00000002 PAD + 0x08011a0c 0x08011a0c 0x0000002c Code RO 2104 .text.vApplicationGetTimerTaskMemory cmsis_os2.o + 0x08011a38 0x08011a38 0x0000000a Code RO 37 .text.vApplicationStackOverflowHook freertos.o + 0x08011a42 0x08011a42 0x00000002 PAD + 0x08011a44 0x08011a44 0x0000002e Code RO 1542 .text.vListInitialise list.o + 0x08011a72 0x08011a72 0x00000002 PAD + 0x08011a74 0x08011a74 0x0000000e Code RO 1544 .text.vListInitialiseItem list.o + 0x08011a82 0x08011a82 0x00000002 PAD + 0x08011a84 0x08011a84 0x0000006a Code RO 1548 .text.vListInsert list.o + 0x08011aee 0x08011aee 0x00000002 PAD + 0x08011af0 0x08011af0 0x0000003a Code RO 1546 .text.vListInsertEnd list.o + 0x08011b2a 0x08011b2a 0x00000002 PAD + 0x08011b2c 0x08011b2c 0x00000014 Code RO 2162 .text.vPortEnableVFP port.o + 0x08011b40 0x08011b40 0x00000056 Code RO 2168 .text.vPortEnterCritical port.o + 0x08011b96 0x08011b96 0x00000002 PAD + 0x08011b98 0x08011b98 0x0000004a Code RO 2170 .text.vPortExitCritical port.o + 0x08011be2 0x08011be2 0x00000002 PAD + 0x08011be4 0x08011be4 0x000000ce Code RO 2127 .text.vPortFree heap_4.o + 0x08011cb2 0x08011cb2 0x00000002 PAD + 0x08011cb4 0x08011cb4 0x00000044 Code RO 2160 .text.vPortSetupTimerInterrupt port.o + 0x08011cf8 0x08011cf8 0x00000084 Code RO 2176 .text.vPortValidateInterruptPriority port.o + 0x08011d7c 0x08011d7c 0x00000052 Code RO 1633 .text.vQueueAddToRegistry queue.o + 0x08011dce 0x08011dce 0x00000002 PAD + 0x08011dd0 0x08011dd0 0x00000064 Code RO 1637 .text.vQueueWaitForMessageRestricted queue.o + 0x08011e34 0x08011e34 0x0000006e Code RO 1726 .text.vTaskDelay tasks.o + 0x08011ea2 0x08011ea2 0x00000002 PAD + 0x08011ea4 0x08011ea4 0x00000114 Code RO 1718 .text.vTaskDelayUntil tasks.o + 0x08011fb8 0x08011fb8 0x0000010e Code RO 1712 .text.vTaskDelete tasks.o + 0x080120c6 0x080120c6 0x00000002 PAD + 0x080120c8 0x080120c8 0x00000024 Code RO 1784 .text.vTaskInternalSetTimeOutState tasks.o + 0x080120ec 0x080120ec 0x0000000e Code RO 1788 .text.vTaskMissedYield tasks.o + 0x080120fa 0x080120fa 0x00000002 PAD + 0x080120fc 0x080120fc 0x00000042 Code RO 1772 .text.vTaskPlaceOnEventList tasks.o + 0x0801213e 0x0801213e 0x00000002 PAD + 0x08012140 0x08012140 0x00000052 Code RO 1776 .text.vTaskPlaceOnEventListRestricted tasks.o + 0x08012192 0x08012192 0x00000002 PAD + 0x08012194 0x08012194 0x00000134 Code RO 1810 .text.vTaskPriorityDisinheritAfterTimeout tasks.o + 0x080122c8 0x080122c8 0x000000e4 Code RO 1746 .text.vTaskStartScheduler tasks.o + 0x080123ac 0x080123ac 0x00000010 Code RO 1720 .text.vTaskSuspendAll tasks.o + 0x080123bc 0x080123bc 0x00000180 Code RO 1738 .text.vTaskSwitchContext tasks.o + 0x0801253c 0x0801253c 0x00000156 Code RO 2158 .text.xPortStartScheduler port.o + 0x08012692 0x08012692 0x00000002 PAD + 0x08012694 0x08012694 0x0000003c Code RO 2174 .text.xPortSysTickHandler port.o + 0x080126d0 0x080126d0 0x00000026 Code RO 1567 .text.xQueueCreateMutex queue.o + 0x080126f6 0x080126f6 0x00000002 PAD + 0x080126f8 0x080126f8 0x00000032 Code RO 1571 .text.xQueueCreateMutexStatic queue.o + 0x0801272a 0x0801272a 0x00000002 PAD + 0x0801272c 0x0801272c 0x00000074 Code RO 1565 .text.xQueueGenericCreate queue.o + 0x080127a0 0x080127a0 0x0000010e Code RO 1561 .text.xQueueGenericCreateStatic queue.o + 0x080128ae 0x080128ae 0x00000002 PAD + 0x080128b0 0x080128b0 0x000000ba Code RO 1559 .text.xQueueGenericReset queue.o + 0x0801296a 0x0801296a 0x00000002 PAD + 0x0801296c 0x0801296c 0x0000022c Code RO 1579 .text.xQueueGenericSend queue.o + 0x08012b98 0x08012b98 0x0000014c Code RO 1595 .text.xQueueGenericSendFromISR queue.o + 0x08012ce4 0x08012ce4 0x0000006c Code RO 1577 .text.xQueueGiveMutexRecursive queue.o + 0x08012d50 0x08012d50 0x000001dc Code RO 1599 .text.xQueueReceive queue.o + 0x08012f2c 0x08012f2c 0x00000108 Code RO 1609 .text.xQueueReceiveFromISR queue.o + 0x08013034 0x08013034 0x0000022c Code RO 1583 .text.xQueueSemaphoreTake queue.o + 0x08013260 0x08013260 0x0000006e Code RO 1581 .text.xQueueTakeMutexRecursive queue.o + 0x080132ce 0x080132ce 0x00000002 PAD + 0x080132d0 0x080132d0 0x000000cc Code RO 1786 .text.xTaskCheckForTimeOut tasks.o + 0x0801339c 0x0801339c 0x0000009e Code RO 1710 .text.xTaskCreate tasks.o + 0x0801343a 0x0801343a 0x00000002 PAD + 0x0801343c 0x0801343c 0x000000ce Code RO 1704 .text.xTaskCreateStatic tasks.o + 0x0801350a 0x0801350a 0x00000002 PAD + 0x0801350c 0x0801350c 0x00000178 Code RO 1826 .text.xTaskGenericNotify tasks.o + 0x08013684 0x08013684 0x000001c4 Code RO 1828 .text.xTaskGenericNotifyFromISR tasks.o + 0x08013848 0x08013848 0x00000014 Code RO 1802 .text.xTaskGetCurrentTaskHandle tasks.o + 0x0801385c 0x0801385c 0x00000038 Code RO 1804 .text.xTaskGetSchedulerState tasks.o + 0x08013894 0x08013894 0x00000014 Code RO 1754 .text.xTaskGetTickCount tasks.o + 0x080138a8 0x080138a8 0x0000001e Code RO 1756 .text.xTaskGetTickCountFromISR tasks.o + 0x080138c6 0x080138c6 0x00000002 PAD + 0x080138c8 0x080138c8 0x000001c4 Code RO 1752 .text.xTaskIncrementTick tasks.o + 0x08013a8c 0x08013a8c 0x000000d6 Code RO 1824 .text.xTaskNotifyWait tasks.o + 0x08013b62 0x08013b62 0x00000002 PAD + 0x08013b64 0x08013b64 0x000000ec Code RO 1808 .text.xTaskPriorityDisinherit tasks.o + 0x08013c50 0x08013c50 0x0000010e Code RO 1806 .text.xTaskPriorityInherit tasks.o + 0x08013d5e 0x08013d5e 0x00000002 PAD + 0x08013d60 0x08013d60 0x000000ce Code RO 1778 .text.xTaskRemoveFromEventList tasks.o + 0x08013e2e 0x08013e2e 0x00000002 PAD + 0x08013e30 0x08013e30 0x00000186 Code RO 1724 .text.xTaskResumeAll tasks.o + 0x08013fb6 0x08013fb6 0x00000002 PAD + 0x08013fb8 0x08013fb8 0x00000094 Code RO 1871 .text.xTimerCreateTimerTask timers.o + 0x0801404c 0x0801404c 0x000000b0 Code RO 1883 .text.xTimerGenericCommand timers.o + 0x080140fc 0x080140fc 0x00000030 Code RO 3402 i.__ARM_fpclassify m_wm.l(fpclassify.o) + 0x0801412c 0x0801412c 0x00000026 Code RO 3404 i.__ARM_fpclassifyf m_wm.l(fpclassifyf.o) + 0x08014152 0x08014152 0x00000002 PAD + 0x08014154 0x08014154 0x0000012c Code RO 3207 i.__hardfp_asinf m_wm.l(asinf.o) + 0x08014280 0x08014280 0x000002d8 Code RO 3375 i.__hardfp_atan m_wm.l(atan.o) + 0x08014558 0x08014558 0x00000200 Code RO 3213 i.__hardfp_atan2 m_wm.l(atan2.o) + 0x08014758 0x08014758 0x000002ac Code RO 3219 i.__hardfp_atan2f m_wm.l(atan2f.o) + 0x08014a04 0x08014a04 0x00000150 Code RO 3225 i.__hardfp_cosf m_wm.l(cosf.o) + 0x08014b54 0x08014b54 0x00000004 PAD + 0x08014b58 0x08014b58 0x00000c60 Code RO 3231 i.__hardfp_pow m_wm.l(pow.o) + 0x080157b8 0x080157b8 0x0000017c Code RO 3238 i.__hardfp_tanf m_wm.l(tanf.o) + 0x08015934 0x08015934 0x000000f8 Code RO 3420 i.__kernel_poly m_wm.l(poly.o) + 0x08015a2c 0x08015a2c 0x00000004 PAD + 0x08015a30 0x08015a30 0x00000030 Code RO 3382 i.__mathlib_dbl_divzero m_wm.l(dunder.o) + 0x08015a60 0x08015a60 0x00000014 Code RO 3383 i.__mathlib_dbl_infnan m_wm.l(dunder.o) + 0x08015a74 0x08015a74 0x00000014 Code RO 3384 i.__mathlib_dbl_infnan2 m_wm.l(dunder.o) + 0x08015a88 0x08015a88 0x00000020 Code RO 3385 i.__mathlib_dbl_invalid m_wm.l(dunder.o) + 0x08015aa8 0x08015aa8 0x00000020 Code RO 3386 i.__mathlib_dbl_overflow m_wm.l(dunder.o) + 0x08015ac8 0x08015ac8 0x00000020 Code RO 3388 i.__mathlib_dbl_underflow m_wm.l(dunder.o) + 0x08015ae8 0x08015ae8 0x00000006 Code RO 3407 i.__mathlib_flt_infnan m_wm.l(funder.o) + 0x08015aee 0x08015aee 0x00000006 Code RO 3408 i.__mathlib_flt_infnan2 m_wm.l(funder.o) + 0x08015af4 0x08015af4 0x00000010 Code RO 3409 i.__mathlib_flt_invalid m_wm.l(funder.o) + 0x08015b04 0x08015b04 0x00000010 Code RO 3412 i.__mathlib_flt_underflow m_wm.l(funder.o) + 0x08015b14 0x08015b14 0x00000154 Code RO 3423 i.__mathlib_rredf2 m_wm.l(rredf.o) + 0x08015c68 0x08015c68 0x00000010 Code RO 3377 i.atan m_wm.l(atan.o) + 0x08015c78 0x08015c78 0x00000018 Code RO 3398 i.fabs m_wm.l(fabs.o) + 0x08015c90 0x08015c90 0x0000006e Code RO 3428 i.sqrt m_wm.l(sqrt.o) + 0x08015cfe 0x08015cfe 0x0000003e Code RO 3434 i.sqrtf m_wm.l(sqrtf.o) + 0x08015d3c 0x08015d3c 0x00000018 Code RO 3346 x$fpl$basic fz_wm.l(basic.o) + 0x08015d54 0x08015d54 0x00000062 Code RO 3173 x$fpl$d2f fz_wm.l(d2f.o) + 0x08015db6 0x08015db6 0x00000002 PAD + 0x08015db8 0x08015db8 0x00000150 Code RO 3175 x$fpl$dadd fz_wm.l(daddsub_clz.o) + 0x08015f08 0x08015f08 0x00000010 Code RO 3480 x$fpl$dcheck1 fz_wm.l(dcheck1.o) + 0x08015f18 0x08015f18 0x00000018 Code RO 3482 x$fpl$dcmpinf fz_wm.l(dcmpi.o) + 0x08015f30 0x08015f30 0x000002b4 Code RO 3184 x$fpl$ddiv fz_wm.l(ddiv.o) + 0x080161e4 0x080161e4 0x00000078 Code RO 3348 x$fpl$deqf fz_wm.l(deqf.o) + 0x0801625c 0x0801625c 0x0000005e Code RO 3187 x$fpl$dfix fz_wm.l(dfix.o) + 0x080162ba 0x080162ba 0x00000002 PAD + 0x080162bc 0x080162bc 0x0000005a Code RO 3191 x$fpl$dfixu fz_wm.l(dfixu.o) + 0x08016316 0x08016316 0x0000002e Code RO 3196 x$fpl$dflt fz_wm.l(dflt_clz.o) + 0x08016344 0x08016344 0x00000026 Code RO 3195 x$fpl$dfltu fz_wm.l(dflt_clz.o) + 0x0801636a 0x0801636a 0x00000002 PAD + 0x0801636c 0x0801636c 0x00000078 Code RO 3350 x$fpl$dgeqf fz_wm.l(dgeqf.o) + 0x080163e4 0x080163e4 0x00000078 Code RO 3352 x$fpl$dleqf fz_wm.l(dleqf.o) + 0x0801645c 0x0801645c 0x00000154 Code RO 3201 x$fpl$dmul fz_wm.l(dmul.o) + 0x080165b0 0x080165b0 0x0000009c Code RO 3354 x$fpl$dnaninf fz_wm.l(dnaninf.o) + 0x0801664c 0x0801664c 0x0000000c Code RO 3356 x$fpl$dretinf fz_wm.l(dretinf.o) + 0x08016658 0x08016658 0x0000006c Code RO 3358 x$fpl$drleqf fz_wm.l(drleqf.o) + 0x080166c4 0x080166c4 0x00000016 Code RO 3176 x$fpl$drsb fz_wm.l(daddsub_clz.o) + 0x080166da 0x080166da 0x00000002 PAD + 0x080166dc 0x080166dc 0x00000198 Code RO 3484 x$fpl$dsqrt fz_wm.l(dsqrt_umaal.o) + 0x08016874 0x08016874 0x000001dc Code RO 3177 x$fpl$dsub fz_wm.l(daddsub_clz.o) + 0x08016a50 0x08016a50 0x00000056 Code RO 3203 x$fpl$f2d fz_wm.l(f2d.o) + 0x08016aa6 0x08016aa6 0x00000054 Code RO 3181 x$fpl$fcmp fz_wm.l(dcmp.o) + 0x08016afa 0x08016afa 0x00000060 Code RO 3205 x$fpl$ffltll fz_wm.l(ffltll_clz.o) + 0x08016b5a 0x08016b5a 0x0000008c Code RO 3360 x$fpl$fnaninf fz_wm.l(fnaninf.o) + 0x08016be6 0x08016be6 0x0000001a Code RO 3627 x$fpl$fpinit fz_wm.l(fpinit.o) + 0x08016c00 0x08016c00 0x0000000a Code RO 3362 x$fpl$fretinf fz_wm.l(fretinf.o) + 0x08016c0a 0x08016c0a 0x00000064 Code RO 3544 x$fpl$retnan fz_wm.l(retnan.o) + 0x08016c6e 0x08016c6e 0x0000005c Code RO 3372 x$fpl$scalbn fz_wm.l(scalbn.o) + 0x08016cca 0x08016cca 0x00000030 Code RO 3606 x$fpl$trapveneer fz_wm.l(trapv.o) + 0x08016cfa 0x08016cfa 0x00000000 Code RO 3374 x$fpl$usenofp fz_wm.l(usenofp.o) + 0x08016cfa 0x08016cfa 0x00000006 PAD + 0x08016d00 0x08016d00 0x00000088 Data RO 3234 .constdata m_wm.l(pow.o) + 0x08016d88 0x08016d88 0x00000098 Data RO 3378 .constdata m_wm.l(atan.o) + 0x08016e20 0x08016e20 0x00000008 Data RO 3422 .constdata m_wm.l(qnan.o) + 0x08016e28 0x08016e28 0x00000020 Data RO 3424 .constdata m_wm.l(rredf.o) + 0x08016e48 0x08016e48 0x00000010 Data RO 1495 .rodata.AHBPrescTable system_stm32f4xx.o + 0x08016e58 0x08016e58 0x00000008 Data RO 1496 .rodata.APBPrescTable system_stm32f4xx.o + 0x08016e60 0x08016e60 0x00000008 Data RO 500 .rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset stm32f4xx_hal_dma.o + 0x08016e68 0x08016e68 0x00000038 Data RO 2292 .rodata.GPIO_Map gpio_1.o + 0x08016ea0 0x08016ea0 0x00000008 Data RO 2373 .rodata.PWM_Map pwm.o + 0x08016ea8 0x08016ea8 0x00000024 Data RO 3081 .rodata.attr_atti_esti user_task.o + 0x08016ecc 0x08016ecc 0x00000024 Data RO 3082 .rodata.attr_gimbal_ctrl user_task.o + 0x08016ef0 0x08016ef0 0x00000024 Data RO 3080 .rodata.attr_init user_task.o + 0x08016f14 0x08016f14 0x00000024 Data RO 3083 .rodata.attr_remote user_task.o + 0x08016f38 0x08016f38 0x00000024 Data RO 3084 .rodata.attr_vofa user_task.o + 0x08016f5c 0x08016f5c 0x00000024 Data RO 44 .rodata.defaultTask_attributes freertos.o + 0x08016f80 0x08016f80 0x00000020 Data RO 3057 .rodata.imu_temp_ctrl_pid_param atti_esti.o + 0x08016fa0 0x08016fa0 0x0000000c Data RO 43 .rodata.str1.1 freertos.o + 0x08016fac 0x08016fac 0x00000005 Data RO 1854 .rodata.str1.1 tasks.o + 0x08016fb1 0x08016fb1 0x0000000d Data RO 1926 .rodata.str1.1 timers.o + 0x08016fbe 0x08016fbe 0x0000002c Data RO 3079 .rodata.str1.1 user_task.o + 0x08016fea 0x08016fea 0x00000002 PAD + 0x08016fec 0x08016fec 0x00000020 Data RO 3688 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08016f08, Size: 0x000087a8, Max: 0x00020000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08017010, Size: 0x00008798, Max: 0x00020000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x08016f08 0x00000004 Data RW 1494 .data.SystemCoreClock system_stm32f4xx.o - 0x20000004 0x08016f0c 0x00000004 Data RW 2488 .data.beta ahrs.o - 0x20000008 0x08016f10 0x0000000c Data RW 3052 .data.cali_bmi088 atti_esti.o - 0x20000014 0x08016f1c 0x000000dc Data RW 3136 .data.robot_config config.o - 0x200000f0 0x08016ff8 0x00000001 Data RW 700 .data.uwTickFreq stm32f4xx_hal.o - 0x200000f1 0x08016ff9 0x00000003 PAD - 0x200000f4 0x08016ffc 0x00000004 Data RW 699 .data.uwTickPrio stm32f4xx_hal.o - 0x200000f8 0x08017000 0x00000004 Data RW 2180 .data.uxCriticalNesting port.o - 0x200000fc 0x08017004 0x00000004 PAD - 0x20000100 - 0x00000060 Zero RW 3488 .bss c_w.l(libspace.o) + 0x20000000 0x08017010 0x00000004 Data RW 1494 .data.SystemCoreClock system_stm32f4xx.o + 0x20000004 0x08017014 0x00000004 Data RW 2488 .data.beta ahrs.o + 0x20000008 0x08017018 0x0000000c Data RW 3052 .data.cali_bmi088 atti_esti.o + 0x20000014 0x08017024 0x000000dc Data RW 3135 .data.robot_config config.o + 0x200000f0 0x08017100 0x00000001 Data RW 700 .data.uwTickFreq stm32f4xx_hal.o + 0x200000f1 0x08017101 0x00000003 PAD + 0x200000f4 0x08017104 0x00000004 Data RW 699 .data.uwTickPrio stm32f4xx_hal.o + 0x200000f8 0x08017108 0x00000004 Data RW 2180 .data.uxCriticalNesting port.o + 0x200000fc 0x0801710c 0x00000004 PAD + 0x20000100 - 0x00000060 Zero RW 3487 .bss c_w.l(libspace.o) 0x20000160 - 0x00000068 Zero RW 2264 .bss.CAN_Callback can_1.o 0x200001c8 - 0x00000040 Zero RW 2291 .bss.GPIO_Callback gpio_1.o 0x20000208 - 0x00000004 Zero RW 63 .bss.HAL_RCC_CAN1_CLK_ENABLED can.o @@ -8894,11 +8894,11 @@ Memory Map of the image 0x20000258 - 0x00000040 Zero RW 2417 .bss.SPI_Callback spi_1.o 0x20000298 - 0x00000004 Zero RW 2773 .bss.Smc_Calc.pos_pow sliding.o 0x2000029c - 0x00000048 Zero RW 2468 .bss.UART_Callback uart.o - 0x200002e4 0x08017004 0x00000004 PAD + 0x200002e4 0x0801710c 0x00000004 PAD 0x200002e8 - 0x00000030 Zero RW 3053 .bss.bmi088 atti_esti.o 0x20000318 - 0x00000013 Zero RW 2823 .bss.bmi088_rxbuf bmi088.o 0x2000032b - 0x00000002 Zero RW 2824 .bss.buffer bmi088.o - 0x2000032d 0x08017004 0x00000003 PAD + 0x2000032d 0x0801710c 0x00000003 PAD 0x20000330 - 0x00000008 Zero RW 2913 .bss.can_managers motor_rm.o 0x20000338 - 0x00000008 Zero RW 3014 .bss.can_managers motor_dm.o 0x20000340 - 0x00000010 Zero RW 3105 .bss.channels vofa_1.o @@ -8906,96 +8906,94 @@ Memory Map of the image 0x20000354 - 0x0000000c Zero RW 3058 .bss.eulr_to_send atti_esti.o 0x20000360 - 0x00000004 Zero RW 2711 .bss.fac_ms bsp_delay.o 0x20000364 - 0x00000001 Zero RW 2710 .bss.fac_us bsp_delay.o - 0x20000365 0x08017004 0x00000003 PAD - 0x20000368 - 0x00000250 Zero RW 3093 .bss.gimbal gimbal_ctrl.o - 0x200005b8 - 0x00000014 Zero RW 3054 .bss.gimbal_ahrs atti_esti.o - 0x200005cc - 0x0000000c Zero RW 3095 .bss.gimbal_cmd gimbal_ctrl.o - 0x200005d8 - 0x00000018 Zero RW 3094 .bss.gimbal_imu gimbal_ctrl.o - 0x200005f0 - 0x00000018 Zero RW 3059 .bss.gimbal_to_send atti_esti.o - 0x20000608 - 0x00000028 Zero RW 61 .bss.hcan1 can.o - 0x20000630 - 0x00000028 Zero RW 62 .bss.hcan2 can.o - 0x20000658 - 0x00000060 Zero RW 106 .bss.hdma_spi1_rx spi.o - 0x200006b8 - 0x00000060 Zero RW 107 .bss.hdma_spi1_tx spi.o - 0x20000718 - 0x00000060 Zero RW 144 .bss.hdma_usart3_rx usart.o - 0x20000778 - 0x00000004 Zero RW 3126 .bss.hhhh gimbal.o - 0x2000077c - 0x00000054 Zero RW 87 .bss.hi2c1 i2c.o - 0x200007d0 - 0x00000054 Zero RW 88 .bss.hi2c2 i2c.o - 0x20000824 - 0x00000058 Zero RW 104 .bss.hspi1 spi.o - 0x2000087c - 0x00000058 Zero RW 105 .bss.hspi2 spi.o - 0x200008d4 - 0x00000048 Zero RW 126 .bss.htim10 tim.o - 0x2000091c - 0x00000048 Zero RW 125 .bss.htim7 tim.o - 0x20000964 - 0x00000048 Zero RW 142 .bss.huart1 usart.o - 0x200009ac - 0x00000048 Zero RW 143 .bss.huart3 usart.o - 0x200009f4 - 0x00000004 Zero RW 2266 .bss.id_parser can_1.o - 0x200009f8 - 0x00000018 Zero RW 3072 .bss.imu remote.o - 0x20000a10 - 0x0000003c Zero RW 3056 .bss.imu_temp_ctrl_pid atti_esti.o - 0x20000a4c - 0x00000001 Zero RW 2265 .bss.inited can_1.o - 0x20000a4d - 0x00000001 Zero RW 2821 .bss.inited bmi088.o - 0x20000a4e 0x08017004 0x00000002 PAD - 0x20000a50 - 0x0000000c Zero RW 3055 .bss.magn atti_esti.o - 0x20000a5c - 0x000000a0 Zero RW 1934 .bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage timers.o - 0x20000afc - 0x00000050 Zero RW 1933 .bss.prvCheckForValidListAndQueue.xStaticTimerQueue timers.o - 0x20000b4c - 0x00000004 Zero RW 1930 .bss.prvSampleTimeNow.xLastTime timers.o - 0x20000b50 - 0x00000004 Zero RW 1840 .bss.pxCurrentTCB tasks.o - 0x20000b54 - 0x00000004 Zero RW 1928 .bss.pxCurrentTimerList timers.o - 0x20000b58 - 0x00000004 Zero RW 1848 .bss.pxDelayedTaskList tasks.o - 0x20000b5c - 0x00000004 Zero RW 2137 .bss.pxEnd heap_4.o - 0x20000b60 - 0x00000004 Zero RW 1849 .bss.pxOverflowDelayedTaskList tasks.o - 0x20000b64 - 0x00000004 Zero RW 1929 .bss.pxOverflowTimerList timers.o - 0x20000b68 - 0x00000460 Zero RW 1851 .bss.pxReadyTasksLists tasks.o - 0x20000fc8 - 0x00000004 Zero RW 2269 .bss.queue_list can_1.o - 0x20000fcc - 0x00000004 Zero RW 2267 .bss.queue_mutex can_1.o - 0x20000fd0 - 0x00000018 Zero RW 2970 .bss.rc_ctrl remote_control.o - 0x20000fe8 - 0x0000000c Zero RW 3071 .bss.remote_cmd remote.o - 0x20000ff4 - 0x00000019 Zero RW 2969 .bss.sbus_rx_buf remote_control.o - 0x2000100d 0x08017004 0x00000003 PAD - 0x20001010 - 0x00000068 Zero RW 3085 .bss.task_runtime user_task.o - 0x20001078 - 0x00000004 Zero RW 2822 .bss.thread_alert bmi088.o - 0x2000107c - 0x00000810 Zero RW 2268 .bss.tx_queues can_1.o - 0x2000188c - 0x00006000 Zero RW 2144 .bss.ucHeap heap_4.o - 0x2000788c - 0x00000001 Zero RW 2178 .bss.ucMaxSysCallPriority port.o - 0x2000788d 0x08017004 0x00000003 PAD - 0x20007890 - 0x00000004 Zero RW 2179 .bss.ulMaxPRIGROUPValue port.o - 0x20007894 - 0x00000004 Zero RW 1861 .bss.ulTaskSwitchedInTime tasks.o - 0x20007898 - 0x00000004 Zero RW 1860 .bss.ulTotalRunTime tasks.o - 0x2000789c - 0x00000004 Zero RW 701 .bss.uwTick stm32f4xx_hal.o - 0x200078a0 - 0x00000004 Zero RW 1844 .bss.uxCurrentNumberOfTasks tasks.o - 0x200078a4 - 0x00000004 Zero RW 1843 .bss.uxDeletedTasksWaitingCleanUp tasks.o - 0x200078a8 - 0x00000004 Zero RW 1846 .bss.uxSchedulerSuspended tasks.o - 0x200078ac - 0x00000004 Zero RW 1841 .bss.uxTaskNumber tasks.o - 0x200078b0 - 0x00000004 Zero RW 1852 .bss.uxTopReadyPriority tasks.o - 0x200078b4 - 0x00000200 Zero RW 2111 .bss.vApplicationGetIdleTaskMemory.Idle_Stack cmsis_os2.o - 0x20007ab4 - 0x00000064 Zero RW 2110 .bss.vApplicationGetIdleTaskMemory.Idle_TCB cmsis_os2.o - 0x20007b18 - 0x00000400 Zero RW 2113 .bss.vApplicationGetTimerTaskMemory.Timer_Stack cmsis_os2.o - 0x20007f18 - 0x00000064 Zero RW 2112 .bss.vApplicationGetTimerTaskMemory.Timer_TCB cmsis_os2.o - 0x20007f7c - 0x00000018 Zero RW 3104 .bss.vofa_imu vofa_1.o - 0x20007f94 - 0x00000104 Zero RW 3032 .bss.vofa_tx_buf vofa.o - 0x20008098 - 0x00000014 Zero RW 1931 .bss.xActiveTimerList1 timers.o - 0x200080ac - 0x00000014 Zero RW 1932 .bss.xActiveTimerList2 timers.o - 0x200080c0 - 0x00000004 Zero RW 2138 .bss.xBlockAllocatedBit heap_4.o - 0x200080c4 - 0x00000014 Zero RW 1862 .bss.xDelayedTaskList1 tasks.o - 0x200080d8 - 0x00000014 Zero RW 1863 .bss.xDelayedTaskList2 tasks.o - 0x200080ec - 0x00000004 Zero RW 2139 .bss.xFreeBytesRemaining heap_4.o - 0x200080f0 - 0x00000004 Zero RW 1855 .bss.xIdleTaskHandle tasks.o - 0x200080f4 - 0x00000004 Zero RW 2141 .bss.xMinimumEverFreeBytesRemaining heap_4.o - 0x200080f8 - 0x00000004 Zero RW 1856 .bss.xNextTaskUnblockTime tasks.o - 0x200080fc - 0x00000004 Zero RW 1859 .bss.xNumOfOverflows tasks.o - 0x20008100 - 0x00000004 Zero RW 2142 .bss.xNumberOfSuccessfulAllocations heap_4.o - 0x20008104 - 0x00000004 Zero RW 2143 .bss.xNumberOfSuccessfulFrees heap_4.o - 0x20008108 - 0x00000004 Zero RW 1858 .bss.xPendedTicks tasks.o - 0x2000810c - 0x00000014 Zero RW 1853 .bss.xPendingReadyList tasks.o - 0x20008120 - 0x00000040 Zero RW 1639 .bss.xQueueRegistry queue.o - 0x20008160 - 0x00000004 Zero RW 1845 .bss.xSchedulerRunning tasks.o - 0x20008164 - 0x00000008 Zero RW 2140 .bss.xStart heap_4.o - 0x2000816c - 0x00000014 Zero RW 1850 .bss.xSuspendedTaskList tasks.o - 0x20008180 - 0x00000014 Zero RW 1842 .bss.xTasksWaitingTermination tasks.o - 0x20008194 - 0x00000004 Zero RW 1847 .bss.xTickCount tasks.o - 0x20008198 - 0x00000004 Zero RW 1925 .bss.xTimerQueue timers.o - 0x2000819c - 0x00000004 Zero RW 1927 .bss.xTimerTaskHandle timers.o - 0x200081a0 - 0x00000004 Zero RW 1857 .bss.xYieldPending tasks.o - 0x200081a4 0x08017004 0x00000004 PAD - 0x200081a8 - 0x00000200 Zero RW 2 HEAP startup_stm32f407xx.o - 0x200083a8 - 0x00000400 Zero RW 1 STACK startup_stm32f407xx.o + 0x20000365 0x0801710c 0x00000003 PAD + 0x20000368 - 0x00000248 Zero RW 3093 .bss.gimbal gimbal_ctrl.o + 0x200005b0 - 0x00000014 Zero RW 3054 .bss.gimbal_ahrs atti_esti.o + 0x200005c4 - 0x0000000c Zero RW 3095 .bss.gimbal_cmd gimbal_ctrl.o + 0x200005d0 - 0x00000018 Zero RW 3094 .bss.gimbal_imu gimbal_ctrl.o + 0x200005e8 - 0x00000018 Zero RW 3059 .bss.gimbal_to_send atti_esti.o + 0x20000600 - 0x00000028 Zero RW 61 .bss.hcan1 can.o + 0x20000628 - 0x00000028 Zero RW 62 .bss.hcan2 can.o + 0x20000650 - 0x00000060 Zero RW 106 .bss.hdma_spi1_rx spi.o + 0x200006b0 - 0x00000060 Zero RW 107 .bss.hdma_spi1_tx spi.o + 0x20000710 - 0x00000060 Zero RW 144 .bss.hdma_usart3_rx usart.o + 0x20000770 - 0x00000054 Zero RW 87 .bss.hi2c1 i2c.o + 0x200007c4 - 0x00000054 Zero RW 88 .bss.hi2c2 i2c.o + 0x20000818 - 0x00000058 Zero RW 104 .bss.hspi1 spi.o + 0x20000870 - 0x00000058 Zero RW 105 .bss.hspi2 spi.o + 0x200008c8 - 0x00000048 Zero RW 126 .bss.htim10 tim.o + 0x20000910 - 0x00000048 Zero RW 125 .bss.htim7 tim.o + 0x20000958 - 0x00000048 Zero RW 142 .bss.huart1 usart.o + 0x200009a0 - 0x00000048 Zero RW 143 .bss.huart3 usart.o + 0x200009e8 - 0x00000004 Zero RW 2266 .bss.id_parser can_1.o + 0x200009ec - 0x00000018 Zero RW 3071 .bss.imu remote.o + 0x20000a04 - 0x0000003c Zero RW 3056 .bss.imu_temp_ctrl_pid atti_esti.o + 0x20000a40 - 0x00000001 Zero RW 2265 .bss.inited can_1.o + 0x20000a41 - 0x00000001 Zero RW 2821 .bss.inited bmi088.o + 0x20000a42 0x0801710c 0x00000002 PAD + 0x20000a44 - 0x0000000c Zero RW 3055 .bss.magn atti_esti.o + 0x20000a50 - 0x000000a0 Zero RW 1934 .bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage timers.o + 0x20000af0 - 0x00000050 Zero RW 1933 .bss.prvCheckForValidListAndQueue.xStaticTimerQueue timers.o + 0x20000b40 - 0x00000004 Zero RW 1930 .bss.prvSampleTimeNow.xLastTime timers.o + 0x20000b44 - 0x00000004 Zero RW 1840 .bss.pxCurrentTCB tasks.o + 0x20000b48 - 0x00000004 Zero RW 1928 .bss.pxCurrentTimerList timers.o + 0x20000b4c - 0x00000004 Zero RW 1848 .bss.pxDelayedTaskList tasks.o + 0x20000b50 - 0x00000004 Zero RW 2137 .bss.pxEnd heap_4.o + 0x20000b54 - 0x00000004 Zero RW 1849 .bss.pxOverflowDelayedTaskList tasks.o + 0x20000b58 - 0x00000004 Zero RW 1929 .bss.pxOverflowTimerList timers.o + 0x20000b5c - 0x00000460 Zero RW 1851 .bss.pxReadyTasksLists tasks.o + 0x20000fbc - 0x00000004 Zero RW 2269 .bss.queue_list can_1.o + 0x20000fc0 - 0x00000004 Zero RW 2267 .bss.queue_mutex can_1.o + 0x20000fc4 - 0x00000018 Zero RW 2970 .bss.rc_ctrl remote_control.o + 0x20000fdc - 0x0000000c Zero RW 3072 .bss.remote_cmd remote.o + 0x20000fe8 - 0x00000019 Zero RW 2969 .bss.sbus_rx_buf remote_control.o + 0x20001001 0x0801710c 0x00000003 PAD + 0x20001004 - 0x00000068 Zero RW 3085 .bss.task_runtime user_task.o + 0x2000106c - 0x00000004 Zero RW 2822 .bss.thread_alert bmi088.o + 0x20001070 - 0x00000810 Zero RW 2268 .bss.tx_queues can_1.o + 0x20001880 - 0x00006000 Zero RW 2144 .bss.ucHeap heap_4.o + 0x20007880 - 0x00000001 Zero RW 2178 .bss.ucMaxSysCallPriority port.o + 0x20007881 0x0801710c 0x00000003 PAD + 0x20007884 - 0x00000004 Zero RW 2179 .bss.ulMaxPRIGROUPValue port.o + 0x20007888 - 0x00000004 Zero RW 1861 .bss.ulTaskSwitchedInTime tasks.o + 0x2000788c - 0x00000004 Zero RW 1860 .bss.ulTotalRunTime tasks.o + 0x20007890 - 0x00000004 Zero RW 701 .bss.uwTick stm32f4xx_hal.o + 0x20007894 - 0x00000004 Zero RW 1844 .bss.uxCurrentNumberOfTasks tasks.o + 0x20007898 - 0x00000004 Zero RW 1843 .bss.uxDeletedTasksWaitingCleanUp tasks.o + 0x2000789c - 0x00000004 Zero RW 1846 .bss.uxSchedulerSuspended tasks.o + 0x200078a0 - 0x00000004 Zero RW 1841 .bss.uxTaskNumber tasks.o + 0x200078a4 - 0x00000004 Zero RW 1852 .bss.uxTopReadyPriority tasks.o + 0x200078a8 - 0x00000200 Zero RW 2111 .bss.vApplicationGetIdleTaskMemory.Idle_Stack cmsis_os2.o + 0x20007aa8 - 0x00000064 Zero RW 2110 .bss.vApplicationGetIdleTaskMemory.Idle_TCB cmsis_os2.o + 0x20007b0c - 0x00000400 Zero RW 2113 .bss.vApplicationGetTimerTaskMemory.Timer_Stack cmsis_os2.o + 0x20007f0c - 0x00000064 Zero RW 2112 .bss.vApplicationGetTimerTaskMemory.Timer_TCB cmsis_os2.o + 0x20007f70 - 0x00000018 Zero RW 3104 .bss.vofa_imu vofa_1.o + 0x20007f88 - 0x00000104 Zero RW 3032 .bss.vofa_tx_buf vofa.o + 0x2000808c - 0x00000014 Zero RW 1931 .bss.xActiveTimerList1 timers.o + 0x200080a0 - 0x00000014 Zero RW 1932 .bss.xActiveTimerList2 timers.o + 0x200080b4 - 0x00000004 Zero RW 2138 .bss.xBlockAllocatedBit heap_4.o + 0x200080b8 - 0x00000014 Zero RW 1862 .bss.xDelayedTaskList1 tasks.o + 0x200080cc - 0x00000014 Zero RW 1863 .bss.xDelayedTaskList2 tasks.o + 0x200080e0 - 0x00000004 Zero RW 2139 .bss.xFreeBytesRemaining heap_4.o + 0x200080e4 - 0x00000004 Zero RW 1855 .bss.xIdleTaskHandle tasks.o + 0x200080e8 - 0x00000004 Zero RW 2141 .bss.xMinimumEverFreeBytesRemaining heap_4.o + 0x200080ec - 0x00000004 Zero RW 1856 .bss.xNextTaskUnblockTime tasks.o + 0x200080f0 - 0x00000004 Zero RW 1859 .bss.xNumOfOverflows tasks.o + 0x200080f4 - 0x00000004 Zero RW 2142 .bss.xNumberOfSuccessfulAllocations heap_4.o + 0x200080f8 - 0x00000004 Zero RW 2143 .bss.xNumberOfSuccessfulFrees heap_4.o + 0x200080fc - 0x00000004 Zero RW 1858 .bss.xPendedTicks tasks.o + 0x20008100 - 0x00000014 Zero RW 1853 .bss.xPendingReadyList tasks.o + 0x20008114 - 0x00000040 Zero RW 1639 .bss.xQueueRegistry queue.o + 0x20008154 - 0x00000004 Zero RW 1845 .bss.xSchedulerRunning tasks.o + 0x20008158 - 0x00000008 Zero RW 2140 .bss.xStart heap_4.o + 0x20008160 - 0x00000014 Zero RW 1850 .bss.xSuspendedTaskList tasks.o + 0x20008174 - 0x00000014 Zero RW 1842 .bss.xTasksWaitingTermination tasks.o + 0x20008188 - 0x00000004 Zero RW 1847 .bss.xTickCount tasks.o + 0x2000818c - 0x00000004 Zero RW 1925 .bss.xTimerQueue timers.o + 0x20008190 - 0x00000004 Zero RW 1927 .bss.xTimerTaskHandle timers.o + 0x20008194 - 0x00000004 Zero RW 1857 .bss.xYieldPending tasks.o + 0x20008198 - 0x00000200 Zero RW 2 HEAP startup_stm32f407xx.o + 0x20008398 - 0x00000400 Zero RW 1 STACK startup_stm32f407xx.o ============================================================================== @@ -9019,8 +9017,8 @@ Image component sizes 134 0 0 0 0 3285 dma.o 780 8 0 0 0 3400 filter.o 98 0 48 0 4 3072 freertos.o - 2506 56 0 0 4 8687 gimbal.o - 276 12 0 0 628 5318 gimbal_ctrl.o + 2598 56 0 0 0 8698 gimbal.o + 244 12 0 0 620 5295 gimbal_ctrl.o 554 0 0 0 0 4152 gpio.o 576 12 56 0 64 4710 gpio_1.o 1084 0 0 0 24608 4422 heap_4.o @@ -9036,9 +9034,9 @@ Image component sizes 1128 16 0 4 5 3817 port.o 386 0 8 0 0 5409 pwm.o 3928 0 0 0 64 17306 queue.o - 160 8 0 0 36 1229 remote.o + 176 8 0 0 36 1236 remote.o 794 8 0 0 49 2415 remote_control.o - 2462 40 0 0 4 4330 sliding.o + 2640 56 0 0 4 4454 sliding.o 694 0 0 0 368 5391 spi.o 984 0 0 0 64 7282 spi_1.o 64 26 392 0 1536 812 startup_stm32f407xx.o @@ -9068,9 +9066,9 @@ Image component sizes 144 8 0 0 40 1073 vofa_1.o ---------------------------------------------------------------------- - 80632 358 844 252 34380 461716 Object Totals + 80896 378 844 252 34364 461835 Object Totals 0 0 32 0 0 0 (incl. Generated) - 430 12 2 3 26 0 (incl. Padding) + 440 16 2 3 22 0 (incl. Padding) ---------------------------------------------------------------------- @@ -9170,15 +9168,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 92784 1438 1172 252 34476 464188 Grand Totals - 92784 1438 1172 252 34476 464188 ELF Image Totals - 92784 1438 1172 252 0 0 ROM Totals + 93048 1458 1172 252 34460 464307 Grand Totals + 93048 1458 1172 252 34460 464307 ELF Image Totals + 93048 1458 1172 252 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 93956 ( 91.75kB) - Total RW Size (RW Data + ZI Data) 34728 ( 33.91kB) - Total ROM Size (Code + RO Data + RW Data) 94208 ( 92.00kB) + Total RO Size (Code + RO Data) 94220 ( 92.01kB) + Total RW Size (RW Data + ZI Data) 34712 ( 33.90kB) + Total ROM Size (Code + RO Data + RW Data) 94472 ( 92.26kB) ============================================================================== diff --git a/MDK-ARM/gimbal/gimbal.o b/MDK-ARM/gimbal/gimbal.o index 8b5b367e17e3109511302f87274d09bb125f7642..97e73322d22237ee401f9ebae9ae5d049e36f763 100644 GIT binary patch literal 18376 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 literal 18340 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 JmGmV3{x6Rk)-wPA diff --git a/MDK-ARM/gimbal/gimbal_ctrl.o b/MDK-ARM/gimbal/gimbal_ctrl.o index 839b23bf079c84658c3bbfb7615d471e2d9dcb08..731c9ff8283ed928387d796ba40ab4d3ab7730c3 100644 GIT binary patch delta 1502 zcmX|Ae@s^6vWq_5)g(s7*jo8A@1bv}V&b$gJcMvdSPH zF3eD8yuNeUtky5fiK~at$6_#70w&;5<2i|tSpC8|IzUO;> zyu%I0*Yw+bER+n*XA6=I3t3rm=js3?nQgRH{|PWkAM2m``@bo8n;k%th5YP!aEew+ zOFJOr(9iHCE@cx8v7DDUw*Y{*Q>dhmnYltE1Z_EmB|4?XJaxE@?|1|lKO!!Z`?Pci zKupf?qdnkV$pI$F;Kv?ddN%*u&0g}7kpg#?%Lfhc-Yo!%7$t_*;3}G3W zEPqK@v%Cv@*Qk&dph}Mt(TmJc4cGf3tR6dk$gblYGsbjWXvWzK_^DZyI6)1U$-~^E zSMyiJyR;$0N3s{haccXb+|TZSUdng6r_(HRuT7th%Xejqxinq2$X~ZbaEAAVsf|1u zeV&@*JM;kW7T;0v3Rxfl!l3T%)4>b8#{z8$K9_MXi{twlRf$?EAzNT(-t;rzjpTgg zI)3#qE|F>_m*1gVJmwzcX}L}*h{tC-DD#Ns89v_tbCC()$w*lVGQsMln6UOz?6wY4 ze8n1|*kyeo)1B5g6koQkQk~XP%kOS&XJ(KL7|9TR&B`J_j+J?d}~|0wWYOVv0anCX65O=wk;hS<6B!c zKbig~_f3X-{PS|;vdglJeQXzBmSqF{njZF_VY)Uh#9y0ncfM^r#VufT5tzyk^BaIy z@-OmRfJX|Jvbyvy1x>8}J*rWj2k;?b1>s>rlQxx-NNt^vXaSrgET0E3LRdj~PWrb4 zj7z)?;5www7LIswa;bk#n=erq!@lC6uU4r>94>Au8CU8@g?}gn`Lt+m2Hq2_^0g_| ziQ9w0!jw{{6rNXj6$gXCl1%xAXl6iRSm6SN)p#>l;M<~92jVbGn-sPv+@`QkVSjqkev$K!ZESZQ zmX~zS35g8>I$r$EaoC-h6OOSBxF{SGm2{(Z*b;VFCH9e9iGyzZmU3D2k9rG5#1YMf z0Ht^ru|sr!rMN!gunV|75@P~CaO2k$H{s1ljPJFvC>q6yh==`-E20j6$Hr%(QPzdY GXuqiM3yZ+h}np;bvj`}wz*}-WM;3-X{O9*vT0(R#!N*sJon>*O?rOk{Lj7T z+*ffZs5$nUdY71T}td1Ja_bo$DyD&zkn z)=xU4(JXbfI9uzOouR!c#|>RUKfA_u<9r^nybOS^2Y?FtGIzGnh@jn1rc$TWaYr0i z@GUD0#`lWzq&_3neIWjx^@n@GS;qmck-!fuW4ecbXlEy#B#eMP%l7vh;9MvG3S`ei zD>16Y;*T-ChmYFhod(HcGvjUla8OKAVcQ?C76UZZ_9xbY^8zKhdJ2 zsVU#0=kv|t8!AvK2PHum)cy`xyT=6W0j$oropobpMpd$wMA?P8b7pRu$4NPFD_(W? zlN7bd$v5jJkJ{%mF58rXc$8#$4m{=%>t_8j1KhQ407u4%*+U|jePom7PO_WLL9(07 zVX_Hx`~^a{d5Y}I=0&p8^l^fbAXhl%(NvJ{kv;ws32q-_nLOp4vi)t;U_MWIG`bzP zfBQ^ihGkUTPZ4;sB(%54EFhIt8=2|dW<+;ye4=YjXWROY4eQdUvfp61)?1h*yDZH# zUT3fIrI|s1KhitBN13Pmu+a6fr-i213-Oh)8dv59^@q3#jA0@-%ngQb=bq(WhA-yb z$KvUa@>*DOkec6C1h9v=h`5*NE&wd@(vK_s3mJO>zLYWXEYVH7 zxF~4?T#|XJdzmQfUzK_xz?9?ypjXP$t9%mf&@H_NiU ze5?uQ;4NVfYsDqund}8DkK|w?>=6s;hxrbs!j?GgqbtNw^3Kr3#_;>F#ime1qHHnV u8i|U6zM7qw8cMG;hU z`&*0^Njn!p6N3;z=q7{~Jr)rzf*uPM3N+|Ji>B|~nP0|xX8!rk`ObIFf6l$LxN)*J zStmZ(_2G&eX>T(7`(Kt%^jola;`?U1D?DN*sZPXthonhS_PfnAaREN6Ijpk=BPgO}*!wW?>(mWQ|P~P##*zzC=8^s?h0`95l}q z9S6(8w465^#e@{zZF{{`x~d}z!VeVm;<(S1|Kf_LWy~9iny#v&F4et!-VeSEOWbnh z2jx5O!M-rjAtWL-L`Q%vz+R36M5j3hUI6+khz6LiCc4Bt@CwK4h=w@^jsblkqMM9W zL@CBfqDS(wbxc%eUR!gb^kSkbo=C*b#}5z1hvNG)cYQlV)ig%cp;i|35xtQgi}#Fl zBg1=``P42TzfxsZ-Z=nKks^T>68t)Fz0=vl98M(HZ-8fITf|{r-Of6;t+{@fBX4Q> z*dHouMN}wXmMi{H)g6e}uu%EsPk%$xGQ6pL2L=co`&-~M@lZxfLc4##D_r6knzo^Y zm*7d%5+C4mrxqNxozgC8Y5dQSMicqx!voP9v&U_0)qu OMj9l(&Oj{W0saGR7`qSv delta 1119 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 delta 4730 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 diff --git a/User/component/Sliding.c b/User/component/Sliding.c index 4f7b78b..d535e1b 100644 --- a/User/component/Sliding.c +++ b/User/component/Sliding.c @@ -144,7 +144,7 @@ void SMC_Reset(Sliding *s){ */ void SMC_Init(Sliding *s,Smc_mode mode,SlidingParam *param){ - s->J = 0; + s->param->J = 0; s->param->K = 0; s->param->c = 0; s->param->epsilon = 0; @@ -189,6 +189,14 @@ void SMC_PErrorUpdate(Sliding *s,float target, float pos_now, float vol_now,floa s->position.error = pos_now - target; s->velocity.error = vol_now - s->position.tar_differential; + + /* 将误差限制在 -PI 到 +PI 之间 */ + if (s->position.error > M_PI) { + s->position.error -= M_2PI; + } else if (s->position.error < -M_PI) { + s->position.error += M_2PI; + } + /* 更新上一次的值 */ s->position.tar_last = s->position.tar_now; /* 位置误差积分项 */ @@ -276,7 +284,7 @@ float Smc_Calc(Sliding *s){ s->s = s->param->c * s->position.error + s->velocity.error; //滑模面 fun = Sat(s->s,s);//饱和函数消除抖动 // u = smc.param.J * ( (-smc.param.c * smc.error.v_error) - smc.param.K * smc.s - smc.param.K * (std::pow(std::fabs(smc.s),smc.param.epsilon)) * fun + smc.error.tar_differential_second); //控制器计算,幂次趋近率 - u = s->J * ( (-s->param->c * s->velocity.error) - s->param->K * s->s - s->param->K * (pow(fabs(s->s),s->param->epsilon)) * fun); //控制器计算,幂次趋近率 + u = s->param->J * ( (-s->param->c * s->velocity.error) - s->param->K * s->s - s->param->K * (pow(fabs(s->s),s->param->epsilon)) * fun); //控制器计算,幂次趋近率 break; case TFSMC:///tfsmc @@ -295,7 +303,7 @@ float Smc_Calc(Sliding *s){ fun = Sat(s->s,s); if(s->position.error!=0){ - u = s->J * (s->position.tar_differential_second//目标值的二阶导 暂定是否删除,需测试 + u = s->param->J * (s->position.tar_differential_second//目标值的二阶导 暂定是否删除,需测试 -s->param->K * s->s //s*K -s->param->epsilon * fun //epsilon*SAT(S) -s->velocity.error * ((s->param->q * s->param->beta) * pos_pow) / (s->param->p * s->position.error)); //控制器计算 @@ -308,7 +316,7 @@ float Smc_Calc(Sliding *s){ fun = Sat(s->s,s); /*控制器计算,速度控制*/ - u = s->J * (s->velocity.tar_differential - (s->param->c * s->velocity.error) - s->param->K * s->s - s->param->epsilon * fun); + u = s->param->J * (s->velocity.tar_differential - (s->param->c * s->velocity.error) - s->param->K * s->s - s->param->epsilon * fun); break; case EISMC:///比例积分滑模面,指数趋近律,位置控制 @@ -320,8 +328,12 @@ float Smc_Calc(Sliding *s){ s->s = s->param->c1 * s->position.error + s->velocity.error + s->param->c2 * s->position.error_integral; fun = Sat(s->s,s); /* 控制器计算,指数趋近率 */ - u = s->J * ( (-s->param->c1 * s->velocity.error)- s->param->c2 * s->position.error - s->param->K * s->s - s->param->epsilon * fun); - break; + u = s->param->J * ( (-s->param->c1 * s->velocity.error)- s->param->c2 * s->position.error - s->param->K * s->s - s->param->epsilon * fun); + s->s1= -s->param->c1 * s->velocity.error; + s->s2= -s->param->c2 * s->position.error; + s->s3= -s->param->K * s->s ; + s->s4= -s->param->epsilon * fun; + break; } /* 更新上一步的误差 */ s->position.error_last = s->position.error; diff --git a/User/component/Sliding.h b/User/component/Sliding.h index 23b22f8..0e51ea6 100644 --- a/User/component/Sliding.h +++ b/User/component/Sliding.h @@ -74,7 +74,6 @@ typedef struct { float fun; //控制器输出 float u; //控制器输出 float s; //滑模面计算储存 - float J; SlidingParam *param; SlidingParam *param_last; Smc_mode mode; diff --git a/User/module/config.c b/User/module/config.c index b4a6391..1f8b746 100644 --- a/User/module/config.c +++ b/User/module/config.c @@ -46,13 +46,13 @@ Config_RobotParam_t robot_config = { .motor={ /*按自己需求选择电机*/ - .pit=DM, + .pit=RM, .yaw=RM, /*是否开启限位*/ .limit_yaw=false, .limit_pit=true, -// .pit_rm_motor={BSP_CAN_1,0x20A,MOTOR_GM6020,false,false}, - .yaw_rm_motor={BSP_CAN_1,0x205,MOTOR_GM6020,false,false}, + .pit_rm_motor={BSP_CAN_1,0x205,MOTOR_GM6020,false,false}, + .yaw_rm_motor={BSP_CAN_2,0x205,MOTOR_GM6020,false,false}, /*达妙电机参数自己配*/ .pit_dm_motor={}, .yaw_dm_motor={}, @@ -77,15 +77,19 @@ Config_RobotParam_t robot_config = { .K=1.6, .c=0.6, .epsilon=0.05, -// float c1; //EIsmc参数 -// float c2; //EIsmc参数 -// float p; //tfsmc参数,正奇数 p>q -// float q; //tfsmc参数,正奇数 -// float beta; //tfsmc参数,正数 + }, .pit={ - + .u_max=1.0f, //输出限幅 + .J=1.0, + .limit=5.1f, //饱和函数上下限 + .K=1.6, + .c=0.6, + .epsilon=0.05, + + .c1=1.0, //EIsmc参数 + .c2=1.0, //EIsmc参数 }, }, diff --git a/User/module/gimbal.c b/User/module/gimbal.c index 6f5d58a..8debd0b 100644 --- a/User/module/gimbal.c +++ b/User/module/gimbal.c @@ -62,7 +62,7 @@ static float motor_imu_offset(float* motor, float* imu){ * * \return 函数运行结果 */ -int hhhh; + static int8_t Gimbal_SetMode(Gimbal_t *g, Gimbal_Mode_t mode) { if (g == NULL) return -1; @@ -75,8 +75,8 @@ static int8_t Gimbal_SetMode(Gimbal_t *g, Gimbal_Mode_t mode) { LowPassFilter2p_Reset(&g->filter_out.yaw, 0.0f); LowPassFilter2p_Reset(&g->filter_out.pit, 0.0f); -hhhh+=1; - + + AHRS_ResetEulr(&(g->setpoint.eulr)); /* 切换模式后重置设定值 */ g->setpoint.eulr.pit = g->feedback.imu.eulr.pit; @@ -115,6 +115,7 @@ int8_t Gimbal_Init(Gimbal_t *g,Gimbal_Params_t *param, SMC_Init(&g->smc.pit,EISMC,&g->param->smc.pit); SMC_Init(&g->smc.yaw,EXPONENT,&g->param->smc.yaw); + LowPassFilter2p_Init(&g->filter_out.yaw, target_freq, g->param->low_pass_cutoff_freq.out); LowPassFilter2p_Init(&g->filter_out.pit, target_freq, @@ -164,8 +165,7 @@ int8_t Gimbal_UpdateFeedback(Gimbal_t *gimbal) { gimbal->feedback.motor.yaw = rm_motor_yaw->feedback; /* 角速度 */ gimbal->feedback.motor.yaw_omega=(gimbal->feedback.motor.yaw.rotor_speed*M_2PI/60)*0.002; - gimbal->feedback.motor.yaw_torque=gimbal->feedback.motor.yaw.torque_current/1000; - + gimbal->feedback.motor.pit_omega=(gimbal->feedback.motor.pit.rotor_speed*M_2PI/60)*0.002; } @@ -263,6 +263,7 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { /* 处理pitch控制命令,软件限位 - 使用电机绝对角度 */ g->setpoint.eulr.pit+=delta_pit; +// g->setpoint.eulr.pit=g_cmd->delta_pit; /* 限制pit控制命令 */ if (g->param->motor.limit_pit == true) Clip(&(g->setpoint.eulr.pit),g->param->Limit_t.pit_min,g->param->Limit_t.pit_max); @@ -270,7 +271,11 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { g->setpoint.eulr.yaw, g->feedback.motor.yaw.rotor_abs_angle, g->feedback.motor.yaw_omega,g->dt); - + + SMC_PErrorUpdate( &g->smc.pit, + g->setpoint.eulr.pit, + g->feedback.motor.pit.rotor_abs_angle, + g->feedback.motor.pit_omega,g->dt); /*角速度滤波*/ // g->feedback.imu.gyro.z = LowPassFilter2p_Apply(&g->filter_out.gyro_z, g->feedback.imu.gyro.z); // SMC_PErrorUpdate(&g->smc.yaw, @@ -278,6 +283,7 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { // g->feedback.imu.eulr.yaw, // g->feedback.imu.gyro.z*0.002,g->dt); g->out.yaw=Smc_Calc(&g->smc.yaw); + g->out.pit=Smc_Calc(&g->smc.pit); /*前馈添加*/ if(g->param->feedforward.imu.yaw==true) diff --git a/User/module/gimbal.h b/User/module/gimbal.h index bc30b39..a07b111 100644 --- a/User/module/gimbal.h +++ b/User/module/gimbal.h @@ -134,7 +134,7 @@ typedef struct { MOTOR_Feedback_t yaw; /* yaw轴电机反馈 */ MOTOR_Feedback_t pit; /* pitch轴电机反馈 */ float yaw_omega; - float yaw_torque; + float pit_omega; } motor; } Gimbal_Feedback_t; diff --git a/User/task/gimbal_ctrl.c b/User/task/gimbal_ctrl.c index e2796c8..af47915 100644 --- a/User/task/gimbal_ctrl.c +++ b/User/task/gimbal_ctrl.c @@ -43,7 +43,7 @@ void Task_gimbal_ctrl(void *argument) { if(osMessageQueueGet(task_runtime.msgq.gimbal.imu, &gimbal_imu, NULL, 0)==osOK){ Gimbal_UpdateIMU(&gimbal, &gimbal_imu);} gimbal_cmd.mode=GIMBAL_MODE_ABSOLUTE; - if(osMessageQueueGet(task_runtime.msgq.gimbal.cmd, &gimbal_cmd, NULL, 0)==osOK) +// if(osMessageQueueGet(task_runtime.msgq.gimbal.cmd, &gimbal_cmd, NULL, 0)==osOK) Gimbal_UpdateFeedback(&gimbal); Gimbal_Control(&gimbal,&gimbal_cmd); Gimbal_Output(&gimbal); diff --git a/User/task/remote.c b/User/task/remote.c index 8b351af..f5be6e4 100644 --- a/User/task/remote.c +++ b/User/task/remote.c @@ -41,7 +41,7 @@ void Task_remote(void *argument) { tick += delay_tick; /* 计算下一个唤醒时刻 */ /* USER CODE BEGIN */ -// osMessageQueueGet(task_runtime.msgq.gimbal.imu, &imu, NULL, 0); + osMessageQueueGet(task_runtime.msgq.gimbal.imu, &imu, NULL, 0); remote_ParseHost(&remote_cmd,&rc_ctrl,&imu); osMessageQueueReset(task_runtime.msgq.gimbal.cmd);