From 0fa8329aa4d0be7769bdf193205c763c5ca1d623 Mon Sep 17 00:00:00 2001 From: yunhai8432 Date: Wed, 12 Nov 2025 20:53:53 +0800 Subject: [PATCH] 1 --- MDK-ARM/gimbal.uvguix.yunha | 474 ++-- MDK-ARM/gimbal/ai.o | Bin 3376 -> 3376 bytes MDK-ARM/gimbal/atti_esti.o | Bin 7908 -> 7908 bytes MDK-ARM/gimbal/config.o | Bin 5384 -> 5500 bytes MDK-ARM/gimbal/gimbal.axf | Bin 584092 -> 584876 bytes MDK-ARM/gimbal/gimbal.build_log.htm | 5 +- MDK-ARM/gimbal/gimbal.htm | 32 +- MDK-ARM/gimbal/gimbal.map | 3400 ++++++++++++++------------- MDK-ARM/gimbal/gimbal.o | Bin 16948 -> 17572 bytes MDK-ARM/gimbal/gimbal_ctrl.o | Bin 9224 -> 9376 bytes MDK-ARM/gimbal/gimbal_gimbal.dep | 20 +- MDK-ARM/gimbal/remote.o | Bin 3820 -> 3820 bytes User/module/config.c | 90 +- User/module/gimbal.c | 89 +- User/module/gimbal.h | 58 +- User/task/gimbal_ctrl.c | 8 +- 16 files changed, 2147 insertions(+), 2029 deletions(-) diff --git a/MDK-ARM/gimbal.uvguix.yunha b/MDK-ARM/gimbal.uvguix.yunha index 64e473c..dbf04b3 100644 --- a/MDK-ARM/gimbal.uvguix.yunha +++ b/MDK-ARM/gimbal.uvguix.yunha @@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- D:\yunha\云台\大疆电机\gimbal\User\device + D:\yunha\gimbal\motor\gimbal\MDK-ARM @@ -91,10 +91,10 @@ 44 2 - 3 + 2 - -1 - -1 + -32000 + -32000 -1 @@ -110,8 +110,8 @@ 0 - 553 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000020000000100000031443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6D6F64756C655C67696D62616C2E63000000000867696D62616C2E6300000000C5D4F200FFFFFFFF31443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6D6F64756C655C67696D62616C2E68000000000867696D62616C2E6800000000FFDC7800FFFFFFFF31443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6D6F64756C655C636F6E6669672E630000000008636F6E6669672E6300000000BECEA100FFFFFFFF2F443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C7461736B5C72656D6F74652E63000000000872656D6F74652E6300000000F0A0A100FFFFFFFF34443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C7461736B5C67696D62616C5F6374726C2E63000000000D67696D62616C5F6374726C2E6300000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000B800000066000000A0050000B6020000 + 1626 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000013000000000000000100000031443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6D6F64756C655C67696D62616C2E63000000000867696D62616C2E6300000000C5D4F200FFFFFFFF31443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6D6F64756C655C67696D62616C2E68000000000867696D62616C2E6800000000FFDC7800FFFFFFFF31443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6D6F64756C655C636F6E6669672E630000000008636F6E6669672E6300000000BECEA100FFFFFFFF2F443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C7461736B5C72656D6F74652E63000000000872656D6F74652E6300000000F0A0A100FFFFFFFF34443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C7461736B5C67696D62616C5F6374726C2E63000000000D67696D62616C5F6374726C2E6300000000BCA8E100FFFFFFFF31443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6465766963655C626D693038382E630000000008626D693038382E63000000009CC1B600FFFFFFFF30443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6465766963655C6D6F746F722E6300000000076D6F746F722E6300000000F7B88600FFFFFFFF32443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6465766963655C697374383331302E630000000009697374383331302E6300000000D9ADC200FFFFFFFF37443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C636F6D706F6E656E745C757365725F6D6174682E63000000000B757365725F6D6174682E6300000000A5C2D700FFFFFFFF2D443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C7461736B5C696E69742E630000000006696E69742E6300000000B3A6BE00FFFFFFFF32443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C7461736B5C757365725F7461736B2E63000000000B757365725F7461736B2E6300000000EAD6A300FFFFFFFF39443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6465766963655C72656D6F74655F636F6E74726F6C2E63000000001072656D6F74655F636F6E74726F6C2E6300000000F6FA7D00FFFFFFFF33443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6465766963655C6D6F746F725F646D2E63000000000A6D6F746F725F646D2E6300000000B5E99D00FFFFFFFF31443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C636F6D706F6E656E745C7069642E6300000000057069642E63000000005FC3CF00FFFFFFFF32443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C7461736B5C617474695F657374692E63000000000B617474695F657374692E6300000000C1838300FFFFFFFF31443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C636F6D706F6E656E745C636D642E630000000005636D642E6300000000CACAD500FFFFFFFF31443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C636F6D706F6E656E745C636D642E680000000005636D642E6800000000C5D4F200FFFFFFFF2D443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C6465766963655C61692E63000000000461692E6300000000FFDC7800FFFFFFFF37443A5C79756E68615C67696D62616C5C6D6F746F725C67696D62616C5C557365725C636F6D706F6E656E745C757365725F6D6174682E68000000000B757365725F6D6174682E6800000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000B883FFFF4F83FFFFA088FFFFB585FFFF @@ -134,7 +134,7 @@ 16 - B80000006600000028040000D6000000 + 8A000000A10000009E02000011010000 @@ -150,11 +150,11 @@ 0 16 - 0300000066000000B100000086020000 + 0300000066000000B10000009C020000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -170,11 +170,11 @@ 0 16 - 0300000066000000B100000086020000 + 0300000066000000B10000009C020000 16 - 7000000087000000440100004A020000 + 8A000000A10000005E01000064020000 @@ -190,11 +190,11 @@ 0 16 - 03000000B30100002504000007020000 + 00000000B00100002804000020020000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -210,11 +210,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -230,11 +230,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -250,11 +250,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -270,11 +270,11 @@ 0 16 - 77030000660000002504000093010000 + 770300006600000025040000DB000000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -294,7 +294,7 @@ 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -314,7 +314,7 @@ 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -330,11 +330,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -350,11 +350,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -370,11 +370,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -390,11 +390,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -410,11 +410,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -430,11 +430,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -450,11 +450,11 @@ 0 16 - 0300000066000000B100000086020000 + 0300000066000000B10000009C020000 16 - 7000000087000000440100004A020000 + 8A000000A10000005E01000064020000 @@ -470,11 +470,11 @@ 0 16 - 0300000066000000B100000086020000 + 0300000066000000B10000009C020000 16 - 7000000087000000440100004A020000 + 8A000000A10000005E01000064020000 @@ -490,11 +490,11 @@ 0 16 - 00000000B7020000A00500002A030000 + 00000000CD020000A00500002A030000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -514,7 +514,7 @@ 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -530,11 +530,11 @@ 0 16 - 03000000BA0200009D05000011030000 + 03000000D00200002504000010030000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -550,11 +550,11 @@ 0 16 - BB0000006600000025040000A6000000 + B80000006300000028040000BF000000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -574,7 +574,7 @@ 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -610,11 +610,11 @@ 0 16 - 77030000660000002504000093010000 + 740300006300000028040000AC010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -630,11 +630,11 @@ 0 16 - 03000000B30100002504000007020000 + 00000000B0010000280400000C020000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -654,7 +654,7 @@ 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -674,7 +674,7 @@ 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -690,11 +690,11 @@ 0 16 - BB0000006600000025040000A6000000 + B80000006300000028040000BF000000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -714,7 +714,7 @@ 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -730,11 +730,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -750,11 +750,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -770,11 +770,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -790,11 +790,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -810,11 +810,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -830,11 +830,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -850,11 +850,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -870,11 +870,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -890,11 +890,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -910,11 +910,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -930,11 +930,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -950,11 +950,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -970,11 +970,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -990,11 +990,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1010,11 +1010,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1030,11 +1030,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1050,11 +1050,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1070,11 +1070,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1090,11 +1090,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1110,11 +1110,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1130,11 +1130,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1150,11 +1150,11 @@ 0 16 - 0300000066000000B100000086020000 + 0300000066000000B100000007020000 16 - 7000000087000000440100004A020000 + 8A000000A10000005E01000064020000 @@ -1170,11 +1170,11 @@ 0 16 - 03000000BA0200009D05000011030000 + 00000000CD0200002804000029030000 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -1190,11 +1190,11 @@ 0 16 - 03000000BA0200009D05000011030000 + 03000000D00200002504000010030000 16 - 7000000087000000440100004A020000 + 8A000000A10000005E01000064020000 @@ -1210,11 +1210,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1230,11 +1230,11 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1250,11 +1250,11 @@ 0 16 - 03000000BA0200009D05000011030000 + 03000000D00200002504000010030000 16 - 7000000087000000440100004A020000 + 8A000000A10000005E01000064020000 @@ -1270,11 +1270,11 @@ 0 16 - 03000000BA0200009D05000011030000 + 03000000D00200002504000010030000 16 - 7000000087000000440100004A020000 + 8A000000A10000005E01000064020000 @@ -1294,7 +1294,7 @@ 16 - 700000008700000084020000F7000000 + 8A000000A10000009E02000011010000 @@ -1310,11 +1310,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1330,11 +1330,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1350,11 +1350,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1370,11 +1370,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1390,11 +1390,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1410,11 +1410,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1430,11 +1430,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1450,11 +1450,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1470,11 +1470,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1490,11 +1490,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1510,11 +1510,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1530,11 +1530,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1550,11 +1550,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1570,11 +1570,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1590,11 +1590,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1610,11 +1610,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1630,11 +1630,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1650,11 +1650,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1670,11 +1670,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1690,11 +1690,11 @@ 0 16 - 77030000660000002504000093010000 + 7703000066000000250400001F010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 @@ -1704,7 +1704,7 @@ 0 0 0 - 966 + 32767 0 8192 0 @@ -1744,7 +1744,7 @@ 0 0 0 - 476 + 32767 0 8192 1 @@ -1764,7 +1764,7 @@ 0 0 0 - 612 + 32767 0 8192 2 @@ -1790,23 +1790,23 @@ 0 16 - 03000000B30100002504000007020000 + 03000000B301000025040000F3010000 16 - 7000000087000000240100002C010000 + 8A000000A10000003E01000046010000 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFB8000000BF00000028040000C3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000B80000006600000028040000D6000000B80000004F00000028040000BF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF700300004F00000074030000AC010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000740300006600000028040000C3010000740300004F00000028040000AC01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFB40000004F000000B80000009F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000B4000000B6020000000000004F000000B40000009F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000098010000280400009C01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000B30100002804000037020000000000009C010000280400002002000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF140200009C010000180200002002000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000009F020000A0050000A3020000010000000100001004000000010000009EFDFFFF6E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000BA020000A00500004103000000000000A3020000A00500002A0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFB8000000BF00000028040000C3000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000008A000000A10000009E02000011010000B80000004F00000028040000BF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF700300004F00000074030000AC010000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000008A000000A10000003E01000046010000740300004F00000028040000AC01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFB40000004F000000B8000000B5020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000008A000000A10000003E01000046010000000000004F000000B4000000B50200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000098010000280400009C01000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000008A000000A10000003E01000046010000000000009C010000280400002002000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF140200009C010000180200002002000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000B5020000A0050000B9020000010000000100001004000000010000009EFDFFFF6E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000008A000000A10000009E0200001101000000000000B9020000A00500002A0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 2896 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B436972636C654572726F72960000000000000014000B436972636C654572726F72104D4F544F525F444D5F506172616D5F740B2D3E646D5F6D6F746F722E0A2D3E646D5F6D6F746F720B2D3E726D5F6D6F746F722E08726D5F6D6F746F72104D4F544F525F524D5F506172616D5F741A67696D62616C2D3E666565646261636B2E6D6F746F722E7961770C7961775F726D5F6D6F746F720A52435F726573746172741372656D6F74655F636F6E74726F6C5F696E69740C4253505F43414E5F496E69740A67696D62616C5F636D640F434D445F47696D62616C436D645F7401670543414E5F740B414852535F45756C725F740847696D62616C5F7412504F534954494F4E5F544F4C4552414E434512566973696F6E5F50726F63657373427974650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B436972636C654572726F72960000000000000014000B436972636C654572726F72104D4F544F525F444D5F506172616D5F740B2D3E646D5F6D6F746F722E0A2D3E646D5F6D6F746F720B2D3E726D5F6D6F746F722E08726D5F6D6F746F72104D4F544F525F524D5F506172616D5F741A67696D62616C2D3E666565646261636B2E6D6F746F722E7961770C7961775F726D5F6D6F746F720A52435F726573746172741372656D6F74655F636F6E74726F6C5F696E69740C4253505F43414E5F496E69740A67696D62616C5F636D640F434D445F47696D62616C436D645F7401670543414E5F740B414852535F45756C725F740847696D62616C5F7412504F534954494F4E5F544F4C4552414E434512566973696F6E5F50726F63657373427974650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 1423 @@ -1822,7 +1822,7 @@ Build 972 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000667696D62616C960000000000000001000667696D62616C000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000667696D62616C960000000000000001000667696D62616C000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 583 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000 898 @@ -3603,30 +3603,30 @@ 0 100 - 2 + 0 ..\User\module\gimbal.c - 63 - 346 - 362 + 17 + 311 + 324 1 0 ..\User\module\gimbal.h - 0 - 219 - 242 + 17 + 158 + 168 1 0 ..\User\module\config.c - 29 - 58 - 62 + 21 + 41 + 46 1 0 @@ -3634,7 +3634,7 @@ ..\User\task\remote.c 0 - 22 + 1 1 1 @@ -3642,13 +3642,139 @@ ..\User\task\gimbal_ctrl.c + 18 + 28 + 46 + 1 + + 0 + + + ..\User\device\bmi088.c 0 - 31 + 1 1 1 0 + + ..\User\device\motor.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\device\ist8310.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\component\user_math.c + 21 + 64 + 79 + 1 + + 0 + + + ..\User\task\init.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\task\user_task.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\device\remote_control.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\device\motor_dm.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\component\pid.c + 31 + 45 + 67 + 1 + + 0 + + + ..\User\task\atti_esti.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\component\cmd.c + 13 + 1 + 5 + 1 + + 0 + + + ..\User\component\cmd.h + 20 + 31 + 39 + 1 + + 0 + + + ..\User\device\ai.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\component\user_math.h + 9 + 66 + 77 + 1 + + 0 + diff --git a/MDK-ARM/gimbal/ai.o b/MDK-ARM/gimbal/ai.o index 39c89a86abc48031cf524dfe4abcf4ae80bfecb9..f4161b8ecf7e8b612bf3700ddd7ca98b9e435a04 100644 GIT binary patch delta 41 rcmdlWwLxmb3nrNkP6@_Vt{6rJh9V$lY-8Xm2GYww?Dowp%sN~E)?EmA delta 41 rcmdlWwLxmb3nrOLP6@^`t{6rJh9V$lEN9><2GYww?264S%sN~E(NhRK diff --git a/MDK-ARM/gimbal/atti_esti.o b/MDK-ARM/gimbal/atti_esti.o index de5ac5090afc85817a9785ded5c38ffbf3f09f83..4cb2dda224e85dc0b67f122ef07f92ea45114b90 100644 GIT binary patch delta 41 ucmaE2`^0v`U3Qrc775N)RuM)9hHxO}Y-3;*W@cb81Y*wi%|F>+iva-PoC&!A delta 41 ucmaE2`^0v`U3QsD775NWRuM)9hHxO}EN5U9W@cb81Y*vL%|F>+iva-Kk_mkP diff --git a/MDK-ARM/gimbal/config.o b/MDK-ARM/gimbal/config.o index a4a5db9a066f4cf8367b1888670f16a895ad35be..0814469f21cb194c46c98c8ae9a89cb0eb739ea7 100644 GIT binary patch delta 2259 zcmZvdYitx%6vxk zQ;HB&#KNe=M34Xy;|EY7#;6EJf`kxbsz!{8C6WkV48fRSg5bHc=OQ0WI`jMg&%O7Y zJNMq+-Bx|0x<95ZjqHq9=pbNcW7*EOKEGCkcSZi^&wpQp%-$0K8)o_2MIBk&|4eKh zl>mL{l)}P7fC57_Mhgok7EU7LR8f57Fh8l4i9x?lo9tcE0qkOC6^|I6%q^Z6a{E~Kr8|B3-MdBCn+Wt0UlQR z8G&ag)+wj9*ue8jKWhV+m&tiEWs2o>!m>pZ{-fHHfP%g~7?(1@G|9Bfo~!DG6&7iX zsMc1%5lXKxFs}4U8>^Mhgur}&%n_MkeS@${L_1EQzzN||BnMPH8+<@eaCQCz0=>q# z!*tsJb?OS?qbh%Q80Ra!&INNBnGy6UqAw||I?;m}3Op~@U?bq$N_#FI(y4w>r?(1^ zs}!4RX#1a|@weoBr&tN`Aikzn^dZ25N}jLoeBCC>Tp&jE6$g}i1Q9va6X{7 zaE{Yk1AQ3n@*)~yR$DQ%4C5r_{+e;XYNg8!tWnxa*jTH~=n&Q^T@l85r7K;Wp>$OV z%3B~vI)=6_LB=rjtyE+?&CnWcxmGEzCMmmEF~Dx6%M9#QI&R}usViis@({kL8WLfk zdx}1b9w;2$s8dtDBGbM+)z-8joy$UJF10q@2Grb? z?r6@oq;o(ul|Gtrx-{(;_=BN?qTk;#n(j!0-^Iql{raUgPy@9!anPTRc8<{UL z-(VhK9%G(jev_vMzi{9R^Dm~Ly^)27GE13bnd6x=nG2aoW*bx9+%nG#%zoxu0qF{P zmjlO`Uog)xe_~!_%9~dv{F8Z;>Ckq|crjDnrqb6kr!wa-7f5>4VF?G4%vH=Bvxg~< zs7$zZ zPMes9N7Gn`C@~U=G#CtoC<%cWe8s2`)DK7$X~aijOhhnh;vw7H-y-Pu!qJeeOIrDxzMP)(e8o<3;ucgd$26)iGsjYLA9aZc9 zOKrL#^#Kdd>j|12yrgwY286z)V1PSpZBTYXwc#~A+79@e)*Tl9qxD7yZQ7||K@Vnl zn5BbFQJkW6XBf2@$4csJJ^*0^3<&mY(b!JQ+S$o>nQtk4eX)(Kv#vapY$5)sH(H^ zOReYSfjLacNBAivokLuw3f)5#f_s=v2=5~}$~;M9ZB%FGd$wcd;90W&AkVxB&?3Kt zdYichrnH`H;SADq+0P5%YSJrNPqD$YNc>3+jFPcAjfDF#h2VZpH|2iAL+(|&n_yN_ z?#)ze)rKb!Y{N6_$y!L-jE$9>6Wuu!(%aHRFqGLw2_KQfS+;}a<7>s~fJ0>ST5*OE ztZ#&Mg*CoDoQe1$B58)_9mSrxZ zNzyd8U1G=W0&FD7`E~+ut=5GWZqT~O!A)8hXW$mClTo1W4s9V_s_6@|-Ggd`k7z~} z`wP3fwsogF(mmDw7JIj!<($Fh`tI(n$3JuGmA^PVHPO}4wyC+dV|zFBY;S#}V=HvD zwKqTB`e?vyojv}>@Qj(nX7;;UAA@n-nFh)m_s4Z-`uOSa4#Rj^`ExQy)L#E$=4DUu zej@-M24;bg@7Kw0Wn??zAofXDi@v+UJ!mQ{84yam`M+r^JBuv z!UAELaF(!!=}`fHy||DM8?#Bs2aDq#VV`hNxKDUkcvASL@IB!tLOzAu?>phoM30T@ zVua~@a-1V95>^Q32^R@h3Y&zT!X3hX;SiJNcviSieEO3;zG`Bf!e65Rzxc1kV*Zir z7B%Q+##X2o{iaws9nxK~Vm0a?jg?|QZS<@D#aJ%V`tv8Ha<632L7+-H Nbl}iMD+F2;{0pZUBC!Af diff --git a/MDK-ARM/gimbal/gimbal.axf b/MDK-ARM/gimbal/gimbal.axf index 6465221f52840905b5f86d675370eae9fdcfa2e8..fb770fdffe1a74258427c9387ac6ea3569293e1b 100644 GIT binary patch delta 181403 zcmcG%d3;pG@(0@8bI#1k%p@~e$VPz41_2TXdsu`75CQ_Ssi>dgww1 z>gwvAGr0D%(>UR>B!mX`=vVqWc4@<3tZz9b$_n=uzV7z%#47_W zeM19h%b)Q5#5)~grh;=5-GN2T)I|fjh+zw=a%v9fPb6jdEe>~JR7;Djn^YxA*gR2G zbt=lo0@=;Hh?mUR)p9DQrj0kFrCIW3RjsS{u!KaGoi-ERf#R zzD;CMerL3aX1r8epp@_)rMY<|0_Z=W5{J56%jc`Tvw4Y@*S`5V{l?^;{DA&c^7c?| z0S!wOX;s-ZnfkbtZai1NJ0*3Zr63LW&Zf5ECdn?9(w4fLT6j@=sUwF%Hf1n z@e*69SVP14L;ooy8FC$|m-h=Kl3pWg`eattGN$D*pF4146CYzq;(08eq>urxVfR&K z*XHW})WH#^o-kk_uZ5S0!1c}g2dTq-w>FE_woN*fwz1Q_oloPw%7^D+-C z*5B^-uy<6WRuobqUS!GfW88u027Pi`cI4S+iWlnrtWeO;RgL;1J>KM>=$G|O=0EGRd-mgb`pTZ;Q2x+! zHp-mzmr+)yKOuf>(T`+wO;7@Z>OECXpAzU-@2ZNyvv<9tDg@7-_4=C`!@$rX$PgZ6 z2n{lX5JOizt5;N1{*=mE&iU{AS$2M(`o3OUK)Imj^%^7cC+k~!Ef)Dx^j^JVJ8!9H zm<|VPIkoPBgP9BDkuvh;&_KaOeQxg=V&i1}t=`#UpZ!I{a(qlYqHIF_4~t&-L?S!z)PHg zkuCbkeks=lojtJbB88&t8Vg@}3I22tH~pRm9=!yA@Dlu=7t81L|C&#Tm9b0&;_6BM z7zBU=H3GqxsVvR+ImM@d8SM%@X$lrZoG&CWt;vZT=0f0EUy!@h>_k|OL55hz8x?+kZ7UG3KS z;K&Xx=YQ8Ysm327xwpg@Rln@aJd=YKnsXgK8>-)l-vRvW8SllA@8IZ?_I7-xl&U!` z%APi^uPxfnc3h;33h9eTYL7l=MEtsHXOFwj2=uTm{%L=;Exx7h?WT2jK3(mQ%BVex zsuvUckiKVZJ-|NXo-;OQOWoF{r>pJYU<>&er8pNZf+(LBiur)srLn-fg$GVVlrrDG z`ne*abYFeG*mDA{}d6)&f@CFAa6~RNlOP!#22I0(dsQ2 z_g)ND#D@fO>XAqQ_ByF$K3fNfIFDBU#~BjnD{CW=jg-pz%|R)4@Vtonq+n~0UshM4 zxhL5Cc~nQ%Q`6OQyhZgXywXu3N4zh;xOzOS>&2w}2NN=q90hP`&_bmc8ri6*KJ{;H zu0R_P_?~aqX0>eNr*5$3PsnD~Q^9nN^rgb;tIY1Jr-62LkT#vB@VsLIrpEb0_5IF| z;IS=r|7u)U&E-@*?zH^Q`HgA$$6>QOgO-0BJ%yCe^!h|Z2@U2dzq6?N@z#kkiPJ$_ z5~PvOm~(DTQWQ+N2$Qs!CcUvs>!eR_o%E>hLaJEGz2m;|jLZJU^L{0s_`IKOIl>jK z{k5F(n+E&8ykIrrAm9i)l#kKCgLehE@P z2vSdi^V=4sl%Efgl=t(GR!?v`0`7}M3;!EUfOg2Af22N(@2igzKmZQ|j3hl0nfg8=mN=t|+D8vMWbmWHX0y37N%M(pq31I-nZr*y4(Ugx-=X3S6tf zb#*J(isK zcRK=I8cZcB3);lzL(IKFF$(}M48rpP7X;zCfEP&VrBeEwp!79Tx*O6v-mT9ZaYIhX zf(_Nt*t-~Jaw(2y%!z{rX44UP^nxgf%51E=zEPAOt=}w`%%FcsndmciI z187l+7JFJ-R2Ia-!q)WmHz!)J2LJ!ngT+tt?zZMVCpGkM^7XrN26S1A-b&Eh3Yd?r zIi4Rs@A`TB>bHQp8PtvC@8sNM6Y(v&cdD;E_wtvVe24CtnxuD_oWYj@O4R30?#1Uy zXa}HS5>lr0;!zTsKIKjELOohf5)akuc~i%W8HD-t!&7^SOcP9))=Ow6IDcBY(o|O^ zyVLhbWG5ks<)PEpsJx&4;wZ#rVfi~Z_H?^Syz(Sg zFt)Z(zi|7tyhNWie<)w8KQsUFYiBlENjIh8l!QA1cLr&XmC0jxv28i?i6TeffksiZ z?m`UXMWRG0wXIeIIGK&%C62&98?D^bOx_)Vvhus`7$9PD0Px;sa|0-(7zBgFSiYd0u&NoGVK9&7WAaU1EoBGO+<(ec3~6J8Zo8-&(EG zNBHCT6Z*CO)ZYL4ANBJu{#|R z;LP0K%9Z)1m6bq-9{yx%hxq@|#;afPWSp=y>9;(Y(jn0J-$H-UH#`}~ztVR-nM%(2 z{(Q=|US{r1vT6!>jb0iu&>IRx{ny$pzqO>^oy%AdA#0p&6My0c`9kFyUIM*)E1OKz2-w9R%Ywh ztNGv$S1 z^TqN7JEn5JO@HV0?z~j5M!C2==8fBV{4EW1Otx+`V%Q+ui)1FAt2@=CudV3o>f4ef z7e`&)<@#3@^AaNJU#U-GE_tkJI1}b9KNA*@tEeJdK&{tr*qOj<^?&b->-cL6t>{)=lx=Ay*_DAw4S}|HRo%MRp_CvuBJh6+%-&m)}Rl0 zbEf$Af?o3GFfqOn`uoaj-@KZO*PF{H?Ri8fwKS?@Z>4n2x~P<7-;dB5;Oyc0G^Uhl z1>=_3l4|RU8ceNg>z->a@BH>2?i_yMwCn|e@?_<3euJL8ZyMM1`}U0p|K*~2r$#5g zN6P4y>Aig;#9J42ZU3qP@8;3k7+sq+2giQF5_z!*oIwhcU30iEqJr?|O{~3tvdI&e zN<1R)efekm2MJ!FyWSn_>2krkv4iZ|!}>JP8nC-t@iM#Cr>}W;RQRVsT2PDH0{zc- zFBku**9RW#%#Y|-9qg8~2rSvPM`RdotjleRl_M$uH4ihulEiY`a&@`I!C!2wThVCp z++w!W_a5vBSN`f?YQ{)Va3x&Ci{Q-i-f7;L#=1W*nEd@v+ooWi-t)aap2)w^w&=IN zHxyG*-BSM2dv6H;qNW+UMpcC(h}X7Q&d38Zn+}yzKWWIN+$B7)09=_>ZgBn7j%!>~ zW-FHqT(iK{smcYeBki~bHkDw!rYtA8#y1u0a#lIPwYMe58C*9!kgWguK^I{(>dp_h z#C+Yj06Z#qCbpAQuD}1GKjxXn8M}H{*-$6i)#d9q9=<(h66#WMdEyA{Yi=7&H~qxn zp5pChJ?x_ietTo#E*I8HcD^G}(2nW*hPJh|zKZ!WF?6~p<$>x3vqd3V+}N(gyX{&$ z+S;NLEsh0SRHDV0b}hCx_~t;Yd51f{wF#TY1G|Gw*gQudqg@ldT_@98TV$ifv%wbG zXc5(}#RK}#k27NY4KsFyA;>raHBD`nn4$YWE>`F}0p0z{KwSKd`Xs|M!OeWMZ@*G6 zyxFx|bpI!baJEgKM0PW;b8vl=Z=TEHaxzfzd@bLH#jEB00mqKjzxiZPhb__>MG?t?qQ)m%Gm^oF{}^?gTTVm^_X z2-PkwvlZFUN)*-C&DH-r@^ErSgHi=&hm4OA-Ibt}_Iwe#e)Q4guP&N=4Rx;}dH!E~ zZ|Ornz1g+0m2Xe^%b#)){%DgxD0G)T5wDH5q1y-by~lF+OugmUi9|A4;p=w=V9G>z zG;X_EhY+}|nFr45{EL1H4=D9|))#4A_FYs1T`ur68(pyk24X?dZPto1ZA)fiP2JtP z|BL%VoH8ub)(zKNzDNv7ZJ-5RTi0Fh{$-aCbD=lX)s;{A@#r^X#Y@l9Dy5pLfCGr}E~Ts-hGIF!|s^Cs17XJ$>5jE_99@1j_(;JX3g zvlTfLS>WXs;A{98Tgg{>v51~5@T^7gms~sB4VKj{yi~0IuHIW|1KZ*H*i05E!in(E zY!)~NBNScafzb_=85X|2w9Hk+0=GBY12@aPazpj?9jE;f-jnuBdtk~%%SG*h@J445 z^J(Bd(!>J8n?rE@o-cDg2cWV(`)mA+|5bOo*-`RW-QH$ob$J*s%dVY(D#mN-IyF*F zS+iDJb|yQ%;tX>Z;>Iew)-8pMuAM1I++0`MqLrMl`xukqEDb5qMu!xgtJ_}xSKYsx z|EhZepH29@(#!&b(TAykt>~}11uZr|#Gh)hm9Vp3&dw$XO9cwa6Z%03TTNXze9@9! zb3}G2ifZao8))>lk|VgQu~gYmoq&6rg!r;Ev*VlVzHVYZ6)ODFB1&y*wEXe;N9(o9 z?3%!A8kSOwgL9>G_MyDv^YpFXyZvsto7ju8=dr-+FuJxCVi#V1W=!#C=V?=zQHd znarNf-0z3UH&l0Xp0C@E)h9~vP0(oi*2YvTdtP?Uaj7?bv%vz%&2;9@u0cbZs$gAh zT?>qFwJAiK!|mFHG-tJIQ(HFxyp{x36lXD?uRGDeFpnegH!q??eMHq*zC?e#s)C;^A93QJ+57lHg#|X(H`N_1|Le3z@ceSy??Xdcztv>qbNUtMQbQ*Md*+>TYx?UCo{O11 zA%{FCBtI8l__5L@Bf~zWG-PIw5AA~WN*^9*y4V@th*{eIz3$J8yd<}#lAF?&jC4Sb zr0D0*b?Lr1oap#IFcU|+T1$%(xqDi2w7jvki}lOS#|=%BZp-pF(%iOkSKh`;-@gr# zkCWuKRtyoIJ}sxl))wi-=VQ9BkiCWEFBz$QMZA@_jjc6lS|0GyL$|Tt3q^MAT>a?z z4j!wwLx`o2s-HifveJjx6Vs6d760-pdL#VVtm&qeBJ`s+w zXA5Wfqidh$v-LM>lLjpb zYM~*4;(=WBoGU4~@XDusP|4(hc^6?i#VBNzbpFDjsUm_td5HTlHV- zPT<_|VSOi*zv8laf$q7G9JfHWWF@qHu_CgSC=#W)HR<{l7gBLlzWYMAxIJ=CwLFY7 zKeuK_5X-GuqHn*@2^ScjTzHpXUB2>SC+?qXx($7)6u6?2XWEK>$KaMqlOc}{ zOl`@n*%&k@3tR#0n8aA%a=_*QSzrX<{^sxlgJ}zak*BvBd1lba=0?4!OcX(7?|!{c z<7_CcH+Dz4xA88dE*VX|G2mHE&!e<8Kh5*Xi<>{>F?pt<$XUuR76!6I1jddTSose= zZh+ zEfy-a)E&P_3&4&AxWt%c<2Of|vqUR^)f5%dDAJA3ZG04;Vci{{O+*vk()ok7Z}%s@&Wu_fD;s-1sq+ujNY(e;9wxd~`I1d$^m=G_LUQ3O>QGdHK+sB5Q%dh1xO|o1WiNcS94Fa65i?6&ASR_wr7OX~DtfQaoslfF!0f#Eh+#dL$a(dwE*o zf#3|XQkoy@9TSGPH0W)X+?sr&TR28H!I%{eV@)ug3+F5G7#zW`;&Y8>BH+h=52LnA z!lwxhW*n2RX4CQXiyOV^ocJRiw( z{7c&ndBIrv8XV&ZjyDVL1dUr8y;5ai` z$argK;rUDM@OB=(N} zV_z};jN*e~#_k<>pU_~dJW&E}*QNkCi7H&pyHp&yj<`VMtBb%*`aNNLvn3xaK@CbydR%X z@n}~*k@vRj>B9<8v3oSvov&BhO)J@pcFZ8n;AuQE!;0yTFr`m(-6I!5aN=fX@is{? zZa3EzTriu!phiv_;$XfpJB=rIx1s?BNpiY}%P{l75mMaZh-jhk?xn^nV8^hIrtwaA z{F%l(Mq0XJ2M&BFBiKx%Q+FQYYzxn;R9uzkHQVP|TZ0$z7`clXei1wwf@f~qyGU4k zO?9OWG|hj{Rq{Wh?4d2Q`CpO$DvJEZzV1AcR~kQc=NUn}_xzuBmywVCZrW@CeX(&H zS?9_gyi2%cmP(o==`H>qJT5NZvJ9M^<0_rhbimP%7~6aB)EKK(QGFg0X-SA>>KYPR z-Gfhwv??p_z}rZ9W~80clXncZ!fE@CqEUx#=D0{QD;M=7w=gPt@{bJ5NpNR(*j zOgE+ToGw;ENU7LNY!+zn5VNy1*D+J{JLxddT;pdv{H=Q31~GHmi?&>?J?)b2+S#zF z?)PTABGxVyBza^fUgV*--0nb~oc54>(#uB4r;i(tX7I5H%O7R%xJ!ol|B@6Mo?c)# zlaeMJ^vGM}^tJ0i=9O??ilg|(CRwxG)!c`QdSMG#YOL$UV^S9f=M}GK2A(M-N3&KA zu1wNKVj_VXU-jaNQ~n-s|G%21p@}&EZU6^7nsmFOH&)aUV_t9G5v%gi-f+JoazmuR zX>RHH#_PQ~UiC6sdh-D>muDh)<3@D34B{HFJ$CGWqS`smSC#Dtt)A&_Ue8#cNF!6S8=%-~%g04dwH= zc(|cr+c18wO&q*Xk&?~Vx}8TtkmlfT(9DG(xG9o4dUme63PBN~W$e+wQ zJ&DtctiCNAFA;Gh4p(vwu9{POi?b1Yx>JZDM#o7!vrk-h z&Mmjtv-#5QWlLNSjQ;Yu%n@Hc7kKLs?;0Auy0moo^tjRCae@9Dvw2@{{7XEC8Al)C zF~+JXJkfY}67Qp>Fk9Ggm&;`oP33V$@dG@%BI8PaUyi!;SEfxia*BD382zQOzliq` z8{aX`6!G|h$4)U#KrJ^unNWKPSn0CO8^k9ghj9WP8K$w=AT945V|X!-R}bJF-3TdG z&DzhjNhY|Y6%!>VkNw1YM+j`kFi6*DE338OgqetkI(XGqf+MyNhNqgnXF)0Wf=)3~Y^e>I!EBF`cWbk>7oE1D$WUn=Pt>n>a5ngWg8KHk*>`}+9 zTBBekFHj5akh-tpv3#Ntwu(OxJ$f|L)?*e%hQ+p8JA10Jeigr3{4vs~UB$bKwYf%T zgAd7AG6vSi)Df>WTm3 z>m|F@TDzS=G=pzIw@X&@6p=O4*tVMY5;LwfzF*CksfVs(+J1AE>Zdd94`b6RnCRqH zOdD;4uR*IlYj~_Z>uRQTwi#hNdAxCM4NpN{%xW#H76ITLf9wzm0 zx0m0DsQ>hP#cx z2A)8uJ7Nbo{cB zeOoj7?aNHN)2!YK(DbY}gCph89x%?n1?ekZVcJRK;c}jA95MK4^)#xyrqg|EVB0U; z#nX(;wOlh69OYWvAL|%`Bn?Vw^@0OsOe-+9KM#)!Y~kr5P+)X^k>8*e6*BEv9s zOa3v02V+Vp#;}mW91-pP7opx}Oxn$(#p2H@&b-KnbMeO#qu0x1i=#}7Hlx<`Pnq@t zg`gOei-m<(qXxm%&DI`?x} z&oo8VQl_mniud!LBIS6+{%w3U7l*zwZYV=oI$2D0v_zD`u#|c&r`-jd-)J$2UeXC zFc2iR5|l}Ee`FWeS|ddo!u)z;%8M{jy$|9ghY;pn_dIAa*+2|C)Wp;OpIFCOdEleIoHM!3T@aR%C?NrzPzULZrt9U=2QZ1|&n9IhmDh4gZ4>Eo7j zkFoSiM9q!w@k(_?7)QWOG-v}^g>_$eh->0>nDOKx9&ewX%C(P~vF$S`KLMslH;!)N zF`ZAJ$Id2qU2PeET#O8Zu@hiV%7=EO7|n-xXZ46z8j%)k0yMfoDi>eEd28gfqSqb| z*P^&_XDN^Fa3G4yEyt>hLQlucS;_6qv6f{7n1B{{n$)b*Osh4{eh52iAMp9=F$gFm z5A0~H_<-k%sz~Ge51{=O?lDQH(|tCrQD^?01=4-h3a0glUZGInD_5n70z4ZrZtq)nEb=0)0sv~ zYul=n2&4HhU!RfJP8G|6?*%RE67}*kT8+Cfog){JZnhOtKH`tqnH|2xjAeVE?Zj`5PjVKnQuI)x9AU9w237@VOG%{_OY1Fbhrd?+`){#t(<$mG=ayL+) zH5o?3FFTv#{q`juVpM;^$J*!i;aVA-#o+N3(~s~h9=912pKT7gbx&->_Xw+{6p`Oz zymb_FQw66OZSMYX<7Gib1;@?^DWVe``&AccN;lnK$l0 z5`hIwIYS<(SDQ+^|Dat`&SB%1m_uor(-6>=COSrVe>aAF#_tp}{xV+rj1N(B|DwH7 zx{Pv+9}+vx86O|xQ`IGBnYP*Ja}?Ii{v1m;y$1V$X;Q>!+OQBV#IWBgwtdbY<7(BP zv@~hmsM!D!Pbnm5XN^0*jcwC>ihnu1VgrUq@a>Fshh%M+s%av2UE=y4J=v`30*i;f!1eK086 zYSQR7&V0>p8Ilgyy5W*;>oHRkf;5Ws6a|Vf1C%&e?Wac@%f8|9Nryu*)u3B^qY<$w zid%SDv+=<Srq=^Dr|L@*=P;mh9fv>V#=@ zggN^Yk2UW8mPhiP#-?w1M|H+@>$s;Lo@#+OaLY=~ti+*1nbKNUW<2~IPiP~klUwW5 zKpVKFP4LOft;Q9{zT^2q9J$^YUd7*3tL9OKOvk}v9@i5r;WS8t)2r{u-}am zyqnIQ$nk>2T%-&pDApDjZ~el18I`NKR#A15&*19mHB?J|sA<^Pdznji{x3XMtXMuKIqo&OpRBj!Tcv7Ko<<%-W(h!X_uE$uU_T+sSoGPPUEnYLV> ziK1gsP3CLgThwkHcqY*|g0dMes44z-duy9~$d_#hGl_ zcH`q;`9ViLR@ZRGj8}i-os6noIFs!84JXFYM~shu<4NlABNRvJoEA49>y;dzbh4&) z7-+r7NC+gq^9kbHUn`dV&bM*3{w+EJQyQhF>?VDscckyN&Qfi<_1}lv2s2e#h~s&J zamQvzJ5Y_#7+XnUNoM_-kXInh*`o|X3Z))xF=8fY<{`LE@Sfeq@H2dB+!i#Q9OS1> zk`{NigX0<_9FuEQp5bm$_OtQv8Q#@C1N0(co{x(VD9WVK)GZa1ILOfq+tE6j$*=$S zXky<)u4s;C@*8y2m;1OJjRxGD1ho(?A2T{{eD{~w7VRKvd7})_nSv`iHaOR=B zpe(@qXPgefUM5WfCB(~8WnURK4ljb@LPKhV*8HufIn zGNx@YhjlVrroAvo{DhG>v<2;D$(){r=~U%yiJA%49nvoLgb}!p;70R1xI{^);d?|{ zj`4L3E-cQCG{j&0S>YRFyzm$B!ZF6jcqVCMk#<5h1;4}id_BfYi!+0G=2#>89PcZ9 zR~X~Z@y<#Ax`J!=cKi#0Uk98*%(s}w`F)Ki&*6Z)V4(5EIewd1kY$WKk7vSAW7~P2 zB<2q@K0VL3jSS2AyPT*?@c2t`Ul6B$NYAA?#{OFLlRnM}tHbGU^f;qy9lu9xx!hP? zhw&}WHTL5f;Ty;0QGu2_wfo`<<6<4}9IaUe6mg!TE`y-SxDw-| zm>PxWgTVQe6oqm8S~3;{MFC+fQ|DT6u1~$wg2!d61r|I$PkqFKClspBSn$M+>N*Ra zRH?os{6V2tRx$fd)C8!@nJL`iMhlpB>)X#w87|8h5Ox1z)Q%Wn0*$Ic#MTVlE)pH{6Tdd2>&J2LbYwkW)1OoF_UffivejL}l7* zcxc>q0ettNy)D6^*`n2xpbmjpTMSb>gM16Yu|g#emvEe-js;vm^mw~^7hrN0TSo`8 zksYHz5UJ=Bod}=vG~_WSz0}6Ivk|3mYT&@HPwocuAb`pUEe#Kcuq^^*7F9-?&28b% zNkBnZhnf=r)jkeQ?b)iNn$FZ`K_P>?XKww1DO1J&7HL@8{qqqH%T!4_`YM+`w! ziLf0Z)b=e(Zaa-q1gm&Q+j&{#P^l^brB&reIOqeM*|KHb6j`UqpyOEY{iF|9R63bk*)Xu zyOwnLYB*YHw&F@wNa#;w04OqSMSCo33t>M8>-xVP#Ne}F&HRGUUxStDCkgv4h^5^~ z*dIYGWgcPGLCjY}*k3^`!3I6-^+7B)l(370u@K75Xh!&~H)uo|azt{<1HI{C+8 zM+9H*`5blR+k6A_aJUR9#W!jmryb)b@8Qq6J=8b#%wO<&TJQ|VjPU=2d(;rb2ngg` zqi_-Vq9+XaHsX7Ud6F&oWjFIAp@E+mcctTBS>f9}^FjELIA3L+t`=N2%u{H=+Y9`j ze_6kTFSPN%$J> zIRctA;ta)8Wx-wb3fiAKicMaJa08-#1{LB{0yj|KaqJhV<^tHLzT zyB16tllyrz4|Pz^Hr$Jh$rBA+TC_jbiUkkgQa8C02MVd1ga_F?mxCvPW+O}S?6%;+ zZqFgWMMNJO zi+dLyF^D4}9lh?5m{xxbiEZ=K5KKfQSV;E}EEIP&+N=XX9qJvXX2?i>6QR8rLOf%4 z65Lzy^b598`)HOS{7miZ_6$Kq1~FxMy>7L?XN1K#fO$q)@Ia+?{i=gB=E+3`g+X-) ztg!_H=tfBA(0||&L1D$c2+&jbIFr3TXS8QBKvLNW|C$+u{Z5SKMyn!T^USf}1h?mA z3-09gs4CYvNq7s^$;+Z0)3G;i$5ttoAUg30=?<4j^(X-4)OTeby9IYs zJakbY>1l9@Mj+Gh(c-;ct%D~ySf@oZPd^KeQ9S+;780v@CRuQtn}rTUYU9p9k%5nL znRl`>Ksplz6lEau&|bHUss?Ft%%ucp#d>~&5V?qlWP2_EK2P+aqdjqWl6K0lT;?Vt zY`{nH_j7MX#gBlszTPygm!}-yM<8jvS?j{rGQF}tYNqvxV(#N$_!NjM&Fgigdfo&` zLBR!!>;p`>j;kB2fd5!HcpXEOP&`y6)D4O|2E`=cwj|8It&1EN1ydUqFKxp#7F(jm zLI;B}f@U^!6t$a#;vcBvJ+LEoZOfRtF%M;lG(4WBcqm7daCfZBI@rm^HsZvgaO&61 zNXpk>!LG%ebnCaZ3Q6cPcUT48&!_*xXyuCnu$%0?op}u9oI|7amEf`sw<0}h6*5>%d zLMUrge7};GT<2i64tIA@8}w7-_vF$Vmk5 zxyY&##yuBVPr|t8BCARm_grsJnL- z-7Ti8_?JG}Vj^6}fL|p|Ku2DIdoD7TgmKTMfKU1p?zxaDnDDifk2+F-(#4EG+6IH) zsFJlLZyr-GvtVRxj*&pl5+|}Y%;L@JB&!zpTvuB#?zwKTVBB-vV!`l#$DKg>k@=9d z!B6k-s}F!OiYWImbbeRcY~!Mw*P8oQ~=L0qt{Ob1~eWBKoOcSQf=S*Dn@~ zdoI#Vu0-5(k!}*kJy#syduTRr&-H-?LY`Euo5OupiQ4;K$60LRx_!dYC?z!>+|3)zGxgN1#+;cqv zxRL0%=h_~M`6mxi=%VX=09T{dmTLBC^SOEeWv>1xxobE|;Tlg2Ox|zYPvjBWZFu0G zi|#r$08}E))=Idm2q?G{QIm`@s(tKq&t)k|_gp9aU?DB(qKh<}175o5+76f$ql>Q2 zXe(i)fHpezx=C2H*^L_EIz`>M{zA!JEhur%rGslZxa>Xbbk8*xAUQPMbKPRWxaZ2J z^(QM*H1#&C0vBELEf^PF_gXOSxgN4$+;c6pU}T3j8{+37c#b30P8VETgHGh|F}2)+ zaly66f^osMpJ2MfbKr*SU8@4wq3uctn@usNOK|c#x>A8M*C3SKHG!&_?VsR!9H7?G z?$%;jmju3NXk98A=6exXXowmTN85{Na~Z;)eW-nyJp-Ew#@_`2)8328UFLFvdn@W^ z!AABz8jKXQQD3+EHR!)WhCRz`cia1`KUjPNnEI0i4^&zsh#iTedKwiJiS0-nZ9M?I z2ZFt`9Gjop<6Q=D=6V4ocU7PiEQHck0vB(zU<|Xx zg5xz+fL-z=xK-7HJ9$;jf;&g4E)({%5MQj?(W*dFY5M>jUI&86L_Eq+rv~c;Omwvc zBdN5}3FIl_D@Ab8TkS7awAo**RN8{hD$NQyOdzMU(P>uk)AnCv&k|3{NIsvorKgzO zWhN2)Osw4}mP+A=2!GlXE@4V4ZTErt25GSb;q*}%uIZE_9%F4O0CGy(1`uBYpVl4T zlB#YFj>NBZW$Ft-MC+!gTPzq!rR_5``U?a{yxr^QpuQ8Vb3`-sGYgJU)E_K3R#VSd zFmg)K1*4-Oac87z!@6!^?+EMslZh$KgeB2s6AO3K!$v2N^Puu< z?KB<^g$+j3vax?*msGe7U$ME_5R|(Sm!{z<{3tTfp4(K_7MSSgnr#43B^$+GF`%DR zQ~1~RC&0Fy*uG(Q9q@jFzg6tzfR7RUoo0X2qJQtU@3-hbcID0~f z!l$}Uq6&c*C2lJ54Ws7rq6~3$LFsh$Lg{i{hSKetfHKr|J<2fGZ74mi`%!vb&-n2O zcfEiz!nGG=r0W>UDA(^OJ0L&C&ghCm8RN=C8SBbH8RwdYGTwDF%8su4P$syZK-tN) z24!d0D=53T-bU$jeU38G^#{r%mn|CmkSiW#imMOGR99{^;$K(SjX=7&{)IBl^(e~j zu9YZzxSmJZ)Ac&abl1BmGhCme?B)6yWpCGcl$kCKCh6l!Ak(@sQTB6))m7?brHg$i7&g+>r83p6B-%#; z_tTdoN)oeQ3q-=niv4B_PSKcsK9J9;6~cd%l4idfcq}#Q&g@SErhHIIS1^JecHOG$ zi2%P2NEp&51$&5F$*^y>Dtj^e77Ow!Gq&YGPk21TG@Mtt@MkD_=YBeDXt#V~6+0{6+ zm4wHett5N}TG?RGpQzEa(P(sKTcgSC8ck`}Xevgf9K-D5pF74SwFDm^@Dpu!Ec{PV zlmSq+1|)T`R)q(m2z?Q1V|3lG@Gj`l&8|lI9k$~6c$QV+Rhkp@O$LxGh~@$T_N15j zY@>ih;v0P4L&1?%T?>Z!#DHje0dOh7h^8T6A=u9mPHp!A`W>~ri+wpU@Q#jGfilNF zB09c6DVVki4-N4OO%+A>@OX`w1tR%5C%VQzYQttw*Gm*!Z>T8%za|E3MMD9HVMv^| zqMt$R4T7z^;`ZB8)$V{xL9<~i>S@8)iZU#iwxT$+owG83P5Gspq~-YJTs?v`*N{0ygU9mh(vV~ zz#oYLN$+!jlQ9sU>{WLFzJ}nG1od4%5ZPtdH1z|(PfQQ;YmBD9gOHH+hD`5$0h#Hv`K(C{^2F?b2co`U;u zU#m&%iA=2m^EVvp&z|I!L-$~@*^`l&{enh6lMOcXFdu zTwAO7HXZC8+cipnX9#4k?0K}}B2KmKw8JIJfaQUzW-C$ZP&EVKM6zA~uH#kP1Q#;BTT$Hy zv%p11)pmsZa~QBfP*p5pHAcOc+M|D_VhtBq!mx%HS}@kISPFz*5#XW|b~OmLJpyc9 zC-~S%pmNiBjSx#1>+39u* z#?k5D77XVTn}N`2pNlR?Zpi`Df$an}1bafrqph(g1bad`$bIPh;}C2Lu6KcvsYI%3 zn~8MBw5&7E`5h{l^9)MvyoeHCv|1sS&$8nUThWK}P*I%TLBi$eFiaGubtY`!4iifm zLD-O8z?es)hwT80ft}enWZw4fs6|{KgIXKQgAxiK4U(Jv8)Y62G|%8kuX9qz!UFiL z9U$Y^fZT>%aX)$Cf3>e8P3@&609*r-+MBh?R`FfW?Vx{7bbL2pe*wVtASh`L zuac@I10)?37_|rBcL=7P>SF*?eSRpE;~I(zhi0z==_P<_yu+(@(C!7;0cKO9@zZ4s zj#0E#796W-&s#9gx30xN6vh299-6~W({l!(ZFq2|a-8l&(45IAxpN3g;q*_#15-60 z4}3jAZ#2`Z$9&cT5bUQpo$NUr*h_O{Km9dOI+cEz1njR-kcLyKLUU$UIn6Urae^wt zIn7S^ZxGlQ0?|nOf#?^m#E5Xbq8Fw=-NF3mY9)2`x$Fu(*~ty&*%_HyI6vbDCn(9WQp1 zJ^8FJNUdCJfL>{?T(VY}@E5yBQLEfMoZMj~=N*JiAls42{z2HJAZEXxu*rlm9Ma4` zKC6bLPYw- zN#|&0dfTSpyun6N!52&gUqZ8s_(%n*;Z}183}%Vrd*fE=^v-XQfetdDc{r z2LLsvqBvbDJCAgQ?Nj8u+&Mi2J_0mp7mehu;8ghbwZ}TY-yTai(jJTdvOO0217QoS z>HU$gMZ3{q`w1OJIxcLpX{Kq8g_cp>E!1owr`P~vY0i{Z6gI)wjfcD8tGvl1Mz@BV zCWopAhnmuX+UO(!OU@V9ieaR&a^NKxIE_1sf~$SwNE1_}#+xqH_*UxbnKq5d3$U`D zu{2hsiqA-mTisxVIX$?hGXMCj0uuA8rLj+H{Ay6+1gYbzq;ac`JN|61<7cYCE$WJWpC{ru9Qt|cj7Tq@-YON#06-|)La z5ZT*L>dVybWLrCPp`2`OCwu=jXcGEO#}NF6hR@nf&H75iVWOfs(M0v7$U`wXSz^IS zba!u$X}$fetgx5TpRfTz>#@Ov4J3?3&~HWPpZegl-lx8L$i+l`WfN16pmeh@3p4w& zFs--bB&}Mz%IM%XQM0dJvM)Pb;4VYBvSqm*p{RwQQ$Yp$Zy-;FPxHx+1U^nX2R-N( zmXBvzB*-+c{0c=IV8IhKZ3JM-N%%y!M*d3P$|r?txfair9b*yN!O;R~e2je}7}8N` z%XW21HeT)_Qv5FfRq+O}+C_U3AgQP#11YxPL`7R|!AY97(SnoR+H)3+??>zhA^J23 z{2IJ$KTV@0E>)h6-)jJtYF?$Zsd=@^Y#fu5BD$LF_|q zx+vrDP!#PCP#kqARuMivBv!fHc_+Xq^sS6#PCeC_oh~|h?gPzcSMJ6`6`_9PDG>d~ zf$=3FxVv#~21vOW?rxmB0aK1ecQ=j)0lZ4Bx`*I^?tBqo6}nTqGUv+{+)Z)5V!?Dk z-;OqisZB?;iE&n1b+OEOz=Goxr~iR~!I_(XjD% z1Rs$PL|%Z|I^bf|x&SKyRgA|spO>o(0Ok=VzLH-F_)&s$kq*+WnByT7_$uchcH>F_K_&w|s2(>1<^^4YgpBI1~B7vMc$P=;&Us3~{73yS+F ziu1tLW)Yg8o)=*Ufb@ky)H=b!zO#^ep@jLXEbM~N!cJPqMd1!RZ6OW98}^5VG>WLO zfQ2;S(%3`4Jg|*KaSUW7TYC==hvJ$9iu*bgaoy1IJRa&*Z{lG#AX1Z?ISbReVgHcW zEnEo;wW@B#Z)zhgB%kB*PMV6O54ODoiTzQD-#Vn?;lP`-SVdFu;j=CS!IsE*Yj(qD zO(9ZGPQM}G-ZK0;@>6{HtlNl;Bb;}THV{AV$A`~)kZ21ykD%WHQf%h4RuO45{&An; zs7(?a0y)6E`NoXiVnD)6AiCKJlwbH5Yrs?fK}FHcc(FGQURU%4e7Pf6WNZD?@Ja>h zvEsFbfN9GUBZaoUJ7dMvWK^s+2<+F`0OKD9vg=^D2aGs`?EuKR&p8Gtb516r^E#Bm zc?(Kp_E~sn+;UJytb(v$b7@$3mCKpLR%uZSl^J@k%NYj=A{u1*bvSPJg z0goYgNVZlFn0_`RhK|-^A?66t@gA661rUQufuFpHo^A7x&a{`&hisoAw1a^CGpJE7 zMN`245W&4wEy9BFDu8_oh3T`+@!582vOj zwvv|HJ`n8d`JEbgkWhGOy6yh;g}{-RxxY*Yx@i=|P?~mvu&wLh4dFxHX4)h8fUNyM z&X7vcxf^zW4MS>33`?PRqSDf4!c3Cwpp zHM!j$B8}GhF2d%MdqZ5p{e;~?>k(M|BEs$rVzJK1W0mkIL|6B1f;FqrdMgJ=|=o2CU@Oa<8d z_AkgGS_3%sFK6aUX-%s!$fkoFm$q+5HeKTDOSu(kr*Ftk@-K{hurCbFXN@N{ehJR7 zA4Zf@{0mJnOq#Hpl>a3--dH)|r>Rq@5G95FNkV}|?jz2#q&}%f5#Iin%bW`5CscQi z%*~?c*X;DObUteqb={qFl7QqNYrs#7pgX6|qpdOals+1M9h$7g2Xu3g8C;HXK4>dU zx;e^TQXYDWpdZUqZ+zBW)YBkqMQGoWI)lhFFhmChKKmewe9Rv~i({KyAWNvtG)_u` zOO;&HBv;rTEHhe3d{zlDU1(h&nbLR{g6kt)nyVpbt~6eD(5vbV+#wWKO5Q0-+nslgX(g>P1ieP-!yVPtvC%29KaWe z2j`#vhpX#=bE5eEGrP0d&1LVBz2tH^IF0}Z9R27A9B}jlK@e#op^1VDDgqW-upuBK zAQJx~Ret_Z_$f9(1qD<@0l_ZVuwcdBEC27C-N_~7^Vv7=`{unjZ_3VYW?NsSGZ=q= zCPLvKIK$tcpOD`ad3u!|sM8{KZG~2M)M;SvKMOUoEC&Bs(ysBJCG8sjS=iIqbhZYb za4ShmI=|@*ItUdRij;mdBDDFbZ!7Sm{{KP7yZLTIg3AsYDKWJtkW7Oj?&{RXIQV45 zbpZPz)c080QKU;KbG)JV$E6kDTM%emdoOiCC;VOe1c>FF2Ib6uE_g0tIloAu*$OBp z2CC&W0o8N5fQp>X z!cov9&-qwt{7xD0uma>_uBoL->5oME75&Sjvg0AH`1>j7ELB2dnJcOenDywmCOLILDJmV@BRsL26-)mHM3%(7Z0E*ADpmsV7vL91dR%+4Yr{oi>xY<63WcwVR z?K2HspDtt}sw#C8Py9koXLEinMjS_=Oa?kzI%P&B!aanJ<`uqYlSnZgoeR-LFyd9d z5lBoC84ZbXF~~NAZ8a$oKBcq-OvR2ID* zd^O2&CEs`i%0nP9%L+nf!)OdFcKReOA4KZ{yn=iaCz!@@F#RClJ$&V)Zy8@hayeLk z{Q}!x61^BK72&VTqLURL7tu=R`4s9>Vb71xsysgqkNpBi7gn z?gI#UC*M15P=EXv`2@!doqdP{pWuHX%Vurb;vQ&p#9*ZI2MvwhxI-`ccr;VL;TxpytMUIR>9^tJhU;-0(T9`UHiS`# zePJfDCZ*PQ*P=z!NZ3V|jIrSUP)jx~^$N0Eyh<(y@>SBM@;H!S+M`17=u~09lOBhW z3RYe+JyJzaoigeTKvk z<|B|e?J)Q>+tLt`shQ6~)D)~1u!@mb+)rWn-vBW`1Q|qmSbs%gSZqCZKb>8iLnC$t zL^eAJx(M4R*yvXc8x5xjOz#NNy*A;#}ZP+%Mn8C?_@&+*rFIeeLGKH0@(}1;qHC&4RMKgvfQ!IQX zjo}Jm<;xhQ02aQCF$!Se%NVZ!7QT#03Si;On4$nJeEECh^;q>z2IJOWZB_ z>(OMm?@N0^BDz}$H(-LuA5Yvw;uf6y$-d32y-sF%nHzeg$;1KdU`RboC8Qy9}B@y!F-0<7anjFA4fW~~C) z38DV4hPw+CIHL(`T?dpev(Qr3CS>g4FL{aNTS6gngG(Cr&x9NgS$`192TD?=_?KYV%ap@aix5I{c|Tkt zA)S_PK{;qDtz}k0<({=$P-_pl1-0>zTTWXK$#RlfJAzE7SMHob5xl#23kkZ8c1N8( zg8?FV9tyNsAJBKPU4)H(i_$yT9grA8Be{MzDDLE}#OvlB#l{osAm9N`nH)2w{jbCX zeYgm1(W*5Mx^RW?5ej)o-p$4x+J~7KhEu6$N#qs6O42B^kX>ZmBwYxT zg)|`>W)h(vPwXMBa#;qOQlA`^FGNei5kj~}hH->cI;S0lx{y|9azqW-EfZNi(ul6N z^dr=TG_96!wGtb|Y*1=NUoATNIQbnUi?(I;26@%9Mv>hhuLL1|N<_wEDeqj$%dEyH z&i@I&XMR@s=0O>sDCv`O9(aGEuwV|Gz3eQ zS~ooGs`&0A&`j}FxJ~j#(&ucqPGfa!68nqbiy*Vvv!J!QU{w|={Z7KW)&mUZwREQw z7(EWk_12)cuB9Wvb*(|j5Iw+~!bk5lT!t4F^2E8MgD=U#2RCt)+$C`ZAW(3(M9*M0 zCurT=nUq_*nc@g#7QX~UuZRg!UL(q5etK78H8!mLLr34rpQASq!2??kEq$x2MQ=}x zO0D^%_3&9*4?l*g;{b#(-#MBjXSY*Q$k9T_$S2F%y+-Nh4G*Sz4Q5ucr_bV0e=~^>cpM|p4ISt_UA}ELoF%pT7 zi`htUpZ*3C3ZpCXbLebg9(?mIflA)OrancFGTxHe)P>Z6yp_Nk18}90_|}#TO!94P zI|})to|I7$3fR1zO)Via+cTSLF8L0^E>%2krnJiddZ8*DH&f=|S`yorI&T2>BMv!l z8i@0H_UkBI+SX_Gn~HBBY6>s4Y-&BJ)6llxReYn6{fXimN9=DDUlz0fQatXB%sCh3 zUykyO27$N{wadXK$(d2e>`DO17YVz&;%ixUPsJD8b|1yp3E9<(FNxUaC_WyuFH}74 zjTEZ@goP_BsPAzUuCqukB>XVsxUPnMHu<0Kczgv6{bEpYPvZtaVhTa;G^IC_^2A68 z=&uAO#o}Nk@h2#7+(f#}>gitT(&!X3^-Ys|KMewKX;LpA82FO-G zOWQ#t@y79b&3FudBJaLHBFaaqwsr9f7C;bP8Cr(f}(=s|` z+Jy)>-6_+^D^O%3g`!Ys8=)(_Fq8K41aDHk@-m^DJtU42x<%F@U371zKb#ft#6RS4TiT)9tlKdY3`KZ|AM?C!TIHDLW`}FF>GDvm51ZcTv1V zBJ!OyOYxLrH+aBNrMM}{>Fg9g<0=T36p-s%$<+bRHQuGhrSAjMx4vRGZ%Jkcz9r}S zie0=r!55ojx}up~N1%nJ*^zng`vvry9 zXZD{=_&s|t6P{)dXTszc?D0(eDSI*#o@CEt!uQy71Yh^UdWRj%gm17TneZ5UBNHBG z?`Fb->?FaY^7TABm6^SleN_YTzP#@;QN_=hsNEl#sQh0-Z^#I7JFbqyR2r38nW!`u zD9PXPRO2Daq|iWCu|lWTb@gm>ZLNmvirbqRguA*(*2&pjj> z68eG=^Do87#{VU{#raMe-u311#(@2u$9HWz^IP6}QMlu{Iefxgydr1Fi^FW+Gb-S>?u(gHRzM2bw~-n-2wcpg>v9 zTmz^2m>79t6Lsw@EZk%Ep*JMPdyv{Jei^zCu=rroRk#lr7baq(Df@cBfijBCn>PC?t2}XjC!q%nguISmj%exD|EaFlg`zvAqk!j!m#g&s!&99agHGCDv0pD zaOZpQRGz@oTfsRHegJ{M`@BTkM$T(0vmJBZRD65kyrcLImh*1v=y0u8!+dgI9CFugnWtak9|Xw!6DZF=3smzj z0@eNNK!yKNP>esREN1!-05bo(pmG2Aprw9+zu5KswL$Cq+kiIk5A1Jj6DapD2gTx?bZeCQ*UGFNGV5i^@_z!V`+ox!et%EI;E#j){GCBf|1eO? ze;KHs1?Ul+TPd?DXEx;uV<^2_#2yQ>l>~GHqKO+2mjgTtp-DF&-l+iHfVf%#y8rMV z1?c|6bqdh^hnp0j`w#C|K;D1Y1%5;H!3O$hA5SKpL@tlxEqsE|3mO)$BKzf%26p?@n-ZTB-LU=;p=Fk zL1;Izi50#F{tjGs6q`k1o8EZC2l4mE3;Td4_hL(F;S}(-h<~tA;Y{!pg-C8ID@-b- zhng2IQA*oe7Ono;q7R*P8|IF)(-4gEw(btXQ-x{0Oz6U0am1!mkwHK@|R? z_)b>gzlyK4@qsf>zgMU*NAZ0lg%QQ~#}mKwBCeu;Kms)Xbw!r1TOjOXY#gz8PvH=x zrWT}TGDt7j1YCgP*o+*pJlIL$7YVO1`V$@oa$8?an_HsSA{nnQksV@~5G{2(giaLn zWg^`!`to*#Poj+q&@TGQ_JwbNPc|g5s-o~+fJVfxt}HyQ_`9nLIh;%RJ-rJfiodtI zu$ki54J_=c_zgqS4Xke(R(JvAR1bagsKUz?fBzWV*n-IHD2Pa+D02eOjhPqlysuC{ zIb~mnJGH-20GI9ZepCRL?eczA0GI9Z{!##!?eZABNe6V7llm}K=-y)Ji52D;=6|m&sBWSNV?ngKC!}aNkeusoikCT6WdFyJd8ve`?ZuUv@ttRSUdTtJbov&d_uZK{DZU4*p1 zHG{sML>Ja@{Ss@03Y>9psjf^RTs||Jryd@M>9Q7NxB{As1TV`WLtOlGe>~A0QoZ;Z zKpxoA24BdLlkQ-WmRy4%=}w#C9R%x=5}mZ}B^38iX3`5Y zu7Nh*nm7)LX_q?Xb){NqPRCK{dZQ07d!hfC_(W(Ddor1^zyO%zptW z_fG@W{0l&J|7uX--v(;!&)e}nF2?& zNNyViUeRK?od(*T@1t6AZjaQn6EUjup@9=h1Bod@^tG=I*m&Z62zXuheBtB};;;0% z=XIwD#U}x=FntniA~vjJk$#Mmm=5{UBt|AUTg26y$_1n}mz2sfoR%fCyf%?uLq8*e zYJ4#a|MAHHR}|q=NSEbV`mJ4kikNJ0mP7g#8Tu7j`kh>T3TC+s=*1)%RAm@cWf}Bv z4Ja7;>M(BfBmL?O{pu|J{;vML*Wok3*m&X$=?}@!ACjeiUeYx{Gsz!M6yQ1?AC+M+ zD$C#ksUO)^j%RDI@kA@qpTJ2;o~?aDy)(hp8rB-i^4NHyHAyeyg*mR4PikETt)x7k z`axzlK`!;3|2$}2PP-qAkU4HAgNp>|Oi#PWlP;!HL9ns%$!7ZBrbNC%iB7r5D3+)l zyyI_yJ2GZaye#rY`FU8*kr7@&?&qE5eqNUQd0Fn~Wx1c1cAwgKF>bb;Pwp0{-9=@z zi#>OtMikLv&z;>O6XnR*mw3+oGWI2&b9V?Xbz_(P1%l_6sI1le1gcA2KrK@X0JCu{Je4bERz!=zOPy;fqm7l$b={(E!E*~bv#X+=6hF6jv^)4P$>&!`zZ>lF z3kF7ih5UHZkBl3KL<7h$(FWq?^P(HU)8s1_4r9T7DD_!HC59C?7cHZM!G2A7u8ek5{M}X2^A&$j@8~6pzqdL%4}4M@tQ#1; zLuG6jl5R+x3P-m>P7Q}s;piU4)2Z-rL>V{*G9LYbGhv&~gme1>$O9nGgme2VfHUFT za}~guaPCkAk~kI49jOpbg>%O!K&QgN-l)%Kkm%zJaVi|00aixSrluS9_98k*$vaum zTNGbuN0%zTdnmd=@jWBy;h>M`6N^5gG6ob!pHlpwc=S2N4=s(ps`%k$(G!Ztsc;ad z!t5^ywDx&lBGw?C2|I&RZ(gR=YxFDHOI#GJkMTJIdlOED2T;O;e?sY3utuw#_<5<~ z%e6YmO3X7hn*nL9Ey2`z(^jqYY$^=1ESL};FWeYKp_gzNAs?B+YyWnA#fq@WDcJ?Lgi}4R}@F%Sdn|5IvN%28#LsGp4t+27)C`9j6u}6yH`@6BXaV zvMyD8XWP0~@m)h!a-~A~MerQYEQbz2gNHr@)k436ijV^pE7X)m zAIsYX5ngRX*Z1YvG?||+GW+Nv^PR&X+~OpWj2BBR8gOfLh?Zh}!i>@L4Pu$F)Swc} z+gUWG_F{mEmF=zf!2d)1stW59@c$COy3+bt@po5QemIx%dwN^NiodtoYODBl1Fb%a z-!Q})37-02Y#L@w7@l;SPHY}!%|Het?EpeZ2fbP?^CjrQ@gIUg= ztN>;?d#VDMNZ=yzHeI9xe3M_O4l!rb7 z)j~gm>Y*Gc;)MbDjJ7)r1YgOKOQhOTY!fQoRx z&}>3&X`}#I^9gkz#0s&=A5XkS{<@y!udDPo3=VH3qpr%~t%RzS!#fG}@Q_$bsOQ=4 zKPLAB)9!u4R$q;C`R_=2J||_Wt1c^XzFXCr&}{NJiqlc6Mr+jBS|y~F;B-7AEiQc} z&em#8S`)oEaIG~@s!f#jMB8kZ+3&io=zCBi@|f9Dy-0d#MpY!11^M>F@@Z6xSL8iR zb>qH+upS8wvrgVjB=|CgY?}G-sdr@)!w~UDkYTegKrfn%?_wdPUpXu_Jf&w*r}IR^ z3#elJ3gmD+Js~=!hRo0k&Mzmi`x-kjRPv<34Bu?fb0E;#o86G$6?v<0uA#G6WRb%m zve{D5zft5mr1Yc5jYwE88 z9q%6ox`F#ILvm7GkrONZ^MRRvIcUhg88q(S30kEVdFuENN`==zx&J*-&Hn{xdKIY5 z|Fcxc8$$|Zpqjr2sGjtXMuOEqP{Y3n)aPFhYWlZ>TK)r|erC|~34vQc^06*vcBG}A z=34HX$i!aFOuSMj_d5kzVX5aQ1k;rRK|8GV zSPHbqQje`b2QAL>=mibI5Xfing{7b4NU-#C@>1M1cNvYL5~y?UlHQvWi2oda>gbZ* z2}1SWqyO$<`uzN;BnVG*A%j9ra#}x-HicxvLi9m;^2`&1NXc9Kks4)LUYkg-q4D@s z{o~lMphWuK(vQ?H&(d!#^^+m`wmli~#6mLg)_$ZxMV3J)w}1)+LqXvt1Jd`Fex!a? zmVOUc|7JAFJF;2!kiNI{BlW94r*AE$+oiv2Ky64yJn=Recxyk>U`SR0=ehb-m*9zV zY&`J;>3d5*Qh!vI{spf7s`0p`9~&MY9gFeL$GdAq(qMd+!31d#K{v=BPt+TW0xspG zL<<$>$JCvdo~_l5q%-*p%mbw5lUg%L3&{9P=H7x#>gwdb1ZVZ90x}A^jHGkYE~3)K z9M46>oJhHJ?(zyNmNmP}b6BeZMK2MekI3j# zUI&GP6I0IhScF+m4%eR*{Q9im*L(i*r9Xun*=`#s5_q?z_f2Pq`#5>ulJ;IAqur7b zE!uBOR=5g9r27ZFmdcmi@_?u5$ZmPSYbm$rt!EegJQcn3tfF^j6ph?!`Zf`o(QPR} ziQJ-hWfi?EtLR->ML#8r4(4&(agIF*@031`Arkxzq&b2RKNSoUPe@KzX4Adu*HF<(ci!`4gA68QGJ}pzg!-5z>g!H zBkiKc#(VtHis;*rH^itFuU1A+gFm16*Skh<2Y(UqZ+45`2z~r%1$etE$`Gh5;CSz7 zK=JQZN27{=e_*tp;y)b1g0Ca|t%yqWFNlj)(H>xFUKg!dbfDtfiRcK$ceJ7t72ny8 zPWSjEz5*A$L1k1$qPHs^i&JYA-?x|i zt^|1o)zh~WK8S=?rKtJiSlysiDQf;(h+ig>>87G(DQc>6G!HFHnJ}y(9?MdB;Cm2{ zWvRM~$FfvA#ba5jpW?ABHCFLhmAXptSe3dFJhd{dN-YI%(D$urS!$gG;AvT^AwmnZ z25EzE(#ujY0J1e{S*o@Iv@8`@fR?376`)nACJNB1R7(Zqs?>7$e{meo1?a+>h}1?K}_gh7f` zs*#lNAbk$*Yp_P!oH`TXinAFwchp(100z7nL^hiUIvQuAvyjs7B%NJuObwZ@HAp@T z8QyU591_aq#fCnGmapjKRSW>Zg}fO^{PRJ2Tm+2*e5E}u|T z>V7aELZEfGk0CKN<55U*p8;tHbG=B*E7S9|;5W$ZL~oAQaiSFTBa5zl>bNu<3@MPW zS;3eBVa*PfC=k&?!TJgmXpvwe1)^Fk*i3;!tvFZ?Foaykv^WcO1LyA#!XVbFlJ-v& zB%a`cNY+H!bd^P@Ci^Wd}kKU^0yH{2RDFWd_> z7#e@Z4vh4?@`Ne6tq>i475Dl2DEj!60}XYFKFBF5YTqv z3qjk5F9Gcko(bA9JRh_oyd1PscoS&n@Z+Fe!UrZ}{8fhE0q7e32((-HJJ9Z7`Y*PZ zg>$AbwvUBlNcOXEBP7qUa2q7gvv6-DFR<_kBnMb{3X&IDcqWpAEPMl!msofil9yR{ z6OuzL`~;H2EPMdT5f*+8$tx_Jd=Kd{7CwdKRdmiyXTU z&k~QJ)6$$vA!xzr6-&PVNS=1Z=m{vafkGipA|E1g%kc)}ELPDHZ^Xlf^HUO6@N*$2 z>zsD9@A8Vvf$5z>&&ljwuz?Sa_Ho`-y1oY1yRbpbA4;viQHx&QlXR=ou6)u{HF;vO z$`&}|#>NxFNo&kmT4P)-3W@$#^Teg3b>&%FS9(zyhg0#Jut+h7lxCf!G|P2`mjYQG zWDS>*)*OC;S3@_fIa13{yJQ#SWA%4ECEQQD`gUTw`Nx3W1y)PF_i^^5YwG3#xy+NkAnmI3z_<(xiNiB;C8TsA=1~f zzypfkAOa67{yr=4nBwoZ13MM}Kq&Au_z7gYEyC~*9oz;;v?}XPB)E5n-qH9qSg}9v z2C!T_6MPSl1wRGFvcW4zun@fpd9o$&?jh2PAY83mh@#R4f`5W+8{(xp`Ga|C+AVnd>JG~3>y~Ep2#x?`!D*m8cr&OLTnnl*?R_L+4dPNmKNy1B z5`Zru^c@ImzaTBA%m#-3JTi^;0RAeFxi~T7#gWU9M0hm7klsRycnqsE_`yjECME(s z03M-?A}cT&Jk^lbvI7@`-%aw`AuN-CDTlyl=*1fk3P60o7?cNNpjxmL6t8rm@cM!E z9W^Kp*FbL>Tn-rvZU*JST~l$IqXmzVMesDJ2%6L2-qSW32Wtc3&8DC{cs{5Wyb@Fo zE(I0A2SAPB0Z?D?Gf*>l2Gk1H#aVzqSOJ<7><=0UP6oAu*Ma6L=beJL0^)7s>yhx_ zPEalQDk$ELDEr=Q6#N>H1%H$Ze@g}9N~!QN_DJE|UQhtY3TlBS3+jW;FK7)qub>C$ z+=8K?a|$Mc&Mue+>V1OF0c!|9`Iw&suXQ#)0w4Vb>`{P* z1O%RnhQY+e665kMUR;kPOY_SY&Lj5WXI##aaW=Ah+=DRxQ>=<>lZ` zw^)_R3-FK@8*o)e&y9^2(Z`0U%v`L%#zrf{JYKBD#sR%V#Rqv@i(Q)9x=3r9JcbCZ z_j5zm+krh`WkAPSV4vboh`<5GziR~!DgHe?b2|^t)NHm0yblFfU&7ZXfuEG#DHixm z@t=vn--`d-3ea+LYS?0}^*J|?;ZM1i^7+GMVg|BxQvsXWLBiY#43}8iI`{t|yzTGK;w?+hn?D zvV927Zl%c@GPy3(&XP?Rz(}2|Gl)?Nj3{IZ5CwP+~5^MQIQ!>94C`SnI?;} zO%{75R6-S+8m|r`ljW{S(j6Advu##*Hq@2B%SH=a4V$|&i@7`77y0urBjS;t|d?oh~MkfYA+JmSjBW$;4Q1!}Fr zWNz@c;Fely5ka5IEu~{DH#r?<>mGoUeAkJ!GWEmlTCIX-DA?n??t!LgdNd{CX+9(s zU#3Ny$;!V+b%(H22J=4c>_B2A6>{<@Y7WG9q$VuW3fmtiU&Zt~dsXu~oT`qf+^Uzz z+kERbMF^satYgK3)c;`W?tO8$s+S@A_spu6s>--kZJ1rvMk?2>YGb#m55mE(t`kcJ z+k{u-Q%B)fatuSF1Y-?r+!XSU+?FNN>}ay7slj*P1o}(-k;mb|8w>i119+FVl*qxL zuXuqyLv0Yzmcwl=JkHGCB3z)+pn{`HI-3MsL)qGjF00*KI>kx%Z3E4lJR`>`w~0m# zirmnSYcL=1LDE;*pLxCNqU2|4YDf53!39itn#13pA_vTPG{5@-uW`rO%y4R zE$hE&D{RnNmK+fO+3q6o2RXc-VrC@^P{=dbcp`5ml|NS19t+{p<5;yPSo*ax{|Snt z1e^R}SDy*-#b=vcoNaco_U&0_)nqm`%dC!+csrh3+*GYG{%W8V%x6;nF2^Bj5}D1+ zGLr&jMdzBx_d3L+GfY700ak3+$K@qCGh9nv#>#$1V@2JHdQBISF2;KEL{NGdOAe?Z zlNV4UTui6Hv`dU7G>s4|iDPg*BL~>+-?aP2kCP%|<+Qraj#Z{=yN?D@~ROVp0AD~9^^qUX%Y9wTh22+h_&y`ge z;s!1I5QHZlB?otC{8db|v{Se)?odIyKJFMNqedW1#J83fRW7LAI_zft~ ze#aB#r1X?ha`%v@yk>UioTt2f&h5B8w9nz|-{)Zt9ep*hCk>Hh_2}t}?K;E8# z6a8Ov%k;McI#|4Yjp-*?zy`k-+4_4T@F@7!m{j!-;(;UJ>C8_*S<3udps)!7eSB`Q zUKwz}QZMUxt5a>o_YlcIT!G$Jprzug?LbGxpA!mHftUYS&y56zD*n8JKtl1uqJb%j zA6XcfqxjLW!0n1p6yY6oh}6Fi4YvzYe0O_b5`tgQaQbT0^5Vc)urkWYc=kZ?Q$^rf z#ZR{aixhvY9k^TZ^Fo3DDSkmDuuJg^V}a)szqmMXRPjsWfs@21sY&iYbA5}T8esA> zI`}_COq0OsN6~USYyRp#nekVDcgA1+XEXll@6Y(F|3WCxA8urQ4n_j!EB-K+6MCWV zH$#v#hTtBc{sB5@(-GSkzydT<$;dcI1nB53`GHn|4jDAr7=!GZwTW|c1NSH$ya3vN z4#vm}5E$JI()CXT{v6nBZqU)hSW4t6lVd5)c2%8rx2{2K>x6>3-R}fFM-@<`#`lD@NfG%WaBr=1n!XPn!+Pn z6CmT=%=3}pj*m-`^nr%OnWUQ$_! zTU0qz{tIvjLcNpuq*U>dhqp=65f||gJ7G};;!C~`dYZB-%ukTuGYORW8%etRo8tpK zOR(`o6{OnJbR~e%n;)%ivk4Of66Z)%f$YNKJ*}D{9urY>59u(r(v`;j=ryd{eRT-racA$(;DZ`Q(%vt^xZhyeW z6O+m1kN7^yuqd}4ETm#)kO+_D9E1-ZChu1v??!A%t&EeKh;$>f)HYKKi5&GGcyiefil7CoHH ztx#1S#dj;k_g{_k!rnGM5`&E=HjoTQiNfvwVy?%AH!G0Hz#0Wy%OBqFo?7#NcpLdB zm^>uS-X@(p@fSvxJsPs9*tEN3U06*mS3u<=BITJ8(weLH0PsolOk+xZ8Oeo8sNub)mu6;KYY1IK ze!_H}@EVk`2%DDj;j4wkL#bGq(ZS$WH8$;ee7AZW;seGKWP! z{R8V7f6|aXfl!kgUR{8zDfVV6ZZN0N0Ieqo4&g1~2T(ju@H|e{0A#Na94aA;TK`}j z9UD)4Ms=TuT?7u^CzW~1pZJDgQbG1R!3A)Ss~W86Z|rz4V|KyY9Y~%-dl^Fd+Xd7F z6q2;D(;=Oq++68VR<}7Ebi;-(!|SMSsHPzXKsqKjHE^9)yH@SN zm%3pc{`gc;em?|IRFgM?WKX$4MSSxmcnk+o1Qn7Ux?9!DPEqb2)lSy>EGV|rK<3{C z58^qH+aNV=GZ!E!P8v5_`CuqK<7Q^HQ2Z^z8mRb%mNixJx7wE48;nIEOYI28;)td8 z0b>c~-{;CPc$r=sW%5U0jN3~=Ti_I?1^$oHFJvL~N($pw0evgYFU`b$z9HfSZu zLnxe=3*VDSBfOz7XMmYQO8CUJc`v}-1e)P`Sb*H(-y_aN0`%#zMPRimdkzv@jG~}( z=#9s?&-_0SS!Q4d&~K#Q$v)*OQRz}C!~$=CZ(t!Lt(#r2Ak}B1Rxh~h7e4ak!Hv=zPbcM|>dAS9D;tP$Htf}W#(YD_)xfM4}fR~M>&8ty{bPyU|} zKpsWRI1BE8vl~;VHfo_{`y0@Sy+hBFYopRRfE?z$4a%KUpqldwsO|`;2`37gbV@

m~MnWE#S=-tP244s!-bt)Zavoe7}xoavx*of|>tI4ePCJ8MD7N77`T^-$*_$e6PS z6mQ1_wVV^6e&0q;aXbDf5uc}_dfpwkO93htaGHQNcB(+joWYJRH#5IrTx?I~_nfI0HaCI%7dAoT;Em zXD+DQBVJ?nbMAnMIU7K^^AM=!JOipbuYd~YBhaMt-7P5Jv!emZeS`DmK|UYffyaf= z5U7@41ghtkf{OeWpau)M%A@l;0J8ilP@dl(RLdU*s^?!0Dm*n~MgA>-EPn+kXQ2i- zDdA=h=YN1#JIQ@WW;$wHUgP`%I>+I+(vS&*&Ufm9CY|P>%;^Bio$jETGZ<8N z5}?AF0%|zZL4D3#P}8{;)N)pW`kl3)InEZ)fb$fn?HmTpbv{TU$#cF34LaH)8bc9K z$7uwb@3aC9JC&djX8>q{GYT~7Tmo9?%m9r!3qgyV{{yY%JOWzVc?PuDIS5+Ec@4D0 zc@MO%^Cf89`4zODqc5f*6k3e&*TAU-Q0kO|Hgw8C8#$Grjh$-HGG`=c6Xz1prp~pX z&79jnn>*`3TR1yFTRP8ywsPJCEq6WyZS8ys+Q#__w5{_GXgkMRLPIDF+QF#@+Rc>r`Tb9N%x$D9|C>}SsFNS;&F{cZXmvONj$)O3%nTYf-b7mkp!ki?M zSD3RH$uZ`vMDi-SYa_-4-X%h_)EbDi&VecuUt$5PSJ?Lha`A5Pm z0wa%6pWqNd$BT1lPx%ywGCHowgU2ZmGwUn0&qT4=4B!Iz=bwwX*$zM+@xBzLW>)}t zRQg(!u>kp<2#K*bK(}hnUyA8Krtz1i3vqZ!Ont6Ok_pt z!IKwp5e`{Y-xUxT%cSSWhD;USYO|M7HTVWOoLT?XzBB9YnV3ous`?81@ zoG-vlB;zi^cMejUx6L?Fs37Ci6%T0blc$ksyd<0YZ(@&zsa+%vE(1Osz7Wv{E&;g# zIJaHxnMh{lHZF=I{T$-lGFH?H{5II-HW5W#!CL|FO|7Cn;OQJBx0ziu5PUAln}>=< zDEWXEk)kmQw2T#9r1)0FMHhqLhS88)9xs{-o_Z~}O(_eXrigw6X$om>X-wqSFKW0f zHT6NQR`NWE@O|8$&<(eNHP?k(qD-SR$dABz5Ar%9FK-Pu?*jS>(mZ^X&%6iV41sk# zZf;gN>-hrn0hP0XZzy?8u}jJ^?Btw1t1Kmwb~NwpF_zIqnV!-r#kY=I!C;-_S_p zLhvjC*N{VPl(&})(^Oy|w@h1s{oFS56?l$^%%}p-^N3jsU?O>Yfyc}em2-fXnxzW7 znB-+<6NL`)=4ML;UgG6uTLoU`?aWRJ9O4ybHw6y!O0yTh6;#j>EWPyukac*4SDWW3 zaFh=;2LsF|wPW~x-Y|fLxp?Lx?^QltcG619dX3LCFGxMRO&gh<3ynNYuN%tyTQjEs z$j10rW9Bpk@KqA?Y6X~%s|5hEaQY}od@)e4jm~M9@_MTXwbKc(`mwK>H5MD*!nYi= z(*fSN1#}wV4`*;S@QaPSGfxnGNw@<2Q(4PlSGWrw!SE;MzCBU&#pB ze?Z^n1G3smbeW4pXNlYhR(-{+&#>{tMdaao_oG6HK=dT7ACmMrAJ%vmiq1JrYBNa< zC*LyCG8Ji##7!vD-B5j=BDHx&s7-0X#?rhcI)5RMo6<|SpP>Z@HaQxMWw{jLkMcI)2WXh(rV{#A>|7_ zW%`FuoyvPyYn1!~4Us1!+D#fs?)Dkgau7wd0QWcIEQ4x!8md2I6E|kovRMe$QR(4T z@^G8yA-;xs{gbRQaLOG6@dqfYtw2%ZPn(w5%Z?Q_&`~~7Z0@s-On|^qe zBo(o~CdkP76yydOG-3|Pm^aFp0qqM@`P;Rr&c9@ZJ2j{Ts@b^I9ow-E5L^NAYFFIK zErH5tK;kv7xLJ+3BZ+r-MK>Px6FwXBGxg+PlJDkx4)r8jwmBVzA)qhF0+!972zPUN zEXE4WTo=x6!A4Rnahk!!9!`@uVDT4}{fvq<_AS9@`9k>>6pT@{vlTzSlYOq{ zR*MYG6a;zFo@MmN^`uvz@iwR~l@pTX6sU4+Sx!`yWA#j(`>0ml`W~`srpbENMAuAN zxzROORxBr#diYVTRn>MftI*s%F6MKJ!F-k43wNzQqYPZNm(xSKr7zBQcS+hE z%;Jy3>{l|o_H46jv(2u{G+O|(D~y#eTY|lUH+~%BFaH2Si_X(}lx$P6&hgH6&M0Yf-pDOGMhZ(A)3uT4IQIYaX=gW7du#Yd{M}h)Qfcv5aamU9Z_M zS3X}2xlLxaX9bjfkkLrj=-sqT(S96ia8*4ne)BTOgqg_fN-b59W z6=;$L-STdh<;miD!sh@gZlRvqybH&J`^f!PxW_p$%?o96Cf};dzf{_a#;wTTR(*pz zxZ`qS->Q2Pd$F9@x9VGwOHD85^=-O0uSbTE?f>*PaE;v1NP-XP^pG93e1c%$VSHQ3 zjr@;P?dE-=)==sC)bDrm`5t3rd$t)VRB-dtqR-Yn;iuTbib*hI3#urT`-d$V5^WFKI| zp9YHNGNWeiI7kItW>9oAL}aU7mM%{Qcex7AovWrA-e6@ixM@;Z7C#0>OrqjvB@LQ< zBWm(RLoAeyaT67P*V)D2C5uOeY+2rFRi3+Zq*QrAmUnkedG+D5DK@bot2i7gQ%9fG z%<`2~+Abq~4s6NF?oy=*S=y7TH1=xBw-E_f=DB|2_sfco4 zP2bsMRqmrA(|uR&^M;NkeYW;_1Iz8ZHa^vNr&H7SY2~S__G?Dx;b;3CE`3smNGBtd z6SqS~DktJ}>Li@BK1G2|_ti|9GO+2&iI7gNR!-S5T`oG5flZO()pYq#>R8@9skK(&20`9kRW2OnaG4 zUMk2-w=6d^$xZLG-Skeok=5*@s!8K^=nEKtuib$)=c8^F+MXitDh1f~w=|0z+wk9> zZVqZ6k<8f@xQ$94UQ@Cyn_;*r*^u8Ew&u8KT|2tXmdkCb;6puTJx)nt@g zlg2eQX-f{)S~dH+Y}2*b9kEUY#prr~STCcXeLb}fuOLsJLq483+s6~xK6a#i$YHQE z?L)QcB=U0PY%fQ$y}Xk4A|p9UUQ!JYX^qRTC-bk*Hvc-?{B(_ZYVIK%6_=5f=}&i& zC97}xv&Ny7?pPe&-an)@tZYCN25$0lr;~kh=Ae~d`NKQ;$mfwSr+@8$ z_)KxP!}!-e>~m(V#)dlwp_~^rN!Pp_cUOQfai?_lF#hHOO80?7D4-hU8czn!$JLZ2 zSOYQ!hkN2La9|KfW9S;4VwTaNs2D8S7#&$rT=BTZ6fT5cc|mVdlC*CNCt+B8Gr70} zVo^~SRk zT+|0CHL345Rx}7a%|O1TqG%L&`YY_a-71;{o>r!O%j}}7mHduS(akBWT1chkk)k`1 zL5<~G5i8mZemXf_SzNRod_UsvM1UV4s&?3cj8)<7a9I2VMYR{CCkao-LdNGcO@@!i zrJL-_j3)akqsfwA+bsMixjI9xa&WqHExGy`uD+{r^?in`A2MA1nBnRtcHn@=v%*oqk2D)$Tho6C8GDOq$oJNe#xCnXU~6w3#-< zP0!}aROh2w?ZI6z#ElrQ8#5eUW16378qPG0kf|B~1-Ks891i5LisE`$+tlWxTD`&B z$!Q)rH8Y%AnNBh9)x?84(`uXs;B=#MYQyQ4ROFb}B6$^dFq{1swESt@|Amx(+cCXs z<{I3-0HED&=;Lw2s@@Zz0fe}@s~=b+OuW__bS$YYGxSNMb}7IJ2=%_=3R3GS)h+_X z{V+^hZ0JL9SxYPd(39BLSx?+VX>9f3vso-+Y&Nff=6*8#FEclTKTiA>VMdTYf_AkB zEM~n()~|uw4Gq!BzYqz&6Z`>*zXb7<&(*$vA&wYJ&232O-b~{TX1)Xd9O9P?Gx?zc zcuMCh@IxqLrEUHQ{ygIE3^DnVnIjO0?s{*?o(Joz^6x}~BB`_-LG{olAhQJ(yxvy_ ziEZ3nQ}CLMf^l))D>uoEwH6DUc_#O8_?< zgoSyp$iEvBYCjV<9OQ2VpiVOBhJ*YEfsTaj z>IB!du7s3s;jVoHG5biyijS3ZYf@_(v&$gWKH>j^5yyjU@gp06PZ2CR4W({Sg19*O zCdq%;oX6-<(AXUtfqr~CC{g55LO)5*b!VgCY8Z{iriHl{$5Q=G6e3<(kLN-rV&jQ@ zR4Dct>=O2iWL%2dujMXby+N>%+$FGwh))SN*8Z28^`;g~yh3((-z(LbjEkw2AvlCU z0Atj)T5W#Jg^?f0xR}4`!VtB#R)?Q(VHq{JR>G;xQIdTo_0gMJbkw^fO>pualHL=_ zyDhzsRo*S>eVp-Aicv?>6z5vx3IwY19@+Mb_Lq2BHRjeP(`>E=%|Wt zD^Q_|D3?WaQbn}O*#zI6`G=^UtPfSbl0Qp5NzG3`0~yxjl>WBXBT3yKX+yms)&SAfW>oMI1iH+U~HiaRU_Z!LYmT$TmEoOE(#0D;gpoF0oiWKUBH)y zaNLqZWj>-<-a2*kZLPLev_5tEZLM{^3X10uE~ioI2O;BmM8-o-zDsp`M=Nh$O=@(f zI#evF@{|f$$i8_>Hk@m54=l>Zki{#U)2>xx^@?&VzN6@l$tEMKhf;r%)pWA@ye1sC ztk1KpzD!#kNsT^^>s_~y6&`e=IiRKzKPoF!Vk^|jSCQIDJ>B-M^OHJ_aKs>F`+cla z*SHl4oPgC9vid{ETUawI@`pacajj%U{?adWA={a{99GSrBC8yc(O@}(%AqFSd!Nkn z_CiGWA}o@J$O1Q{sgY57kko34PH+sXc$Evu3b1&Pm+Qiq92vF5tr!`I-I9G@EYSBg zHLHV5LFkNn*yN8VzN8}CxJ8~v4HuVXwozpk%QD*tugsV%6S;1g5jp(Y2%2E2`DB^x zRGI8Z>cw|aEw%w=3>N8ez~tx|EE^;9#+oSUUEnsDI|wgO4aR7SMjj0%7TAo(Oz2S) zJh@ILH@l|*)UNMPliaMS1HPQyk_+7}UXmnCPwY8?ID z8p%_J0cw6^-;@7yWG)L%Im4_!;gcsWB!3@h^ypr(Y=e`U*Y2_JHYJhw5zZi_!-(|o zvGO0XHX}C;ZCTtWvbd5}aK9HDb!LdvzR~b%Eq6a&2l;kv+7JIv*LT22QMCVWySvS0 zFS#TaxD+5j#E20B0!FFQLrQ327jAYw;F#D_!qJ{A&9$KR^8T@=+_m_p2{ zTDKwl5f=5g!zk+F4;1g=g}P}VhIj9%$DgV<7Q6hZ`$i?10x6Kl{kQIDR8#)PWD5`> z>Oih9<-=ZwDX>cTtT=Jw8;@qgO0t?`(_~3uHP7~=DA9$=X25tKf@jzlLkl2#(%8-bwY+q6vOg%0eGn0XU#5sj5M2OlEmM=g;ZF_RF2k6M%+VEhQO zdsN4R(mMmX zCyU-PQN-iP#Yx}`8XiwBZVg}zI;sdBPcA+bfLH{NCl~hxAX4-3WP37j+9M~gt#cxh zn2x1y-eDD*r>5`UVU?wBWb0fIz8I&tbz0;_V6q)svyBL6;E$n-b&k{4v*twJMA_Sf z=NXX-;G6Ki^&bOMyB)}llF*d!J|MZ)agm)k%N+7}Bf@B5>{%yZi#iXrPABdu;R&}J z9q~cNX)>{7hiy$aBJ4b=q;;|rVb4j|STkJ1?hk~H>3KV?o~bhsLY}b($7iASCph!B z1lP}2{+*}-z{J;aLN>m;SA}f>Fstl`LueQd`FBI$p=M|zbD2KU4DY@RL1+IJNuqK) z@Us#0M<6|vX~%S24+sK;%%oe90`xhH!e*`84gf#zVn@t6w*!Df3Akn#ccd=KH~YKC z={hC&OztTfNSH(1vo(-3hr5?*pv)ZYUJIZ*`Rr$ockco)ilh%Q#=)-+36vaB4TQ63!iwWjOC3E-tX2 zMS368xWL|o^j}Ql0^6qj@^<6!2y(4MqqpINt6ds7F9OAO0(Nc*Z^g-TuFuMg>)edI zxX#VUd$XH1Fn)dXA7F%>!eT%|?P4Gxkn=haQ+T2$WIqmR^WFtG2HBy34%=Gc37Xb?U_48G z&O(j|b{2A`(+U@BoHLR0CUKT&oU@Vh0&{Ldj`(#kau$&JgF5F5b8^T&8(DF>+YAjW zdI?2F(Hl6LMepEf6@7xEUGxo(=&W(Xn@|dQLeXCUjiT^9L@vb9Dk{g(F6x9MUXo_R zIx2m{7gnp(NaSFP!M7a4I1x#+cXTXH5vybtP8Kd@6APJmj&d5MqxZv0ob5P*Z$+*> zz%pqnvl$*+y5s@LIIR_4)4(;@DuM&8OBGmkH^C#U#R{x^gy0}+X)D;XnZ0zAQGrOd zkF?m90KaZLM})!Fb;P%qzG=Kk_$ccpz<4<}dDA+8LoN1)026l*Jldix$@ihj9Ef?* ze(646Vt=r!kY0tqJ;K7)%uDNbq1-6H3ptzc=bN@`SbMznSe0LU9rB-NjbkhaHM&R* zyh%0WPs2U?FV2)crSkPQ^-hZ3^|r5fLi9e=_Vte6ouc4}*}meQDBj&(s_alBYWI*X z1hi@&q9i@-jgSOjooLxhdVPRho@Hro`z4e@Y?ocUeYnjY8=zDCAi%ytN^Ec)q+R_d zzHV<%wW)ZeQlsK4Ji8f{g|6SIMOTMfIKrx{LxUQnk5psp1sK3=D7qIYA6X`w8S!dG z+m9??+ZxgKW9{X33Ci$^6>BZ>S5euNy#sC*FFvchyi+KP$@!uroEaJ zuYPWkcloOj$x{AGaGbI&QJkwQant>{h{Cp@u#0d70YTl?6lIa~dJ45^o{oeUi-KaF z)u^%ofBOR`1nYRdbt-XTF<&k&4j{FTg(PN3<&K54j#Qomj9K{G4TY@i_?5B6p8K&} zVsvBWlM3%2`C&AsH*~1N+sBaZozRGhHbUYW`X(^Rlrq60;A!W0oz z;zBSS_5;A{!P1B>bw}oa&h+%N-&=JpjQfDJT9J3pBFbtZPZ2t%V?W@2Dr1@(wF23p8|B0qj=I2eSFm7bKBX1k>_XWu_#=<) zE1}w#0qnl2hI21#q#ydhO0=jV>+TU1g6o;zJ>o|URKwk=0!#+U5yvg5B_MKklImV zx@`T}rHJGngP2gbQaC;#b<4j1N)MnQKlvePJ{?)50zB~}!Dk}=I28{)4Di{A%qPT7 zV^M87{`S8S+NnzHBqghny8$mtx^{av+eH}_++^fE*=S@2<>?cnW{wQ4ePW#F8 zma22SHOhXXytuvTPQxGh#sS2?C(4PnDA5M_UD~Ih-#t5MVh?Pg!C?(Fvf_Fdh3bT01=|zIaYA?{##d*@E+b9EoV8cuI8R?&YvPxTj z#QNRx%o%>)lE=ktj~D1z6|*TYg<>Va69o)_pu)-$PZj)sEb*c$2wGw&h3w=v z5=iOxrW~Dgt8k>>I9OVRL^&SldE^)D)R-v77E<_|4abqfZ|F=}dl+l~mQVfw9ho5f zme01M+6ZcN!QcKPKRb2@8}S(=mgfmEPl)AtzJ*+AuX!GcHRDq=OVUI3T76RELGNCX zWH~FhRh5+_ZM_^x+Inng5X_iJIoo=is)%6IL0~=w+s|VMq(}R+JDBdkj@0rI((dbJ zCdi6@U+=pVNH7LZCB^=p?=VC9%mH3zI=KX55VWdj zeu-$FVRf0XO1__7^sCjY;78V8uWB2M)9?I>@oooZy^a{hxgVv^>r&Ew-unr18>L^h z#ac0@-1wdbabC?Tm{?4_R|O9;#9vV$C$5me6a8M#>h~)Mxgcb35&e?8WIiVR-7CCp}&uEsJ;kJx^?~>Kq0%AH!6^ccTZWJ*uhAqzgHijVGA&t+ zmPN7G?Pkg^G94+2v88|&`mp$KxbZuY)oMVB=9K}q231then$2+F*bgw!I@e67#$mo z)LEo}P1HysAr!_I_!Q#blfqct(!DhU6FC)nv6_Oqj7)kq^RV_ zGcElN5L%DFT@vRsAfBD(JdfOMEJ>uK$e$rpu0eEj>SZ<@MAqZuDyT&I@xm6$#D`J( z@o_(p)vSAhmO{;nC+bpXCXq9sv4G&DI73>RWYre3#NR$aBtdh9DW#|#1gS4c_xTgc zvm+=@d69@yeKl#67ja4f<5kIMR$0W+3}B^5?*#XTat+vu?{G4&=cQpGf*f zkxWzQuRDom2n&F2ifhw=^>jptT16`;YhdDcI;otiq)dpE=V~eAB4tWT>4}sJwUn+9 z%z(~XvOm9wO^VUDA(e%Ljp1VQ`=cm3iIYb2SCLHO+8EfwuU7W)yM=hsVin${kXe3a z!&A(!C{`C?RC^2gR22LDgDZn(Me)u2q!`0=2a8)2tCr5G?R>m?$37qK+34jM8c>{H@p@JB6AJACt)gSteEclgtCf zeot4~Re_WZR4aNauoL%^_)g{J|sL*ntwWxA1>z7w*+F3c9=^a z4N>ezi?bI6QuH2jzhTK2#bGqDnr!qAg4h%AxAzuv!KPM9j8baDjt6_nQ=!%+8LL%` zLaj@Dg{nlM)+M44KIYs?G-_SqYm^j?T9=3wxtw_kg>GHaLv_jt=^EOW_!^doO4TJ) z2^y*~bH5V$8K5hZ_;w|1GNRSv5b{;ZUQ}bVZ4Lv-7M-=Qi-CvKafZD zLiva(seF13c6Y_!KBa^vQEQn}awBrru;k1VnxtMCs|Ynm!y*$7NFVyIRWUf9%a^y6 zNK=oCO>WaR@kGhnw32Fl;SQ~2M3lT!D~U_VmH%3oq}q_)Z&^EgGDQ9+G^xB;>JLps zb)tWYX@X6yo>ZDAGEGH|JIxb%pj}1tH&6I2R`rQx37B6xcvo6ZxfB}}T+t27CX>U2 zY5|85PZnm&WFl=;tiy6?^fxZM#fklnbIEVdO z-h6b7OHnP-)=9NWw=wO5QdeOi7h7)bcLB~*-SLk55z2Yp>f#2m`vrh;RRC~<*lhz8 zMuLkQ#O{Fr1PwQc-7WxbAsTKFyFGOYZVL*`r`n+_-N*){dHEB%%8P8$`B%py`fg)rNg|@}FNT&TBOd^Viw&V= zm60!y=A*0%L=P8 zB?+G!ceTcy6LT%{J>zp6uilLo_86KOeviknGS(kJJpj|ZEo6U%+dFoDKn^yr!5d_9 zzxJ0WPDhfE#~}SBapv}q z9Iw;!21HIq`a9;IH866m#!n53+^+K%4l&#*AQ+m3LkjZX9^Tx?Fv4Mn{e{SS0$Jt} z;rnoM&3=&^a272G;AvW&9_SdMHNfo$4a}k8t~j~ok&$gE-;8V%4~1ID6S;=~_dR6p zMWH>={Rl~KC(>r<2P6*wnsaEhc?#!<6EYxqDI~=s*M&Iok?WICLSuw*NBAtHJ2QU!^6}Xf-v;hZ$qTdqUjY2+Poned{ z&l$$J@tk3d=c{Ali+$Wh`byNcdPP$>xn`le0jEePj%KnSl1_cJ5~q;kRw5@xsoZvK zLY;6p1SRIBA%(SS-;-jse{oY3 zC)~hr8MNlVY!rZ;qNfS55WDdj6@<{}n!#5?koN(|e22ejn-(S;9-p7a!1{R7bYEh2 z!$uPCW}4E*up4kqTTs}a}uq;&?a>ZFQ~038%p9l$4#0oMrfPbK?Cdz+m%l$Rlj#BY!b#9A!FS(?e=tb;!Z(LEg|b8{VNk?ot~g ziz)6hQ@$-+wsDmCpd+TZ%k)iQi|%)c?yyW!biYeNe-D>IEW= z@g(Z+&Pr1#O6=C`TnVn!&k`ME(3AZ3h_C>Sqq3k;&NXP-5nJJq>RVz%M+AP$H$xmu z`wHXzh+!(v<|+8}O45X)keQg4yNw&)3pbyWKFsNL+Oo+OG7 z9!Wn3DjvIZWawJsC~h;0#jG`%U~`LY#Q5S6^;Zkn zwk2IUixq}is)17YnIt?^SMcT%9EMjhl6dNgjx_B%zTOLqFj==^`}#b(N%l zDd~TfrC-MmAcY+21%9;`lHzBUl@zdMsRG%pqO^LY0%ItJ)>Uf=exaqQ+>iq%ULp9U zRjiQX(w%&jm31YBVz2Z~oyGn{H91jZ8?wJ((YI2fnwCGWG@jX2T8C7LTz?cbBo|MOs-;w7bZnc8mlu?j>3sM~r)ER^UaTxq@^r z7vrY1b%(SzUGl`2g2-=CD8sKty4OYW)e)Lc_$>s2e0wFtURQ+} zQV=d4dKR>o3bI&YY6@)6#NWI&MDqo@xeJiHoFz9%NuZb8fZW$vvNFW@@O!y;kaKn$ z>E*m~vRM;iYY;XAkv|@P^Yc&yHT+(#?C7>;)SV2aX}1H@AI0qEyehuwe?HrfeGGVz={3oK3p&39CRQF$Ude&-F7qq|vj_6Cfq&Q=0y)R&|Y zUqmF_Rc>*kBxEYkoV@^h8+;;?;;gqbv05v!y59CXf*P^ZdfV>^s;ARZ>+M0xa8=R~ zthar`r7A_|$MNcx1Z(mFVn2cR_ytr>*kDs#396SM#e3|JHrkCs_b=oYP`;<6BoMk? zkUNkiPfLm4TX1*Mqg%j8(_5s!kK1LP7XsxA{9&{bvF7{sNaYvr1`73o&CoVVxtr*2 z;QiVnU0-BZ4jV~xjCV5Ts1$RIcYJdsMgQ>*^#|#M=sUsj^^J?Z6Jc#B^(vlD-(F;2 zQYHa(zC(^>U@AYv{zBIhFfp@b{Sl}S&5IQP&3kCrR>In?FkK%AefTc06noa|B!qhdT76B`u0aK zgeCGYfrHCAW|$2xQ#N1EQ%bjh&p@HZgab?Q|Kw6 z-PjoI#w;40xk59;0n96Q%0G8D;~ke43TUkZPX_X`>Zz<%iEx5$}7& zUXlJ@+uY##0m?p|-iY>Ptg|m-$~pr?QndFe+JPpuf_V7Sv~E($-fo_@w{(_K84#%n zw5=_JA=k57UE^wXxz#!ct1T|G_e=5XOJCq`HoQRs;opffIRm|r}bkvC){36mQO!0or7GF0IxH*IS0TU zq|DcutJWcP8!LBrT3>;)=N{~|xey5&!Nu#$ZRVsOsIZ4s{t2z^8R4I(yge=Q7S4!mOJ3=PTZz99K+X!_;x*gN2ozNjjf5|j=3V54|9XPZ_u61a*2&af+|BRgB zNZPkJeQ@&Z>$Ae&B*LeZ^eY0=V=XCf622m{2!FHT9Mp66Gx@zd<7G*=wm>y+F-mU~ zj4PPiOJTe%>28AIdbobZ-)y*rxq}766&iy{gWufSo{}O~$Oi-J=L}KRSAcj}s;_14 zNmAXD>L>Zt-R)B1*LJ=kbTaKjT6+o2=xzb@)?u3ne#FRZ*udO-P1=hpVMD9`GD8a> zh4j-^mFXwffT+`jfQ^fierxat& zw64Go204}CGCbmGL?6Xr_6wl0&CFkHKV^CjfY(iAV4r#~3ScXNXHCZ|)WCD5>m@XR zed@h(4Pc*oucZdCPrcVB1?U}8z()06J6(j0>b+VGylmEZoiu=b>b-6nz&`a}cMV{l zdhc)zV4r$#pa!r{y>}FVFUe=K*~c3OKy=t*9x})qr6Fuo?~Mbnhj`ei-kSvAUjkdr z$=>k*^65P6Q}3OU9#&-^pE~75_ zMO|{dRp)KizzJ3t?`;iCvFg2#00`}=RuAt>U2>w;$NNzO)2#m9J^(`cBx{goLT{*w zi@535a4%m$Xe!oduT%pwtnpqe07Cl|Ym#?>E}3af_72v-sn%4lCjg;6%bM;Tp-WD) zPWOgr;B;%AH(aC5w$An@07!|s=U5B9$r^92b&(MwOKAd@QDD4>{m$?=8_oibbvHh# zhf?{O4HqzLyJ_MxhKcK${+Lw(#a9F&@Ae?%uGUbBsLn$gMAa8@(PSIHRl^15W61Z6 zA8`D$z%=%MNiiM7mVE@$rrFLuo|*P^98G%;j+T86j<(^9!pSv#yiWF|01bONj#xF6 z%GNadmY3Md?T49bzl@`0e}JQH@5a%w`Gz#^S_rm1&rSj~?1ONuviss#ZI8vVwS6j% zZS0G1Y-_K?ag}L5iqj6w$a&m;6)+kEj;0a%7U`WxhWa?$YH-Fk8uuY9@)r)+V#hFk zXJK#W8lnqSeh?`;=-6=@jHu-DW?-_|&5Yoj|9 z4j!ml*CF~H02#3#s*4uAg6TdhJklk4DAM~ey}mxW=T$%bc#r5G$p6+s{)Rr$KagJ* zLVDxjQ4<17`q{qGJCT17bg}>2-@xnC=qGA%=nqcee=M&uyw{2yunDb&IN^O3zLkO^ z0e-WbSVs-~Zn?38HSmY!#SYQHpH@89T?2nviCAw9{EgL)(DmS!Mvi?{L8aXxIu1!1 z*{(C9lXbeA(>Z#I1`c(j^K`n07d=O(`^BRRb$VbTx+s17e)a*WKagcFam!(y5b3sn zN$i`#?Fo0qVJFnLR_ATTX|lCQT=)gDv1TbQJPOvcu5vP#w3c*<76SKI<}d3SZI5&q zR<)MbM>`=MVfwlr(Y}5Z{uWZ^@55mNGzuSYddcuHW~>hYan3~3i1m9#`)!ix#0Kf22GflV z(ZI2$7aO60olCR zBva5k9=$^s^i5>EW(`P2AJzGTE2B^A^w6s4%Q`)>I{LOwkEw}%tkV-~jnL7s&A-Sn zySjfu*3cBdrLdDVt1#?^5Lx@%$fSvBzpC&F`+jhYt_w^?dCHpUI+GzjkSF-SKAlyhJ8TW7o8k!Ulav0+Ts}xAZN7QF1f6P2bYl@7F)Mn$J7q7&@o zjHAa+47G%va$Gbq-Ky4Zo;sh@U(Tm^-f={IIiDjXYAVycl26kGYdRB&wl#kTjTS60 zq+pvW2tLJi9eI2sJRITijpkvb#3bJdlVFv5SmgvSE7l2~7HcZmPn8g)enQ|xv1!ou zkCDJVS*s~+?$K6Lw!bHYd4t5B^5H#ABH?wC*_CynYOlMr3srmFrCq4n>n?F2WJ`$c zKl6GvvY_hkLNN?P2jrU26B9;bO>FB4Q4h&C8|w>oU;ixDMox?O-Rv%7f|F9qkfxVtNUxwBJk0pEjoasZb7jKRz+N6(kOp zzWm1!2iZm}=(k^*@^&VsD?4h{eplr|)!faf7Yb*Zv?m@9g&CI&)2ZoGJ8IR6!%Zw_ zOiZstd8&+LDr1Z&6*HBw#*wW8xRr0+(wRH)K-VsgUA3&+Ug|3D?N!}5z_<>7iXo;u z$oJg!$lRz3RCDQ&@=G=$_d8Xh*d5%|nZ3!bM^7sjvQ#1@CK?aT9QW>BcH2MfOwU9yMaIs?0xsG^sW>~x$bk2B+`b1V# z)j2((MOB^C6X4cCq*0yI6Cx|v<()xUpA2(;k;^VUxs#n7CpO)xd>Z6Bk6iaQ=DIhR z>t1aj#dL3$Y5I*$2pCZ*8fg-!#>DG7+szMKN*>sooHJtvjT-2?MHn zldq&lp#F&>`%w{^Jx8~=6bxxvpxXY3rUfdr#x*TK%h?Q8?Ke<_TeBjlzV22LHOH(I z(*+0H$@U__J&ImXm93<+ElVf*h$sDRW?Ro>r5YwawX|8sysN{ z{7!+6QJsT~P{+jl;YPWAqO|v5jiN26acQ8&rMWdOS2Y4N!UMJ#`9|boEXzwYrFVC+ zo3-yxGS_DI!LY zX5QynY1An4c@t@1?j4Y3nn?5Y|7C7E@Q0=asx$nhsr>87d22xaty%fg$9BWa?k!^6 zuI1(A{Pw7{#l-8&4VTv}X2UPUIT)L2m+<);395thB&h7A&l;CdsIGa8D)c=)t|r(` zgZ0-DJVb+CZYEf-!Mdp_!iNf+>~bAGV~0Pe)QSn_OTLkO51IHX91CisdwD!hbua%Q zv+jB+Xt$b_p37r*ojfd!r@!$>g({)+x=(2`GA~jEl~Rz}?3Y}E+vG0qAG(OG^F z%|sBLjlbE@pE!>w95qvTL~x*qnk7CW)-#&_h3ncSpR>wwtnzJ4E39gLD@_iX7%~m~ zKK3&&4{#|4JGGN(#p$e8lChJjRw8x^UR_^AwC+KnyZb`ZS^Sv|D~K~Vh%>ke&f{-* zKsrVvrQbLd7I~8ur|Ud6tLds@;5z0z;%tv*x@#rqcEJmFQmViI(vOG$fqzI~UtDzYg0i)x z3wr1QGNH5v~dw zx53!9aUjqfa~ldhBmXVKSlrPx2I6d_@9bg6Qwy22FU8Tcm*QyIH{ytu^Eo)-xg4%L zn^|O;>|`H6(C&t#Uih}B*@sK!7-rfh<7n9naJ21Z z|ASK<`z`<>!)Jw;c{Ttx>@7H&_AVSPdoPZ*oxcs(8n1(Cw*rhkJ#aMbaX4DKtR8m( zq-?R2-6ds8L@dKUBSkN=$Vi3jVXAkK#yb2fI7OTYH(7Uwh^ivIdXgSd@HL%^nXNEQKk>y2y(!j@7Jo<|UKCu$f-+Uky-eD!9|LCHf zR%O%yS7Efvs*2`m;8UwQ8q>gMR!y`>1D{*9(NYb3frZgB4SZ>JiMG_hS9l4etp>if zdPHjo)KQ~vtUl3$bkVm~|7d3od}j@ccGJN3){toT^v+)B$&NuD?oABFDPlz~1QGXY z96G-TCoC}Y23aG_=m{w74J%rsO(S{=fG7qbYmDhcw*feTz*w^~`ZIu81jdy@7@fc-{>aJq?Dkr9OvX^v;QKh3Gs=cgh>|>-SGQGS$ z_Bqm%n7*z@>{p$>zE3P4v?c$>{;`%iy<$+TE7B<`SUDtigf3V$Ja!Dy3?BQo(XlB= zQ+4}}@v$>>8q4*OK9J1COFKppSYf$7kIVJZeUMq=4$Jk?KQw^V`slwJz-oQeMjb&* zVYxo)Y6#2q(U=CfTpzv<3|1n?p6u1xbul_!r0I-r(j!~aU7c75oj%l!)$4Q*FVXMHdUv`3`oXK*1+J(*c_c6S`|A-r$<)DF4yTXHL+znjph3Anegbt$S}L+ z4~OmX=@P?uCB6M{yDW7#%;iS%=Of#F9NA9-whk~0mLa2X77mV)pJw3>6n@0QgU$Ta z%;03Nl+B=LaOZ^n$cZd6TNHsC2Bn&n+XsOw;QKmRd^1-?66@r zoK6xg@KO%mD>bBk3zGzbBgd7**_~nI2-~X#nl%1bdk@0YK|)g1t3pUPiEw293K29xh;Z0~PG|N0ze{ z%M^Jkac3*7%CqwRO~fl3%XVe1Y***XwnTGRvMtr1l5Lp=m2B6TDQXfFuHt?0d@0LQ z$@Wqc+3Jb+Wfm_kcKcHBppy3jb^p?Q2WABreN}-o;kS%czlP+!0%rY23ulQPzZEbj z+c@&Xng&b zaYyB`7YFDHfl+dq1<+w9j8dPTk$Q*NW7Jhxz_5vIcSZIl$M6}GQa z^AD&}3)?3e-$}5glm;ELokXXlvQ+DZ>NHKYi%^{=^OfR2Rk`&IM~UF!yyDa zIyqr-iN zXNjsX`B@WHVe&JprD$;#C%{g{qZ1};|}t8Im<)2@MXbY?MRSb+Skx3tZ6lS+mSPh#T>R?seXXjR%9jFHMIgM8M z&4vp}1z!=&_EVd4yQw!+HTGj>xmhXX}q+P9q54s<0>laD|HYGF2%Z0GnjMQN>i@F`79Q_G3s>>$o; zA7>4SkeJyplsF56I17DqWlek{ac*@@&Tr`%;g>?rP0%eEI~NjhohwriBC6hGo!|kC zS5cXDq6~YJ0|-9k%490c<%wf4bu()t2f^+wI^z)TiNg*Mb$fVmw`1%+Bxwn^lMzcj zrhzU_>;;`Z#Eosy>BBrDd@cwKMR#M(@G7lgu@I6ZV2vSA_YpAC+P-@02qpxVFxtWN*tAR2z z8T~X}I?QgHIs``cj9EAyjg^YKaOUrNNTOCa@HpfSX4+rkXxcyFXxV?@h((>Za0)K! zgm)076^@o&kE3Icz|pm5;FzJ;$-bPReI1VI;T0FG>f9>1k22SO1xL%?j-ze=jH6?R zcjhkYlmo`CNgPePFOHTy21naI1;^l`P6{xdio?;gAHy-YsPh(JJVk(ex+o0qVxf`- zt2(U!;!_AX>V+rgY5M@l>?E1tp{8LBKoToG^*CXr=NRO;C*p8F;LJ+T(Et`$$lyxP zNDXkMXDon}6mh9%qAuc6&twg7sb`7?xYTo!2Ds95ss^~yGgkv#={Z{iT8CeH-$Z~*Khskh;?mEV03K(NEdB67$_}9E zFa3N1#$1Eu($CjAjisNxI*p~DzjPW)KT%W_d@TJ`>aGKI!?E7MwIAyHDAQQ`(MoachdND$tX%sUiuCDBW9?@&(zBVy+RuqPjkTZo zI*qlTD|H%cKX)K~kW|3h&w5>ewVzE$GdQ{S^A^(7g=;^brDu=AfW8nKWEOj-0gyoE zV$aDM;9}1#4REn%jt02abCw3U*0VqZvexsggV!>^(qHSLmxVjldam))DeQ_LyIB`t zvFC1`#$wM}oyKC%^E!>ip8x4I)_UI4X{`0^)M>2se52D?>-kNmvDRa16R5SGo_IVP zIausD5yqCqo_b0=t0;0NGK$TT^KddEx7db}X!be6I+A}ia%BCdefqi4c*kT2vboap z6!ZTA_C?IVO3x0=LKa-f;rC(WL~x7ef@<*M{f7~|CF2@6Ci7?@?qa-4Jgk0Xab}we zr}{m^-Sj?beMg-C;A?@Pn8xWI2=IGWCdPpjuB>dn{W`S>Ul8 z@+lanVHgo#%OW~rs@HPqZ*D^WL{{6It)}Sj&7n{7^NCkrWjqlV@&y*HoPq_td6d7v zO2dKxqw^JbK8pFao@f_W&zhEHjk1(fJCxHU4*M^puSUes9zwsaT)Y^laW8B13)JXW zes%X?l>w?s^DL8>S*3fKI9_q-UY6mKo;A*HcGxzejLK@Kj5kWO3kJY9#9NfbGe)GJ zM*RtYF#jh!GYdtOurACiwKLYQ5$lxN zv<_HSvx`7E;}y265^FaX&}h!+|3_ND08&X~)e}`bv;YEr18{{xx&Jv;E z=M(z|frIuKM~X*fY3>g$G|A(kjiUWDwRUzHBBWcR9@3mnqN#Jn}tYFg{w#<>G-nnX$v8fbbQ

1wn(z}+O!%N#$@y9$>I#}~CuJW(l?vpW}<4Y!l&w6bj6Ps>Im z#hhLyaUY0^Cs^awU=Ziunyr&QeF6;fKjLiEs$khpG})*%Q3ly4!oZBmAWw^^M(Jlu z4R_%(_LEW!q>g z;@uD+20+nT0%jBB@rJI%S(~M$8o^q@gD0v};;FUj`A*#m)(IGN_z@)YS(c27+0Qf? z6|R{Z!!l;AmoL!FDK zRCydQ5)3zNN})#L6b$kMkf)OpJk$AZN6rrVr{-q4c2S^HLBs+x<>xJUe{Cp z^`Et~mUfp|yU`^&qNa<;dXrF10X|rSy;%#}S%h8LMA!q#6l>txx+*k((L9xZf6*3D zy~nS@Gbnm5Qt6SWML$*dr#!xf^Nk_ffq<5XhDiJj|R8xdV?nER{%_;&t+qtar zp;lCPwjbtQ!<`8cK+0YpYFU-NJ`zoW_F76Z{i7MHyAp=|qrSDA^%S_jdax-l9Nf)n z>oGIVG?(>K1*9wdUe#=PmPnUpX=A#&Wikx(9`j!eR(?@e&eYvQocFVJ)qL-LEtmIS z%Jsf_kP0u`Y$f<%)b~VmC&BF+%=?MpM;c7Ig+BrQSm2;7qTe99I6q?xPi#?~@7ux^ zp2bbxxTs>ap4n zP9~@LA4!0ZPk@gXGOw4Hv8C!OdwJ5Q2I{7XH(%GKW#%iKK&U@RoU5|5loD479^%iF zuJS5*jtZ?(Vj&e-;^i24sRosSmuXPN!ZiX0W8r1;{4UE=^+w-mo~m_yr=Hykh`OEC zaJ8D!y_k}Jin^CP7soQDrl>LI_&k&S z(zB+*C9!XTw>gVfCE>kUqg9F-H|u9Fldsa*n`3^*nAj?@puu99c5aFJ{bbQrdhSgv zX{D<-fmF5w4K zAwCW#pqv+)4ObCoY7l3tk248##;G!ITt}R;AWoUWNi`<|pP$8^^hCNKh;)HM3Ix{| z#CfGKV=fh2uN3OolE(aMVeNi00H{l<*9!d!VMJYj6f!VzDe!^eev`rhZ#9zY{c=Sc zmy5Fd^{Rx|?`J6@LE3gG!3Shjg0_|3V4Vhyu`GR1tywhx4y1Q{Nb*JBA^UeVv?=<( zYx*h0;P>(z27hXbiostRR1E%B49ZCSt?gvcmJ9||a3oUn2UPeMm5Tg;iX8GsRQLvQ zo=-7225DH)KT<%WY#V6fPABMhCH*A<`b%=@FUh69Ow&{1U!y@qez_vAoQlaARyK|x z{ban6SCjD^uO{O+2ECe$=XkX|E?y0EtCLA|RHejsQoK5<(zi-t1syf2vai`i;v{~b zh6VJVBsdzy%IPu&jMbp?e0uA2yV>|Tq@uKY*Gbb?><-qTV%J5nD`l6m3)i@2!)mfSr?J1!3HX~Aatq=)&G_7` z!_%kFfQg2gzeso2f3x2CMT{KAMZq3`7icivQi1*gT}^v}7fLC3 z7E14QagoGvpv(K4Jl89pWSNvPYkg75=a~?m>oZJ*=VKc5gy&;LIXoZNrM2BCf&w8z zzKF0vi4X{nmfr(wRA9w#6sG2Ax~QTq6vs4KB<#d0(*sqe=g#J5G?~p0VvSkFnNC0r zYqN@dHC@qbR&l1)r#PaXUfkGRQ%L52Su)B)|I=iWVy*uPnT&_FX;67+Td_alD-WsC zjECOwS+eVrAD-YR&u~dbbmgLONsfoYC4N-IMU#jIm4_lFIXqomsyw8?jEABn&>H*$ zQL>UEJe?ImS?_5rg0kMzLKS4xNcb$tREiQAMbwnFDB&w&9L{hlN>C9a72v*w z^}1#2DFbxV^%6r_?~ufa?NoOw)2wZoI)7$CFi;Eo3;b?KIgP{4?_}_JR%$hwcw9^ExxYyHlaM-N`VAr`K*yY! z{%01tp^_hfb%BfnO3DlLIN-@RaDg5NR9~q;5|EDnqHM>{q4;6}gX@&FBtKEQX5KPk zTHi4_iSp%76um^v^vcs9P;b_FJ0Q^8xdOeNE06*+0==6n(0fXtfUn1s{K(QwjHt`y zk)?i&IH~y*YhiLK(9(YTGYPRyf;PeE%u~JNyH#U~^##~8n zQj)?>e!pNgJjZ%3mdgDecHF8-zF67-*#N4^>5JM<&d*f%Wo4&8EBKI9YJ#)k8h?77 z4P^62;EeHc%n|7aXCn-%nK?IDac+}}M-yjh5NBx&I+~~KSo+-$ zVszUtJ$arT8B>Qzk^gwpR~iYAH~py7c)V$^PUG<=1Lz_s9&hq=8jm+M*J(W7)b{7} z#(8+J;c}8*<;AUQVhy_ZS|c`Hr>}Qn^K|+qH?~lxS9(U|YseV>1&6K3wXTAZPK#ya zn;npEUO>LH0`krGQdyzSi$f@1@Cy=IX)Z}-rMbK^E5Tw|X$D4?iqmii&&T0$3|iJM zFJZkMI}S-P!MjH6G@X9mi7nLW58c=`NXycu^^q65JH7o3e3584`Vi|)nB%2b1(HHy zlM&lrr(bnqU3L0(H`ZULx4;}xG}Vei9NY>VK17k_n2=^)>{^ZXyAiuZr~h~psXAa;YpQ9lfYeeQNh<}b{&-CtR`0!Q2Kgrj2*Na2*(=k6H$7=VU- zDvqXoK8}{X97o%}7e~i_7RQkNK8|7gdmJOajCc^s+{cO$9I?wCmSc=C?pxrML>%&w z8R``x9QvCj7Az3KqjE-@eHaMvSWyWuu-hG9P<91PFggINXWc%|fkbdZhq2-S9J>Dj zX4mHJkJEU2dh~DldOGumuPFG_eb-$ z=X6U&4+4NFG30Zn~Z%{NJ!bp1I zkZAGmFjolq7YvW?k923IFB%bj3hApT+$E#2-5(P9sS+ILL+0>S%c~B*WW@#pAWnD_ zwz@l71FvAKyOA1r6TbLSUdL8<$7*0Rwz@k}16!!q#}Sb|I|It?~LI-HK^!jdvu{RZL@Rya_suo$*f7Y3z)5flgy* zyc>{CNd;_;cb_i6)_B^5+#2s?oGcPGf7l?{ykmXGK zG@4a&2#Brm60m(_3gCm%YtO-Mmc?wrQ;K(=ZMeJt!{v^l$cP+@uL+d^pD%bn^^at9 zg?)_#{_-;$W)cryxgd@qIG>t=Q=G+FKpZ@bq-iO<#}uB>N)KCLhf`M&Z%>fc9-r2d zg@)VtLdtbBacnz7D=9o}n>-;x;(3Z`+w5il7H?7@dm4b=W(CqMrO@eZf+5=nQ{hht zhizgv`{DvTU4}pKj6KZ1+Geo8g44GdZkM+y%vuW5x;>ni+_?}`h?gnSoV^gqL; z8_b69smYJATo?Qp%W=Vvu^bmDFt`ta^(Tm&mI`I;p`!h?kWa>us5*`BdeG*U=zm&> z`Ul?*ZALOzsO>l;6t0LJivBT((vB!|0w{A73R_EhSjvv1x)S5L#-cozE6Q^r-xW%f z=aeXcCO3#wD#ICt5+YA!*jFen{;drA3VGt+$}ot|pn_3Ru!YPFV0=eh*edKh*cKO7 zh3UeeZd1r}L_oI@P1K)DlrkSB-FqP}`7U7Aoob^65%Ny2vC*z4%0~f|kD8#YB?`7v zhwzS2>DvV5zeG7dfO0-jQh4h0yUVb>%_2tAd&HTWHJgfqx!P&|$dlFyk4EU9|F6Z7c?BRTplH2ObqFdMiJU*!BK<@cn@`BA@$ z65+xqtI!wHU@nT%7tPkA?(6uIvNVvJqN;%;yFifXB1{=6-w+Vyh8$s1k(-n>#lzA2 ze3haw?O5f*##Z<+*9sppTC%O-LuG~H_t0KxPqX1LQaLh`2|?9U9~tpOFd-p$WGdpv zU|eGG$cRt1KtgbEgl!D!xe|gyB7O))Bm{>>R0vYh^F-OPP*7-Lvrq$*$wPpLX)!zRixqA)wyk0?~3>{G?c(|bfYNKlkA z2MG%KO(xlng}zvZNLeRfurvOO1n~VLJzJ=J>YwhCZu|-KyPsRsf)0qo2a^{sjAMH^baVn{hdr-5|<>zBQI%>s6l;`_6Tg7?sT!;Oi}zP zzlrfc@%W4F=3U~rwu(fgyHOM)p5LMs#XOJt1kLX4Nw2vWThfU2J9Ic;@eU_WG%sU3)!{_*#7lwkVI=WdHpXj7ybkCQv+kTq#Lihn)w^~Ug0QdM zCq4TTyIK0UOYKl<5;r2l{UwoYl153+rh|^n^P6sBKEdMz3~C=27tPOWVo*;C&TCrW zo=-}bW(v~zm)cQfy{lAaaCEwqimVGX({^VW*V5<-ozUF2kpJTvUdRILE^lu z^cFhl<(J~!(@o5NH;@fLTo9=G330v*;(XZz=QrZ)3*zi+f>ZJjaQLtc+(XgdIr((LlWS`$;`-B3CAkCKaPETc321-BM1|5gcRHpdM1)s!a5EoEMaj$>Ap_K&J5vmKE%+J>27w zZi8lO|F5TuRZg{t^>#0JAJRhf-9GLas4VIC`@0Ku`olr)6*~RV5cfKr{$#iju7Nap z{HFYiP$hhb6|D}}TKOxfKk0-!SVsPBC=#Hf<>cR`fjZ00zfS|5EH8hZ20B~u{D(Dg zu$9PvOaoo4Wd4&H=xSBwKcj(eR+ZtEz+|Ckz_yQVHW>Dikt(~R`wmc8V0SXyojTpc zalh5+LtJ;CP9NsEVc1ged&b>nI^8GXw$bT+Nw;%)!j*Qb)WNWXwK~=cC#+|QXMcnj zu%0EJ9nJNetDKAzu%0DO_?P+1y1LjFL#=HsuXis*Iu7SxJ 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�n#`aWuY~+28nP!iVe9q)T`@F~xAjb4` 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 IYPbCU1A9$1NdN!< diff --git a/MDK-ARM/gimbal/gimbal.build_log.htm b/MDK-ARM/gimbal/gimbal.build_log.htm index 6939acc..f8e93a6 100644 --- a/MDK-ARM/gimbal/gimbal.build_log.htm +++ b/MDK-ARM/gimbal/gimbal.build_log.htm @@ -31,9 +31,6 @@ Note: source file '..\User\bsp\can.c' - object file renamed from 'gimbal\can.o' Note: source file '..\User\bsp\gpio.c' - object file renamed from 'gimbal\gpio.o' to 'gimbal\gpio_1.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'. -compiling config.c... -linking... -Program Size: Code=84448 RO-data=996 RW-data=424 ZI-data=34272 "gimbal\gimbal.axf" - 0 Error(s), 0 Warning(s).

Software Packages used:

@@ -58,7 +55,7 @@ Package Vendor: Keil * Component: ARM::CMSIS:CORE:5.4.0 Include file: CMSIS\Core\Include\tz_context.h -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 fa82f9a..fc51237 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: Sat Nov 1 22:06:33 2025 +

#<CALLGRAPH># ARM Linker, 6160001: Last Updated: Wed Nov 12 20:41:26 2025

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

Call chain for Maximum Stack Depth:

@@ -658,7 +658,7 @@ Global Symbols

AbsClip (Thumb, 106 bytes, Stack size 16 bytes, user_math.o(.text.AbsClip))

[Stack]

  • Max Depth = 16
  • Call Chain = AbsClip
-
[Called By]
  • >>   PID_Calc +
    [Called By]
    • >>   PID_Calc

    BMI088_AcclStartDmaRecv (Thumb, 30 bytes, Stack size 16 bytes, bmi088.o(.text.BMI088_AcclStartDmaRecv)) @@ -1013,7 +1013,7 @@ Global Symbols


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

CircleAdd (Thumb, 132 bytes, Stack size 16 bytes, user_math.o(.text.CircleAdd)) +

CircleAdd (Thumb, 132 bytes, Stack size 16 bytes, user_math.o(.text.CircleAdd))

[Stack]

  • Max Depth = 16
  • Call Chain = CircleAdd

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

    CircleError (Thumb, 154 bytes, Stack size 20 bytes, user_math.o(.text.CircleError))

    [Stack]

    • Max Depth = 20
    • Call Chain = CircleError
    -
    [Called By]
    • >>   PID_Calc +
      [Called By]
      • >>   PID_Calc
      • >>   Gimbal_Control
      @@ -1114,12 +1114,12 @@ Global Symbols
    • >>   MX_CAN1_Init
    -

    Gimbal_Control (Thumb, 1000 bytes, Stack size 88 bytes, gimbal.o(.text.Gimbal_Control)) +

    Gimbal_Control (Thumb, 1312 bytes, Stack size 88 bytes, gimbal.o(.text.Gimbal_Control))

    [Stack]

    • Max Depth = 208
    • Call Chain = Gimbal_Control ⇒ PID_Calc ⇒ LowPassFilter2p_Apply ⇒ __ARM_isinf

    [Calls]
    • >>   Clip -
    • >>   CircleAdd -
    • >>   PID_Calc +
    • >>   CircleAdd +
    • >>   PID_Calc
    • >>   CircleError
    • >>   BSP_TIME_Get_us
    • >>   __aeabi_ul2f @@ -1128,7 +1128,7 @@ Global Symbols
      [Called By]
      • >>   Task_gimbal_ctrl
      -

      Gimbal_Init (Thumb, 472 bytes, Stack size 32 bytes, gimbal.o(.text.Gimbal_Init)) +

      Gimbal_Init (Thumb, 424 bytes, Stack size 32 bytes, gimbal.o(.text.Gimbal_Init))

      [Stack]

      • Max Depth = 372 + Unknown Stack Size
      • Call Chain = Gimbal_Init ⇒ BSP_CAN_Init ⇒ osMutexNew ⇒ xQueueCreateMutexStatic ⇒ prvInitialiseMutex ⇒ xQueueGenericSend ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit ⇒ vListInsertEnd
      @@ -2115,7 +2115,7 @@ Global Symbols
    • >>   __ARM_isinf
    • >>   __aeabi_f2d
    -
    [Called By]
    • >>   PID_Calc +
      [Called By]
      • >>   PID_Calc
      • >>   LowPassFilter2p_Reset
      @@ -2376,7 +2376,7 @@ Global Symbols

      NMI_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f4xx_it.o(.text.NMI_Handler))
      [Address Reference Count : 1]

      • startup_stm32f407xx.o(RESET)
      -

      PID_Calc (Thumb, 752 bytes, Stack size 72 bytes, pid.o(.text.PID_Calc)) +

      PID_Calc (Thumb, 752 bytes, Stack size 72 bytes, pid.o(.text.PID_Calc))

      [Stack]

      • Max Depth = 120
      • Call Chain = PID_Calc ⇒ LowPassFilter2p_Apply ⇒ __ARM_isinf

      [Calls]
      • >>   CircleError @@ -2519,7 +2519,7 @@ Global Symbols
      • >>   BMI088_AcclWaitDmaCplt
      • >>   BMI088_AcclStartDmaRecv
      • >>   PID_Init -
      • >>   PID_Calc +
      • >>   PID_Calc
      • >>   AHRS_Update
      • >>   AHRS_Init
      • >>   AHRS_GetEulr @@ -2539,8 +2539,8 @@ Global Symbols

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

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

      [Stack]

      • Max Depth = 404 + Unknown Stack Size +

        Task_gimbal_ctrl (Thumb, 236 bytes, Stack size 24 bytes, gimbal_ctrl.o(.text.Task_gimbal_ctrl)) +

        [Stack]

        • Max Depth = 396 + Unknown Stack Size
        • Call Chain = Task_gimbal_ctrl ⇒ Gimbal_Init ⇒ BSP_CAN_Init ⇒ osMutexNew ⇒ xQueueCreateMutexStatic ⇒ prvInitialiseMutex ⇒ xQueueGenericSend ⇒ prvCopyDataToQueue ⇒ xTaskPriorityDisinherit ⇒ vListInsertEnd

        [Calls]
        • >>   osMessageQueueGet @@ -3899,7 +3899,7 @@ Global Symbols

          [Stack]
          • Max Depth = 16
          • Call Chain = __aeabi_f2d

          [Called By]
          • >>   PID_Init -
          • >>   PID_Calc +
          • >>   PID_Calc
          • >>   LowPassFilter2p_Reset
          • >>   LowPassFilter2p_Apply
          • >>   AHRS_Init @@ -4803,14 +4803,14 @@ Local Symbols

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

            [Called By]
            • >>   PID_Init -
            • >>   PID_Calc +
            • >>   PID_Calc

            __ARM_isfinitef (Thumb, 24 bytes, Stack size 4 bytes, pid.o(.text.__ARM_isfinitef))

            [Stack]

            • Max Depth = 4
            • Call Chain = __ARM_isfinitef

            [Called By]
            • >>   PID_Init -
            • >>   PID_Calc +
            • >>   PID_Calc

            BMI088_AcclIntCallback (Thumb, 20 bytes, Stack size 8 bytes, bmi088.o(.text.BMI088_AcclIntCallback)) diff --git a/MDK-ARM/gimbal/gimbal.map b/MDK-ARM/gimbal/gimbal.map index 4e5eef2..a81cdba 100644 --- a/MDK-ARM/gimbal/gimbal.map +++ b/MDK-ARM/gimbal/gimbal.map @@ -3443,8 +3443,8 @@ Section Cross References gimbal.o(.text.Gimbal_Control) refers to gimbal.o(.text.Gimbal_SetMode) for Gimbal_SetMode gimbal.o(.text.Gimbal_Control) refers to user_math.o(.text.CircleError) for CircleError gimbal.o(.text.Gimbal_Control) refers to user_math.o(.text.Clip) for Clip - gimbal.o(.text.Gimbal_Control) refers to user_math.o(.text.CircleAdd) for CircleAdd gimbal.o(.text.Gimbal_Control) refers to pid.o(.text.PID_Calc) for PID_Calc + gimbal.o(.text.Gimbal_Control) refers to user_math.o(.text.CircleAdd) for CircleAdd gimbal.o(.ARM.exidx.text.Gimbal_Control) refers to gimbal.o(.text.Gimbal_Control) for [Anonymous Symbol] gimbal.o(.text.Gimbal_SetMode) refers to pid.o(.text.PID_Reset) for PID_Reset gimbal.o(.text.Gimbal_SetMode) refers to filter.o(.text.LowPassFilter2p_Reset) for LowPassFilter2p_Reset @@ -6467,558 +6467,560 @@ Image Symbol Table [Anonymous Symbol] 0x08003840 Section 0 stm32f4xx_it.o(.text.EXTI9_5_IRQHandler) [Anonymous Symbol] 0x0800384c Section 0 main.o(.text.Error_Handler) [Anonymous Symbol] 0x08003854 Section 0 gimbal.o(.text.Gimbal_Control) - [Anonymous Symbol] 0x08003c3c Section 0 gimbal.o(.text.Gimbal_Init) - [Anonymous Symbol] 0x08003e14 Section 0 gimbal.o(.text.Gimbal_Output) - Gimbal_SetMode 0x08003f29 Thumb Code 180 gimbal.o(.text.Gimbal_SetMode) - [Anonymous Symbol] 0x08003f28 Section 0 gimbal.o(.text.Gimbal_SetMode) - [Anonymous Symbol] 0x08003fdc Section 0 gimbal.o(.text.Gimbal_UpdateFeedback) - [Anonymous Symbol] 0x08004144 Section 0 gimbal.o(.text.Gimbal_UpdateIMU) - [Anonymous Symbol] 0x08004190 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_ActivateNotification) - [Anonymous Symbol] 0x080041e4 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_AddTxMessage) - [Anonymous Symbol] 0x0800433c Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_ConfigFilter) - [Anonymous Symbol] 0x080044dc Section 0 can_1.o(.text.HAL_CAN_ErrorCallback) - [Anonymous Symbol] 0x0800452c Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxFifoFillLevel) - [Anonymous Symbol] 0x08004580 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxMessage) - [Anonymous Symbol] 0x08004794 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetTxMailboxesFreeLevel) - [Anonymous Symbol] 0x08004804 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_IRQHandler) - [Anonymous Symbol] 0x08004bf8 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_Init) - [Anonymous Symbol] 0x08004dd8 Section 0 can.o(.text.HAL_CAN_MspInit) - [Anonymous Symbol] 0x08004fa8 Section 0 can_1.o(.text.HAL_CAN_RxFifo0FullCallback) - [Anonymous Symbol] 0x08004ff8 Section 0 can_1.o(.text.HAL_CAN_RxFifo0MsgPendingCallback) - [Anonymous Symbol] 0x08005048 Section 0 can_1.o(.text.HAL_CAN_RxFifo1FullCallback) - [Anonymous Symbol] 0x08005098 Section 0 can_1.o(.text.HAL_CAN_RxFifo1MsgPendingCallback) - [Anonymous Symbol] 0x080050e8 Section 0 can_1.o(.text.HAL_CAN_SleepCallback) - [Anonymous Symbol] 0x08005138 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_Start) - [Anonymous Symbol] 0x080051c4 Section 0 can_1.o(.text.HAL_CAN_TxMailbox0AbortCallback) - [Anonymous Symbol] 0x08005214 Section 0 can_1.o(.text.HAL_CAN_TxMailbox0CompleteCallback) - [Anonymous Symbol] 0x08005260 Section 0 can_1.o(.text.HAL_CAN_TxMailbox1AbortCallback) - [Anonymous Symbol] 0x080052b0 Section 0 can_1.o(.text.HAL_CAN_TxMailbox1CompleteCallback) - [Anonymous Symbol] 0x08005300 Section 0 can_1.o(.text.HAL_CAN_TxMailbox2AbortCallback) - [Anonymous Symbol] 0x08005350 Section 0 can_1.o(.text.HAL_CAN_TxMailbox2CompleteCallback) - [Anonymous Symbol] 0x080053a0 Section 0 can_1.o(.text.HAL_CAN_WakeUpFromRxMsgCallback) - [Anonymous Symbol] 0x080053f0 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort) - [Anonymous Symbol] 0x080054dc Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort_IT) - [Anonymous Symbol] 0x08005520 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_GetState) - [Anonymous Symbol] 0x08005530 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_IRQHandler) - [Anonymous Symbol] 0x08005850 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Init) - [Anonymous Symbol] 0x080059c0 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Start_IT) - [Anonymous Symbol] 0x08005a84 Section 0 stm32f4xx_hal.o(.text.HAL_Delay) - [Anonymous Symbol] 0x08005ac8 Section 0 gpio_1.o(.text.HAL_GPIO_EXTI_Callback) - [Anonymous Symbol] 0x08005b30 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_EXTI_IRQHandler) - [Anonymous Symbol] 0x08005b68 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_Init) - [Anonymous Symbol] 0x08005f20 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_ReadPin) - [Anonymous Symbol] 0x08005f50 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_WritePin) - [Anonymous Symbol] 0x08005f80 Section 0 stm32f4xx_hal.o(.text.HAL_GetTick) - [Anonymous Symbol] 0x08005f8c Section 0 i2c_1.o(.text.HAL_I2C_AbortCpltCallback) - [Anonymous Symbol] 0x08005fe0 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_AddrCallback) - [Anonymous Symbol] 0x08005ff0 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_ER_IRQHandler) - [Anonymous Symbol] 0x0800616c Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_EV_IRQHandler) - [Anonymous Symbol] 0x08006538 Section 0 i2c_1.o(.text.HAL_I2C_ErrorCallback) - [Anonymous Symbol] 0x0800658c Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_Init) - [Anonymous Symbol] 0x08006830 Section 0 i2c_1.o(.text.HAL_I2C_ListenCpltCallback) - [Anonymous Symbol] 0x08006884 Section 0 i2c_1.o(.text.HAL_I2C_MasterRxCpltCallback) - [Anonymous Symbol] 0x080068d8 Section 0 i2c_1.o(.text.HAL_I2C_MasterTxCpltCallback) - [Anonymous Symbol] 0x08006928 Section 0 i2c_1.o(.text.HAL_I2C_MemRxCpltCallback) - [Anonymous Symbol] 0x0800697c Section 0 i2c_1.o(.text.HAL_I2C_MemTxCpltCallback) - [Anonymous Symbol] 0x080069d0 Section 0 i2c.o(.text.HAL_I2C_MspInit) - [Anonymous Symbol] 0x08006b04 Section 0 i2c_1.o(.text.HAL_I2C_SlaveRxCpltCallback) - [Anonymous Symbol] 0x08006b58 Section 0 i2c_1.o(.text.HAL_I2C_SlaveTxCpltCallback) - [Anonymous Symbol] 0x08006bac Section 0 stm32f4xx_hal.o(.text.HAL_IncTick) - [Anonymous Symbol] 0x08006bc8 Section 0 stm32f4xx_hal.o(.text.HAL_Init) - [Anonymous Symbol] 0x08006c00 Section 0 stm32f4xx_hal.o(.text.HAL_InitTick) - [Anonymous Symbol] 0x08006c70 Section 0 stm32f4xx_hal_msp.o(.text.HAL_MspInit) - [Anonymous Symbol] 0x08006cc8 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_DisableIRQ) - [Anonymous Symbol] 0x08006cdc Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ) - [Anonymous Symbol] 0x08006cf0 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) - [Anonymous Symbol] 0x08006d24 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) - [Anonymous Symbol] 0x08006d34 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) - [Anonymous Symbol] 0x08006f98 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) - [Anonymous Symbol] 0x08006fa4 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) - [Anonymous Symbol] 0x08006fc8 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) - [Anonymous Symbol] 0x08006fec Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) - [Anonymous Symbol] 0x080070d4 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_OscConfig) - [Anonymous Symbol] 0x08007794 Section 0 spi_1.o(.text.HAL_SPI_ErrorCallback) - [Anonymous Symbol] 0x080077e8 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Init) - [Anonymous Symbol] 0x080078e8 Section 0 spi.o(.text.HAL_SPI_MspInit) - [Anonymous Symbol] 0x08007af8 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive) - [Anonymous Symbol] 0x08007d48 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive_DMA) - [Anonymous Symbol] 0x08007ee0 Section 0 spi_1.o(.text.HAL_SPI_RxCpltCallback) - [Anonymous Symbol] 0x08007f34 Section 0 spi_1.o(.text.HAL_SPI_RxHalfCpltCallback) - [Anonymous Symbol] 0x08007f88 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit) - [Anonymous Symbol] 0x0800822c Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive) - [Anonymous Symbol] 0x080085d0 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive_DMA) - [Anonymous Symbol] 0x080087e4 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit_DMA) - [Anonymous Symbol] 0x08008950 Section 0 spi_1.o(.text.HAL_SPI_TxCpltCallback) - [Anonymous Symbol] 0x08008998 Section 0 spi_1.o(.text.HAL_SPI_TxHalfCpltCallback) - [Anonymous Symbol] 0x080089ec Section 0 spi_1.o(.text.HAL_SPI_TxRxCpltCallback) - [Anonymous Symbol] 0x08008a40 Section 0 spi_1.o(.text.HAL_SPI_TxRxHalfCpltCallback) - [Anonymous Symbol] 0x08008a94 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_SYSTICK_Config) - [Anonymous Symbol] 0x08008aa4 Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_BreakCallback) - [Anonymous Symbol] 0x08008aac Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_CommutCallback) - [Anonymous Symbol] 0x08008ab4 Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) - [Anonymous Symbol] 0x08008bd8 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_Base_Init) - [Anonymous Symbol] 0x08008c74 Section 0 tim.o(.text.HAL_TIM_Base_MspInit) - [Anonymous Symbol] 0x08008d00 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_IC_CaptureCallback) - [Anonymous Symbol] 0x08008d08 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_IRQHandler) - [Anonymous Symbol] 0x08008f24 Section 0 tim.o(.text.HAL_TIM_MspPostInit) - [Anonymous Symbol] 0x08008f90 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_OC_DelayElapsedCallback) - [Anonymous Symbol] 0x08008f98 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel) - [Anonymous Symbol] 0x080090dc Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Init) - [Anonymous Symbol] 0x08009178 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit) - [Anonymous Symbol] 0x08009180 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_PulseFinishedCallback) - [Anonymous Symbol] 0x08009188 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Start) - [Anonymous Symbol] 0x08009354 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PeriodElapsedCallback) - [Anonymous Symbol] 0x0800935c Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_TriggerCallback) - [Anonymous Symbol] 0x08009364 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) - [Anonymous Symbol] 0x08009370 Section 0 uart.o(.text.HAL_UART_ErrorCallback) - [Anonymous Symbol] 0x080093c4 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler) - [Anonymous Symbol] 0x08009820 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_Init) - [Anonymous Symbol] 0x080098c0 Section 0 usart.o(.text.HAL_UART_MspInit) - [Anonymous Symbol] 0x08009a8c Section 0 uart.o(.text.HAL_UART_RxCpltCallback) - [Anonymous Symbol] 0x08009ae0 Section 0 uart.o(.text.HAL_UART_TxCpltCallback) - [Anonymous Symbol] 0x08009b34 Section 0 stm32f4xx_it.o(.text.HardFault_Handler) - [Anonymous Symbol] 0x08009b38 Section 0 stm32f4xx_it.o(.text.I2C1_ER_IRQHandler) - [Anonymous Symbol] 0x08009b48 Section 0 stm32f4xx_it.o(.text.I2C1_EV_IRQHandler) - I2C_ConvertOtherXferOptions 0x08009b59 Thumb Code 52 stm32f4xx_hal_i2c.o(.text.I2C_ConvertOtherXferOptions) - [Anonymous Symbol] 0x08009b58 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_ConvertOtherXferOptions) - I2C_DMAAbort 0x08009b8d Thumb Code 342 stm32f4xx_hal_i2c.o(.text.I2C_DMAAbort) - [Anonymous Symbol] 0x08009b8c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_DMAAbort) - I2C_Flush_DR 0x08009ce5 Thumb Code 36 stm32f4xx_hal_i2c.o(.text.I2C_Flush_DR) - [Anonymous Symbol] 0x08009ce4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Flush_DR) - I2C_Get 0x08009d09 Thumb Code 72 i2c_1.o(.text.I2C_Get) - [Anonymous Symbol] 0x08009d08 Section 0 i2c_1.o(.text.I2C_Get) - I2C_ITError 0x08009d51 Thumb Code 634 stm32f4xx_hal_i2c.o(.text.I2C_ITError) - [Anonymous Symbol] 0x08009d50 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_ITError) - I2C_MasterReceive_BTF 0x08009fcd Thumb Code 428 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_BTF) - [Anonymous Symbol] 0x08009fcc Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_BTF) - I2C_MasterReceive_RXNE 0x0800a179 Thumb Code 362 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_RXNE) - [Anonymous Symbol] 0x0800a178 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_RXNE) - I2C_MasterTransmit_BTF 0x0800a2e5 Thumb Code 222 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_BTF) - [Anonymous Symbol] 0x0800a2e4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_BTF) - I2C_MasterTransmit_TXE 0x0800a3c5 Thumb Code 318 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_TXE) - [Anonymous Symbol] 0x0800a3c4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_TXE) - I2C_Master_ADD10 0x0800a505 Thumb Code 70 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADD10) - [Anonymous Symbol] 0x0800a504 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADD10) - I2C_Master_ADDR 0x0800a54d Thumb Code 830 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADDR) - [Anonymous Symbol] 0x0800a54c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADDR) - I2C_Master_SB 0x0800a88d Thumb Code 240 stm32f4xx_hal_i2c.o(.text.I2C_Master_SB) - [Anonymous Symbol] 0x0800a88c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_SB) - I2C_MemoryTransmit_TXE_BTF 0x0800a97d Thumb Code 296 stm32f4xx_hal_i2c.o(.text.I2C_MemoryTransmit_TXE_BTF) - [Anonymous Symbol] 0x0800a97c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MemoryTransmit_TXE_BTF) - I2C_SlaveReceive_BTF 0x0800aaa5 Thumb Code 46 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_BTF) - [Anonymous Symbol] 0x0800aaa4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_BTF) - I2C_SlaveReceive_RXNE 0x0800aad5 Thumb Code 110 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_RXNE) - [Anonymous Symbol] 0x0800aad4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_RXNE) - I2C_SlaveTransmit_BTF 0x0800ab45 Thumb Code 44 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_BTF) - [Anonymous Symbol] 0x0800ab44 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_BTF) - I2C_SlaveTransmit_TXE 0x0800ab71 Thumb Code 108 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_TXE) - [Anonymous Symbol] 0x0800ab70 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_TXE) - I2C_Slave_ADDR 0x0800abdd Thumb Code 174 stm32f4xx_hal_i2c.o(.text.I2C_Slave_ADDR) - [Anonymous Symbol] 0x0800abdc Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_ADDR) - I2C_Slave_AF 0x0800ac8d Thumb Code 228 stm32f4xx_hal_i2c.o(.text.I2C_Slave_AF) - [Anonymous Symbol] 0x0800ac8c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_AF) - I2C_Slave_STOPF 0x0800ad71 Thumb Code 586 stm32f4xx_hal_i2c.o(.text.I2C_Slave_STOPF) - [Anonymous Symbol] 0x0800ad70 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_STOPF) - I2C_WaitOnSTOPRequestThroughIT 0x0800afbd Thumb Code 120 stm32f4xx_hal_i2c.o(.text.I2C_WaitOnSTOPRequestThroughIT) - [Anonymous Symbol] 0x0800afbc Section 0 stm32f4xx_hal_i2c.o(.text.I2C_WaitOnSTOPRequestThroughIT) - [Anonymous Symbol] 0x0800b034 Section 0 user_math.o(.text.InvSqrt) - [Anonymous Symbol] 0x0800b0ac Section 0 filter.o(.text.LowPassFilter2p_Apply) - [Anonymous Symbol] 0x0800b164 Section 0 filter.o(.text.LowPassFilter2p_Init) - [Anonymous Symbol] 0x0800b2a0 Section 0 filter.o(.text.LowPassFilter2p_Reset) - MOTOR_DM_CreateCANManager 0x0800b335 Thumb Code 150 motor_dm.o(.text.MOTOR_DM_CreateCANManager) - [Anonymous Symbol] 0x0800b334 Section 0 motor_dm.o(.text.MOTOR_DM_CreateCANManager) - [Anonymous Symbol] 0x0800b3cc Section 0 motor_dm.o(.text.MOTOR_DM_Enable) - MOTOR_DM_GetCANManager 0x0800b449 Thumb Code 48 motor_dm.o(.text.MOTOR_DM_GetCANManager) - [Anonymous Symbol] 0x0800b448 Section 0 motor_dm.o(.text.MOTOR_DM_GetCANManager) - [Anonymous Symbol] 0x0800b478 Section 0 motor_dm.o(.text.MOTOR_DM_GetMotor) - [Anonymous Symbol] 0x0800b500 Section 0 motor_dm.o(.text.MOTOR_DM_MITCtrl) - MOTOR_DM_ParseFeedbackFrame 0x0800b549 Thumb Code 344 motor_dm.o(.text.MOTOR_DM_ParseFeedbackFrame) - [Anonymous Symbol] 0x0800b548 Section 0 motor_dm.o(.text.MOTOR_DM_ParseFeedbackFrame) - [Anonymous Symbol] 0x0800b6a0 Section 0 motor_dm.o(.text.MOTOR_DM_Register) - MOTOR_DM_SendMITCmd 0x0800b7cd Thumb Code 324 motor_dm.o(.text.MOTOR_DM_SendMITCmd) - [Anonymous Symbol] 0x0800b7cc Section 0 motor_dm.o(.text.MOTOR_DM_SendMITCmd) - [Anonymous Symbol] 0x0800b910 Section 0 motor_dm.o(.text.MOTOR_DM_Update) - MOTOR_RM_CreateCANManager 0x0800ba1d Thumb Code 150 motor_rm.o(.text.MOTOR_RM_CreateCANManager) - [Anonymous Symbol] 0x0800ba1c Section 0 motor_rm.o(.text.MOTOR_RM_CreateCANManager) - [Anonymous Symbol] 0x0800bab4 Section 0 motor_rm.o(.text.MOTOR_RM_Ctrl) - MOTOR_RM_GetCANManager 0x0800bc25 Thumb Code 48 motor_rm.o(.text.MOTOR_RM_GetCANManager) - [Anonymous Symbol] 0x0800bc24 Section 0 motor_rm.o(.text.MOTOR_RM_GetCANManager) - MOTOR_RM_GetLSB 0x0800bc55 Thumb Code 82 motor_rm.o(.text.MOTOR_RM_GetLSB) - [Anonymous Symbol] 0x0800bc54 Section 0 motor_rm.o(.text.MOTOR_RM_GetLSB) - MOTOR_RM_GetLogicalIndex 0x0800bca9 Thumb Code 128 motor_rm.o(.text.MOTOR_RM_GetLogicalIndex) - [Anonymous Symbol] 0x0800bca8 Section 0 motor_rm.o(.text.MOTOR_RM_GetLogicalIndex) - [Anonymous Symbol] 0x0800bd28 Section 0 motor_rm.o(.text.MOTOR_RM_GetMotor) - MOTOR_RM_GetRatio 0x0800bda1 Thumb Code 80 motor_rm.o(.text.MOTOR_RM_GetRatio) - [Anonymous Symbol] 0x0800bda0 Section 0 motor_rm.o(.text.MOTOR_RM_GetRatio) - [Anonymous Symbol] 0x0800bdf0 Section 0 motor_rm.o(.text.MOTOR_RM_Register) - [Anonymous Symbol] 0x0800bf10 Section 0 motor_rm.o(.text.MOTOR_RM_SetOutput) - [Anonymous Symbol] 0x0800c02c Section 0 motor_rm.o(.text.MOTOR_RM_Update) - [Anonymous Symbol] 0x0800c130 Section 0 can.o(.text.MX_CAN1_Init) - [Anonymous Symbol] 0x0800c180 Section 0 can.o(.text.MX_CAN2_Init) - [Anonymous Symbol] 0x0800c1d0 Section 0 dma.o(.text.MX_DMA_Init) - [Anonymous Symbol] 0x0800c258 Section 0 freertos.o(.text.MX_FREERTOS_Init) - [Anonymous Symbol] 0x0800c298 Section 0 gpio.o(.text.MX_GPIO_Init) - [Anonymous Symbol] 0x0800c4c4 Section 0 i2c.o(.text.MX_I2C1_Init) - [Anonymous Symbol] 0x0800c50c Section 0 i2c.o(.text.MX_I2C2_Init) - [Anonymous Symbol] 0x0800c554 Section 0 spi.o(.text.MX_SPI1_Init) - [Anonymous Symbol] 0x0800c5a8 Section 0 spi.o(.text.MX_SPI2_Init) - [Anonymous Symbol] 0x0800c5fc Section 0 tim.o(.text.MX_TIM10_Init) - [Anonymous Symbol] 0x0800c68c Section 0 tim.o(.text.MX_TIM7_Init) - [Anonymous Symbol] 0x0800c6e4 Section 0 usart.o(.text.MX_USART1_UART_Init) - [Anonymous Symbol] 0x0800c724 Section 0 usart.o(.text.MX_USART3_UART_Init) - [Anonymous Symbol] 0x0800c770 Section 0 stm32f4xx_it.o(.text.MemManage_Handler) - Motor_RM_Decode 0x0800c775 Thumb Code 540 motor_rm.o(.text.Motor_RM_Decode) - [Anonymous Symbol] 0x0800c774 Section 0 motor_rm.o(.text.Motor_RM_Decode) - [Anonymous Symbol] 0x0800c990 Section 0 stm32f4xx_it.o(.text.NMI_Handler) - NVIC_EncodePriority 0x0800c995 Thumb Code 108 stm32f4xx_hal_cortex.o(.text.NVIC_EncodePriority) - [Anonymous Symbol] 0x0800c994 Section 0 stm32f4xx_hal_cortex.o(.text.NVIC_EncodePriority) - [Anonymous Symbol] 0x0800ca00 Section 0 pid.o(.text.PID_Calc) - [Anonymous Symbol] 0x0800ccf0 Section 0 pid.o(.text.PID_Init) - [Anonymous Symbol] 0x0800ce88 Section 0 pid.o(.text.PID_Reset) - [Anonymous Symbol] 0x0800ced0 Section 0 port.o(.text.PendSV_Handler) - pxCurrentTCBConst 0x0800cf30 Number 0 port.o(.text.PendSV_Handler) - [Anonymous Symbol] 0x0800cf34 Section 0 bsp_rc.o(.text.RC_Init) - [Anonymous Symbol] 0x0800cfc8 Section 0 bsp_rc.o(.text.RC_restart) - SPI_DMAError 0x0800d025 Thumb Code 52 stm32f4xx_hal_spi.o(.text.SPI_DMAError) - [Anonymous Symbol] 0x0800d024 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAError) - SPI_DMAHalfReceiveCplt 0x0800d059 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfReceiveCplt) - [Anonymous Symbol] 0x0800d058 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfReceiveCplt) - SPI_DMAHalfTransmitCplt 0x0800d071 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitCplt) - [Anonymous Symbol] 0x0800d070 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitCplt) - SPI_DMAHalfTransmitReceiveCplt 0x0800d089 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitReceiveCplt) - [Anonymous Symbol] 0x0800d088 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitReceiveCplt) - SPI_DMAReceiveCplt 0x0800d0a1 Thumb Code 162 stm32f4xx_hal_spi.o(.text.SPI_DMAReceiveCplt) - [Anonymous Symbol] 0x0800d0a0 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAReceiveCplt) - SPI_DMATransmitCplt 0x0800d145 Thumb Code 166 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitCplt) - [Anonymous Symbol] 0x0800d144 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitCplt) - SPI_DMATransmitReceiveCplt 0x0800d1ed Thumb Code 134 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitReceiveCplt) - [Anonymous Symbol] 0x0800d1ec Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitReceiveCplt) - SPI_EndRxTransaction 0x0800d275 Thumb Code 228 stm32f4xx_hal_spi.o(.text.SPI_EndRxTransaction) - [Anonymous Symbol] 0x0800d274 Section 0 stm32f4xx_hal_spi.o(.text.SPI_EndRxTransaction) - SPI_EndRxTxTransaction 0x0800d359 Thumb Code 204 stm32f4xx_hal_spi.o(.text.SPI_EndRxTxTransaction) - [Anonymous Symbol] 0x0800d358 Section 0 stm32f4xx_hal_spi.o(.text.SPI_EndRxTxTransaction) - SPI_Get 0x0800d425 Thumb Code 46 spi_1.o(.text.SPI_Get) - [Anonymous Symbol] 0x0800d424 Section 0 spi_1.o(.text.SPI_Get) - SPI_WaitFlagStateUntilTimeout 0x0800d455 Thumb Code 300 stm32f4xx_hal_spi.o(.text.SPI_WaitFlagStateUntilTimeout) - [Anonymous Symbol] 0x0800d454 Section 0 stm32f4xx_hal_spi.o(.text.SPI_WaitFlagStateUntilTimeout) - [Anonymous Symbol] 0x0800d580 Section 0 port.o(.text.SVC_Handler) - pxCurrentTCBConst2 0x0800d5a0 Number 0 port.o(.text.SVC_Handler) - SVC_Setup 0x0800d5a5 Thumb Code 14 cmsis_os2.o(.text.SVC_Setup) - [Anonymous Symbol] 0x0800d5a4 Section 0 cmsis_os2.o(.text.SVC_Setup) - [Anonymous Symbol] 0x0800d5b4 Section 0 freertos.o(.text.StartDefaultTask) - SysTick_Config 0x0800d5c9 Thumb Code 82 stm32f4xx_hal_cortex.o(.text.SysTick_Config) - [Anonymous Symbol] 0x0800d5c8 Section 0 stm32f4xx_hal_cortex.o(.text.SysTick_Config) - [Anonymous Symbol] 0x0800d61c Section 0 stm32f4xx_it.o(.text.SysTick_Handler) - [Anonymous Symbol] 0x0800d634 Section 0 main.o(.text.SystemClock_Config) - [Anonymous Symbol] 0x0800d6f0 Section 0 system_stm32f4xx.o(.text.SystemInit) - [Anonymous Symbol] 0x0800d704 Section 0 stm32f4xx_it.o(.text.TIM7_IRQHandler) - [Anonymous Symbol] 0x0800d714 Section 0 stm32f4xx_hal_tim.o(.text.TIM_Base_SetConfig) - [Anonymous Symbol] 0x0800d8b8 Section 0 stm32f4xx_hal_tim.o(.text.TIM_CCxChannelCmd) - TIM_OC1_SetConfig 0x0800d8f1 Thumb Code 234 stm32f4xx_hal_tim.o(.text.TIM_OC1_SetConfig) - [Anonymous Symbol] 0x0800d8f0 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC1_SetConfig) - [Anonymous Symbol] 0x0800d9dc Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC2_SetConfig) - TIM_OC3_SetConfig 0x0800dad1 Thumb Code 242 stm32f4xx_hal_tim.o(.text.TIM_OC3_SetConfig) - [Anonymous Symbol] 0x0800dad0 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC3_SetConfig) - TIM_OC4_SetConfig 0x0800dbc5 Thumb Code 164 stm32f4xx_hal_tim.o(.text.TIM_OC4_SetConfig) - [Anonymous Symbol] 0x0800dbc4 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC4_SetConfig) - [Anonymous Symbol] 0x0800dc68 Section 0 init.o(.text.Task_Init) - [Anonymous Symbol] 0x0800dd20 Section 0 atti_esti.o(.text.Task_atti_esti) - [Anonymous Symbol] 0x0800deb0 Section 0 gimbal_ctrl.o(.text.Task_gimbal_ctrl) - [Anonymous Symbol] 0x0800df90 Section 0 remote.o(.text.Task_remote) - UART_DMAAbortOnError 0x0800e031 Thumb Code 28 stm32f4xx_hal_uart.o(.text.UART_DMAAbortOnError) - [Anonymous Symbol] 0x0800e030 Section 0 stm32f4xx_hal_uart.o(.text.UART_DMAAbortOnError) - UART_EndRxTransfer 0x0800e04d Thumb Code 148 stm32f4xx_hal_uart.o(.text.UART_EndRxTransfer) - [Anonymous Symbol] 0x0800e04c Section 0 stm32f4xx_hal_uart.o(.text.UART_EndRxTransfer) - UART_EndTransmit_IT 0x0800e0e1 Thumb Code 38 stm32f4xx_hal_uart.o(.text.UART_EndTransmit_IT) - [Anonymous Symbol] 0x0800e0e0 Section 0 stm32f4xx_hal_uart.o(.text.UART_EndTransmit_IT) - UART_Get 0x0800e109 Thumb Code 46 uart.o(.text.UART_Get) - [Anonymous Symbol] 0x0800e108 Section 0 uart.o(.text.UART_Get) - UART_Receive_IT 0x0800e139 Thumb Code 360 stm32f4xx_hal_uart.o(.text.UART_Receive_IT) - [Anonymous Symbol] 0x0800e138 Section 0 stm32f4xx_hal_uart.o(.text.UART_Receive_IT) - UART_SetConfig 0x0800e2a1 Thumb Code 314 stm32f4xx_hal_uart.o(.text.UART_SetConfig) - [Anonymous Symbol] 0x0800e2a0 Section 0 stm32f4xx_hal_uart.o(.text.UART_SetConfig) - UART_Transmit_IT 0x0800e3dd Thumb Code 148 stm32f4xx_hal_uart.o(.text.UART_Transmit_IT) - [Anonymous Symbol] 0x0800e3dc Section 0 stm32f4xx_hal_uart.o(.text.UART_Transmit_IT) - [Anonymous Symbol] 0x0800e470 Section 0 stm32f4xx_it.o(.text.USART3_IRQHandler) - [Anonymous Symbol] 0x0800e490 Section 0 remote_control.o(.text.USART3_IRQHandler1) - [Anonymous Symbol] 0x0800e4b4 Section 0 stm32f4xx_it.o(.text.UsageFault_Handler) - __ARM_isfinite 0x0800e4b9 Thumb Code 30 filter.o(.text.__ARM_isfinite) - [Anonymous Symbol] 0x0800e4b8 Section 0 filter.o(.text.__ARM_isfinite) - __ARM_isfinite 0x0800e4d9 Thumb Code 30 pid.o(.text.__ARM_isfinite) - [Anonymous Symbol] 0x0800e4d8 Section 0 pid.o(.text.__ARM_isfinite) - __ARM_isfinitef 0x0800e4f9 Thumb Code 24 filter.o(.text.__ARM_isfinitef) - [Anonymous Symbol] 0x0800e4f8 Section 0 filter.o(.text.__ARM_isfinitef) - __ARM_isfinitef 0x0800e511 Thumb Code 24 pid.o(.text.__ARM_isfinitef) - [Anonymous Symbol] 0x0800e510 Section 0 pid.o(.text.__ARM_isfinitef) - __ARM_isinf 0x0800e529 Thumb Code 52 filter.o(.text.__ARM_isinf) - [Anonymous Symbol] 0x0800e528 Section 0 filter.o(.text.__ARM_isinf) - __ARM_isinff 0x0800e55d Thumb Code 28 filter.o(.text.__ARM_isinff) - [Anonymous Symbol] 0x0800e55c Section 0 filter.o(.text.__ARM_isinff) - __NVIC_DisableIRQ 0x0800e579 Thumb Code 56 stm32f4xx_hal_cortex.o(.text.__NVIC_DisableIRQ) - [Anonymous Symbol] 0x0800e578 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_DisableIRQ) - __NVIC_EnableIRQ 0x0800e5b1 Thumb Code 48 stm32f4xx_hal_cortex.o(.text.__NVIC_EnableIRQ) - [Anonymous Symbol] 0x0800e5b0 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_EnableIRQ) - __NVIC_GetPriorityGrouping 0x0800e5e1 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) - [Anonymous Symbol] 0x0800e5e0 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) - __NVIC_SetPriority 0x0800e5f1 Thumb Code 66 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriority) - [Anonymous Symbol] 0x0800e5f0 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriority) - __NVIC_SetPriority 0x0800e635 Thumb Code 66 cmsis_os2.o(.text.__NVIC_SetPriority) - [Anonymous Symbol] 0x0800e634 Section 0 cmsis_os2.o(.text.__NVIC_SetPriority) - __NVIC_SetPriorityGrouping 0x0800e679 Thumb Code 60 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) - [Anonymous Symbol] 0x0800e678 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) - [Anonymous Symbol] 0x0800e6b4 Section 0 freertos.o(.text.configureTimerForRunTimeStats) - copysignf 0x0800e6b9 Thumb Code 30 ahrs.o(.text.copysignf) - [Anonymous Symbol] 0x0800e6b8 Section 0 ahrs.o(.text.copysignf) - [Anonymous Symbol] 0x0800e6d8 Section 0 bsp_delay.o(.text.delay_init) - [Anonymous Symbol] 0x0800e718 Section 0 tasks.o(.text.eTaskGetState) - float_to_uint 0x0800e811 Thumb Code 88 motor_dm.o(.text.float_to_uint) - [Anonymous Symbol] 0x0800e810 Section 0 motor_dm.o(.text.float_to_uint) - [Anonymous Symbol] 0x0800e868 Section 0 freertos.o(.text.getRunTimeCounterValue) - [Anonymous Symbol] 0x0800e86c Section 0 main.o(.text.main) - [Anonymous Symbol] 0x0800e8bc Section 0 calc_lib.o(.text.map) - [Anonymous Symbol] 0x0800e8e8 Section 0 cmsis_os2.o(.text.osDelay) - [Anonymous Symbol] 0x0800e91c Section 0 cmsis_os2.o(.text.osDelayUntil) - [Anonymous Symbol] 0x0800e974 Section 0 cmsis_os2.o(.text.osKernelGetState) - [Anonymous Symbol] 0x0800e9c8 Section 0 cmsis_os2.o(.text.osKernelGetTickCount) - [Anonymous Symbol] 0x0800e9f0 Section 0 cmsis_os2.o(.text.osKernelGetTickFreq) - [Anonymous Symbol] 0x0800e9f8 Section 0 cmsis_os2.o(.text.osKernelInitialize) - [Anonymous Symbol] 0x0800ea40 Section 0 cmsis_os2.o(.text.osKernelLock) - [Anonymous Symbol] 0x0800ea98 Section 0 cmsis_os2.o(.text.osKernelStart) - [Anonymous Symbol] 0x0800eaec Section 0 cmsis_os2.o(.text.osKernelUnlock) - [Anonymous Symbol] 0x0800eb5c Section 0 cmsis_os2.o(.text.osMessageQueueGet) - [Anonymous Symbol] 0x0800ec1c Section 0 cmsis_os2.o(.text.osMessageQueueNew) - [Anonymous Symbol] 0x0800ed1c Section 0 cmsis_os2.o(.text.osMessageQueuePut) - [Anonymous Symbol] 0x0800ede0 Section 0 cmsis_os2.o(.text.osMessageQueueReset) - [Anonymous Symbol] 0x0800ee20 Section 0 cmsis_os2.o(.text.osMutexAcquire) - [Anonymous Symbol] 0x0800eec0 Section 0 cmsis_os2.o(.text.osMutexNew) - [Anonymous Symbol] 0x0800efe8 Section 0 cmsis_os2.o(.text.osMutexRelease) - [Anonymous Symbol] 0x0800f068 Section 0 cmsis_os2.o(.text.osThreadFlagsSet) - [Anonymous Symbol] 0x0800f10c Section 0 cmsis_os2.o(.text.osThreadFlagsWait) - [Anonymous Symbol] 0x0800f228 Section 0 cmsis_os2.o(.text.osThreadGetId) - [Anonymous Symbol] 0x0800f238 Section 0 cmsis_os2.o(.text.osThreadNew) - [Anonymous Symbol] 0x0800f394 Section 0 cmsis_os2.o(.text.osThreadTerminate) - prvAddCurrentTaskToDelayedList 0x0800f3f5 Thumb Code 212 tasks.o(.text.prvAddCurrentTaskToDelayedList) - [Anonymous Symbol] 0x0800f3f4 Section 0 tasks.o(.text.prvAddCurrentTaskToDelayedList) - prvAddNewTaskToReadyList 0x0800f4c9 Thumb Code 290 tasks.o(.text.prvAddNewTaskToReadyList) - [Anonymous Symbol] 0x0800f4c8 Section 0 tasks.o(.text.prvAddNewTaskToReadyList) - prvCheckForValidListAndQueue 0x0800f5ed Thumb Code 162 timers.o(.text.prvCheckForValidListAndQueue) - [Anonymous Symbol] 0x0800f5ec Section 0 timers.o(.text.prvCheckForValidListAndQueue) - prvCheckTasksWaitingTermination 0x0800f691 Thumb Code 90 tasks.o(.text.prvCheckTasksWaitingTermination) - [Anonymous Symbol] 0x0800f690 Section 0 tasks.o(.text.prvCheckTasksWaitingTermination) - prvCopyDataFromQueue 0x0800f6ed Thumb Code 66 queue.o(.text.prvCopyDataFromQueue) - [Anonymous Symbol] 0x0800f6ec Section 0 queue.o(.text.prvCopyDataFromQueue) - prvCopyDataToQueue 0x0800f731 Thumb Code 204 queue.o(.text.prvCopyDataToQueue) - [Anonymous Symbol] 0x0800f730 Section 0 queue.o(.text.prvCopyDataToQueue) - prvDeleteTCB 0x0800f7fd Thumb Code 94 tasks.o(.text.prvDeleteTCB) - [Anonymous Symbol] 0x0800f7fc Section 0 tasks.o(.text.prvDeleteTCB) - prvGetDisinheritPriorityAfterTimeout 0x0800f85d Thumb Code 38 queue.o(.text.prvGetDisinheritPriorityAfterTimeout) - [Anonymous Symbol] 0x0800f85c Section 0 queue.o(.text.prvGetDisinheritPriorityAfterTimeout) - prvGetNextExpireTime 0x0800f885 Thumb Code 64 timers.o(.text.prvGetNextExpireTime) - [Anonymous Symbol] 0x0800f884 Section 0 timers.o(.text.prvGetNextExpireTime) - prvHeapInit 0x0800f8c5 Thumb Code 188 heap_4.o(.text.prvHeapInit) - [Anonymous Symbol] 0x0800f8c4 Section 0 heap_4.o(.text.prvHeapInit) - prvIdleTask 0x0800f981 Thumb Code 56 tasks.o(.text.prvIdleTask) - [Anonymous Symbol] 0x0800f980 Section 0 tasks.o(.text.prvIdleTask) - prvInitialiseMutex 0x0800f9b9 Thumb Code 44 queue.o(.text.prvInitialiseMutex) - [Anonymous Symbol] 0x0800f9b8 Section 0 queue.o(.text.prvInitialiseMutex) - prvInitialiseNewQueue 0x0800f9e5 Thumb Code 72 queue.o(.text.prvInitialiseNewQueue) - [Anonymous Symbol] 0x0800f9e4 Section 0 queue.o(.text.prvInitialiseNewQueue) - prvInitialiseNewTask 0x0800fa2d Thumb Code 300 tasks.o(.text.prvInitialiseNewTask) - [Anonymous Symbol] 0x0800fa2c Section 0 tasks.o(.text.prvInitialiseNewTask) - prvInitialiseTaskLists 0x0800fb59 Thumb Code 142 tasks.o(.text.prvInitialiseTaskLists) - [Anonymous Symbol] 0x0800fb58 Section 0 tasks.o(.text.prvInitialiseTaskLists) - prvInsertBlockIntoFreeList 0x0800fbe9 Thumb Code 198 heap_4.o(.text.prvInsertBlockIntoFreeList) - [Anonymous Symbol] 0x0800fbe8 Section 0 heap_4.o(.text.prvInsertBlockIntoFreeList) - prvInsertTimerInActiveList 0x0800fcb1 Thumb Code 134 timers.o(.text.prvInsertTimerInActiveList) - [Anonymous Symbol] 0x0800fcb0 Section 0 timers.o(.text.prvInsertTimerInActiveList) - prvIsQueueEmpty 0x0800fd39 Thumb Code 40 queue.o(.text.prvIsQueueEmpty) - [Anonymous Symbol] 0x0800fd38 Section 0 queue.o(.text.prvIsQueueEmpty) - prvIsQueueFull 0x0800fd61 Thumb Code 46 queue.o(.text.prvIsQueueFull) - [Anonymous Symbol] 0x0800fd60 Section 0 queue.o(.text.prvIsQueueFull) - prvPortStartFirstTask 0x0800fd91 Thumb Code 34 port.o(.text.prvPortStartFirstTask) - [Anonymous Symbol] 0x0800fd90 Section 0 port.o(.text.prvPortStartFirstTask) - prvProcessExpiredTimer 0x0800fdb9 Thumb Code 142 timers.o(.text.prvProcessExpiredTimer) - [Anonymous Symbol] 0x0800fdb8 Section 0 timers.o(.text.prvProcessExpiredTimer) - prvProcessReceivedCommands 0x0800fe49 Thumb Code 402 timers.o(.text.prvProcessReceivedCommands) - [Anonymous Symbol] 0x0800fe48 Section 0 timers.o(.text.prvProcessReceivedCommands) - prvProcessTimerOrBlockTask 0x0800ffdd Thumb Code 154 timers.o(.text.prvProcessTimerOrBlockTask) - [Anonymous Symbol] 0x0800ffdc Section 0 timers.o(.text.prvProcessTimerOrBlockTask) - prvResetNextTaskUnblockTime 0x08010079 Thumb Code 70 tasks.o(.text.prvResetNextTaskUnblockTime) - [Anonymous Symbol] 0x08010078 Section 0 tasks.o(.text.prvResetNextTaskUnblockTime) - prvSampleTimeNow 0x080100c1 Thumb Code 68 timers.o(.text.prvSampleTimeNow) - [Anonymous Symbol] 0x080100c0 Section 0 timers.o(.text.prvSampleTimeNow) - prvSwitchTimerLists 0x08010105 Thumb Code 212 timers.o(.text.prvSwitchTimerLists) - [Anonymous Symbol] 0x08010104 Section 0 timers.o(.text.prvSwitchTimerLists) - prvTaskExitError 0x080101d9 Thumb Code 76 port.o(.text.prvTaskExitError) - [Anonymous Symbol] 0x080101d8 Section 0 port.o(.text.prvTaskExitError) - prvTimerTask 0x08010225 Thumb Code 30 timers.o(.text.prvTimerTask) - [Anonymous Symbol] 0x08010224 Section 0 timers.o(.text.prvTimerTask) - prvUnlockQueue 0x08010245 Thumb Code 174 queue.o(.text.prvUnlockQueue) - [Anonymous Symbol] 0x08010244 Section 0 queue.o(.text.prvUnlockQueue) - [Anonymous Symbol] 0x080102f4 Section 0 heap_4.o(.text.pvPortMalloc) - [Anonymous Symbol] 0x080104e0 Section 0 tasks.o(.text.pvTaskIncrementMutexHeldCount) - [Anonymous Symbol] 0x0801050c Section 0 port.o(.text.pxPortInitialiseStack) - [Anonymous Symbol] 0x08010570 Section 0 ai.o(.text.remote_ParseHost) - [Anonymous Symbol] 0x08010620 Section 0 remote_control.o(.text.remote_control_init) - sbus_to_rc 0x08010639 Thumb Code 656 remote_control.o(.text.sbus_to_rc) - [Anonymous Symbol] 0x08010638 Section 0 remote_control.o(.text.sbus_to_rc) - uint_to_float 0x080108c9 Thumb Code 82 motor_dm.o(.text.uint_to_float) - [Anonymous Symbol] 0x080108c8 Section 0 motor_dm.o(.text.uint_to_float) - [Anonymous Symbol] 0x0801091c Section 0 calc_lib.o(.text.user_delay_ms) - [Anonymous Symbol] 0x0801094c Section 0 calc_lib.o(.text.user_delay_us) - [Anonymous Symbol] 0x08010990 Section 0 list.o(.text.uxListRemove) - [Anonymous Symbol] 0x080109d8 Section 0 cmsis_os2.o(.text.vApplicationGetIdleTaskMemory) - [Anonymous Symbol] 0x08010a04 Section 0 cmsis_os2.o(.text.vApplicationGetTimerTaskMemory) - [Anonymous Symbol] 0x08010a30 Section 0 freertos.o(.text.vApplicationStackOverflowHook) - [Anonymous Symbol] 0x08010a3c Section 0 list.o(.text.vListInitialise) - [Anonymous Symbol] 0x08010a6c Section 0 list.o(.text.vListInitialiseItem) - [Anonymous Symbol] 0x08010a7c Section 0 list.o(.text.vListInsert) - [Anonymous Symbol] 0x08010ae8 Section 0 list.o(.text.vListInsertEnd) - vPortEnableVFP 0x08010b25 Thumb Code 14 port.o(.text.vPortEnableVFP) - [Anonymous Symbol] 0x08010b24 Section 0 port.o(.text.vPortEnableVFP) - [Anonymous Symbol] 0x08010b38 Section 0 port.o(.text.vPortEnterCritical) - [Anonymous Symbol] 0x08010b90 Section 0 port.o(.text.vPortExitCritical) - [Anonymous Symbol] 0x08010bdc Section 0 heap_4.o(.text.vPortFree) - [Anonymous Symbol] 0x08010cac Section 0 port.o(.text.vPortSetupTimerInterrupt) - [Anonymous Symbol] 0x08010cf0 Section 0 port.o(.text.vPortValidateInterruptPriority) - [Anonymous Symbol] 0x08010d74 Section 0 queue.o(.text.vQueueAddToRegistry) - [Anonymous Symbol] 0x08010dc8 Section 0 queue.o(.text.vQueueWaitForMessageRestricted) - [Anonymous Symbol] 0x08010e2c Section 0 tasks.o(.text.vTaskDelay) - [Anonymous Symbol] 0x08010e9c Section 0 tasks.o(.text.vTaskDelayUntil) - [Anonymous Symbol] 0x08010fb0 Section 0 tasks.o(.text.vTaskDelete) - [Anonymous Symbol] 0x080110c0 Section 0 tasks.o(.text.vTaskInternalSetTimeOutState) - [Anonymous Symbol] 0x080110e4 Section 0 tasks.o(.text.vTaskMissedYield) - [Anonymous Symbol] 0x080110f4 Section 0 tasks.o(.text.vTaskPlaceOnEventList) - [Anonymous Symbol] 0x08011138 Section 0 tasks.o(.text.vTaskPlaceOnEventListRestricted) - [Anonymous Symbol] 0x0801118c Section 0 tasks.o(.text.vTaskPriorityDisinheritAfterTimeout) - [Anonymous Symbol] 0x080112c0 Section 0 tasks.o(.text.vTaskStartScheduler) - [Anonymous Symbol] 0x080113a4 Section 0 tasks.o(.text.vTaskSuspendAll) - [Anonymous Symbol] 0x080113b4 Section 0 tasks.o(.text.vTaskSwitchContext) - [Anonymous Symbol] 0x08011534 Section 0 port.o(.text.xPortStartScheduler) - [Anonymous Symbol] 0x0801168c Section 0 port.o(.text.xPortSysTickHandler) - [Anonymous Symbol] 0x080116c8 Section 0 queue.o(.text.xQueueCreateMutex) - [Anonymous Symbol] 0x080116f0 Section 0 queue.o(.text.xQueueCreateMutexStatic) - [Anonymous Symbol] 0x08011724 Section 0 queue.o(.text.xQueueGenericCreate) - [Anonymous Symbol] 0x08011798 Section 0 queue.o(.text.xQueueGenericCreateStatic) - [Anonymous Symbol] 0x080118a8 Section 0 queue.o(.text.xQueueGenericReset) - [Anonymous Symbol] 0x08011964 Section 0 queue.o(.text.xQueueGenericSend) - [Anonymous Symbol] 0x08011b90 Section 0 queue.o(.text.xQueueGenericSendFromISR) - [Anonymous Symbol] 0x08011cdc Section 0 queue.o(.text.xQueueGiveMutexRecursive) - [Anonymous Symbol] 0x08011d48 Section 0 queue.o(.text.xQueueReceive) - [Anonymous Symbol] 0x08011f24 Section 0 queue.o(.text.xQueueReceiveFromISR) - [Anonymous Symbol] 0x0801202c Section 0 queue.o(.text.xQueueSemaphoreTake) - [Anonymous Symbol] 0x08012258 Section 0 queue.o(.text.xQueueTakeMutexRecursive) - [Anonymous Symbol] 0x080122c8 Section 0 tasks.o(.text.xTaskCheckForTimeOut) - [Anonymous Symbol] 0x08012394 Section 0 tasks.o(.text.xTaskCreate) - [Anonymous Symbol] 0x08012434 Section 0 tasks.o(.text.xTaskCreateStatic) - [Anonymous Symbol] 0x08012504 Section 0 tasks.o(.text.xTaskGenericNotify) - [Anonymous Symbol] 0x0801267c Section 0 tasks.o(.text.xTaskGenericNotifyFromISR) - [Anonymous Symbol] 0x08012840 Section 0 tasks.o(.text.xTaskGetCurrentTaskHandle) - [Anonymous Symbol] 0x08012854 Section 0 tasks.o(.text.xTaskGetSchedulerState) - [Anonymous Symbol] 0x0801288c Section 0 tasks.o(.text.xTaskGetTickCount) - [Anonymous Symbol] 0x080128a0 Section 0 tasks.o(.text.xTaskGetTickCountFromISR) - [Anonymous Symbol] 0x080128c0 Section 0 tasks.o(.text.xTaskIncrementTick) - [Anonymous Symbol] 0x08012a84 Section 0 tasks.o(.text.xTaskNotifyWait) - [Anonymous Symbol] 0x08012b5c Section 0 tasks.o(.text.xTaskPriorityDisinherit) - [Anonymous Symbol] 0x08012c48 Section 0 tasks.o(.text.xTaskPriorityInherit) - [Anonymous Symbol] 0x08012d58 Section 0 tasks.o(.text.xTaskRemoveFromEventList) - [Anonymous Symbol] 0x08012e28 Section 0 tasks.o(.text.xTaskResumeAll) - [Anonymous Symbol] 0x08012fb0 Section 0 timers.o(.text.xTimerCreateTimerTask) - [Anonymous Symbol] 0x08013044 Section 0 timers.o(.text.xTimerGenericCommand) - i.__ARM_fpclassify 0x080130f4 Section 0 fpclassify.o(i.__ARM_fpclassify) - i.__ARM_fpclassifyf 0x08013124 Section 0 fpclassifyf.o(i.__ARM_fpclassifyf) - i.__hardfp_asinf 0x0801314c Section 0 asinf.o(i.__hardfp_asinf) - i.__hardfp_atan 0x08013278 Section 0 atan.o(i.__hardfp_atan) - i.__hardfp_atan2 0x08013550 Section 0 atan2.o(i.__hardfp_atan2) - i.__hardfp_atan2f 0x08013750 Section 0 atan2f.o(i.__hardfp_atan2f) - i.__hardfp_cosf 0x080139fc Section 0 cosf.o(i.__hardfp_cosf) - i.__hardfp_tanf 0x08013b4c Section 0 tanf.o(i.__hardfp_tanf) - i.__kernel_poly 0x08013cc8 Section 0 poly.o(i.__kernel_poly) - i.__mathlib_dbl_infnan 0x08013dc0 Section 0 dunder.o(i.__mathlib_dbl_infnan) - i.__mathlib_dbl_infnan2 0x08013dd4 Section 0 dunder.o(i.__mathlib_dbl_infnan2) - i.__mathlib_dbl_underflow 0x08013de8 Section 0 dunder.o(i.__mathlib_dbl_underflow) - i.__mathlib_flt_infnan 0x08013e08 Section 0 funder.o(i.__mathlib_flt_infnan) - i.__mathlib_flt_infnan2 0x08013e0e Section 0 funder.o(i.__mathlib_flt_infnan2) - i.__mathlib_flt_invalid 0x08013e14 Section 0 funder.o(i.__mathlib_flt_invalid) - i.__mathlib_flt_underflow 0x08013e24 Section 0 funder.o(i.__mathlib_flt_underflow) - i.__mathlib_rredf2 0x08013e34 Section 0 rredf.o(i.__mathlib_rredf2) - i.atan 0x08013f88 Section 0 atan.o(i.atan) - i.fabs 0x08013f98 Section 0 fabs.o(i.fabs) - i.sqrtf 0x08013fb0 Section 0 sqrtf.o(i.sqrtf) - $v0 0x08013fee Number 0 basic.o(x$fpl$basic) - x$fpl$basic 0x08013fee Section 24 basic.o(x$fpl$basic) - $v0 0x08014008 Number 0 d2f.o(x$fpl$d2f) - x$fpl$d2f 0x08014008 Section 98 d2f.o(x$fpl$d2f) - $v0 0x0801406c Number 0 daddsub_clz.o(x$fpl$dadd) - x$fpl$dadd 0x0801406c Section 336 daddsub_clz.o(x$fpl$dadd) - _dadd1 0x0801407d Thumb Code 0 daddsub_clz.o(x$fpl$dadd) - $v0 0x080141bc Number 0 dcmpi.o(x$fpl$dcmpinf) - x$fpl$dcmpinf 0x080141bc Section 24 dcmpi.o(x$fpl$dcmpinf) - $v0 0x080141d4 Number 0 ddiv.o(x$fpl$ddiv) - x$fpl$ddiv 0x080141d4 Section 692 ddiv.o(x$fpl$ddiv) - ddiv_entry 0x080141db Thumb Code 0 ddiv.o(x$fpl$ddiv) - $v0 0x08014488 Number 0 deqf.o(x$fpl$deqf) - x$fpl$deqf 0x08014488 Section 120 deqf.o(x$fpl$deqf) - $v0 0x08014500 Number 0 dfix.o(x$fpl$dfix) - x$fpl$dfix 0x08014500 Section 94 dfix.o(x$fpl$dfix) - $v0 0x08014560 Number 0 dfixu.o(x$fpl$dfixu) - x$fpl$dfixu 0x08014560 Section 90 dfixu.o(x$fpl$dfixu) - $v0 0x080145ba Number 0 dflt_clz.o(x$fpl$dflt) - x$fpl$dflt 0x080145ba Section 46 dflt_clz.o(x$fpl$dflt) - $v0 0x080145e8 Number 0 dflt_clz.o(x$fpl$dfltu) - x$fpl$dfltu 0x080145e8 Section 38 dflt_clz.o(x$fpl$dfltu) - $v0 0x08014610 Number 0 dmul.o(x$fpl$dmul) - x$fpl$dmul 0x08014610 Section 340 dmul.o(x$fpl$dmul) - $v0 0x08014764 Number 0 dnaninf.o(x$fpl$dnaninf) - x$fpl$dnaninf 0x08014764 Section 156 dnaninf.o(x$fpl$dnaninf) - $v0 0x08014800 Number 0 dretinf.o(x$fpl$dretinf) - x$fpl$dretinf 0x08014800 Section 12 dretinf.o(x$fpl$dretinf) - $v0 0x0801480c Number 0 daddsub_clz.o(x$fpl$drsb) - x$fpl$drsb 0x0801480c Section 22 daddsub_clz.o(x$fpl$drsb) - $v0 0x08014824 Number 0 daddsub_clz.o(x$fpl$dsub) - x$fpl$dsub 0x08014824 Section 476 daddsub_clz.o(x$fpl$dsub) - _dsub1 0x08014835 Thumb Code 0 daddsub_clz.o(x$fpl$dsub) - $v0 0x08014a00 Number 0 f2d.o(x$fpl$f2d) - x$fpl$f2d 0x08014a00 Section 86 f2d.o(x$fpl$f2d) - $v0 0x08014a56 Number 0 ffltll_clz.o(x$fpl$ffltll) - x$fpl$ffltll 0x08014a56 Section 96 ffltll_clz.o(x$fpl$ffltll) - $v0 0x08014ab6 Number 0 fnaninf.o(x$fpl$fnaninf) - x$fpl$fnaninf 0x08014ab6 Section 140 fnaninf.o(x$fpl$fnaninf) - $v0 0x08014b42 Number 0 fpinit.o(x$fpl$fpinit) - x$fpl$fpinit 0x08014b42 Section 26 fpinit.o(x$fpl$fpinit) - $v0 0x08014b5c Number 0 fretinf.o(x$fpl$fretinf) - x$fpl$fretinf 0x08014b5c Section 10 fretinf.o(x$fpl$fretinf) - x$fpl$usenofp 0x08014b66 Section 0 usenofp.o(x$fpl$usenofp) - atanhi 0x08014b68 Data 32 atan.o(.constdata) - .constdata 0x08014b68 Section 152 atan.o(.constdata) - atanlo 0x08014b88 Data 32 atan.o(.constdata) - aTodd 0x08014ba8 Data 40 atan.o(.constdata) - aTeven 0x08014bd0 Data 48 atan.o(.constdata) - .constdata 0x08014c00 Section 8 qnan.o(.constdata) - twooverpi 0x08014c08 Data 32 rredf.o(.constdata) - .constdata 0x08014c08 Section 32 rredf.o(.constdata) - DMA_CalcBaseAndBitshift.flagBitshiftOffset 0x08014c40 Data 8 stm32f4xx_hal_dma.o(.rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset) - [Anonymous Symbol] 0x08014c40 Section 0 stm32f4xx_hal_dma.o(.rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset) - GPIO_Map 0x08014c48 Data 56 gpio_1.o(.rodata.GPIO_Map) - [Anonymous Symbol] 0x08014c48 Section 0 gpio_1.o(.rodata.GPIO_Map) - PWM_Map 0x08014c80 Data 8 pwm.o(.rodata.PWM_Map) - [Anonymous Symbol] 0x08014c80 Section 0 pwm.o(.rodata.PWM_Map) - imu_temp_ctrl_pid_param 0x08014d3c Data 32 atti_esti.o(.rodata.imu_temp_ctrl_pid_param) - [Anonymous Symbol] 0x08014d3c Section 0 atti_esti.o(.rodata.imu_temp_ctrl_pid_param) - [Anonymous Symbol] 0x08014d5c Section 0 freertos.o(.rodata.str1.1) - .L.str 0x08014d68 Data 5 tasks.o(.rodata.str1.1) - [Anonymous Symbol] 0x08014d68 Section 0 tasks.o(.rodata.str1.1) - .L.str.1 0x08014d6d Data 15 tasks.o(.rodata.str1.1) - .L.str.1 0x08014d6d Data 5 timers.o(.rodata.str1.1) - [Anonymous Symbol] 0x08014d6d Section 0 timers.o(.rodata.str1.1) - .L.str 0x08014d72 Data 8 timers.o(.rodata.str1.1) - [Anonymous Symbol] 0x08014d7a Section 0 user_task.o(.rodata.str1.1) - .L.str.2 0x08014d7c Data 12 tasks.o(.rodata.str1.1) - .L.str.3 0x08014d88 Data 12 tasks.o(.rodata.str1.1) + __arm_cp.3_6 0x08003c20 Number 4 gimbal.o(.text.Gimbal_Control) + __arm_cp.3_9 0x08003c2c Number 4 gimbal.o(.text.Gimbal_Control) + [Anonymous Symbol] 0x08003d74 Section 0 gimbal.o(.text.Gimbal_Init) + [Anonymous Symbol] 0x08003f1c Section 0 gimbal.o(.text.Gimbal_Output) + Gimbal_SetMode 0x08004031 Thumb Code 180 gimbal.o(.text.Gimbal_SetMode) + [Anonymous Symbol] 0x08004030 Section 0 gimbal.o(.text.Gimbal_SetMode) + [Anonymous Symbol] 0x080040e4 Section 0 gimbal.o(.text.Gimbal_UpdateFeedback) + [Anonymous Symbol] 0x0800424c Section 0 gimbal.o(.text.Gimbal_UpdateIMU) + [Anonymous Symbol] 0x08004298 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_ActivateNotification) + [Anonymous Symbol] 0x080042ec Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_AddTxMessage) + [Anonymous Symbol] 0x08004444 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_ConfigFilter) + [Anonymous Symbol] 0x080045e4 Section 0 can_1.o(.text.HAL_CAN_ErrorCallback) + [Anonymous Symbol] 0x08004634 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxFifoFillLevel) + [Anonymous Symbol] 0x08004688 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxMessage) + [Anonymous Symbol] 0x0800489c Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_GetTxMailboxesFreeLevel) + [Anonymous Symbol] 0x0800490c Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_IRQHandler) + [Anonymous Symbol] 0x08004d00 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_Init) + [Anonymous Symbol] 0x08004ee0 Section 0 can.o(.text.HAL_CAN_MspInit) + [Anonymous Symbol] 0x080050b0 Section 0 can_1.o(.text.HAL_CAN_RxFifo0FullCallback) + [Anonymous Symbol] 0x08005100 Section 0 can_1.o(.text.HAL_CAN_RxFifo0MsgPendingCallback) + [Anonymous Symbol] 0x08005150 Section 0 can_1.o(.text.HAL_CAN_RxFifo1FullCallback) + [Anonymous Symbol] 0x080051a0 Section 0 can_1.o(.text.HAL_CAN_RxFifo1MsgPendingCallback) + [Anonymous Symbol] 0x080051f0 Section 0 can_1.o(.text.HAL_CAN_SleepCallback) + [Anonymous Symbol] 0x08005240 Section 0 stm32f4xx_hal_can.o(.text.HAL_CAN_Start) + [Anonymous Symbol] 0x080052cc Section 0 can_1.o(.text.HAL_CAN_TxMailbox0AbortCallback) + [Anonymous Symbol] 0x0800531c Section 0 can_1.o(.text.HAL_CAN_TxMailbox0CompleteCallback) + [Anonymous Symbol] 0x08005368 Section 0 can_1.o(.text.HAL_CAN_TxMailbox1AbortCallback) + [Anonymous Symbol] 0x080053b8 Section 0 can_1.o(.text.HAL_CAN_TxMailbox1CompleteCallback) + [Anonymous Symbol] 0x08005408 Section 0 can_1.o(.text.HAL_CAN_TxMailbox2AbortCallback) + [Anonymous Symbol] 0x08005458 Section 0 can_1.o(.text.HAL_CAN_TxMailbox2CompleteCallback) + [Anonymous Symbol] 0x080054a8 Section 0 can_1.o(.text.HAL_CAN_WakeUpFromRxMsgCallback) + [Anonymous Symbol] 0x080054f8 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort) + [Anonymous Symbol] 0x080055e4 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort_IT) + [Anonymous Symbol] 0x08005628 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_GetState) + [Anonymous Symbol] 0x08005638 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_IRQHandler) + [Anonymous Symbol] 0x08005958 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Init) + [Anonymous Symbol] 0x08005ac8 Section 0 stm32f4xx_hal_dma.o(.text.HAL_DMA_Start_IT) + [Anonymous Symbol] 0x08005b8c Section 0 stm32f4xx_hal.o(.text.HAL_Delay) + [Anonymous Symbol] 0x08005bd0 Section 0 gpio_1.o(.text.HAL_GPIO_EXTI_Callback) + [Anonymous Symbol] 0x08005c38 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_EXTI_IRQHandler) + [Anonymous Symbol] 0x08005c70 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_Init) + [Anonymous Symbol] 0x08006028 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_ReadPin) + [Anonymous Symbol] 0x08006058 Section 0 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_WritePin) + [Anonymous Symbol] 0x08006088 Section 0 stm32f4xx_hal.o(.text.HAL_GetTick) + [Anonymous Symbol] 0x08006094 Section 0 i2c_1.o(.text.HAL_I2C_AbortCpltCallback) + [Anonymous Symbol] 0x080060e8 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_AddrCallback) + [Anonymous Symbol] 0x080060f8 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_ER_IRQHandler) + [Anonymous Symbol] 0x08006274 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_EV_IRQHandler) + [Anonymous Symbol] 0x08006640 Section 0 i2c_1.o(.text.HAL_I2C_ErrorCallback) + [Anonymous Symbol] 0x08006694 Section 0 stm32f4xx_hal_i2c.o(.text.HAL_I2C_Init) + [Anonymous Symbol] 0x08006938 Section 0 i2c_1.o(.text.HAL_I2C_ListenCpltCallback) + [Anonymous Symbol] 0x0800698c Section 0 i2c_1.o(.text.HAL_I2C_MasterRxCpltCallback) + [Anonymous Symbol] 0x080069e0 Section 0 i2c_1.o(.text.HAL_I2C_MasterTxCpltCallback) + [Anonymous Symbol] 0x08006a30 Section 0 i2c_1.o(.text.HAL_I2C_MemRxCpltCallback) + [Anonymous Symbol] 0x08006a84 Section 0 i2c_1.o(.text.HAL_I2C_MemTxCpltCallback) + [Anonymous Symbol] 0x08006ad8 Section 0 i2c.o(.text.HAL_I2C_MspInit) + [Anonymous Symbol] 0x08006c0c Section 0 i2c_1.o(.text.HAL_I2C_SlaveRxCpltCallback) + [Anonymous Symbol] 0x08006c60 Section 0 i2c_1.o(.text.HAL_I2C_SlaveTxCpltCallback) + [Anonymous Symbol] 0x08006cb4 Section 0 stm32f4xx_hal.o(.text.HAL_IncTick) + [Anonymous Symbol] 0x08006cd0 Section 0 stm32f4xx_hal.o(.text.HAL_Init) + [Anonymous Symbol] 0x08006d08 Section 0 stm32f4xx_hal.o(.text.HAL_InitTick) + [Anonymous Symbol] 0x08006d78 Section 0 stm32f4xx_hal_msp.o(.text.HAL_MspInit) + [Anonymous Symbol] 0x08006dd0 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_DisableIRQ) + [Anonymous Symbol] 0x08006de4 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ) + [Anonymous Symbol] 0x08006df8 Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) + [Anonymous Symbol] 0x08006e2c Section 0 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) + [Anonymous Symbol] 0x08006e3c Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) + [Anonymous Symbol] 0x080070a0 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) + [Anonymous Symbol] 0x080070ac Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) + [Anonymous Symbol] 0x080070d0 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) + [Anonymous Symbol] 0x080070f4 Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) + [Anonymous Symbol] 0x080071dc Section 0 stm32f4xx_hal_rcc.o(.text.HAL_RCC_OscConfig) + [Anonymous Symbol] 0x0800789c Section 0 spi_1.o(.text.HAL_SPI_ErrorCallback) + [Anonymous Symbol] 0x080078f0 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Init) + [Anonymous Symbol] 0x080079f0 Section 0 spi.o(.text.HAL_SPI_MspInit) + [Anonymous Symbol] 0x08007c00 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive) + [Anonymous Symbol] 0x08007e50 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive_DMA) + [Anonymous Symbol] 0x08007fe8 Section 0 spi_1.o(.text.HAL_SPI_RxCpltCallback) + [Anonymous Symbol] 0x0800803c Section 0 spi_1.o(.text.HAL_SPI_RxHalfCpltCallback) + [Anonymous Symbol] 0x08008090 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit) + [Anonymous Symbol] 0x08008334 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive) + [Anonymous Symbol] 0x080086d8 Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive_DMA) + [Anonymous Symbol] 0x080088ec Section 0 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit_DMA) + [Anonymous Symbol] 0x08008a58 Section 0 spi_1.o(.text.HAL_SPI_TxCpltCallback) + [Anonymous Symbol] 0x08008aa0 Section 0 spi_1.o(.text.HAL_SPI_TxHalfCpltCallback) + [Anonymous Symbol] 0x08008af4 Section 0 spi_1.o(.text.HAL_SPI_TxRxCpltCallback) + [Anonymous Symbol] 0x08008b48 Section 0 spi_1.o(.text.HAL_SPI_TxRxHalfCpltCallback) + [Anonymous Symbol] 0x08008b9c Section 0 stm32f4xx_hal_cortex.o(.text.HAL_SYSTICK_Config) + [Anonymous Symbol] 0x08008bac Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_BreakCallback) + [Anonymous Symbol] 0x08008bb4 Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_CommutCallback) + [Anonymous Symbol] 0x08008bbc Section 0 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) + [Anonymous Symbol] 0x08008ce0 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_Base_Init) + [Anonymous Symbol] 0x08008d7c Section 0 tim.o(.text.HAL_TIM_Base_MspInit) + [Anonymous Symbol] 0x08008e08 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_IC_CaptureCallback) + [Anonymous Symbol] 0x08008e10 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_IRQHandler) + [Anonymous Symbol] 0x0800902c Section 0 tim.o(.text.HAL_TIM_MspPostInit) + [Anonymous Symbol] 0x08009098 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_OC_DelayElapsedCallback) + [Anonymous Symbol] 0x080090a0 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel) + [Anonymous Symbol] 0x080091e4 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Init) + [Anonymous Symbol] 0x08009280 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit) + [Anonymous Symbol] 0x08009288 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_PulseFinishedCallback) + [Anonymous Symbol] 0x08009290 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Start) + [Anonymous Symbol] 0x0800945c Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_PeriodElapsedCallback) + [Anonymous Symbol] 0x08009464 Section 0 stm32f4xx_hal_tim.o(.text.HAL_TIM_TriggerCallback) + [Anonymous Symbol] 0x0800946c Section 0 stm32f4xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) + [Anonymous Symbol] 0x08009478 Section 0 uart.o(.text.HAL_UART_ErrorCallback) + [Anonymous Symbol] 0x080094cc Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler) + [Anonymous Symbol] 0x08009928 Section 0 stm32f4xx_hal_uart.o(.text.HAL_UART_Init) + [Anonymous Symbol] 0x080099c8 Section 0 usart.o(.text.HAL_UART_MspInit) + [Anonymous Symbol] 0x08009b94 Section 0 uart.o(.text.HAL_UART_RxCpltCallback) + [Anonymous Symbol] 0x08009be8 Section 0 uart.o(.text.HAL_UART_TxCpltCallback) + [Anonymous Symbol] 0x08009c3c Section 0 stm32f4xx_it.o(.text.HardFault_Handler) + [Anonymous Symbol] 0x08009c40 Section 0 stm32f4xx_it.o(.text.I2C1_ER_IRQHandler) + [Anonymous Symbol] 0x08009c50 Section 0 stm32f4xx_it.o(.text.I2C1_EV_IRQHandler) + I2C_ConvertOtherXferOptions 0x08009c61 Thumb Code 52 stm32f4xx_hal_i2c.o(.text.I2C_ConvertOtherXferOptions) + [Anonymous Symbol] 0x08009c60 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_ConvertOtherXferOptions) + I2C_DMAAbort 0x08009c95 Thumb Code 342 stm32f4xx_hal_i2c.o(.text.I2C_DMAAbort) + [Anonymous Symbol] 0x08009c94 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_DMAAbort) + I2C_Flush_DR 0x08009ded Thumb Code 36 stm32f4xx_hal_i2c.o(.text.I2C_Flush_DR) + [Anonymous Symbol] 0x08009dec Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Flush_DR) + I2C_Get 0x08009e11 Thumb Code 72 i2c_1.o(.text.I2C_Get) + [Anonymous Symbol] 0x08009e10 Section 0 i2c_1.o(.text.I2C_Get) + I2C_ITError 0x08009e59 Thumb Code 634 stm32f4xx_hal_i2c.o(.text.I2C_ITError) + [Anonymous Symbol] 0x08009e58 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_ITError) + I2C_MasterReceive_BTF 0x0800a0d5 Thumb Code 428 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_BTF) + [Anonymous Symbol] 0x0800a0d4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_BTF) + I2C_MasterReceive_RXNE 0x0800a281 Thumb Code 362 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_RXNE) + [Anonymous Symbol] 0x0800a280 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterReceive_RXNE) + I2C_MasterTransmit_BTF 0x0800a3ed Thumb Code 222 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_BTF) + [Anonymous Symbol] 0x0800a3ec Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_BTF) + I2C_MasterTransmit_TXE 0x0800a4cd Thumb Code 318 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_TXE) + [Anonymous Symbol] 0x0800a4cc Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MasterTransmit_TXE) + I2C_Master_ADD10 0x0800a60d Thumb Code 70 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADD10) + [Anonymous Symbol] 0x0800a60c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADD10) + I2C_Master_ADDR 0x0800a655 Thumb Code 830 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADDR) + [Anonymous Symbol] 0x0800a654 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_ADDR) + I2C_Master_SB 0x0800a995 Thumb Code 240 stm32f4xx_hal_i2c.o(.text.I2C_Master_SB) + [Anonymous Symbol] 0x0800a994 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Master_SB) + I2C_MemoryTransmit_TXE_BTF 0x0800aa85 Thumb Code 296 stm32f4xx_hal_i2c.o(.text.I2C_MemoryTransmit_TXE_BTF) + [Anonymous Symbol] 0x0800aa84 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_MemoryTransmit_TXE_BTF) + I2C_SlaveReceive_BTF 0x0800abad Thumb Code 46 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_BTF) + [Anonymous Symbol] 0x0800abac Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_BTF) + I2C_SlaveReceive_RXNE 0x0800abdd Thumb Code 110 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_RXNE) + [Anonymous Symbol] 0x0800abdc Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveReceive_RXNE) + I2C_SlaveTransmit_BTF 0x0800ac4d Thumb Code 44 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_BTF) + [Anonymous Symbol] 0x0800ac4c Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_BTF) + I2C_SlaveTransmit_TXE 0x0800ac79 Thumb Code 108 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_TXE) + [Anonymous Symbol] 0x0800ac78 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_SlaveTransmit_TXE) + I2C_Slave_ADDR 0x0800ace5 Thumb Code 174 stm32f4xx_hal_i2c.o(.text.I2C_Slave_ADDR) + [Anonymous Symbol] 0x0800ace4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_ADDR) + I2C_Slave_AF 0x0800ad95 Thumb Code 228 stm32f4xx_hal_i2c.o(.text.I2C_Slave_AF) + [Anonymous Symbol] 0x0800ad94 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_AF) + I2C_Slave_STOPF 0x0800ae79 Thumb Code 586 stm32f4xx_hal_i2c.o(.text.I2C_Slave_STOPF) + [Anonymous Symbol] 0x0800ae78 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_Slave_STOPF) + I2C_WaitOnSTOPRequestThroughIT 0x0800b0c5 Thumb Code 120 stm32f4xx_hal_i2c.o(.text.I2C_WaitOnSTOPRequestThroughIT) + [Anonymous Symbol] 0x0800b0c4 Section 0 stm32f4xx_hal_i2c.o(.text.I2C_WaitOnSTOPRequestThroughIT) + [Anonymous Symbol] 0x0800b13c Section 0 user_math.o(.text.InvSqrt) + [Anonymous Symbol] 0x0800b1b4 Section 0 filter.o(.text.LowPassFilter2p_Apply) + [Anonymous Symbol] 0x0800b26c Section 0 filter.o(.text.LowPassFilter2p_Init) + [Anonymous Symbol] 0x0800b3a8 Section 0 filter.o(.text.LowPassFilter2p_Reset) + MOTOR_DM_CreateCANManager 0x0800b43d Thumb Code 150 motor_dm.o(.text.MOTOR_DM_CreateCANManager) + [Anonymous Symbol] 0x0800b43c Section 0 motor_dm.o(.text.MOTOR_DM_CreateCANManager) + [Anonymous Symbol] 0x0800b4d4 Section 0 motor_dm.o(.text.MOTOR_DM_Enable) + MOTOR_DM_GetCANManager 0x0800b551 Thumb Code 48 motor_dm.o(.text.MOTOR_DM_GetCANManager) + [Anonymous Symbol] 0x0800b550 Section 0 motor_dm.o(.text.MOTOR_DM_GetCANManager) + [Anonymous Symbol] 0x0800b580 Section 0 motor_dm.o(.text.MOTOR_DM_GetMotor) + [Anonymous Symbol] 0x0800b608 Section 0 motor_dm.o(.text.MOTOR_DM_MITCtrl) + MOTOR_DM_ParseFeedbackFrame 0x0800b651 Thumb Code 344 motor_dm.o(.text.MOTOR_DM_ParseFeedbackFrame) + [Anonymous Symbol] 0x0800b650 Section 0 motor_dm.o(.text.MOTOR_DM_ParseFeedbackFrame) + [Anonymous Symbol] 0x0800b7a8 Section 0 motor_dm.o(.text.MOTOR_DM_Register) + MOTOR_DM_SendMITCmd 0x0800b8d5 Thumb Code 324 motor_dm.o(.text.MOTOR_DM_SendMITCmd) + [Anonymous Symbol] 0x0800b8d4 Section 0 motor_dm.o(.text.MOTOR_DM_SendMITCmd) + [Anonymous Symbol] 0x0800ba18 Section 0 motor_dm.o(.text.MOTOR_DM_Update) + MOTOR_RM_CreateCANManager 0x0800bb25 Thumb Code 150 motor_rm.o(.text.MOTOR_RM_CreateCANManager) + [Anonymous Symbol] 0x0800bb24 Section 0 motor_rm.o(.text.MOTOR_RM_CreateCANManager) + [Anonymous Symbol] 0x0800bbbc Section 0 motor_rm.o(.text.MOTOR_RM_Ctrl) + MOTOR_RM_GetCANManager 0x0800bd2d Thumb Code 48 motor_rm.o(.text.MOTOR_RM_GetCANManager) + [Anonymous Symbol] 0x0800bd2c Section 0 motor_rm.o(.text.MOTOR_RM_GetCANManager) + MOTOR_RM_GetLSB 0x0800bd5d Thumb Code 82 motor_rm.o(.text.MOTOR_RM_GetLSB) + [Anonymous Symbol] 0x0800bd5c Section 0 motor_rm.o(.text.MOTOR_RM_GetLSB) + MOTOR_RM_GetLogicalIndex 0x0800bdb1 Thumb Code 128 motor_rm.o(.text.MOTOR_RM_GetLogicalIndex) + [Anonymous Symbol] 0x0800bdb0 Section 0 motor_rm.o(.text.MOTOR_RM_GetLogicalIndex) + [Anonymous Symbol] 0x0800be30 Section 0 motor_rm.o(.text.MOTOR_RM_GetMotor) + MOTOR_RM_GetRatio 0x0800bea9 Thumb Code 80 motor_rm.o(.text.MOTOR_RM_GetRatio) + [Anonymous Symbol] 0x0800bea8 Section 0 motor_rm.o(.text.MOTOR_RM_GetRatio) + [Anonymous Symbol] 0x0800bef8 Section 0 motor_rm.o(.text.MOTOR_RM_Register) + [Anonymous Symbol] 0x0800c018 Section 0 motor_rm.o(.text.MOTOR_RM_SetOutput) + [Anonymous Symbol] 0x0800c134 Section 0 motor_rm.o(.text.MOTOR_RM_Update) + [Anonymous Symbol] 0x0800c238 Section 0 can.o(.text.MX_CAN1_Init) + [Anonymous Symbol] 0x0800c288 Section 0 can.o(.text.MX_CAN2_Init) + [Anonymous Symbol] 0x0800c2d8 Section 0 dma.o(.text.MX_DMA_Init) + [Anonymous Symbol] 0x0800c360 Section 0 freertos.o(.text.MX_FREERTOS_Init) + [Anonymous Symbol] 0x0800c3a0 Section 0 gpio.o(.text.MX_GPIO_Init) + [Anonymous Symbol] 0x0800c5cc Section 0 i2c.o(.text.MX_I2C1_Init) + [Anonymous Symbol] 0x0800c614 Section 0 i2c.o(.text.MX_I2C2_Init) + [Anonymous Symbol] 0x0800c65c Section 0 spi.o(.text.MX_SPI1_Init) + [Anonymous Symbol] 0x0800c6b0 Section 0 spi.o(.text.MX_SPI2_Init) + [Anonymous Symbol] 0x0800c704 Section 0 tim.o(.text.MX_TIM10_Init) + [Anonymous Symbol] 0x0800c794 Section 0 tim.o(.text.MX_TIM7_Init) + [Anonymous Symbol] 0x0800c7ec Section 0 usart.o(.text.MX_USART1_UART_Init) + [Anonymous Symbol] 0x0800c82c Section 0 usart.o(.text.MX_USART3_UART_Init) + [Anonymous Symbol] 0x0800c878 Section 0 stm32f4xx_it.o(.text.MemManage_Handler) + Motor_RM_Decode 0x0800c87d Thumb Code 540 motor_rm.o(.text.Motor_RM_Decode) + [Anonymous Symbol] 0x0800c87c Section 0 motor_rm.o(.text.Motor_RM_Decode) + [Anonymous Symbol] 0x0800ca98 Section 0 stm32f4xx_it.o(.text.NMI_Handler) + NVIC_EncodePriority 0x0800ca9d Thumb Code 108 stm32f4xx_hal_cortex.o(.text.NVIC_EncodePriority) + [Anonymous Symbol] 0x0800ca9c Section 0 stm32f4xx_hal_cortex.o(.text.NVIC_EncodePriority) + [Anonymous Symbol] 0x0800cb08 Section 0 pid.o(.text.PID_Calc) + [Anonymous Symbol] 0x0800cdf8 Section 0 pid.o(.text.PID_Init) + [Anonymous Symbol] 0x0800cf90 Section 0 pid.o(.text.PID_Reset) + [Anonymous Symbol] 0x0800cfe0 Section 0 port.o(.text.PendSV_Handler) + pxCurrentTCBConst 0x0800d040 Number 0 port.o(.text.PendSV_Handler) + [Anonymous Symbol] 0x0800d044 Section 0 bsp_rc.o(.text.RC_Init) + [Anonymous Symbol] 0x0800d0d8 Section 0 bsp_rc.o(.text.RC_restart) + SPI_DMAError 0x0800d135 Thumb Code 52 stm32f4xx_hal_spi.o(.text.SPI_DMAError) + [Anonymous Symbol] 0x0800d134 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAError) + SPI_DMAHalfReceiveCplt 0x0800d169 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfReceiveCplt) + [Anonymous Symbol] 0x0800d168 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfReceiveCplt) + SPI_DMAHalfTransmitCplt 0x0800d181 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitCplt) + [Anonymous Symbol] 0x0800d180 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitCplt) + SPI_DMAHalfTransmitReceiveCplt 0x0800d199 Thumb Code 22 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitReceiveCplt) + [Anonymous Symbol] 0x0800d198 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAHalfTransmitReceiveCplt) + SPI_DMAReceiveCplt 0x0800d1b1 Thumb Code 162 stm32f4xx_hal_spi.o(.text.SPI_DMAReceiveCplt) + [Anonymous Symbol] 0x0800d1b0 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMAReceiveCplt) + SPI_DMATransmitCplt 0x0800d255 Thumb Code 166 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitCplt) + [Anonymous Symbol] 0x0800d254 Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitCplt) + SPI_DMATransmitReceiveCplt 0x0800d2fd Thumb Code 134 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitReceiveCplt) + [Anonymous Symbol] 0x0800d2fc Section 0 stm32f4xx_hal_spi.o(.text.SPI_DMATransmitReceiveCplt) + SPI_EndRxTransaction 0x0800d385 Thumb Code 228 stm32f4xx_hal_spi.o(.text.SPI_EndRxTransaction) + [Anonymous Symbol] 0x0800d384 Section 0 stm32f4xx_hal_spi.o(.text.SPI_EndRxTransaction) + SPI_EndRxTxTransaction 0x0800d469 Thumb Code 204 stm32f4xx_hal_spi.o(.text.SPI_EndRxTxTransaction) + [Anonymous Symbol] 0x0800d468 Section 0 stm32f4xx_hal_spi.o(.text.SPI_EndRxTxTransaction) + SPI_Get 0x0800d535 Thumb Code 46 spi_1.o(.text.SPI_Get) + [Anonymous Symbol] 0x0800d534 Section 0 spi_1.o(.text.SPI_Get) + SPI_WaitFlagStateUntilTimeout 0x0800d565 Thumb Code 300 stm32f4xx_hal_spi.o(.text.SPI_WaitFlagStateUntilTimeout) + [Anonymous Symbol] 0x0800d564 Section 0 stm32f4xx_hal_spi.o(.text.SPI_WaitFlagStateUntilTimeout) + [Anonymous Symbol] 0x0800d690 Section 0 port.o(.text.SVC_Handler) + pxCurrentTCBConst2 0x0800d6b0 Number 0 port.o(.text.SVC_Handler) + SVC_Setup 0x0800d6b5 Thumb Code 14 cmsis_os2.o(.text.SVC_Setup) + [Anonymous Symbol] 0x0800d6b4 Section 0 cmsis_os2.o(.text.SVC_Setup) + [Anonymous Symbol] 0x0800d6c4 Section 0 freertos.o(.text.StartDefaultTask) + SysTick_Config 0x0800d6d9 Thumb Code 82 stm32f4xx_hal_cortex.o(.text.SysTick_Config) + [Anonymous Symbol] 0x0800d6d8 Section 0 stm32f4xx_hal_cortex.o(.text.SysTick_Config) + [Anonymous Symbol] 0x0800d72c Section 0 stm32f4xx_it.o(.text.SysTick_Handler) + [Anonymous Symbol] 0x0800d744 Section 0 main.o(.text.SystemClock_Config) + [Anonymous Symbol] 0x0800d800 Section 0 system_stm32f4xx.o(.text.SystemInit) + [Anonymous Symbol] 0x0800d814 Section 0 stm32f4xx_it.o(.text.TIM7_IRQHandler) + [Anonymous Symbol] 0x0800d824 Section 0 stm32f4xx_hal_tim.o(.text.TIM_Base_SetConfig) + [Anonymous Symbol] 0x0800d9c8 Section 0 stm32f4xx_hal_tim.o(.text.TIM_CCxChannelCmd) + TIM_OC1_SetConfig 0x0800da01 Thumb Code 234 stm32f4xx_hal_tim.o(.text.TIM_OC1_SetConfig) + [Anonymous Symbol] 0x0800da00 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC1_SetConfig) + [Anonymous Symbol] 0x0800daec Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC2_SetConfig) + TIM_OC3_SetConfig 0x0800dbe1 Thumb Code 242 stm32f4xx_hal_tim.o(.text.TIM_OC3_SetConfig) + [Anonymous Symbol] 0x0800dbe0 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC3_SetConfig) + TIM_OC4_SetConfig 0x0800dcd5 Thumb Code 164 stm32f4xx_hal_tim.o(.text.TIM_OC4_SetConfig) + [Anonymous Symbol] 0x0800dcd4 Section 0 stm32f4xx_hal_tim.o(.text.TIM_OC4_SetConfig) + [Anonymous Symbol] 0x0800dd78 Section 0 init.o(.text.Task_Init) + [Anonymous Symbol] 0x0800de30 Section 0 atti_esti.o(.text.Task_atti_esti) + [Anonymous Symbol] 0x0800dfc0 Section 0 gimbal_ctrl.o(.text.Task_gimbal_ctrl) + [Anonymous Symbol] 0x0800e0b0 Section 0 remote.o(.text.Task_remote) + UART_DMAAbortOnError 0x0800e151 Thumb Code 28 stm32f4xx_hal_uart.o(.text.UART_DMAAbortOnError) + [Anonymous Symbol] 0x0800e150 Section 0 stm32f4xx_hal_uart.o(.text.UART_DMAAbortOnError) + UART_EndRxTransfer 0x0800e16d Thumb Code 148 stm32f4xx_hal_uart.o(.text.UART_EndRxTransfer) + [Anonymous Symbol] 0x0800e16c Section 0 stm32f4xx_hal_uart.o(.text.UART_EndRxTransfer) + UART_EndTransmit_IT 0x0800e201 Thumb Code 38 stm32f4xx_hal_uart.o(.text.UART_EndTransmit_IT) + [Anonymous Symbol] 0x0800e200 Section 0 stm32f4xx_hal_uart.o(.text.UART_EndTransmit_IT) + UART_Get 0x0800e229 Thumb Code 46 uart.o(.text.UART_Get) + [Anonymous Symbol] 0x0800e228 Section 0 uart.o(.text.UART_Get) + UART_Receive_IT 0x0800e259 Thumb Code 360 stm32f4xx_hal_uart.o(.text.UART_Receive_IT) + [Anonymous Symbol] 0x0800e258 Section 0 stm32f4xx_hal_uart.o(.text.UART_Receive_IT) + UART_SetConfig 0x0800e3c1 Thumb Code 314 stm32f4xx_hal_uart.o(.text.UART_SetConfig) + [Anonymous Symbol] 0x0800e3c0 Section 0 stm32f4xx_hal_uart.o(.text.UART_SetConfig) + UART_Transmit_IT 0x0800e4fd Thumb Code 148 stm32f4xx_hal_uart.o(.text.UART_Transmit_IT) + [Anonymous Symbol] 0x0800e4fc Section 0 stm32f4xx_hal_uart.o(.text.UART_Transmit_IT) + [Anonymous Symbol] 0x0800e590 Section 0 stm32f4xx_it.o(.text.USART3_IRQHandler) + [Anonymous Symbol] 0x0800e5b0 Section 0 remote_control.o(.text.USART3_IRQHandler1) + [Anonymous Symbol] 0x0800e5d4 Section 0 stm32f4xx_it.o(.text.UsageFault_Handler) + __ARM_isfinite 0x0800e5d9 Thumb Code 30 filter.o(.text.__ARM_isfinite) + [Anonymous Symbol] 0x0800e5d8 Section 0 filter.o(.text.__ARM_isfinite) + __ARM_isfinite 0x0800e5f9 Thumb Code 30 pid.o(.text.__ARM_isfinite) + [Anonymous Symbol] 0x0800e5f8 Section 0 pid.o(.text.__ARM_isfinite) + __ARM_isfinitef 0x0800e619 Thumb Code 24 filter.o(.text.__ARM_isfinitef) + [Anonymous Symbol] 0x0800e618 Section 0 filter.o(.text.__ARM_isfinitef) + __ARM_isfinitef 0x0800e631 Thumb Code 24 pid.o(.text.__ARM_isfinitef) + [Anonymous Symbol] 0x0800e630 Section 0 pid.o(.text.__ARM_isfinitef) + __ARM_isinf 0x0800e649 Thumb Code 52 filter.o(.text.__ARM_isinf) + [Anonymous Symbol] 0x0800e648 Section 0 filter.o(.text.__ARM_isinf) + __ARM_isinff 0x0800e67d Thumb Code 28 filter.o(.text.__ARM_isinff) + [Anonymous Symbol] 0x0800e67c Section 0 filter.o(.text.__ARM_isinff) + __NVIC_DisableIRQ 0x0800e699 Thumb Code 56 stm32f4xx_hal_cortex.o(.text.__NVIC_DisableIRQ) + [Anonymous Symbol] 0x0800e698 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_DisableIRQ) + __NVIC_EnableIRQ 0x0800e6d1 Thumb Code 48 stm32f4xx_hal_cortex.o(.text.__NVIC_EnableIRQ) + [Anonymous Symbol] 0x0800e6d0 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_EnableIRQ) + __NVIC_GetPriorityGrouping 0x0800e701 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) + [Anonymous Symbol] 0x0800e700 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) + __NVIC_SetPriority 0x0800e711 Thumb Code 66 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriority) + [Anonymous Symbol] 0x0800e710 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriority) + __NVIC_SetPriority 0x0800e755 Thumb Code 66 cmsis_os2.o(.text.__NVIC_SetPriority) + [Anonymous Symbol] 0x0800e754 Section 0 cmsis_os2.o(.text.__NVIC_SetPriority) + __NVIC_SetPriorityGrouping 0x0800e799 Thumb Code 60 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) + [Anonymous Symbol] 0x0800e798 Section 0 stm32f4xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) + [Anonymous Symbol] 0x0800e7d4 Section 0 freertos.o(.text.configureTimerForRunTimeStats) + copysignf 0x0800e7d9 Thumb Code 30 ahrs.o(.text.copysignf) + [Anonymous Symbol] 0x0800e7d8 Section 0 ahrs.o(.text.copysignf) + [Anonymous Symbol] 0x0800e7f8 Section 0 bsp_delay.o(.text.delay_init) + [Anonymous Symbol] 0x0800e838 Section 0 tasks.o(.text.eTaskGetState) + float_to_uint 0x0800e931 Thumb Code 88 motor_dm.o(.text.float_to_uint) + [Anonymous Symbol] 0x0800e930 Section 0 motor_dm.o(.text.float_to_uint) + [Anonymous Symbol] 0x0800e988 Section 0 freertos.o(.text.getRunTimeCounterValue) + [Anonymous Symbol] 0x0800e98c Section 0 main.o(.text.main) + [Anonymous Symbol] 0x0800e9dc Section 0 calc_lib.o(.text.map) + [Anonymous Symbol] 0x0800ea08 Section 0 cmsis_os2.o(.text.osDelay) + [Anonymous Symbol] 0x0800ea3c Section 0 cmsis_os2.o(.text.osDelayUntil) + [Anonymous Symbol] 0x0800ea94 Section 0 cmsis_os2.o(.text.osKernelGetState) + [Anonymous Symbol] 0x0800eae8 Section 0 cmsis_os2.o(.text.osKernelGetTickCount) + [Anonymous Symbol] 0x0800eb10 Section 0 cmsis_os2.o(.text.osKernelGetTickFreq) + [Anonymous Symbol] 0x0800eb18 Section 0 cmsis_os2.o(.text.osKernelInitialize) + [Anonymous Symbol] 0x0800eb60 Section 0 cmsis_os2.o(.text.osKernelLock) + [Anonymous Symbol] 0x0800ebb8 Section 0 cmsis_os2.o(.text.osKernelStart) + [Anonymous Symbol] 0x0800ec0c Section 0 cmsis_os2.o(.text.osKernelUnlock) + [Anonymous Symbol] 0x0800ec7c Section 0 cmsis_os2.o(.text.osMessageQueueGet) + [Anonymous Symbol] 0x0800ed3c Section 0 cmsis_os2.o(.text.osMessageQueueNew) + [Anonymous Symbol] 0x0800ee3c Section 0 cmsis_os2.o(.text.osMessageQueuePut) + [Anonymous Symbol] 0x0800ef00 Section 0 cmsis_os2.o(.text.osMessageQueueReset) + [Anonymous Symbol] 0x0800ef40 Section 0 cmsis_os2.o(.text.osMutexAcquire) + [Anonymous Symbol] 0x0800efe0 Section 0 cmsis_os2.o(.text.osMutexNew) + [Anonymous Symbol] 0x0800f108 Section 0 cmsis_os2.o(.text.osMutexRelease) + [Anonymous Symbol] 0x0800f188 Section 0 cmsis_os2.o(.text.osThreadFlagsSet) + [Anonymous Symbol] 0x0800f22c Section 0 cmsis_os2.o(.text.osThreadFlagsWait) + [Anonymous Symbol] 0x0800f348 Section 0 cmsis_os2.o(.text.osThreadGetId) + [Anonymous Symbol] 0x0800f358 Section 0 cmsis_os2.o(.text.osThreadNew) + [Anonymous Symbol] 0x0800f4b4 Section 0 cmsis_os2.o(.text.osThreadTerminate) + prvAddCurrentTaskToDelayedList 0x0800f515 Thumb Code 212 tasks.o(.text.prvAddCurrentTaskToDelayedList) + [Anonymous Symbol] 0x0800f514 Section 0 tasks.o(.text.prvAddCurrentTaskToDelayedList) + prvAddNewTaskToReadyList 0x0800f5e9 Thumb Code 290 tasks.o(.text.prvAddNewTaskToReadyList) + [Anonymous Symbol] 0x0800f5e8 Section 0 tasks.o(.text.prvAddNewTaskToReadyList) + prvCheckForValidListAndQueue 0x0800f70d Thumb Code 162 timers.o(.text.prvCheckForValidListAndQueue) + [Anonymous Symbol] 0x0800f70c Section 0 timers.o(.text.prvCheckForValidListAndQueue) + prvCheckTasksWaitingTermination 0x0800f7b1 Thumb Code 90 tasks.o(.text.prvCheckTasksWaitingTermination) + [Anonymous Symbol] 0x0800f7b0 Section 0 tasks.o(.text.prvCheckTasksWaitingTermination) + prvCopyDataFromQueue 0x0800f80d Thumb Code 66 queue.o(.text.prvCopyDataFromQueue) + [Anonymous Symbol] 0x0800f80c Section 0 queue.o(.text.prvCopyDataFromQueue) + prvCopyDataToQueue 0x0800f851 Thumb Code 204 queue.o(.text.prvCopyDataToQueue) + [Anonymous Symbol] 0x0800f850 Section 0 queue.o(.text.prvCopyDataToQueue) + prvDeleteTCB 0x0800f91d Thumb Code 94 tasks.o(.text.prvDeleteTCB) + [Anonymous Symbol] 0x0800f91c Section 0 tasks.o(.text.prvDeleteTCB) + prvGetDisinheritPriorityAfterTimeout 0x0800f97d Thumb Code 38 queue.o(.text.prvGetDisinheritPriorityAfterTimeout) + [Anonymous Symbol] 0x0800f97c Section 0 queue.o(.text.prvGetDisinheritPriorityAfterTimeout) + prvGetNextExpireTime 0x0800f9a5 Thumb Code 64 timers.o(.text.prvGetNextExpireTime) + [Anonymous Symbol] 0x0800f9a4 Section 0 timers.o(.text.prvGetNextExpireTime) + prvHeapInit 0x0800f9e5 Thumb Code 188 heap_4.o(.text.prvHeapInit) + [Anonymous Symbol] 0x0800f9e4 Section 0 heap_4.o(.text.prvHeapInit) + prvIdleTask 0x0800faa1 Thumb Code 56 tasks.o(.text.prvIdleTask) + [Anonymous Symbol] 0x0800faa0 Section 0 tasks.o(.text.prvIdleTask) + prvInitialiseMutex 0x0800fad9 Thumb Code 44 queue.o(.text.prvInitialiseMutex) + [Anonymous Symbol] 0x0800fad8 Section 0 queue.o(.text.prvInitialiseMutex) + prvInitialiseNewQueue 0x0800fb05 Thumb Code 72 queue.o(.text.prvInitialiseNewQueue) + [Anonymous Symbol] 0x0800fb04 Section 0 queue.o(.text.prvInitialiseNewQueue) + prvInitialiseNewTask 0x0800fb4d Thumb Code 300 tasks.o(.text.prvInitialiseNewTask) + [Anonymous Symbol] 0x0800fb4c Section 0 tasks.o(.text.prvInitialiseNewTask) + prvInitialiseTaskLists 0x0800fc79 Thumb Code 142 tasks.o(.text.prvInitialiseTaskLists) + [Anonymous Symbol] 0x0800fc78 Section 0 tasks.o(.text.prvInitialiseTaskLists) + prvInsertBlockIntoFreeList 0x0800fd09 Thumb Code 198 heap_4.o(.text.prvInsertBlockIntoFreeList) + [Anonymous Symbol] 0x0800fd08 Section 0 heap_4.o(.text.prvInsertBlockIntoFreeList) + prvInsertTimerInActiveList 0x0800fdd1 Thumb Code 134 timers.o(.text.prvInsertTimerInActiveList) + [Anonymous Symbol] 0x0800fdd0 Section 0 timers.o(.text.prvInsertTimerInActiveList) + prvIsQueueEmpty 0x0800fe59 Thumb Code 40 queue.o(.text.prvIsQueueEmpty) + [Anonymous Symbol] 0x0800fe58 Section 0 queue.o(.text.prvIsQueueEmpty) + prvIsQueueFull 0x0800fe81 Thumb Code 46 queue.o(.text.prvIsQueueFull) + [Anonymous Symbol] 0x0800fe80 Section 0 queue.o(.text.prvIsQueueFull) + prvPortStartFirstTask 0x0800feb1 Thumb Code 34 port.o(.text.prvPortStartFirstTask) + [Anonymous Symbol] 0x0800feb0 Section 0 port.o(.text.prvPortStartFirstTask) + prvProcessExpiredTimer 0x0800fed9 Thumb Code 142 timers.o(.text.prvProcessExpiredTimer) + [Anonymous Symbol] 0x0800fed8 Section 0 timers.o(.text.prvProcessExpiredTimer) + prvProcessReceivedCommands 0x0800ff69 Thumb Code 402 timers.o(.text.prvProcessReceivedCommands) + [Anonymous Symbol] 0x0800ff68 Section 0 timers.o(.text.prvProcessReceivedCommands) + prvProcessTimerOrBlockTask 0x080100fd Thumb Code 154 timers.o(.text.prvProcessTimerOrBlockTask) + [Anonymous Symbol] 0x080100fc Section 0 timers.o(.text.prvProcessTimerOrBlockTask) + prvResetNextTaskUnblockTime 0x08010199 Thumb Code 70 tasks.o(.text.prvResetNextTaskUnblockTime) + [Anonymous Symbol] 0x08010198 Section 0 tasks.o(.text.prvResetNextTaskUnblockTime) + prvSampleTimeNow 0x080101e1 Thumb Code 68 timers.o(.text.prvSampleTimeNow) + [Anonymous Symbol] 0x080101e0 Section 0 timers.o(.text.prvSampleTimeNow) + prvSwitchTimerLists 0x08010225 Thumb Code 212 timers.o(.text.prvSwitchTimerLists) + [Anonymous Symbol] 0x08010224 Section 0 timers.o(.text.prvSwitchTimerLists) + prvTaskExitError 0x080102f9 Thumb Code 76 port.o(.text.prvTaskExitError) + [Anonymous Symbol] 0x080102f8 Section 0 port.o(.text.prvTaskExitError) + prvTimerTask 0x08010345 Thumb Code 30 timers.o(.text.prvTimerTask) + [Anonymous Symbol] 0x08010344 Section 0 timers.o(.text.prvTimerTask) + prvUnlockQueue 0x08010365 Thumb Code 174 queue.o(.text.prvUnlockQueue) + [Anonymous Symbol] 0x08010364 Section 0 queue.o(.text.prvUnlockQueue) + [Anonymous Symbol] 0x08010414 Section 0 heap_4.o(.text.pvPortMalloc) + [Anonymous Symbol] 0x08010600 Section 0 tasks.o(.text.pvTaskIncrementMutexHeldCount) + [Anonymous Symbol] 0x0801062c Section 0 port.o(.text.pxPortInitialiseStack) + [Anonymous Symbol] 0x08010690 Section 0 ai.o(.text.remote_ParseHost) + [Anonymous Symbol] 0x08010740 Section 0 remote_control.o(.text.remote_control_init) + sbus_to_rc 0x08010759 Thumb Code 656 remote_control.o(.text.sbus_to_rc) + [Anonymous Symbol] 0x08010758 Section 0 remote_control.o(.text.sbus_to_rc) + uint_to_float 0x080109e9 Thumb Code 82 motor_dm.o(.text.uint_to_float) + [Anonymous Symbol] 0x080109e8 Section 0 motor_dm.o(.text.uint_to_float) + [Anonymous Symbol] 0x08010a3c Section 0 calc_lib.o(.text.user_delay_ms) + [Anonymous Symbol] 0x08010a6c Section 0 calc_lib.o(.text.user_delay_us) + [Anonymous Symbol] 0x08010ab0 Section 0 list.o(.text.uxListRemove) + [Anonymous Symbol] 0x08010af8 Section 0 cmsis_os2.o(.text.vApplicationGetIdleTaskMemory) + [Anonymous Symbol] 0x08010b24 Section 0 cmsis_os2.o(.text.vApplicationGetTimerTaskMemory) + [Anonymous Symbol] 0x08010b50 Section 0 freertos.o(.text.vApplicationStackOverflowHook) + [Anonymous Symbol] 0x08010b5c Section 0 list.o(.text.vListInitialise) + [Anonymous Symbol] 0x08010b8c Section 0 list.o(.text.vListInitialiseItem) + [Anonymous Symbol] 0x08010b9c Section 0 list.o(.text.vListInsert) + [Anonymous Symbol] 0x08010c08 Section 0 list.o(.text.vListInsertEnd) + vPortEnableVFP 0x08010c45 Thumb Code 14 port.o(.text.vPortEnableVFP) + [Anonymous Symbol] 0x08010c44 Section 0 port.o(.text.vPortEnableVFP) + [Anonymous Symbol] 0x08010c58 Section 0 port.o(.text.vPortEnterCritical) + [Anonymous Symbol] 0x08010cb0 Section 0 port.o(.text.vPortExitCritical) + [Anonymous Symbol] 0x08010cfc Section 0 heap_4.o(.text.vPortFree) + [Anonymous Symbol] 0x08010dcc Section 0 port.o(.text.vPortSetupTimerInterrupt) + [Anonymous Symbol] 0x08010e10 Section 0 port.o(.text.vPortValidateInterruptPriority) + [Anonymous Symbol] 0x08010e94 Section 0 queue.o(.text.vQueueAddToRegistry) + [Anonymous Symbol] 0x08010ee8 Section 0 queue.o(.text.vQueueWaitForMessageRestricted) + [Anonymous Symbol] 0x08010f4c Section 0 tasks.o(.text.vTaskDelay) + [Anonymous Symbol] 0x08010fbc Section 0 tasks.o(.text.vTaskDelayUntil) + [Anonymous Symbol] 0x080110d0 Section 0 tasks.o(.text.vTaskDelete) + [Anonymous Symbol] 0x080111e0 Section 0 tasks.o(.text.vTaskInternalSetTimeOutState) + [Anonymous Symbol] 0x08011204 Section 0 tasks.o(.text.vTaskMissedYield) + [Anonymous Symbol] 0x08011214 Section 0 tasks.o(.text.vTaskPlaceOnEventList) + [Anonymous Symbol] 0x08011258 Section 0 tasks.o(.text.vTaskPlaceOnEventListRestricted) + [Anonymous Symbol] 0x080112ac Section 0 tasks.o(.text.vTaskPriorityDisinheritAfterTimeout) + [Anonymous Symbol] 0x080113e0 Section 0 tasks.o(.text.vTaskStartScheduler) + [Anonymous Symbol] 0x080114c4 Section 0 tasks.o(.text.vTaskSuspendAll) + [Anonymous Symbol] 0x080114d4 Section 0 tasks.o(.text.vTaskSwitchContext) + [Anonymous Symbol] 0x08011654 Section 0 port.o(.text.xPortStartScheduler) + [Anonymous Symbol] 0x080117ac Section 0 port.o(.text.xPortSysTickHandler) + [Anonymous Symbol] 0x080117e8 Section 0 queue.o(.text.xQueueCreateMutex) + [Anonymous Symbol] 0x08011810 Section 0 queue.o(.text.xQueueCreateMutexStatic) + [Anonymous Symbol] 0x08011844 Section 0 queue.o(.text.xQueueGenericCreate) + [Anonymous Symbol] 0x080118b8 Section 0 queue.o(.text.xQueueGenericCreateStatic) + [Anonymous Symbol] 0x080119c8 Section 0 queue.o(.text.xQueueGenericReset) + [Anonymous Symbol] 0x08011a84 Section 0 queue.o(.text.xQueueGenericSend) + [Anonymous Symbol] 0x08011cb0 Section 0 queue.o(.text.xQueueGenericSendFromISR) + [Anonymous Symbol] 0x08011dfc Section 0 queue.o(.text.xQueueGiveMutexRecursive) + [Anonymous Symbol] 0x08011e68 Section 0 queue.o(.text.xQueueReceive) + [Anonymous Symbol] 0x08012044 Section 0 queue.o(.text.xQueueReceiveFromISR) + [Anonymous Symbol] 0x0801214c Section 0 queue.o(.text.xQueueSemaphoreTake) + [Anonymous Symbol] 0x08012378 Section 0 queue.o(.text.xQueueTakeMutexRecursive) + [Anonymous Symbol] 0x080123e8 Section 0 tasks.o(.text.xTaskCheckForTimeOut) + [Anonymous Symbol] 0x080124b4 Section 0 tasks.o(.text.xTaskCreate) + [Anonymous Symbol] 0x08012554 Section 0 tasks.o(.text.xTaskCreateStatic) + [Anonymous Symbol] 0x08012624 Section 0 tasks.o(.text.xTaskGenericNotify) + [Anonymous Symbol] 0x0801279c Section 0 tasks.o(.text.xTaskGenericNotifyFromISR) + [Anonymous Symbol] 0x08012960 Section 0 tasks.o(.text.xTaskGetCurrentTaskHandle) + [Anonymous Symbol] 0x08012974 Section 0 tasks.o(.text.xTaskGetSchedulerState) + [Anonymous Symbol] 0x080129ac Section 0 tasks.o(.text.xTaskGetTickCount) + [Anonymous Symbol] 0x080129c0 Section 0 tasks.o(.text.xTaskGetTickCountFromISR) + [Anonymous Symbol] 0x080129e0 Section 0 tasks.o(.text.xTaskIncrementTick) + [Anonymous Symbol] 0x08012ba4 Section 0 tasks.o(.text.xTaskNotifyWait) + [Anonymous Symbol] 0x08012c7c Section 0 tasks.o(.text.xTaskPriorityDisinherit) + [Anonymous Symbol] 0x08012d68 Section 0 tasks.o(.text.xTaskPriorityInherit) + [Anonymous Symbol] 0x08012e78 Section 0 tasks.o(.text.xTaskRemoveFromEventList) + [Anonymous Symbol] 0x08012f48 Section 0 tasks.o(.text.xTaskResumeAll) + [Anonymous Symbol] 0x080130d0 Section 0 timers.o(.text.xTimerCreateTimerTask) + [Anonymous Symbol] 0x08013164 Section 0 timers.o(.text.xTimerGenericCommand) + i.__ARM_fpclassify 0x08013214 Section 0 fpclassify.o(i.__ARM_fpclassify) + i.__ARM_fpclassifyf 0x08013244 Section 0 fpclassifyf.o(i.__ARM_fpclassifyf) + i.__hardfp_asinf 0x0801326c Section 0 asinf.o(i.__hardfp_asinf) + i.__hardfp_atan 0x08013398 Section 0 atan.o(i.__hardfp_atan) + i.__hardfp_atan2 0x08013670 Section 0 atan2.o(i.__hardfp_atan2) + i.__hardfp_atan2f 0x08013870 Section 0 atan2f.o(i.__hardfp_atan2f) + i.__hardfp_cosf 0x08013b1c Section 0 cosf.o(i.__hardfp_cosf) + i.__hardfp_tanf 0x08013c6c Section 0 tanf.o(i.__hardfp_tanf) + i.__kernel_poly 0x08013de8 Section 0 poly.o(i.__kernel_poly) + i.__mathlib_dbl_infnan 0x08013ee0 Section 0 dunder.o(i.__mathlib_dbl_infnan) + i.__mathlib_dbl_infnan2 0x08013ef4 Section 0 dunder.o(i.__mathlib_dbl_infnan2) + i.__mathlib_dbl_underflow 0x08013f08 Section 0 dunder.o(i.__mathlib_dbl_underflow) + i.__mathlib_flt_infnan 0x08013f28 Section 0 funder.o(i.__mathlib_flt_infnan) + i.__mathlib_flt_infnan2 0x08013f2e Section 0 funder.o(i.__mathlib_flt_infnan2) + i.__mathlib_flt_invalid 0x08013f34 Section 0 funder.o(i.__mathlib_flt_invalid) + i.__mathlib_flt_underflow 0x08013f44 Section 0 funder.o(i.__mathlib_flt_underflow) + i.__mathlib_rredf2 0x08013f54 Section 0 rredf.o(i.__mathlib_rredf2) + i.atan 0x080140a8 Section 0 atan.o(i.atan) + i.fabs 0x080140b8 Section 0 fabs.o(i.fabs) + i.sqrtf 0x080140d0 Section 0 sqrtf.o(i.sqrtf) + $v0 0x0801410e Number 0 basic.o(x$fpl$basic) + x$fpl$basic 0x0801410e Section 24 basic.o(x$fpl$basic) + $v0 0x08014128 Number 0 d2f.o(x$fpl$d2f) + x$fpl$d2f 0x08014128 Section 98 d2f.o(x$fpl$d2f) + $v0 0x0801418c Number 0 daddsub_clz.o(x$fpl$dadd) + x$fpl$dadd 0x0801418c Section 336 daddsub_clz.o(x$fpl$dadd) + _dadd1 0x0801419d Thumb Code 0 daddsub_clz.o(x$fpl$dadd) + $v0 0x080142dc Number 0 dcmpi.o(x$fpl$dcmpinf) + x$fpl$dcmpinf 0x080142dc Section 24 dcmpi.o(x$fpl$dcmpinf) + $v0 0x080142f4 Number 0 ddiv.o(x$fpl$ddiv) + x$fpl$ddiv 0x080142f4 Section 692 ddiv.o(x$fpl$ddiv) + ddiv_entry 0x080142fb Thumb Code 0 ddiv.o(x$fpl$ddiv) + $v0 0x080145a8 Number 0 deqf.o(x$fpl$deqf) + x$fpl$deqf 0x080145a8 Section 120 deqf.o(x$fpl$deqf) + $v0 0x08014620 Number 0 dfix.o(x$fpl$dfix) + x$fpl$dfix 0x08014620 Section 94 dfix.o(x$fpl$dfix) + $v0 0x08014680 Number 0 dfixu.o(x$fpl$dfixu) + x$fpl$dfixu 0x08014680 Section 90 dfixu.o(x$fpl$dfixu) + $v0 0x080146da Number 0 dflt_clz.o(x$fpl$dflt) + x$fpl$dflt 0x080146da Section 46 dflt_clz.o(x$fpl$dflt) + $v0 0x08014708 Number 0 dflt_clz.o(x$fpl$dfltu) + x$fpl$dfltu 0x08014708 Section 38 dflt_clz.o(x$fpl$dfltu) + $v0 0x08014730 Number 0 dmul.o(x$fpl$dmul) + x$fpl$dmul 0x08014730 Section 340 dmul.o(x$fpl$dmul) + $v0 0x08014884 Number 0 dnaninf.o(x$fpl$dnaninf) + x$fpl$dnaninf 0x08014884 Section 156 dnaninf.o(x$fpl$dnaninf) + $v0 0x08014920 Number 0 dretinf.o(x$fpl$dretinf) + x$fpl$dretinf 0x08014920 Section 12 dretinf.o(x$fpl$dretinf) + $v0 0x0801492c Number 0 daddsub_clz.o(x$fpl$drsb) + x$fpl$drsb 0x0801492c Section 22 daddsub_clz.o(x$fpl$drsb) + $v0 0x08014944 Number 0 daddsub_clz.o(x$fpl$dsub) + x$fpl$dsub 0x08014944 Section 476 daddsub_clz.o(x$fpl$dsub) + _dsub1 0x08014955 Thumb Code 0 daddsub_clz.o(x$fpl$dsub) + $v0 0x08014b20 Number 0 f2d.o(x$fpl$f2d) + x$fpl$f2d 0x08014b20 Section 86 f2d.o(x$fpl$f2d) + $v0 0x08014b76 Number 0 ffltll_clz.o(x$fpl$ffltll) + x$fpl$ffltll 0x08014b76 Section 96 ffltll_clz.o(x$fpl$ffltll) + $v0 0x08014bd6 Number 0 fnaninf.o(x$fpl$fnaninf) + x$fpl$fnaninf 0x08014bd6 Section 140 fnaninf.o(x$fpl$fnaninf) + $v0 0x08014c62 Number 0 fpinit.o(x$fpl$fpinit) + x$fpl$fpinit 0x08014c62 Section 26 fpinit.o(x$fpl$fpinit) + $v0 0x08014c7c Number 0 fretinf.o(x$fpl$fretinf) + x$fpl$fretinf 0x08014c7c Section 10 fretinf.o(x$fpl$fretinf) + x$fpl$usenofp 0x08014c86 Section 0 usenofp.o(x$fpl$usenofp) + atanhi 0x08014c88 Data 32 atan.o(.constdata) + .constdata 0x08014c88 Section 152 atan.o(.constdata) + atanlo 0x08014ca8 Data 32 atan.o(.constdata) + aTodd 0x08014cc8 Data 40 atan.o(.constdata) + aTeven 0x08014cf0 Data 48 atan.o(.constdata) + .constdata 0x08014d20 Section 8 qnan.o(.constdata) + twooverpi 0x08014d28 Data 32 rredf.o(.constdata) + .constdata 0x08014d28 Section 32 rredf.o(.constdata) + DMA_CalcBaseAndBitshift.flagBitshiftOffset 0x08014d60 Data 8 stm32f4xx_hal_dma.o(.rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset) + [Anonymous Symbol] 0x08014d60 Section 0 stm32f4xx_hal_dma.o(.rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset) + GPIO_Map 0x08014d68 Data 56 gpio_1.o(.rodata.GPIO_Map) + [Anonymous Symbol] 0x08014d68 Section 0 gpio_1.o(.rodata.GPIO_Map) + PWM_Map 0x08014da0 Data 8 pwm.o(.rodata.PWM_Map) + [Anonymous Symbol] 0x08014da0 Section 0 pwm.o(.rodata.PWM_Map) + imu_temp_ctrl_pid_param 0x08014e5c Data 32 atti_esti.o(.rodata.imu_temp_ctrl_pid_param) + [Anonymous Symbol] 0x08014e5c Section 0 atti_esti.o(.rodata.imu_temp_ctrl_pid_param) + [Anonymous Symbol] 0x08014e7c Section 0 freertos.o(.rodata.str1.1) + .L.str 0x08014e88 Data 5 tasks.o(.rodata.str1.1) + [Anonymous Symbol] 0x08014e88 Section 0 tasks.o(.rodata.str1.1) + .L.str.1 0x08014e8d Data 15 tasks.o(.rodata.str1.1) + .L.str.1 0x08014e8d Data 5 timers.o(.rodata.str1.1) + [Anonymous Symbol] 0x08014e8d Section 0 timers.o(.rodata.str1.1) + .L.str 0x08014e92 Data 8 timers.o(.rodata.str1.1) + [Anonymous Symbol] 0x08014e9a Section 0 user_task.o(.rodata.str1.1) + .L.str.2 0x08014e9c Data 12 tasks.o(.rodata.str1.1) + .L.str.3 0x08014ea8 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 0x200001a4 Data 4 port.o(.data.uxCriticalNesting) - [Anonymous Symbol] 0x200001a4 Section 0 port.o(.data.uxCriticalNesting) + uxCriticalNesting 0x200001a0 Data 4 port.o(.data.uxCriticalNesting) + [Anonymous Symbol] 0x200001a0 Section 0 port.o(.data.uxCriticalNesting) .bss 0x200001a8 Section 96 libspace.o(.bss) CAN_Callback 0x20000208 Data 104 can_1.o(.bss.CAN_Callback) [Anonymous Symbol] 0x20000208 Section 0 can_1.o(.bss.CAN_Callback) @@ -7046,117 +7048,117 @@ Image Symbol Table [Anonymous Symbol] 0x200003dc Section 0 bsp_delay.o(.bss.fac_ms) fac_us 0x200003e0 Data 1 bsp_delay.o(.bss.fac_us) [Anonymous Symbol] 0x200003e0 Section 0 bsp_delay.o(.bss.fac_us) - id_parser 0x20000b08 Data 4 can_1.o(.bss.id_parser) - [Anonymous Symbol] 0x20000b08 Section 0 can_1.o(.bss.id_parser) - inited 0x20000b60 Data 1 can_1.o(.bss.inited) - [Anonymous Symbol] 0x20000b60 Section 0 can_1.o(.bss.inited) - inited 0x20000b61 Data 1 bmi088.o(.bss.inited) - [Anonymous Symbol] 0x20000b61 Section 0 bmi088.o(.bss.inited) - prvCheckForValidListAndQueue.ucStaticTimerQueueStorage 0x20000b70 Data 160 timers.o(.bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage) - [Anonymous Symbol] 0x20000b70 Section 0 timers.o(.bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage) - prvCheckForValidListAndQueue.xStaticTimerQueue 0x20000c10 Data 80 timers.o(.bss.prvCheckForValidListAndQueue.xStaticTimerQueue) - [Anonymous Symbol] 0x20000c10 Section 0 timers.o(.bss.prvCheckForValidListAndQueue.xStaticTimerQueue) - prvSampleTimeNow.xLastTime 0x20000c60 Data 4 timers.o(.bss.prvSampleTimeNow.xLastTime) - [Anonymous Symbol] 0x20000c60 Section 0 timers.o(.bss.prvSampleTimeNow.xLastTime) - pxCurrentTimerList 0x20000c68 Data 4 timers.o(.bss.pxCurrentTimerList) - [Anonymous Symbol] 0x20000c68 Section 0 timers.o(.bss.pxCurrentTimerList) - pxDelayedTaskList 0x20000c6c Data 4 tasks.o(.bss.pxDelayedTaskList) - [Anonymous Symbol] 0x20000c6c Section 0 tasks.o(.bss.pxDelayedTaskList) - pxEnd 0x20000c70 Data 4 heap_4.o(.bss.pxEnd) - [Anonymous Symbol] 0x20000c70 Section 0 heap_4.o(.bss.pxEnd) - pxOverflowDelayedTaskList 0x20000c74 Data 4 tasks.o(.bss.pxOverflowDelayedTaskList) - [Anonymous Symbol] 0x20000c74 Section 0 tasks.o(.bss.pxOverflowDelayedTaskList) - pxOverflowTimerList 0x20000c78 Data 4 timers.o(.bss.pxOverflowTimerList) - [Anonymous Symbol] 0x20000c78 Section 0 timers.o(.bss.pxOverflowTimerList) - pxReadyTasksLists 0x20000c7c Data 1120 tasks.o(.bss.pxReadyTasksLists) - [Anonymous Symbol] 0x20000c7c Section 0 tasks.o(.bss.pxReadyTasksLists) - queue_list 0x200010dc Data 4 can_1.o(.bss.queue_list) - [Anonymous Symbol] 0x200010dc Section 0 can_1.o(.bss.queue_list) - queue_mutex 0x200010e0 Data 4 can_1.o(.bss.queue_mutex) - [Anonymous Symbol] 0x200010e0 Section 0 can_1.o(.bss.queue_mutex) - sbus_rx_buf 0x20001108 Data 25 remote_control.o(.bss.sbus_rx_buf) - [Anonymous Symbol] 0x20001108 Section 0 remote_control.o(.bss.sbus_rx_buf) - thread_alert 0x20001174 Data 4 bmi088.o(.bss.thread_alert) - [Anonymous Symbol] 0x20001174 Section 0 bmi088.o(.bss.thread_alert) - tx_queues 0x20001178 Data 2064 can_1.o(.bss.tx_queues) - [Anonymous Symbol] 0x20001178 Section 0 can_1.o(.bss.tx_queues) - ucHeap 0x20001988 Data 24576 heap_4.o(.bss.ucHeap) - [Anonymous Symbol] 0x20001988 Section 0 heap_4.o(.bss.ucHeap) - ucMaxSysCallPriority 0x20007988 Data 1 port.o(.bss.ucMaxSysCallPriority) - [Anonymous Symbol] 0x20007988 Section 0 port.o(.bss.ucMaxSysCallPriority) - ulMaxPRIGROUPValue 0x2000798c Data 4 port.o(.bss.ulMaxPRIGROUPValue) - [Anonymous Symbol] 0x2000798c Section 0 port.o(.bss.ulMaxPRIGROUPValue) - ulTaskSwitchedInTime 0x20007990 Data 4 tasks.o(.bss.ulTaskSwitchedInTime) - [Anonymous Symbol] 0x20007990 Section 0 tasks.o(.bss.ulTaskSwitchedInTime) - ulTotalRunTime 0x20007994 Data 4 tasks.o(.bss.ulTotalRunTime) - [Anonymous Symbol] 0x20007994 Section 0 tasks.o(.bss.ulTotalRunTime) - uxCurrentNumberOfTasks 0x2000799c Data 4 tasks.o(.bss.uxCurrentNumberOfTasks) - [Anonymous Symbol] 0x2000799c Section 0 tasks.o(.bss.uxCurrentNumberOfTasks) - uxDeletedTasksWaitingCleanUp 0x200079a0 Data 4 tasks.o(.bss.uxDeletedTasksWaitingCleanUp) - [Anonymous Symbol] 0x200079a0 Section 0 tasks.o(.bss.uxDeletedTasksWaitingCleanUp) - uxSchedulerSuspended 0x200079a4 Data 4 tasks.o(.bss.uxSchedulerSuspended) - [Anonymous Symbol] 0x200079a4 Section 0 tasks.o(.bss.uxSchedulerSuspended) - uxTaskNumber 0x200079a8 Data 4 tasks.o(.bss.uxTaskNumber) - [Anonymous Symbol] 0x200079a8 Section 0 tasks.o(.bss.uxTaskNumber) - uxTopReadyPriority 0x200079ac Data 4 tasks.o(.bss.uxTopReadyPriority) - [Anonymous Symbol] 0x200079ac Section 0 tasks.o(.bss.uxTopReadyPriority) - vApplicationGetIdleTaskMemory.Idle_Stack 0x200079b0 Data 512 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_Stack) - [Anonymous Symbol] 0x200079b0 Section 0 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_Stack) - vApplicationGetIdleTaskMemory.Idle_TCB 0x20007bb0 Data 100 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_TCB) - [Anonymous Symbol] 0x20007bb0 Section 0 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_TCB) - vApplicationGetTimerTaskMemory.Timer_Stack 0x20007c14 Data 1024 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_Stack) - [Anonymous Symbol] 0x20007c14 Section 0 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_Stack) - vApplicationGetTimerTaskMemory.Timer_TCB 0x20008014 Data 100 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_TCB) - [Anonymous Symbol] 0x20008014 Section 0 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_TCB) - xActiveTimerList1 0x20008078 Data 20 timers.o(.bss.xActiveTimerList1) - [Anonymous Symbol] 0x20008078 Section 0 timers.o(.bss.xActiveTimerList1) - xActiveTimerList2 0x2000808c Data 20 timers.o(.bss.xActiveTimerList2) - [Anonymous Symbol] 0x2000808c Section 0 timers.o(.bss.xActiveTimerList2) - xBlockAllocatedBit 0x200080a0 Data 4 heap_4.o(.bss.xBlockAllocatedBit) - [Anonymous Symbol] 0x200080a0 Section 0 heap_4.o(.bss.xBlockAllocatedBit) - xDelayedTaskList1 0x200080a4 Data 20 tasks.o(.bss.xDelayedTaskList1) - [Anonymous Symbol] 0x200080a4 Section 0 tasks.o(.bss.xDelayedTaskList1) - xDelayedTaskList2 0x200080b8 Data 20 tasks.o(.bss.xDelayedTaskList2) - [Anonymous Symbol] 0x200080b8 Section 0 tasks.o(.bss.xDelayedTaskList2) - xFreeBytesRemaining 0x200080cc Data 4 heap_4.o(.bss.xFreeBytesRemaining) - [Anonymous Symbol] 0x200080cc Section 0 heap_4.o(.bss.xFreeBytesRemaining) - xIdleTaskHandle 0x200080d0 Data 4 tasks.o(.bss.xIdleTaskHandle) - [Anonymous Symbol] 0x200080d0 Section 0 tasks.o(.bss.xIdleTaskHandle) - xMinimumEverFreeBytesRemaining 0x200080d4 Data 4 heap_4.o(.bss.xMinimumEverFreeBytesRemaining) - [Anonymous Symbol] 0x200080d4 Section 0 heap_4.o(.bss.xMinimumEverFreeBytesRemaining) - xNextTaskUnblockTime 0x200080d8 Data 4 tasks.o(.bss.xNextTaskUnblockTime) - [Anonymous Symbol] 0x200080d8 Section 0 tasks.o(.bss.xNextTaskUnblockTime) - xNumOfOverflows 0x200080dc Data 4 tasks.o(.bss.xNumOfOverflows) - [Anonymous Symbol] 0x200080dc Section 0 tasks.o(.bss.xNumOfOverflows) - xNumberOfSuccessfulAllocations 0x200080e0 Data 4 heap_4.o(.bss.xNumberOfSuccessfulAllocations) - [Anonymous Symbol] 0x200080e0 Section 0 heap_4.o(.bss.xNumberOfSuccessfulAllocations) - xNumberOfSuccessfulFrees 0x200080e4 Data 4 heap_4.o(.bss.xNumberOfSuccessfulFrees) - [Anonymous Symbol] 0x200080e4 Section 0 heap_4.o(.bss.xNumberOfSuccessfulFrees) - xPendedTicks 0x200080e8 Data 4 tasks.o(.bss.xPendedTicks) - [Anonymous Symbol] 0x200080e8 Section 0 tasks.o(.bss.xPendedTicks) - xPendingReadyList 0x200080ec Data 20 tasks.o(.bss.xPendingReadyList) - [Anonymous Symbol] 0x200080ec Section 0 tasks.o(.bss.xPendingReadyList) - xSchedulerRunning 0x20008140 Data 4 tasks.o(.bss.xSchedulerRunning) - [Anonymous Symbol] 0x20008140 Section 0 tasks.o(.bss.xSchedulerRunning) - xStart 0x20008144 Data 8 heap_4.o(.bss.xStart) - [Anonymous Symbol] 0x20008144 Section 0 heap_4.o(.bss.xStart) - xSuspendedTaskList 0x2000814c Data 20 tasks.o(.bss.xSuspendedTaskList) - [Anonymous Symbol] 0x2000814c Section 0 tasks.o(.bss.xSuspendedTaskList) - xTasksWaitingTermination 0x20008160 Data 20 tasks.o(.bss.xTasksWaitingTermination) - [Anonymous Symbol] 0x20008160 Section 0 tasks.o(.bss.xTasksWaitingTermination) - xTickCount 0x20008174 Data 4 tasks.o(.bss.xTickCount) - [Anonymous Symbol] 0x20008174 Section 0 tasks.o(.bss.xTickCount) - xTimerQueue 0x20008178 Data 4 timers.o(.bss.xTimerQueue) - [Anonymous Symbol] 0x20008178 Section 0 timers.o(.bss.xTimerQueue) - xTimerTaskHandle 0x2000817c Data 4 timers.o(.bss.xTimerTaskHandle) - [Anonymous Symbol] 0x2000817c Section 0 timers.o(.bss.xTimerTaskHandle) - xYieldPending 0x20008180 Data 4 tasks.o(.bss.xYieldPending) - [Anonymous Symbol] 0x20008180 Section 0 tasks.o(.bss.xYieldPending) - Heap_Mem 0x20008188 Data 512 startup_stm32f407xx.o(HEAP) - HEAP 0x20008188 Section 512 startup_stm32f407xx.o(HEAP) - Stack_Mem 0x20008388 Data 1024 startup_stm32f407xx.o(STACK) - STACK 0x20008388 Section 1024 startup_stm32f407xx.o(STACK) - __initial_sp 0x20008788 Data 0 startup_stm32f407xx.o(STACK) + id_parser 0x20000af0 Data 4 can_1.o(.bss.id_parser) + [Anonymous Symbol] 0x20000af0 Section 0 can_1.o(.bss.id_parser) + inited 0x20000b48 Data 1 can_1.o(.bss.inited) + [Anonymous Symbol] 0x20000b48 Section 0 can_1.o(.bss.inited) + inited 0x20000b49 Data 1 bmi088.o(.bss.inited) + [Anonymous Symbol] 0x20000b49 Section 0 bmi088.o(.bss.inited) + prvCheckForValidListAndQueue.ucStaticTimerQueueStorage 0x20000b58 Data 160 timers.o(.bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage) + [Anonymous Symbol] 0x20000b58 Section 0 timers.o(.bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage) + prvCheckForValidListAndQueue.xStaticTimerQueue 0x20000bf8 Data 80 timers.o(.bss.prvCheckForValidListAndQueue.xStaticTimerQueue) + [Anonymous Symbol] 0x20000bf8 Section 0 timers.o(.bss.prvCheckForValidListAndQueue.xStaticTimerQueue) + prvSampleTimeNow.xLastTime 0x20000c48 Data 4 timers.o(.bss.prvSampleTimeNow.xLastTime) + [Anonymous Symbol] 0x20000c48 Section 0 timers.o(.bss.prvSampleTimeNow.xLastTime) + pxCurrentTimerList 0x20000c50 Data 4 timers.o(.bss.pxCurrentTimerList) + [Anonymous Symbol] 0x20000c50 Section 0 timers.o(.bss.pxCurrentTimerList) + pxDelayedTaskList 0x20000c54 Data 4 tasks.o(.bss.pxDelayedTaskList) + [Anonymous Symbol] 0x20000c54 Section 0 tasks.o(.bss.pxDelayedTaskList) + pxEnd 0x20000c58 Data 4 heap_4.o(.bss.pxEnd) + [Anonymous Symbol] 0x20000c58 Section 0 heap_4.o(.bss.pxEnd) + pxOverflowDelayedTaskList 0x20000c5c Data 4 tasks.o(.bss.pxOverflowDelayedTaskList) + [Anonymous Symbol] 0x20000c5c Section 0 tasks.o(.bss.pxOverflowDelayedTaskList) + pxOverflowTimerList 0x20000c60 Data 4 timers.o(.bss.pxOverflowTimerList) + [Anonymous Symbol] 0x20000c60 Section 0 timers.o(.bss.pxOverflowTimerList) + pxReadyTasksLists 0x20000c64 Data 1120 tasks.o(.bss.pxReadyTasksLists) + [Anonymous Symbol] 0x20000c64 Section 0 tasks.o(.bss.pxReadyTasksLists) + queue_list 0x200010c4 Data 4 can_1.o(.bss.queue_list) + [Anonymous Symbol] 0x200010c4 Section 0 can_1.o(.bss.queue_list) + queue_mutex 0x200010c8 Data 4 can_1.o(.bss.queue_mutex) + [Anonymous Symbol] 0x200010c8 Section 0 can_1.o(.bss.queue_mutex) + sbus_rx_buf 0x200010f0 Data 25 remote_control.o(.bss.sbus_rx_buf) + [Anonymous Symbol] 0x200010f0 Section 0 remote_control.o(.bss.sbus_rx_buf) + thread_alert 0x2000115c Data 4 bmi088.o(.bss.thread_alert) + [Anonymous Symbol] 0x2000115c Section 0 bmi088.o(.bss.thread_alert) + tx_queues 0x20001160 Data 2064 can_1.o(.bss.tx_queues) + [Anonymous Symbol] 0x20001160 Section 0 can_1.o(.bss.tx_queues) + ucHeap 0x20001970 Data 24576 heap_4.o(.bss.ucHeap) + [Anonymous Symbol] 0x20001970 Section 0 heap_4.o(.bss.ucHeap) + ucMaxSysCallPriority 0x20007970 Data 1 port.o(.bss.ucMaxSysCallPriority) + [Anonymous Symbol] 0x20007970 Section 0 port.o(.bss.ucMaxSysCallPriority) + ulMaxPRIGROUPValue 0x20007974 Data 4 port.o(.bss.ulMaxPRIGROUPValue) + [Anonymous Symbol] 0x20007974 Section 0 port.o(.bss.ulMaxPRIGROUPValue) + ulTaskSwitchedInTime 0x20007978 Data 4 tasks.o(.bss.ulTaskSwitchedInTime) + [Anonymous Symbol] 0x20007978 Section 0 tasks.o(.bss.ulTaskSwitchedInTime) + ulTotalRunTime 0x2000797c Data 4 tasks.o(.bss.ulTotalRunTime) + [Anonymous Symbol] 0x2000797c Section 0 tasks.o(.bss.ulTotalRunTime) + uxCurrentNumberOfTasks 0x20007984 Data 4 tasks.o(.bss.uxCurrentNumberOfTasks) + [Anonymous Symbol] 0x20007984 Section 0 tasks.o(.bss.uxCurrentNumberOfTasks) + uxDeletedTasksWaitingCleanUp 0x20007988 Data 4 tasks.o(.bss.uxDeletedTasksWaitingCleanUp) + [Anonymous Symbol] 0x20007988 Section 0 tasks.o(.bss.uxDeletedTasksWaitingCleanUp) + uxSchedulerSuspended 0x2000798c Data 4 tasks.o(.bss.uxSchedulerSuspended) + [Anonymous Symbol] 0x2000798c Section 0 tasks.o(.bss.uxSchedulerSuspended) + uxTaskNumber 0x20007990 Data 4 tasks.o(.bss.uxTaskNumber) + [Anonymous Symbol] 0x20007990 Section 0 tasks.o(.bss.uxTaskNumber) + uxTopReadyPriority 0x20007994 Data 4 tasks.o(.bss.uxTopReadyPriority) + [Anonymous Symbol] 0x20007994 Section 0 tasks.o(.bss.uxTopReadyPriority) + vApplicationGetIdleTaskMemory.Idle_Stack 0x20007998 Data 512 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_Stack) + [Anonymous Symbol] 0x20007998 Section 0 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_Stack) + vApplicationGetIdleTaskMemory.Idle_TCB 0x20007b98 Data 100 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_TCB) + [Anonymous Symbol] 0x20007b98 Section 0 cmsis_os2.o(.bss.vApplicationGetIdleTaskMemory.Idle_TCB) + vApplicationGetTimerTaskMemory.Timer_Stack 0x20007bfc Data 1024 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_Stack) + [Anonymous Symbol] 0x20007bfc Section 0 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_Stack) + vApplicationGetTimerTaskMemory.Timer_TCB 0x20007ffc Data 100 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_TCB) + [Anonymous Symbol] 0x20007ffc Section 0 cmsis_os2.o(.bss.vApplicationGetTimerTaskMemory.Timer_TCB) + xActiveTimerList1 0x20008060 Data 20 timers.o(.bss.xActiveTimerList1) + [Anonymous Symbol] 0x20008060 Section 0 timers.o(.bss.xActiveTimerList1) + xActiveTimerList2 0x20008074 Data 20 timers.o(.bss.xActiveTimerList2) + [Anonymous Symbol] 0x20008074 Section 0 timers.o(.bss.xActiveTimerList2) + xBlockAllocatedBit 0x20008088 Data 4 heap_4.o(.bss.xBlockAllocatedBit) + [Anonymous Symbol] 0x20008088 Section 0 heap_4.o(.bss.xBlockAllocatedBit) + xDelayedTaskList1 0x2000808c Data 20 tasks.o(.bss.xDelayedTaskList1) + [Anonymous Symbol] 0x2000808c Section 0 tasks.o(.bss.xDelayedTaskList1) + xDelayedTaskList2 0x200080a0 Data 20 tasks.o(.bss.xDelayedTaskList2) + [Anonymous Symbol] 0x200080a0 Section 0 tasks.o(.bss.xDelayedTaskList2) + xFreeBytesRemaining 0x200080b4 Data 4 heap_4.o(.bss.xFreeBytesRemaining) + [Anonymous Symbol] 0x200080b4 Section 0 heap_4.o(.bss.xFreeBytesRemaining) + xIdleTaskHandle 0x200080b8 Data 4 tasks.o(.bss.xIdleTaskHandle) + [Anonymous Symbol] 0x200080b8 Section 0 tasks.o(.bss.xIdleTaskHandle) + xMinimumEverFreeBytesRemaining 0x200080bc Data 4 heap_4.o(.bss.xMinimumEverFreeBytesRemaining) + [Anonymous Symbol] 0x200080bc Section 0 heap_4.o(.bss.xMinimumEverFreeBytesRemaining) + xNextTaskUnblockTime 0x200080c0 Data 4 tasks.o(.bss.xNextTaskUnblockTime) + [Anonymous Symbol] 0x200080c0 Section 0 tasks.o(.bss.xNextTaskUnblockTime) + xNumOfOverflows 0x200080c4 Data 4 tasks.o(.bss.xNumOfOverflows) + [Anonymous Symbol] 0x200080c4 Section 0 tasks.o(.bss.xNumOfOverflows) + xNumberOfSuccessfulAllocations 0x200080c8 Data 4 heap_4.o(.bss.xNumberOfSuccessfulAllocations) + [Anonymous Symbol] 0x200080c8 Section 0 heap_4.o(.bss.xNumberOfSuccessfulAllocations) + xNumberOfSuccessfulFrees 0x200080cc Data 4 heap_4.o(.bss.xNumberOfSuccessfulFrees) + [Anonymous Symbol] 0x200080cc Section 0 heap_4.o(.bss.xNumberOfSuccessfulFrees) + xPendedTicks 0x200080d0 Data 4 tasks.o(.bss.xPendedTicks) + [Anonymous Symbol] 0x200080d0 Section 0 tasks.o(.bss.xPendedTicks) + xPendingReadyList 0x200080d4 Data 20 tasks.o(.bss.xPendingReadyList) + [Anonymous Symbol] 0x200080d4 Section 0 tasks.o(.bss.xPendingReadyList) + xSchedulerRunning 0x20008128 Data 4 tasks.o(.bss.xSchedulerRunning) + [Anonymous Symbol] 0x20008128 Section 0 tasks.o(.bss.xSchedulerRunning) + xStart 0x2000812c Data 8 heap_4.o(.bss.xStart) + [Anonymous Symbol] 0x2000812c Section 0 heap_4.o(.bss.xStart) + xSuspendedTaskList 0x20008134 Data 20 tasks.o(.bss.xSuspendedTaskList) + [Anonymous Symbol] 0x20008134 Section 0 tasks.o(.bss.xSuspendedTaskList) + xTasksWaitingTermination 0x20008148 Data 20 tasks.o(.bss.xTasksWaitingTermination) + [Anonymous Symbol] 0x20008148 Section 0 tasks.o(.bss.xTasksWaitingTermination) + xTickCount 0x2000815c Data 4 tasks.o(.bss.xTickCount) + [Anonymous Symbol] 0x2000815c Section 0 tasks.o(.bss.xTickCount) + xTimerQueue 0x20008160 Data 4 timers.o(.bss.xTimerQueue) + [Anonymous Symbol] 0x20008160 Section 0 timers.o(.bss.xTimerQueue) + xTimerTaskHandle 0x20008164 Data 4 timers.o(.bss.xTimerTaskHandle) + [Anonymous Symbol] 0x20008164 Section 0 timers.o(.bss.xTimerTaskHandle) + xYieldPending 0x20008168 Data 4 tasks.o(.bss.xYieldPending) + [Anonymous Symbol] 0x20008168 Section 0 tasks.o(.bss.xYieldPending) + Heap_Mem 0x20008170 Data 512 startup_stm32f407xx.o(HEAP) + HEAP 0x20008170 Section 512 startup_stm32f407xx.o(HEAP) + Stack_Mem 0x20008370 Data 1024 startup_stm32f407xx.o(STACK) + STACK 0x20008370 Section 1024 startup_stm32f407xx.o(STACK) + __initial_sp 0x20008770 Data 0 startup_stm32f407xx.o(STACK) Global Symbols @@ -7405,369 +7407,369 @@ Image Symbol Table EXTI4_IRQHandler 0x08003835 Thumb Code 10 stm32f4xx_it.o(.text.EXTI4_IRQHandler) EXTI9_5_IRQHandler 0x08003841 Thumb Code 10 stm32f4xx_it.o(.text.EXTI9_5_IRQHandler) Error_Handler 0x0800384d Thumb Code 6 main.o(.text.Error_Handler) - Gimbal_Control 0x08003855 Thumb Code 1000 gimbal.o(.text.Gimbal_Control) - Gimbal_Init 0x08003c3d Thumb Code 472 gimbal.o(.text.Gimbal_Init) - Gimbal_Output 0x08003e15 Thumb Code 274 gimbal.o(.text.Gimbal_Output) - Gimbal_UpdateFeedback 0x08003fdd Thumb Code 360 gimbal.o(.text.Gimbal_UpdateFeedback) - Gimbal_UpdateIMU 0x08004145 Thumb Code 74 gimbal.o(.text.Gimbal_UpdateIMU) - HAL_CAN_ActivateNotification 0x08004191 Thumb Code 82 stm32f4xx_hal_can.o(.text.HAL_CAN_ActivateNotification) - HAL_CAN_AddTxMessage 0x080041e5 Thumb Code 342 stm32f4xx_hal_can.o(.text.HAL_CAN_AddTxMessage) - HAL_CAN_ConfigFilter 0x0800433d Thumb Code 414 stm32f4xx_hal_can.o(.text.HAL_CAN_ConfigFilter) - HAL_CAN_ErrorCallback 0x080044dd Thumb Code 80 can_1.o(.text.HAL_CAN_ErrorCallback) - HAL_CAN_GetRxFifoFillLevel 0x0800452d Thumb Code 82 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxFifoFillLevel) - HAL_CAN_GetRxMessage 0x08004581 Thumb Code 530 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxMessage) - HAL_CAN_GetTxMailboxesFreeLevel 0x08004795 Thumb Code 112 stm32f4xx_hal_can.o(.text.HAL_CAN_GetTxMailboxesFreeLevel) - HAL_CAN_IRQHandler 0x08004805 Thumb Code 1010 stm32f4xx_hal_can.o(.text.HAL_CAN_IRQHandler) - HAL_CAN_Init 0x08004bf9 Thumb Code 478 stm32f4xx_hal_can.o(.text.HAL_CAN_Init) - HAL_CAN_MspInit 0x08004dd9 Thumb Code 464 can.o(.text.HAL_CAN_MspInit) - HAL_CAN_RxFifo0FullCallback 0x08004fa9 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo0FullCallback) - HAL_CAN_RxFifo0MsgPendingCallback 0x08004ff9 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo0MsgPendingCallback) - HAL_CAN_RxFifo1FullCallback 0x08005049 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo1FullCallback) - HAL_CAN_RxFifo1MsgPendingCallback 0x08005099 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo1MsgPendingCallback) - HAL_CAN_SleepCallback 0x080050e9 Thumb Code 80 can_1.o(.text.HAL_CAN_SleepCallback) - HAL_CAN_Start 0x08005139 Thumb Code 138 stm32f4xx_hal_can.o(.text.HAL_CAN_Start) - HAL_CAN_TxMailbox0AbortCallback 0x080051c5 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox0AbortCallback) - HAL_CAN_TxMailbox0CompleteCallback 0x08005215 Thumb Code 76 can_1.o(.text.HAL_CAN_TxMailbox0CompleteCallback) - HAL_CAN_TxMailbox1AbortCallback 0x08005261 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox1AbortCallback) - HAL_CAN_TxMailbox1CompleteCallback 0x080052b1 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox1CompleteCallback) - HAL_CAN_TxMailbox2AbortCallback 0x08005301 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox2AbortCallback) - HAL_CAN_TxMailbox2CompleteCallback 0x08005351 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox2CompleteCallback) - HAL_CAN_WakeUpFromRxMsgCallback 0x080053a1 Thumb Code 80 can_1.o(.text.HAL_CAN_WakeUpFromRxMsgCallback) - HAL_DMA_Abort 0x080053f1 Thumb Code 236 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort) - HAL_DMA_Abort_IT 0x080054dd Thumb Code 68 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort_IT) - HAL_DMA_GetState 0x08005521 Thumb Code 14 stm32f4xx_hal_dma.o(.text.HAL_DMA_GetState) - HAL_DMA_IRQHandler 0x08005531 Thumb Code 798 stm32f4xx_hal_dma.o(.text.HAL_DMA_IRQHandler) - HAL_DMA_Init 0x08005851 Thumb Code 366 stm32f4xx_hal_dma.o(.text.HAL_DMA_Init) - HAL_DMA_Start_IT 0x080059c1 Thumb Code 194 stm32f4xx_hal_dma.o(.text.HAL_DMA_Start_IT) - HAL_Delay 0x08005a85 Thumb Code 66 stm32f4xx_hal.o(.text.HAL_Delay) - HAL_GPIO_EXTI_Callback 0x08005ac9 Thumb Code 102 gpio_1.o(.text.HAL_GPIO_EXTI_Callback) - HAL_GPIO_EXTI_IRQHandler 0x08005b31 Thumb Code 56 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_EXTI_IRQHandler) - HAL_GPIO_Init 0x08005b69 Thumb Code 950 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_Init) - HAL_GPIO_ReadPin 0x08005f21 Thumb Code 46 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_ReadPin) - HAL_GPIO_WritePin 0x08005f51 Thumb Code 46 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_WritePin) - HAL_GetTick 0x08005f81 Thumb Code 12 stm32f4xx_hal.o(.text.HAL_GetTick) - HAL_I2C_AbortCpltCallback 0x08005f8d Thumb Code 84 i2c_1.o(.text.HAL_I2C_AbortCpltCallback) - HAL_I2C_AddrCallback 0x08005fe1 Thumb Code 16 stm32f4xx_hal_i2c.o(.text.HAL_I2C_AddrCallback) - HAL_I2C_ER_IRQHandler 0x08005ff1 Thumb Code 378 stm32f4xx_hal_i2c.o(.text.HAL_I2C_ER_IRQHandler) - HAL_I2C_EV_IRQHandler 0x0800616d Thumb Code 970 stm32f4xx_hal_i2c.o(.text.HAL_I2C_EV_IRQHandler) - HAL_I2C_ErrorCallback 0x08006539 Thumb Code 84 i2c_1.o(.text.HAL_I2C_ErrorCallback) - HAL_I2C_Init 0x0800658d Thumb Code 676 stm32f4xx_hal_i2c.o(.text.HAL_I2C_Init) - HAL_I2C_ListenCpltCallback 0x08006831 Thumb Code 84 i2c_1.o(.text.HAL_I2C_ListenCpltCallback) - HAL_I2C_MasterRxCpltCallback 0x08006885 Thumb Code 84 i2c_1.o(.text.HAL_I2C_MasterRxCpltCallback) - HAL_I2C_MasterTxCpltCallback 0x080068d9 Thumb Code 80 i2c_1.o(.text.HAL_I2C_MasterTxCpltCallback) - HAL_I2C_MemRxCpltCallback 0x08006929 Thumb Code 84 i2c_1.o(.text.HAL_I2C_MemRxCpltCallback) - HAL_I2C_MemTxCpltCallback 0x0800697d Thumb Code 84 i2c_1.o(.text.HAL_I2C_MemTxCpltCallback) - HAL_I2C_MspInit 0x080069d1 Thumb Code 308 i2c.o(.text.HAL_I2C_MspInit) - HAL_I2C_SlaveRxCpltCallback 0x08006b05 Thumb Code 84 i2c_1.o(.text.HAL_I2C_SlaveRxCpltCallback) - HAL_I2C_SlaveTxCpltCallback 0x08006b59 Thumb Code 84 i2c_1.o(.text.HAL_I2C_SlaveTxCpltCallback) - HAL_IncTick 0x08006bad Thumb Code 26 stm32f4xx_hal.o(.text.HAL_IncTick) - HAL_Init 0x08006bc9 Thumb Code 54 stm32f4xx_hal.o(.text.HAL_Init) - HAL_InitTick 0x08006c01 Thumb Code 112 stm32f4xx_hal.o(.text.HAL_InitTick) - HAL_MspInit 0x08006c71 Thumb Code 88 stm32f4xx_hal_msp.o(.text.HAL_MspInit) - HAL_NVIC_DisableIRQ 0x08006cc9 Thumb Code 20 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_DisableIRQ) - HAL_NVIC_EnableIRQ 0x08006cdd Thumb Code 20 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ) - HAL_NVIC_SetPriority 0x08006cf1 Thumb Code 50 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) - HAL_NVIC_SetPriorityGrouping 0x08006d25 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) - HAL_RCC_ClockConfig 0x08006d35 Thumb Code 610 stm32f4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) - HAL_RCC_GetHCLKFreq 0x08006f99 Thumb Code 12 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) - HAL_RCC_GetPCLK1Freq 0x08006fa5 Thumb Code 34 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) - HAL_RCC_GetPCLK2Freq 0x08006fc9 Thumb Code 34 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) - HAL_RCC_GetSysClockFreq 0x08006fed Thumb Code 230 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) - HAL_RCC_OscConfig 0x080070d5 Thumb Code 1726 stm32f4xx_hal_rcc.o(.text.HAL_RCC_OscConfig) - HAL_SPI_ErrorCallback 0x08007795 Thumb Code 84 spi_1.o(.text.HAL_SPI_ErrorCallback) - HAL_SPI_Init 0x080077e9 Thumb Code 256 stm32f4xx_hal_spi.o(.text.HAL_SPI_Init) - HAL_SPI_MspInit 0x080078e9 Thumb Code 528 spi.o(.text.HAL_SPI_MspInit) - HAL_SPI_Receive 0x08007af9 Thumb Code 590 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive) - HAL_SPI_Receive_DMA 0x08007d49 Thumb Code 408 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive_DMA) - HAL_SPI_RxCpltCallback 0x08007ee1 Thumb Code 84 spi_1.o(.text.HAL_SPI_RxCpltCallback) - HAL_SPI_RxHalfCpltCallback 0x08007f35 Thumb Code 84 spi_1.o(.text.HAL_SPI_RxHalfCpltCallback) - HAL_SPI_Transmit 0x08007f89 Thumb Code 674 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit) - HAL_SPI_TransmitReceive 0x0800822d Thumb Code 930 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive) - HAL_SPI_TransmitReceive_DMA 0x080085d1 Thumb Code 532 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive_DMA) - HAL_SPI_Transmit_DMA 0x080087e5 Thumb Code 364 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit_DMA) - HAL_SPI_TxCpltCallback 0x08008951 Thumb Code 72 spi_1.o(.text.HAL_SPI_TxCpltCallback) - HAL_SPI_TxHalfCpltCallback 0x08008999 Thumb Code 84 spi_1.o(.text.HAL_SPI_TxHalfCpltCallback) - HAL_SPI_TxRxCpltCallback 0x080089ed Thumb Code 84 spi_1.o(.text.HAL_SPI_TxRxCpltCallback) - HAL_SPI_TxRxHalfCpltCallback 0x08008a41 Thumb Code 84 spi_1.o(.text.HAL_SPI_TxRxHalfCpltCallback) - HAL_SYSTICK_Config 0x08008a95 Thumb Code 16 stm32f4xx_hal_cortex.o(.text.HAL_SYSTICK_Config) - HAL_TIMEx_BreakCallback 0x08008aa5 Thumb Code 8 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_BreakCallback) - HAL_TIMEx_CommutCallback 0x08008aad Thumb Code 8 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_CommutCallback) - HAL_TIMEx_MasterConfigSynchronization 0x08008ab5 Thumb Code 290 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) - HAL_TIM_Base_Init 0x08008bd9 Thumb Code 156 stm32f4xx_hal_tim.o(.text.HAL_TIM_Base_Init) - HAL_TIM_Base_MspInit 0x08008c75 Thumb Code 138 tim.o(.text.HAL_TIM_Base_MspInit) - HAL_TIM_IC_CaptureCallback 0x08008d01 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_IC_CaptureCallback) - HAL_TIM_IRQHandler 0x08008d09 Thumb Code 538 stm32f4xx_hal_tim.o(.text.HAL_TIM_IRQHandler) - HAL_TIM_MspPostInit 0x08008f25 Thumb Code 108 tim.o(.text.HAL_TIM_MspPostInit) - HAL_TIM_OC_DelayElapsedCallback 0x08008f91 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_OC_DelayElapsedCallback) - HAL_TIM_PWM_ConfigChannel 0x08008f99 Thumb Code 322 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel) - HAL_TIM_PWM_Init 0x080090dd Thumb Code 156 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Init) - HAL_TIM_PWM_MspInit 0x08009179 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit) - HAL_TIM_PWM_PulseFinishedCallback 0x08009181 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_PulseFinishedCallback) - HAL_TIM_PWM_Start 0x08009189 Thumb Code 458 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Start) - HAL_TIM_PeriodElapsedCallback 0x08009355 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PeriodElapsedCallback) - HAL_TIM_TriggerCallback 0x0800935d Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_TriggerCallback) - HAL_UARTEx_RxEventCallback 0x08009365 Thumb Code 12 stm32f4xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) - HAL_UART_ErrorCallback 0x08009371 Thumb Code 84 uart.o(.text.HAL_UART_ErrorCallback) - HAL_UART_IRQHandler 0x080093c5 Thumb Code 1116 stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler) - HAL_UART_Init 0x08009821 Thumb Code 158 stm32f4xx_hal_uart.o(.text.HAL_UART_Init) - HAL_UART_MspInit 0x080098c1 Thumb Code 460 usart.o(.text.HAL_UART_MspInit) - HAL_UART_RxCpltCallback 0x08009a8d Thumb Code 84 uart.o(.text.HAL_UART_RxCpltCallback) - HAL_UART_TxCpltCallback 0x08009ae1 Thumb Code 84 uart.o(.text.HAL_UART_TxCpltCallback) - HardFault_Handler 0x08009b35 Thumb Code 4 stm32f4xx_it.o(.text.HardFault_Handler) - I2C1_ER_IRQHandler 0x08009b39 Thumb Code 16 stm32f4xx_it.o(.text.I2C1_ER_IRQHandler) - I2C1_EV_IRQHandler 0x08009b49 Thumb Code 16 stm32f4xx_it.o(.text.I2C1_EV_IRQHandler) - InvSqrt 0x0800b035 Thumb Code 118 user_math.o(.text.InvSqrt) - LowPassFilter2p_Apply 0x0800b0ad Thumb Code 184 filter.o(.text.LowPassFilter2p_Apply) - LowPassFilter2p_Init 0x0800b165 Thumb Code 316 filter.o(.text.LowPassFilter2p_Init) - LowPassFilter2p_Reset 0x0800b2a1 Thumb Code 146 filter.o(.text.LowPassFilter2p_Reset) - MOTOR_DM_Enable 0x0800b3cd Thumb Code 122 motor_dm.o(.text.MOTOR_DM_Enable) - MOTOR_DM_GetMotor 0x0800b479 Thumb Code 134 motor_dm.o(.text.MOTOR_DM_GetMotor) - MOTOR_DM_MITCtrl 0x0800b501 Thumb Code 72 motor_dm.o(.text.MOTOR_DM_MITCtrl) - MOTOR_DM_Register 0x0800b6a1 Thumb Code 300 motor_dm.o(.text.MOTOR_DM_Register) - MOTOR_DM_Update 0x0800b911 Thumb Code 268 motor_dm.o(.text.MOTOR_DM_Update) - MOTOR_RM_Ctrl 0x0800bab5 Thumb Code 368 motor_rm.o(.text.MOTOR_RM_Ctrl) - MOTOR_RM_GetMotor 0x0800bd29 Thumb Code 120 motor_rm.o(.text.MOTOR_RM_GetMotor) - MOTOR_RM_Register 0x0800bdf1 Thumb Code 288 motor_rm.o(.text.MOTOR_RM_Register) - MOTOR_RM_SetOutput 0x0800bf11 Thumb Code 282 motor_rm.o(.text.MOTOR_RM_SetOutput) - MOTOR_RM_Update 0x0800c02d Thumb Code 258 motor_rm.o(.text.MOTOR_RM_Update) - MX_CAN1_Init 0x0800c131 Thumb Code 78 can.o(.text.MX_CAN1_Init) - MX_CAN2_Init 0x0800c181 Thumb Code 78 can.o(.text.MX_CAN2_Init) - MX_DMA_Init 0x0800c1d1 Thumb Code 134 dma.o(.text.MX_DMA_Init) - MX_FREERTOS_Init 0x0800c259 Thumb Code 64 freertos.o(.text.MX_FREERTOS_Init) - MX_GPIO_Init 0x0800c299 Thumb Code 554 gpio.o(.text.MX_GPIO_Init) - MX_I2C1_Init 0x0800c4c5 Thumb Code 72 i2c.o(.text.MX_I2C1_Init) - MX_I2C2_Init 0x0800c50d Thumb Code 72 i2c.o(.text.MX_I2C2_Init) - MX_SPI1_Init 0x0800c555 Thumb Code 82 spi.o(.text.MX_SPI1_Init) - MX_SPI2_Init 0x0800c5a9 Thumb Code 84 spi.o(.text.MX_SPI2_Init) - MX_TIM10_Init 0x0800c5fd Thumb Code 142 tim.o(.text.MX_TIM10_Init) - MX_TIM7_Init 0x0800c68d Thumb Code 88 tim.o(.text.MX_TIM7_Init) - MX_USART1_UART_Init 0x0800c6e5 Thumb Code 64 usart.o(.text.MX_USART1_UART_Init) - MX_USART3_UART_Init 0x0800c725 Thumb Code 76 usart.o(.text.MX_USART3_UART_Init) - MemManage_Handler 0x0800c771 Thumb Code 4 stm32f4xx_it.o(.text.MemManage_Handler) - NMI_Handler 0x0800c991 Thumb Code 4 stm32f4xx_it.o(.text.NMI_Handler) - PID_Calc 0x0800ca01 Thumb Code 752 pid.o(.text.PID_Calc) - PID_Init 0x0800ccf1 Thumb Code 406 pid.o(.text.PID_Init) - PID_Reset 0x0800ce89 Thumb Code 72 pid.o(.text.PID_Reset) - PendSV_Handler 0x0800ced1 Thumb Code 100 port.o(.text.PendSV_Handler) - RC_Init 0x0800cf35 Thumb Code 148 bsp_rc.o(.text.RC_Init) - RC_restart 0x0800cfc9 Thumb Code 90 bsp_rc.o(.text.RC_restart) - SVC_Handler 0x0800d581 Thumb Code 36 port.o(.text.SVC_Handler) - StartDefaultTask 0x0800d5b5 Thumb Code 18 freertos.o(.text.StartDefaultTask) - SysTick_Handler 0x0800d61d Thumb Code 24 stm32f4xx_it.o(.text.SysTick_Handler) - SystemClock_Config 0x0800d635 Thumb Code 188 main.o(.text.SystemClock_Config) - SystemInit 0x0800d6f1 Thumb Code 18 system_stm32f4xx.o(.text.SystemInit) - TIM7_IRQHandler 0x0800d705 Thumb Code 16 stm32f4xx_it.o(.text.TIM7_IRQHandler) - TIM_Base_SetConfig 0x0800d715 Thumb Code 420 stm32f4xx_hal_tim.o(.text.TIM_Base_SetConfig) - TIM_CCxChannelCmd 0x0800d8b9 Thumb Code 54 stm32f4xx_hal_tim.o(.text.TIM_CCxChannelCmd) - TIM_OC2_SetConfig 0x0800d9dd Thumb Code 244 stm32f4xx_hal_tim.o(.text.TIM_OC2_SetConfig) - Task_Init 0x0800dc69 Thumb Code 184 init.o(.text.Task_Init) - Task_atti_esti 0x0800dd21 Thumb Code 400 atti_esti.o(.text.Task_atti_esti) - Task_gimbal_ctrl 0x0800deb1 Thumb Code 220 gimbal_ctrl.o(.text.Task_gimbal_ctrl) - Task_remote 0x0800df91 Thumb Code 160 remote.o(.text.Task_remote) - USART3_IRQHandler 0x0800e471 Thumb Code 32 stm32f4xx_it.o(.text.USART3_IRQHandler) - USART3_IRQHandler1 0x0800e491 Thumb Code 34 remote_control.o(.text.USART3_IRQHandler1) - UsageFault_Handler 0x0800e4b5 Thumb Code 4 stm32f4xx_it.o(.text.UsageFault_Handler) - configureTimerForRunTimeStats 0x0800e6b5 Thumb Code 2 freertos.o(.text.configureTimerForRunTimeStats) - delay_init 0x0800e6d9 Thumb Code 62 bsp_delay.o(.text.delay_init) - eTaskGetState 0x0800e719 Thumb Code 246 tasks.o(.text.eTaskGetState) - getRunTimeCounterValue 0x0800e869 Thumb Code 4 freertos.o(.text.getRunTimeCounterValue) - main 0x0800e86d Thumb Code 80 main.o(.text.main) - map 0x0800e8bd Thumb Code 42 calc_lib.o(.text.map) - osDelay 0x0800e8e9 Thumb Code 52 cmsis_os2.o(.text.osDelay) - osDelayUntil 0x0800e91d Thumb Code 88 cmsis_os2.o(.text.osDelayUntil) - osKernelGetState 0x0800e975 Thumb Code 82 cmsis_os2.o(.text.osKernelGetState) - osKernelGetTickCount 0x0800e9c9 Thumb Code 38 cmsis_os2.o(.text.osKernelGetTickCount) - osKernelGetTickFreq 0x0800e9f1 Thumb Code 6 cmsis_os2.o(.text.osKernelGetTickFreq) - osKernelInitialize 0x0800e9f9 Thumb Code 70 cmsis_os2.o(.text.osKernelInitialize) - osKernelLock 0x0800ea41 Thumb Code 86 cmsis_os2.o(.text.osKernelLock) - osKernelStart 0x0800ea99 Thumb Code 82 cmsis_os2.o(.text.osKernelStart) - osKernelUnlock 0x0800eaed Thumb Code 110 cmsis_os2.o(.text.osKernelUnlock) - osMessageQueueGet 0x0800eb5d Thumb Code 192 cmsis_os2.o(.text.osMessageQueueGet) - osMessageQueueNew 0x0800ec1d Thumb Code 254 cmsis_os2.o(.text.osMessageQueueNew) - osMessageQueuePut 0x0800ed1d Thumb Code 196 cmsis_os2.o(.text.osMessageQueuePut) - osMessageQueueReset 0x0800ede1 Thumb Code 64 cmsis_os2.o(.text.osMessageQueueReset) - osMutexAcquire 0x0800ee21 Thumb Code 158 cmsis_os2.o(.text.osMutexAcquire) - osMutexNew 0x0800eec1 Thumb Code 296 cmsis_os2.o(.text.osMutexNew) - osMutexRelease 0x0800efe9 Thumb Code 126 cmsis_os2.o(.text.osMutexRelease) - osThreadFlagsSet 0x0800f069 Thumb Code 164 cmsis_os2.o(.text.osThreadFlagsSet) - osThreadFlagsWait 0x0800f10d Thumb Code 282 cmsis_os2.o(.text.osThreadFlagsWait) - osThreadGetId 0x0800f229 Thumb Code 16 cmsis_os2.o(.text.osThreadGetId) - osThreadNew 0x0800f239 Thumb Code 346 cmsis_os2.o(.text.osThreadNew) - osThreadTerminate 0x0800f395 Thumb Code 94 cmsis_os2.o(.text.osThreadTerminate) - pvPortMalloc 0x080102f5 Thumb Code 492 heap_4.o(.text.pvPortMalloc) - pvTaskIncrementMutexHeldCount 0x080104e1 Thumb Code 44 tasks.o(.text.pvTaskIncrementMutexHeldCount) - pxPortInitialiseStack 0x0801050d Thumb Code 94 port.o(.text.pxPortInitialiseStack) - remote_ParseHost 0x08010571 Thumb Code 176 ai.o(.text.remote_ParseHost) - remote_control_init 0x08010621 Thumb Code 18 remote_control.o(.text.remote_control_init) - user_delay_ms 0x0801091d Thumb Code 46 calc_lib.o(.text.user_delay_ms) - user_delay_us 0x0801094d Thumb Code 68 calc_lib.o(.text.user_delay_us) - uxListRemove 0x08010991 Thumb Code 72 list.o(.text.uxListRemove) - vApplicationGetIdleTaskMemory 0x080109d9 Thumb Code 42 cmsis_os2.o(.text.vApplicationGetIdleTaskMemory) - vApplicationGetTimerTaskMemory 0x08010a05 Thumb Code 44 cmsis_os2.o(.text.vApplicationGetTimerTaskMemory) - vApplicationStackOverflowHook 0x08010a31 Thumb Code 10 freertos.o(.text.vApplicationStackOverflowHook) - vListInitialise 0x08010a3d Thumb Code 46 list.o(.text.vListInitialise) - vListInitialiseItem 0x08010a6d Thumb Code 14 list.o(.text.vListInitialiseItem) - vListInsert 0x08010a7d Thumb Code 106 list.o(.text.vListInsert) - vListInsertEnd 0x08010ae9 Thumb Code 58 list.o(.text.vListInsertEnd) - vPortEnterCritical 0x08010b39 Thumb Code 86 port.o(.text.vPortEnterCritical) - vPortExitCritical 0x08010b91 Thumb Code 74 port.o(.text.vPortExitCritical) - vPortFree 0x08010bdd Thumb Code 206 heap_4.o(.text.vPortFree) - vPortSetupTimerInterrupt 0x08010cad Thumb Code 68 port.o(.text.vPortSetupTimerInterrupt) - vPortValidateInterruptPriority 0x08010cf1 Thumb Code 132 port.o(.text.vPortValidateInterruptPriority) - vQueueAddToRegistry 0x08010d75 Thumb Code 82 queue.o(.text.vQueueAddToRegistry) - vQueueWaitForMessageRestricted 0x08010dc9 Thumb Code 100 queue.o(.text.vQueueWaitForMessageRestricted) - vTaskDelay 0x08010e2d Thumb Code 110 tasks.o(.text.vTaskDelay) - vTaskDelayUntil 0x08010e9d Thumb Code 276 tasks.o(.text.vTaskDelayUntil) - vTaskDelete 0x08010fb1 Thumb Code 270 tasks.o(.text.vTaskDelete) - vTaskInternalSetTimeOutState 0x080110c1 Thumb Code 36 tasks.o(.text.vTaskInternalSetTimeOutState) - vTaskMissedYield 0x080110e5 Thumb Code 14 tasks.o(.text.vTaskMissedYield) - vTaskPlaceOnEventList 0x080110f5 Thumb Code 66 tasks.o(.text.vTaskPlaceOnEventList) - vTaskPlaceOnEventListRestricted 0x08011139 Thumb Code 82 tasks.o(.text.vTaskPlaceOnEventListRestricted) - vTaskPriorityDisinheritAfterTimeout 0x0801118d Thumb Code 308 tasks.o(.text.vTaskPriorityDisinheritAfterTimeout) - vTaskStartScheduler 0x080112c1 Thumb Code 228 tasks.o(.text.vTaskStartScheduler) - vTaskSuspendAll 0x080113a5 Thumb Code 16 tasks.o(.text.vTaskSuspendAll) - vTaskSwitchContext 0x080113b5 Thumb Code 384 tasks.o(.text.vTaskSwitchContext) - xPortStartScheduler 0x08011535 Thumb Code 342 port.o(.text.xPortStartScheduler) - xPortSysTickHandler 0x0801168d Thumb Code 60 port.o(.text.xPortSysTickHandler) - xQueueCreateMutex 0x080116c9 Thumb Code 38 queue.o(.text.xQueueCreateMutex) - xQueueCreateMutexStatic 0x080116f1 Thumb Code 50 queue.o(.text.xQueueCreateMutexStatic) - xQueueGenericCreate 0x08011725 Thumb Code 116 queue.o(.text.xQueueGenericCreate) - xQueueGenericCreateStatic 0x08011799 Thumb Code 270 queue.o(.text.xQueueGenericCreateStatic) - xQueueGenericReset 0x080118a9 Thumb Code 186 queue.o(.text.xQueueGenericReset) - xQueueGenericSend 0x08011965 Thumb Code 556 queue.o(.text.xQueueGenericSend) - xQueueGenericSendFromISR 0x08011b91 Thumb Code 332 queue.o(.text.xQueueGenericSendFromISR) - xQueueGiveMutexRecursive 0x08011cdd Thumb Code 108 queue.o(.text.xQueueGiveMutexRecursive) - xQueueReceive 0x08011d49 Thumb Code 476 queue.o(.text.xQueueReceive) - xQueueReceiveFromISR 0x08011f25 Thumb Code 264 queue.o(.text.xQueueReceiveFromISR) - xQueueSemaphoreTake 0x0801202d Thumb Code 556 queue.o(.text.xQueueSemaphoreTake) - xQueueTakeMutexRecursive 0x08012259 Thumb Code 110 queue.o(.text.xQueueTakeMutexRecursive) - xTaskCheckForTimeOut 0x080122c9 Thumb Code 204 tasks.o(.text.xTaskCheckForTimeOut) - xTaskCreate 0x08012395 Thumb Code 158 tasks.o(.text.xTaskCreate) - xTaskCreateStatic 0x08012435 Thumb Code 206 tasks.o(.text.xTaskCreateStatic) - xTaskGenericNotify 0x08012505 Thumb Code 376 tasks.o(.text.xTaskGenericNotify) - xTaskGenericNotifyFromISR 0x0801267d Thumb Code 452 tasks.o(.text.xTaskGenericNotifyFromISR) - xTaskGetCurrentTaskHandle 0x08012841 Thumb Code 20 tasks.o(.text.xTaskGetCurrentTaskHandle) - xTaskGetSchedulerState 0x08012855 Thumb Code 56 tasks.o(.text.xTaskGetSchedulerState) - xTaskGetTickCount 0x0801288d Thumb Code 20 tasks.o(.text.xTaskGetTickCount) - xTaskGetTickCountFromISR 0x080128a1 Thumb Code 30 tasks.o(.text.xTaskGetTickCountFromISR) - xTaskIncrementTick 0x080128c1 Thumb Code 452 tasks.o(.text.xTaskIncrementTick) - xTaskNotifyWait 0x08012a85 Thumb Code 214 tasks.o(.text.xTaskNotifyWait) - xTaskPriorityDisinherit 0x08012b5d Thumb Code 236 tasks.o(.text.xTaskPriorityDisinherit) - xTaskPriorityInherit 0x08012c49 Thumb Code 270 tasks.o(.text.xTaskPriorityInherit) - xTaskRemoveFromEventList 0x08012d59 Thumb Code 206 tasks.o(.text.xTaskRemoveFromEventList) - xTaskResumeAll 0x08012e29 Thumb Code 390 tasks.o(.text.xTaskResumeAll) - xTimerCreateTimerTask 0x08012fb1 Thumb Code 148 timers.o(.text.xTimerCreateTimerTask) - xTimerGenericCommand 0x08013045 Thumb Code 176 timers.o(.text.xTimerGenericCommand) - __ARM_fpclassify 0x080130f5 Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) - __ARM_fpclassifyf 0x08013125 Thumb Code 38 fpclassifyf.o(i.__ARM_fpclassifyf) - __hardfp_asinf 0x0801314d Thumb Code 258 asinf.o(i.__hardfp_asinf) - __hardfp_atan 0x08013279 Thumb Code 622 atan.o(i.__hardfp_atan) - __hardfp_atan2 0x08013551 Thumb Code 448 atan2.o(i.__hardfp_atan2) - __hardfp_atan2f 0x08013751 Thumb Code 594 atan2f.o(i.__hardfp_atan2f) - __hardfp_cosf 0x080139fd Thumb Code 280 cosf.o(i.__hardfp_cosf) - __hardfp_tanf 0x08013b4d Thumb Code 322 tanf.o(i.__hardfp_tanf) - __kernel_poly 0x08013cc9 Thumb Code 248 poly.o(i.__kernel_poly) - __mathlib_dbl_infnan 0x08013dc1 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan) - __mathlib_dbl_infnan2 0x08013dd5 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan2) - __mathlib_dbl_underflow 0x08013de9 Thumb Code 24 dunder.o(i.__mathlib_dbl_underflow) - __mathlib_flt_infnan 0x08013e09 Thumb Code 6 funder.o(i.__mathlib_flt_infnan) - __mathlib_flt_infnan2 0x08013e0f Thumb Code 6 funder.o(i.__mathlib_flt_infnan2) - __mathlib_flt_invalid 0x08013e15 Thumb Code 10 funder.o(i.__mathlib_flt_invalid) - __mathlib_flt_underflow 0x08013e25 Thumb Code 10 funder.o(i.__mathlib_flt_underflow) - __mathlib_rredf2 0x08013e35 Thumb Code 316 rredf.o(i.__mathlib_rredf2) - atan 0x08013f89 Thumb Code 16 atan.o(i.atan) - fabs 0x08013f99 Thumb Code 24 fabs.o(i.fabs) - sqrtf 0x08013fb1 Thumb Code 62 sqrtf.o(i.sqrtf) - __aeabi_dneg 0x08013fef Thumb Code 0 basic.o(x$fpl$basic) - _dneg 0x08013fef Thumb Code 6 basic.o(x$fpl$basic) - __aeabi_fneg 0x08013ff5 Thumb Code 0 basic.o(x$fpl$basic) - _fneg 0x08013ff5 Thumb Code 6 basic.o(x$fpl$basic) - _dabs 0x08013ffb Thumb Code 6 basic.o(x$fpl$basic) - _fabs 0x08014001 Thumb Code 6 basic.o(x$fpl$basic) - __aeabi_d2f 0x08014009 Thumb Code 0 d2f.o(x$fpl$d2f) - _d2f 0x08014009 Thumb Code 98 d2f.o(x$fpl$d2f) - __aeabi_dadd 0x0801406d Thumb Code 0 daddsub_clz.o(x$fpl$dadd) - _dadd 0x0801406d Thumb Code 332 daddsub_clz.o(x$fpl$dadd) - __fpl_dcmp_Inf 0x080141bd Thumb Code 24 dcmpi.o(x$fpl$dcmpinf) - __aeabi_ddiv 0x080141d5 Thumb Code 0 ddiv.o(x$fpl$ddiv) - _ddiv 0x080141d5 Thumb Code 556 ddiv.o(x$fpl$ddiv) - __aeabi_cdcmpeq 0x08014489 Thumb Code 0 deqf.o(x$fpl$deqf) - _dcmpeq 0x08014489 Thumb Code 120 deqf.o(x$fpl$deqf) - __aeabi_d2iz 0x08014501 Thumb Code 0 dfix.o(x$fpl$dfix) - _dfix 0x08014501 Thumb Code 94 dfix.o(x$fpl$dfix) - __aeabi_d2uiz 0x08014561 Thumb Code 0 dfixu.o(x$fpl$dfixu) - _dfixu 0x08014561 Thumb Code 90 dfixu.o(x$fpl$dfixu) - __aeabi_i2d 0x080145bb Thumb Code 0 dflt_clz.o(x$fpl$dflt) - _dflt 0x080145bb Thumb Code 46 dflt_clz.o(x$fpl$dflt) - __aeabi_ui2d 0x080145e9 Thumb Code 0 dflt_clz.o(x$fpl$dfltu) - _dfltu 0x080145e9 Thumb Code 38 dflt_clz.o(x$fpl$dfltu) - __aeabi_dmul 0x08014611 Thumb Code 0 dmul.o(x$fpl$dmul) - _dmul 0x08014611 Thumb Code 332 dmul.o(x$fpl$dmul) - __fpl_dnaninf 0x08014765 Thumb Code 156 dnaninf.o(x$fpl$dnaninf) - __fpl_dretinf 0x08014801 Thumb Code 12 dretinf.o(x$fpl$dretinf) - __aeabi_drsub 0x0801480d Thumb Code 0 daddsub_clz.o(x$fpl$drsb) - _drsb 0x0801480d Thumb Code 22 daddsub_clz.o(x$fpl$drsb) - __aeabi_dsub 0x08014825 Thumb Code 0 daddsub_clz.o(x$fpl$dsub) - _dsub 0x08014825 Thumb Code 472 daddsub_clz.o(x$fpl$dsub) - __aeabi_f2d 0x08014a01 Thumb Code 0 f2d.o(x$fpl$f2d) - _f2d 0x08014a01 Thumb Code 86 f2d.o(x$fpl$f2d) - __aeabi_ul2f 0x08014a57 Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) - _ll_uto_f 0x08014a57 Thumb Code 6 ffltll_clz.o(x$fpl$ffltll) - __aeabi_l2f 0x08014a5d Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) - _ll_sto_f 0x08014a5d Thumb Code 90 ffltll_clz.o(x$fpl$ffltll) - __fpl_fnaninf 0x08014ab7 Thumb Code 140 fnaninf.o(x$fpl$fnaninf) - _fp_init 0x08014b43 Thumb Code 26 fpinit.o(x$fpl$fpinit) - __fplib_config_fpu_vfp 0x08014b5b Thumb Code 0 fpinit.o(x$fpl$fpinit) - __fplib_config_pureend_doubles 0x08014b5b Thumb Code 0 fpinit.o(x$fpl$fpinit) - __fpl_fretinf 0x08014b5d Thumb Code 10 fretinf.o(x$fpl$fretinf) - __I$use$fp 0x08014b66 Number 0 usenofp.o(x$fpl$usenofp) - __mathlib_zero 0x08014c00 Data 8 qnan.o(.constdata) - AHBPrescTable 0x08014c28 Data 16 system_stm32f4xx.o(.rodata.AHBPrescTable) - APBPrescTable 0x08014c38 Data 8 system_stm32f4xx.o(.rodata.APBPrescTable) - attr_atti_esti 0x08014c88 Data 36 user_task.o(.rodata.attr_atti_esti) - attr_gimbal_ctrl 0x08014cac Data 36 user_task.o(.rodata.attr_gimbal_ctrl) - attr_init 0x08014cd0 Data 36 user_task.o(.rodata.attr_init) - attr_remote 0x08014cf4 Data 36 user_task.o(.rodata.attr_remote) - defaultTask_attributes 0x08014d18 Data 36 freertos.o(.rodata.defaultTask_attributes) - Region$$Table$$Base 0x08014da4 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x08014dc4 Number 0 anon$$obj.o(Region$$Table) + Gimbal_Control 0x08003855 Thumb Code 1312 gimbal.o(.text.Gimbal_Control) + Gimbal_Init 0x08003d75 Thumb Code 424 gimbal.o(.text.Gimbal_Init) + Gimbal_Output 0x08003f1d Thumb Code 274 gimbal.o(.text.Gimbal_Output) + Gimbal_UpdateFeedback 0x080040e5 Thumb Code 360 gimbal.o(.text.Gimbal_UpdateFeedback) + Gimbal_UpdateIMU 0x0800424d Thumb Code 74 gimbal.o(.text.Gimbal_UpdateIMU) + HAL_CAN_ActivateNotification 0x08004299 Thumb Code 82 stm32f4xx_hal_can.o(.text.HAL_CAN_ActivateNotification) + HAL_CAN_AddTxMessage 0x080042ed Thumb Code 342 stm32f4xx_hal_can.o(.text.HAL_CAN_AddTxMessage) + HAL_CAN_ConfigFilter 0x08004445 Thumb Code 414 stm32f4xx_hal_can.o(.text.HAL_CAN_ConfigFilter) + HAL_CAN_ErrorCallback 0x080045e5 Thumb Code 80 can_1.o(.text.HAL_CAN_ErrorCallback) + HAL_CAN_GetRxFifoFillLevel 0x08004635 Thumb Code 82 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxFifoFillLevel) + HAL_CAN_GetRxMessage 0x08004689 Thumb Code 530 stm32f4xx_hal_can.o(.text.HAL_CAN_GetRxMessage) + HAL_CAN_GetTxMailboxesFreeLevel 0x0800489d Thumb Code 112 stm32f4xx_hal_can.o(.text.HAL_CAN_GetTxMailboxesFreeLevel) + HAL_CAN_IRQHandler 0x0800490d Thumb Code 1010 stm32f4xx_hal_can.o(.text.HAL_CAN_IRQHandler) + HAL_CAN_Init 0x08004d01 Thumb Code 478 stm32f4xx_hal_can.o(.text.HAL_CAN_Init) + HAL_CAN_MspInit 0x08004ee1 Thumb Code 464 can.o(.text.HAL_CAN_MspInit) + HAL_CAN_RxFifo0FullCallback 0x080050b1 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo0FullCallback) + HAL_CAN_RxFifo0MsgPendingCallback 0x08005101 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo0MsgPendingCallback) + HAL_CAN_RxFifo1FullCallback 0x08005151 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo1FullCallback) + HAL_CAN_RxFifo1MsgPendingCallback 0x080051a1 Thumb Code 80 can_1.o(.text.HAL_CAN_RxFifo1MsgPendingCallback) + HAL_CAN_SleepCallback 0x080051f1 Thumb Code 80 can_1.o(.text.HAL_CAN_SleepCallback) + HAL_CAN_Start 0x08005241 Thumb Code 138 stm32f4xx_hal_can.o(.text.HAL_CAN_Start) + HAL_CAN_TxMailbox0AbortCallback 0x080052cd Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox0AbortCallback) + HAL_CAN_TxMailbox0CompleteCallback 0x0800531d Thumb Code 76 can_1.o(.text.HAL_CAN_TxMailbox0CompleteCallback) + HAL_CAN_TxMailbox1AbortCallback 0x08005369 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox1AbortCallback) + HAL_CAN_TxMailbox1CompleteCallback 0x080053b9 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox1CompleteCallback) + HAL_CAN_TxMailbox2AbortCallback 0x08005409 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox2AbortCallback) + HAL_CAN_TxMailbox2CompleteCallback 0x08005459 Thumb Code 80 can_1.o(.text.HAL_CAN_TxMailbox2CompleteCallback) + HAL_CAN_WakeUpFromRxMsgCallback 0x080054a9 Thumb Code 80 can_1.o(.text.HAL_CAN_WakeUpFromRxMsgCallback) + HAL_DMA_Abort 0x080054f9 Thumb Code 236 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort) + HAL_DMA_Abort_IT 0x080055e5 Thumb Code 68 stm32f4xx_hal_dma.o(.text.HAL_DMA_Abort_IT) + HAL_DMA_GetState 0x08005629 Thumb Code 14 stm32f4xx_hal_dma.o(.text.HAL_DMA_GetState) + HAL_DMA_IRQHandler 0x08005639 Thumb Code 798 stm32f4xx_hal_dma.o(.text.HAL_DMA_IRQHandler) + HAL_DMA_Init 0x08005959 Thumb Code 366 stm32f4xx_hal_dma.o(.text.HAL_DMA_Init) + HAL_DMA_Start_IT 0x08005ac9 Thumb Code 194 stm32f4xx_hal_dma.o(.text.HAL_DMA_Start_IT) + HAL_Delay 0x08005b8d Thumb Code 66 stm32f4xx_hal.o(.text.HAL_Delay) + HAL_GPIO_EXTI_Callback 0x08005bd1 Thumb Code 102 gpio_1.o(.text.HAL_GPIO_EXTI_Callback) + HAL_GPIO_EXTI_IRQHandler 0x08005c39 Thumb Code 56 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_EXTI_IRQHandler) + HAL_GPIO_Init 0x08005c71 Thumb Code 950 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_Init) + HAL_GPIO_ReadPin 0x08006029 Thumb Code 46 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_ReadPin) + HAL_GPIO_WritePin 0x08006059 Thumb Code 46 stm32f4xx_hal_gpio.o(.text.HAL_GPIO_WritePin) + HAL_GetTick 0x08006089 Thumb Code 12 stm32f4xx_hal.o(.text.HAL_GetTick) + HAL_I2C_AbortCpltCallback 0x08006095 Thumb Code 84 i2c_1.o(.text.HAL_I2C_AbortCpltCallback) + HAL_I2C_AddrCallback 0x080060e9 Thumb Code 16 stm32f4xx_hal_i2c.o(.text.HAL_I2C_AddrCallback) + HAL_I2C_ER_IRQHandler 0x080060f9 Thumb Code 378 stm32f4xx_hal_i2c.o(.text.HAL_I2C_ER_IRQHandler) + HAL_I2C_EV_IRQHandler 0x08006275 Thumb Code 970 stm32f4xx_hal_i2c.o(.text.HAL_I2C_EV_IRQHandler) + HAL_I2C_ErrorCallback 0x08006641 Thumb Code 84 i2c_1.o(.text.HAL_I2C_ErrorCallback) + HAL_I2C_Init 0x08006695 Thumb Code 676 stm32f4xx_hal_i2c.o(.text.HAL_I2C_Init) + HAL_I2C_ListenCpltCallback 0x08006939 Thumb Code 84 i2c_1.o(.text.HAL_I2C_ListenCpltCallback) + HAL_I2C_MasterRxCpltCallback 0x0800698d Thumb Code 84 i2c_1.o(.text.HAL_I2C_MasterRxCpltCallback) + HAL_I2C_MasterTxCpltCallback 0x080069e1 Thumb Code 80 i2c_1.o(.text.HAL_I2C_MasterTxCpltCallback) + HAL_I2C_MemRxCpltCallback 0x08006a31 Thumb Code 84 i2c_1.o(.text.HAL_I2C_MemRxCpltCallback) + HAL_I2C_MemTxCpltCallback 0x08006a85 Thumb Code 84 i2c_1.o(.text.HAL_I2C_MemTxCpltCallback) + HAL_I2C_MspInit 0x08006ad9 Thumb Code 308 i2c.o(.text.HAL_I2C_MspInit) + HAL_I2C_SlaveRxCpltCallback 0x08006c0d Thumb Code 84 i2c_1.o(.text.HAL_I2C_SlaveRxCpltCallback) + HAL_I2C_SlaveTxCpltCallback 0x08006c61 Thumb Code 84 i2c_1.o(.text.HAL_I2C_SlaveTxCpltCallback) + HAL_IncTick 0x08006cb5 Thumb Code 26 stm32f4xx_hal.o(.text.HAL_IncTick) + HAL_Init 0x08006cd1 Thumb Code 54 stm32f4xx_hal.o(.text.HAL_Init) + HAL_InitTick 0x08006d09 Thumb Code 112 stm32f4xx_hal.o(.text.HAL_InitTick) + HAL_MspInit 0x08006d79 Thumb Code 88 stm32f4xx_hal_msp.o(.text.HAL_MspInit) + HAL_NVIC_DisableIRQ 0x08006dd1 Thumb Code 20 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_DisableIRQ) + HAL_NVIC_EnableIRQ 0x08006de5 Thumb Code 20 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ) + HAL_NVIC_SetPriority 0x08006df9 Thumb Code 50 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) + HAL_NVIC_SetPriorityGrouping 0x08006e2d Thumb Code 16 stm32f4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) + HAL_RCC_ClockConfig 0x08006e3d Thumb Code 610 stm32f4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) + HAL_RCC_GetHCLKFreq 0x080070a1 Thumb Code 12 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) + HAL_RCC_GetPCLK1Freq 0x080070ad Thumb Code 34 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) + HAL_RCC_GetPCLK2Freq 0x080070d1 Thumb Code 34 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) + HAL_RCC_GetSysClockFreq 0x080070f5 Thumb Code 230 stm32f4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) + HAL_RCC_OscConfig 0x080071dd Thumb Code 1726 stm32f4xx_hal_rcc.o(.text.HAL_RCC_OscConfig) + HAL_SPI_ErrorCallback 0x0800789d Thumb Code 84 spi_1.o(.text.HAL_SPI_ErrorCallback) + HAL_SPI_Init 0x080078f1 Thumb Code 256 stm32f4xx_hal_spi.o(.text.HAL_SPI_Init) + HAL_SPI_MspInit 0x080079f1 Thumb Code 528 spi.o(.text.HAL_SPI_MspInit) + HAL_SPI_Receive 0x08007c01 Thumb Code 590 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive) + HAL_SPI_Receive_DMA 0x08007e51 Thumb Code 408 stm32f4xx_hal_spi.o(.text.HAL_SPI_Receive_DMA) + HAL_SPI_RxCpltCallback 0x08007fe9 Thumb Code 84 spi_1.o(.text.HAL_SPI_RxCpltCallback) + HAL_SPI_RxHalfCpltCallback 0x0800803d Thumb Code 84 spi_1.o(.text.HAL_SPI_RxHalfCpltCallback) + HAL_SPI_Transmit 0x08008091 Thumb Code 674 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit) + HAL_SPI_TransmitReceive 0x08008335 Thumb Code 930 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive) + HAL_SPI_TransmitReceive_DMA 0x080086d9 Thumb Code 532 stm32f4xx_hal_spi.o(.text.HAL_SPI_TransmitReceive_DMA) + HAL_SPI_Transmit_DMA 0x080088ed Thumb Code 364 stm32f4xx_hal_spi.o(.text.HAL_SPI_Transmit_DMA) + HAL_SPI_TxCpltCallback 0x08008a59 Thumb Code 72 spi_1.o(.text.HAL_SPI_TxCpltCallback) + HAL_SPI_TxHalfCpltCallback 0x08008aa1 Thumb Code 84 spi_1.o(.text.HAL_SPI_TxHalfCpltCallback) + HAL_SPI_TxRxCpltCallback 0x08008af5 Thumb Code 84 spi_1.o(.text.HAL_SPI_TxRxCpltCallback) + HAL_SPI_TxRxHalfCpltCallback 0x08008b49 Thumb Code 84 spi_1.o(.text.HAL_SPI_TxRxHalfCpltCallback) + HAL_SYSTICK_Config 0x08008b9d Thumb Code 16 stm32f4xx_hal_cortex.o(.text.HAL_SYSTICK_Config) + HAL_TIMEx_BreakCallback 0x08008bad Thumb Code 8 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_BreakCallback) + HAL_TIMEx_CommutCallback 0x08008bb5 Thumb Code 8 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_CommutCallback) + HAL_TIMEx_MasterConfigSynchronization 0x08008bbd Thumb Code 290 stm32f4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) + HAL_TIM_Base_Init 0x08008ce1 Thumb Code 156 stm32f4xx_hal_tim.o(.text.HAL_TIM_Base_Init) + HAL_TIM_Base_MspInit 0x08008d7d Thumb Code 138 tim.o(.text.HAL_TIM_Base_MspInit) + HAL_TIM_IC_CaptureCallback 0x08008e09 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_IC_CaptureCallback) + HAL_TIM_IRQHandler 0x08008e11 Thumb Code 538 stm32f4xx_hal_tim.o(.text.HAL_TIM_IRQHandler) + HAL_TIM_MspPostInit 0x0800902d Thumb Code 108 tim.o(.text.HAL_TIM_MspPostInit) + HAL_TIM_OC_DelayElapsedCallback 0x08009099 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_OC_DelayElapsedCallback) + HAL_TIM_PWM_ConfigChannel 0x080090a1 Thumb Code 322 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel) + HAL_TIM_PWM_Init 0x080091e5 Thumb Code 156 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Init) + HAL_TIM_PWM_MspInit 0x08009281 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit) + HAL_TIM_PWM_PulseFinishedCallback 0x08009289 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_PulseFinishedCallback) + HAL_TIM_PWM_Start 0x08009291 Thumb Code 458 stm32f4xx_hal_tim.o(.text.HAL_TIM_PWM_Start) + HAL_TIM_PeriodElapsedCallback 0x0800945d Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_PeriodElapsedCallback) + HAL_TIM_TriggerCallback 0x08009465 Thumb Code 8 stm32f4xx_hal_tim.o(.text.HAL_TIM_TriggerCallback) + HAL_UARTEx_RxEventCallback 0x0800946d Thumb Code 12 stm32f4xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) + HAL_UART_ErrorCallback 0x08009479 Thumb Code 84 uart.o(.text.HAL_UART_ErrorCallback) + HAL_UART_IRQHandler 0x080094cd Thumb Code 1116 stm32f4xx_hal_uart.o(.text.HAL_UART_IRQHandler) + HAL_UART_Init 0x08009929 Thumb Code 158 stm32f4xx_hal_uart.o(.text.HAL_UART_Init) + HAL_UART_MspInit 0x080099c9 Thumb Code 460 usart.o(.text.HAL_UART_MspInit) + HAL_UART_RxCpltCallback 0x08009b95 Thumb Code 84 uart.o(.text.HAL_UART_RxCpltCallback) + HAL_UART_TxCpltCallback 0x08009be9 Thumb Code 84 uart.o(.text.HAL_UART_TxCpltCallback) + HardFault_Handler 0x08009c3d Thumb Code 4 stm32f4xx_it.o(.text.HardFault_Handler) + I2C1_ER_IRQHandler 0x08009c41 Thumb Code 16 stm32f4xx_it.o(.text.I2C1_ER_IRQHandler) + I2C1_EV_IRQHandler 0x08009c51 Thumb Code 16 stm32f4xx_it.o(.text.I2C1_EV_IRQHandler) + InvSqrt 0x0800b13d Thumb Code 118 user_math.o(.text.InvSqrt) + LowPassFilter2p_Apply 0x0800b1b5 Thumb Code 184 filter.o(.text.LowPassFilter2p_Apply) + LowPassFilter2p_Init 0x0800b26d Thumb Code 316 filter.o(.text.LowPassFilter2p_Init) + LowPassFilter2p_Reset 0x0800b3a9 Thumb Code 146 filter.o(.text.LowPassFilter2p_Reset) + MOTOR_DM_Enable 0x0800b4d5 Thumb Code 122 motor_dm.o(.text.MOTOR_DM_Enable) + MOTOR_DM_GetMotor 0x0800b581 Thumb Code 134 motor_dm.o(.text.MOTOR_DM_GetMotor) + MOTOR_DM_MITCtrl 0x0800b609 Thumb Code 72 motor_dm.o(.text.MOTOR_DM_MITCtrl) + MOTOR_DM_Register 0x0800b7a9 Thumb Code 300 motor_dm.o(.text.MOTOR_DM_Register) + MOTOR_DM_Update 0x0800ba19 Thumb Code 268 motor_dm.o(.text.MOTOR_DM_Update) + MOTOR_RM_Ctrl 0x0800bbbd Thumb Code 368 motor_rm.o(.text.MOTOR_RM_Ctrl) + MOTOR_RM_GetMotor 0x0800be31 Thumb Code 120 motor_rm.o(.text.MOTOR_RM_GetMotor) + MOTOR_RM_Register 0x0800bef9 Thumb Code 288 motor_rm.o(.text.MOTOR_RM_Register) + MOTOR_RM_SetOutput 0x0800c019 Thumb Code 282 motor_rm.o(.text.MOTOR_RM_SetOutput) + MOTOR_RM_Update 0x0800c135 Thumb Code 258 motor_rm.o(.text.MOTOR_RM_Update) + MX_CAN1_Init 0x0800c239 Thumb Code 78 can.o(.text.MX_CAN1_Init) + MX_CAN2_Init 0x0800c289 Thumb Code 78 can.o(.text.MX_CAN2_Init) + MX_DMA_Init 0x0800c2d9 Thumb Code 134 dma.o(.text.MX_DMA_Init) + MX_FREERTOS_Init 0x0800c361 Thumb Code 64 freertos.o(.text.MX_FREERTOS_Init) + MX_GPIO_Init 0x0800c3a1 Thumb Code 554 gpio.o(.text.MX_GPIO_Init) + MX_I2C1_Init 0x0800c5cd Thumb Code 72 i2c.o(.text.MX_I2C1_Init) + MX_I2C2_Init 0x0800c615 Thumb Code 72 i2c.o(.text.MX_I2C2_Init) + MX_SPI1_Init 0x0800c65d Thumb Code 82 spi.o(.text.MX_SPI1_Init) + MX_SPI2_Init 0x0800c6b1 Thumb Code 84 spi.o(.text.MX_SPI2_Init) + MX_TIM10_Init 0x0800c705 Thumb Code 142 tim.o(.text.MX_TIM10_Init) + MX_TIM7_Init 0x0800c795 Thumb Code 88 tim.o(.text.MX_TIM7_Init) + MX_USART1_UART_Init 0x0800c7ed Thumb Code 64 usart.o(.text.MX_USART1_UART_Init) + MX_USART3_UART_Init 0x0800c82d Thumb Code 76 usart.o(.text.MX_USART3_UART_Init) + MemManage_Handler 0x0800c879 Thumb Code 4 stm32f4xx_it.o(.text.MemManage_Handler) + NMI_Handler 0x0800ca99 Thumb Code 4 stm32f4xx_it.o(.text.NMI_Handler) + PID_Calc 0x0800cb09 Thumb Code 752 pid.o(.text.PID_Calc) + PID_Init 0x0800cdf9 Thumb Code 406 pid.o(.text.PID_Init) + PID_Reset 0x0800cf91 Thumb Code 72 pid.o(.text.PID_Reset) + PendSV_Handler 0x0800cfe1 Thumb Code 100 port.o(.text.PendSV_Handler) + RC_Init 0x0800d045 Thumb Code 148 bsp_rc.o(.text.RC_Init) + RC_restart 0x0800d0d9 Thumb Code 90 bsp_rc.o(.text.RC_restart) + SVC_Handler 0x0800d691 Thumb Code 36 port.o(.text.SVC_Handler) + StartDefaultTask 0x0800d6c5 Thumb Code 18 freertos.o(.text.StartDefaultTask) + SysTick_Handler 0x0800d72d Thumb Code 24 stm32f4xx_it.o(.text.SysTick_Handler) + SystemClock_Config 0x0800d745 Thumb Code 188 main.o(.text.SystemClock_Config) + SystemInit 0x0800d801 Thumb Code 18 system_stm32f4xx.o(.text.SystemInit) + TIM7_IRQHandler 0x0800d815 Thumb Code 16 stm32f4xx_it.o(.text.TIM7_IRQHandler) + TIM_Base_SetConfig 0x0800d825 Thumb Code 420 stm32f4xx_hal_tim.o(.text.TIM_Base_SetConfig) + TIM_CCxChannelCmd 0x0800d9c9 Thumb Code 54 stm32f4xx_hal_tim.o(.text.TIM_CCxChannelCmd) + TIM_OC2_SetConfig 0x0800daed Thumb Code 244 stm32f4xx_hal_tim.o(.text.TIM_OC2_SetConfig) + Task_Init 0x0800dd79 Thumb Code 184 init.o(.text.Task_Init) + Task_atti_esti 0x0800de31 Thumb Code 400 atti_esti.o(.text.Task_atti_esti) + Task_gimbal_ctrl 0x0800dfc1 Thumb Code 236 gimbal_ctrl.o(.text.Task_gimbal_ctrl) + Task_remote 0x0800e0b1 Thumb Code 160 remote.o(.text.Task_remote) + USART3_IRQHandler 0x0800e591 Thumb Code 32 stm32f4xx_it.o(.text.USART3_IRQHandler) + USART3_IRQHandler1 0x0800e5b1 Thumb Code 34 remote_control.o(.text.USART3_IRQHandler1) + UsageFault_Handler 0x0800e5d5 Thumb Code 4 stm32f4xx_it.o(.text.UsageFault_Handler) + configureTimerForRunTimeStats 0x0800e7d5 Thumb Code 2 freertos.o(.text.configureTimerForRunTimeStats) + delay_init 0x0800e7f9 Thumb Code 62 bsp_delay.o(.text.delay_init) + eTaskGetState 0x0800e839 Thumb Code 246 tasks.o(.text.eTaskGetState) + getRunTimeCounterValue 0x0800e989 Thumb Code 4 freertos.o(.text.getRunTimeCounterValue) + main 0x0800e98d Thumb Code 80 main.o(.text.main) + map 0x0800e9dd Thumb Code 42 calc_lib.o(.text.map) + osDelay 0x0800ea09 Thumb Code 52 cmsis_os2.o(.text.osDelay) + osDelayUntil 0x0800ea3d Thumb Code 88 cmsis_os2.o(.text.osDelayUntil) + osKernelGetState 0x0800ea95 Thumb Code 82 cmsis_os2.o(.text.osKernelGetState) + osKernelGetTickCount 0x0800eae9 Thumb Code 38 cmsis_os2.o(.text.osKernelGetTickCount) + osKernelGetTickFreq 0x0800eb11 Thumb Code 6 cmsis_os2.o(.text.osKernelGetTickFreq) + osKernelInitialize 0x0800eb19 Thumb Code 70 cmsis_os2.o(.text.osKernelInitialize) + osKernelLock 0x0800eb61 Thumb Code 86 cmsis_os2.o(.text.osKernelLock) + osKernelStart 0x0800ebb9 Thumb Code 82 cmsis_os2.o(.text.osKernelStart) + osKernelUnlock 0x0800ec0d Thumb Code 110 cmsis_os2.o(.text.osKernelUnlock) + osMessageQueueGet 0x0800ec7d Thumb Code 192 cmsis_os2.o(.text.osMessageQueueGet) + osMessageQueueNew 0x0800ed3d Thumb Code 254 cmsis_os2.o(.text.osMessageQueueNew) + osMessageQueuePut 0x0800ee3d Thumb Code 196 cmsis_os2.o(.text.osMessageQueuePut) + osMessageQueueReset 0x0800ef01 Thumb Code 64 cmsis_os2.o(.text.osMessageQueueReset) + osMutexAcquire 0x0800ef41 Thumb Code 158 cmsis_os2.o(.text.osMutexAcquire) + osMutexNew 0x0800efe1 Thumb Code 296 cmsis_os2.o(.text.osMutexNew) + osMutexRelease 0x0800f109 Thumb Code 126 cmsis_os2.o(.text.osMutexRelease) + osThreadFlagsSet 0x0800f189 Thumb Code 164 cmsis_os2.o(.text.osThreadFlagsSet) + osThreadFlagsWait 0x0800f22d Thumb Code 282 cmsis_os2.o(.text.osThreadFlagsWait) + osThreadGetId 0x0800f349 Thumb Code 16 cmsis_os2.o(.text.osThreadGetId) + osThreadNew 0x0800f359 Thumb Code 346 cmsis_os2.o(.text.osThreadNew) + osThreadTerminate 0x0800f4b5 Thumb Code 94 cmsis_os2.o(.text.osThreadTerminate) + pvPortMalloc 0x08010415 Thumb Code 492 heap_4.o(.text.pvPortMalloc) + pvTaskIncrementMutexHeldCount 0x08010601 Thumb Code 44 tasks.o(.text.pvTaskIncrementMutexHeldCount) + pxPortInitialiseStack 0x0801062d Thumb Code 94 port.o(.text.pxPortInitialiseStack) + remote_ParseHost 0x08010691 Thumb Code 176 ai.o(.text.remote_ParseHost) + remote_control_init 0x08010741 Thumb Code 18 remote_control.o(.text.remote_control_init) + user_delay_ms 0x08010a3d Thumb Code 46 calc_lib.o(.text.user_delay_ms) + user_delay_us 0x08010a6d Thumb Code 68 calc_lib.o(.text.user_delay_us) + uxListRemove 0x08010ab1 Thumb Code 72 list.o(.text.uxListRemove) + vApplicationGetIdleTaskMemory 0x08010af9 Thumb Code 42 cmsis_os2.o(.text.vApplicationGetIdleTaskMemory) + vApplicationGetTimerTaskMemory 0x08010b25 Thumb Code 44 cmsis_os2.o(.text.vApplicationGetTimerTaskMemory) + vApplicationStackOverflowHook 0x08010b51 Thumb Code 10 freertos.o(.text.vApplicationStackOverflowHook) + vListInitialise 0x08010b5d Thumb Code 46 list.o(.text.vListInitialise) + vListInitialiseItem 0x08010b8d Thumb Code 14 list.o(.text.vListInitialiseItem) + vListInsert 0x08010b9d Thumb Code 106 list.o(.text.vListInsert) + vListInsertEnd 0x08010c09 Thumb Code 58 list.o(.text.vListInsertEnd) + vPortEnterCritical 0x08010c59 Thumb Code 86 port.o(.text.vPortEnterCritical) + vPortExitCritical 0x08010cb1 Thumb Code 74 port.o(.text.vPortExitCritical) + vPortFree 0x08010cfd Thumb Code 206 heap_4.o(.text.vPortFree) + vPortSetupTimerInterrupt 0x08010dcd Thumb Code 68 port.o(.text.vPortSetupTimerInterrupt) + vPortValidateInterruptPriority 0x08010e11 Thumb Code 132 port.o(.text.vPortValidateInterruptPriority) + vQueueAddToRegistry 0x08010e95 Thumb Code 82 queue.o(.text.vQueueAddToRegistry) + vQueueWaitForMessageRestricted 0x08010ee9 Thumb Code 100 queue.o(.text.vQueueWaitForMessageRestricted) + vTaskDelay 0x08010f4d Thumb Code 110 tasks.o(.text.vTaskDelay) + vTaskDelayUntil 0x08010fbd Thumb Code 276 tasks.o(.text.vTaskDelayUntil) + vTaskDelete 0x080110d1 Thumb Code 270 tasks.o(.text.vTaskDelete) + vTaskInternalSetTimeOutState 0x080111e1 Thumb Code 36 tasks.o(.text.vTaskInternalSetTimeOutState) + vTaskMissedYield 0x08011205 Thumb Code 14 tasks.o(.text.vTaskMissedYield) + vTaskPlaceOnEventList 0x08011215 Thumb Code 66 tasks.o(.text.vTaskPlaceOnEventList) + vTaskPlaceOnEventListRestricted 0x08011259 Thumb Code 82 tasks.o(.text.vTaskPlaceOnEventListRestricted) + vTaskPriorityDisinheritAfterTimeout 0x080112ad Thumb Code 308 tasks.o(.text.vTaskPriorityDisinheritAfterTimeout) + vTaskStartScheduler 0x080113e1 Thumb Code 228 tasks.o(.text.vTaskStartScheduler) + vTaskSuspendAll 0x080114c5 Thumb Code 16 tasks.o(.text.vTaskSuspendAll) + vTaskSwitchContext 0x080114d5 Thumb Code 384 tasks.o(.text.vTaskSwitchContext) + xPortStartScheduler 0x08011655 Thumb Code 342 port.o(.text.xPortStartScheduler) + xPortSysTickHandler 0x080117ad Thumb Code 60 port.o(.text.xPortSysTickHandler) + xQueueCreateMutex 0x080117e9 Thumb Code 38 queue.o(.text.xQueueCreateMutex) + xQueueCreateMutexStatic 0x08011811 Thumb Code 50 queue.o(.text.xQueueCreateMutexStatic) + xQueueGenericCreate 0x08011845 Thumb Code 116 queue.o(.text.xQueueGenericCreate) + xQueueGenericCreateStatic 0x080118b9 Thumb Code 270 queue.o(.text.xQueueGenericCreateStatic) + xQueueGenericReset 0x080119c9 Thumb Code 186 queue.o(.text.xQueueGenericReset) + xQueueGenericSend 0x08011a85 Thumb Code 556 queue.o(.text.xQueueGenericSend) + xQueueGenericSendFromISR 0x08011cb1 Thumb Code 332 queue.o(.text.xQueueGenericSendFromISR) + xQueueGiveMutexRecursive 0x08011dfd Thumb Code 108 queue.o(.text.xQueueGiveMutexRecursive) + xQueueReceive 0x08011e69 Thumb Code 476 queue.o(.text.xQueueReceive) + xQueueReceiveFromISR 0x08012045 Thumb Code 264 queue.o(.text.xQueueReceiveFromISR) + xQueueSemaphoreTake 0x0801214d Thumb Code 556 queue.o(.text.xQueueSemaphoreTake) + xQueueTakeMutexRecursive 0x08012379 Thumb Code 110 queue.o(.text.xQueueTakeMutexRecursive) + xTaskCheckForTimeOut 0x080123e9 Thumb Code 204 tasks.o(.text.xTaskCheckForTimeOut) + xTaskCreate 0x080124b5 Thumb Code 158 tasks.o(.text.xTaskCreate) + xTaskCreateStatic 0x08012555 Thumb Code 206 tasks.o(.text.xTaskCreateStatic) + xTaskGenericNotify 0x08012625 Thumb Code 376 tasks.o(.text.xTaskGenericNotify) + xTaskGenericNotifyFromISR 0x0801279d Thumb Code 452 tasks.o(.text.xTaskGenericNotifyFromISR) + xTaskGetCurrentTaskHandle 0x08012961 Thumb Code 20 tasks.o(.text.xTaskGetCurrentTaskHandle) + xTaskGetSchedulerState 0x08012975 Thumb Code 56 tasks.o(.text.xTaskGetSchedulerState) + xTaskGetTickCount 0x080129ad Thumb Code 20 tasks.o(.text.xTaskGetTickCount) + xTaskGetTickCountFromISR 0x080129c1 Thumb Code 30 tasks.o(.text.xTaskGetTickCountFromISR) + xTaskIncrementTick 0x080129e1 Thumb Code 452 tasks.o(.text.xTaskIncrementTick) + xTaskNotifyWait 0x08012ba5 Thumb Code 214 tasks.o(.text.xTaskNotifyWait) + xTaskPriorityDisinherit 0x08012c7d Thumb Code 236 tasks.o(.text.xTaskPriorityDisinherit) + xTaskPriorityInherit 0x08012d69 Thumb Code 270 tasks.o(.text.xTaskPriorityInherit) + xTaskRemoveFromEventList 0x08012e79 Thumb Code 206 tasks.o(.text.xTaskRemoveFromEventList) + xTaskResumeAll 0x08012f49 Thumb Code 390 tasks.o(.text.xTaskResumeAll) + xTimerCreateTimerTask 0x080130d1 Thumb Code 148 timers.o(.text.xTimerCreateTimerTask) + xTimerGenericCommand 0x08013165 Thumb Code 176 timers.o(.text.xTimerGenericCommand) + __ARM_fpclassify 0x08013215 Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) + __ARM_fpclassifyf 0x08013245 Thumb Code 38 fpclassifyf.o(i.__ARM_fpclassifyf) + __hardfp_asinf 0x0801326d Thumb Code 258 asinf.o(i.__hardfp_asinf) + __hardfp_atan 0x08013399 Thumb Code 622 atan.o(i.__hardfp_atan) + __hardfp_atan2 0x08013671 Thumb Code 448 atan2.o(i.__hardfp_atan2) + __hardfp_atan2f 0x08013871 Thumb Code 594 atan2f.o(i.__hardfp_atan2f) + __hardfp_cosf 0x08013b1d Thumb Code 280 cosf.o(i.__hardfp_cosf) + __hardfp_tanf 0x08013c6d Thumb Code 322 tanf.o(i.__hardfp_tanf) + __kernel_poly 0x08013de9 Thumb Code 248 poly.o(i.__kernel_poly) + __mathlib_dbl_infnan 0x08013ee1 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan) + __mathlib_dbl_infnan2 0x08013ef5 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan2) + __mathlib_dbl_underflow 0x08013f09 Thumb Code 24 dunder.o(i.__mathlib_dbl_underflow) + __mathlib_flt_infnan 0x08013f29 Thumb Code 6 funder.o(i.__mathlib_flt_infnan) + __mathlib_flt_infnan2 0x08013f2f Thumb Code 6 funder.o(i.__mathlib_flt_infnan2) + __mathlib_flt_invalid 0x08013f35 Thumb Code 10 funder.o(i.__mathlib_flt_invalid) + __mathlib_flt_underflow 0x08013f45 Thumb Code 10 funder.o(i.__mathlib_flt_underflow) + __mathlib_rredf2 0x08013f55 Thumb Code 316 rredf.o(i.__mathlib_rredf2) + atan 0x080140a9 Thumb Code 16 atan.o(i.atan) + fabs 0x080140b9 Thumb Code 24 fabs.o(i.fabs) + sqrtf 0x080140d1 Thumb Code 62 sqrtf.o(i.sqrtf) + __aeabi_dneg 0x0801410f Thumb Code 0 basic.o(x$fpl$basic) + _dneg 0x0801410f Thumb Code 6 basic.o(x$fpl$basic) + __aeabi_fneg 0x08014115 Thumb Code 0 basic.o(x$fpl$basic) + _fneg 0x08014115 Thumb Code 6 basic.o(x$fpl$basic) + _dabs 0x0801411b Thumb Code 6 basic.o(x$fpl$basic) + _fabs 0x08014121 Thumb Code 6 basic.o(x$fpl$basic) + __aeabi_d2f 0x08014129 Thumb Code 0 d2f.o(x$fpl$d2f) + _d2f 0x08014129 Thumb Code 98 d2f.o(x$fpl$d2f) + __aeabi_dadd 0x0801418d Thumb Code 0 daddsub_clz.o(x$fpl$dadd) + _dadd 0x0801418d Thumb Code 332 daddsub_clz.o(x$fpl$dadd) + __fpl_dcmp_Inf 0x080142dd Thumb Code 24 dcmpi.o(x$fpl$dcmpinf) + __aeabi_ddiv 0x080142f5 Thumb Code 0 ddiv.o(x$fpl$ddiv) + _ddiv 0x080142f5 Thumb Code 556 ddiv.o(x$fpl$ddiv) + __aeabi_cdcmpeq 0x080145a9 Thumb Code 0 deqf.o(x$fpl$deqf) + _dcmpeq 0x080145a9 Thumb Code 120 deqf.o(x$fpl$deqf) + __aeabi_d2iz 0x08014621 Thumb Code 0 dfix.o(x$fpl$dfix) + _dfix 0x08014621 Thumb Code 94 dfix.o(x$fpl$dfix) + __aeabi_d2uiz 0x08014681 Thumb Code 0 dfixu.o(x$fpl$dfixu) + _dfixu 0x08014681 Thumb Code 90 dfixu.o(x$fpl$dfixu) + __aeabi_i2d 0x080146db Thumb Code 0 dflt_clz.o(x$fpl$dflt) + _dflt 0x080146db Thumb Code 46 dflt_clz.o(x$fpl$dflt) + __aeabi_ui2d 0x08014709 Thumb Code 0 dflt_clz.o(x$fpl$dfltu) + _dfltu 0x08014709 Thumb Code 38 dflt_clz.o(x$fpl$dfltu) + __aeabi_dmul 0x08014731 Thumb Code 0 dmul.o(x$fpl$dmul) + _dmul 0x08014731 Thumb Code 332 dmul.o(x$fpl$dmul) + __fpl_dnaninf 0x08014885 Thumb Code 156 dnaninf.o(x$fpl$dnaninf) + __fpl_dretinf 0x08014921 Thumb Code 12 dretinf.o(x$fpl$dretinf) + __aeabi_drsub 0x0801492d Thumb Code 0 daddsub_clz.o(x$fpl$drsb) + _drsb 0x0801492d Thumb Code 22 daddsub_clz.o(x$fpl$drsb) + __aeabi_dsub 0x08014945 Thumb Code 0 daddsub_clz.o(x$fpl$dsub) + _dsub 0x08014945 Thumb Code 472 daddsub_clz.o(x$fpl$dsub) + __aeabi_f2d 0x08014b21 Thumb Code 0 f2d.o(x$fpl$f2d) + _f2d 0x08014b21 Thumb Code 86 f2d.o(x$fpl$f2d) + __aeabi_ul2f 0x08014b77 Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) + _ll_uto_f 0x08014b77 Thumb Code 6 ffltll_clz.o(x$fpl$ffltll) + __aeabi_l2f 0x08014b7d Thumb Code 0 ffltll_clz.o(x$fpl$ffltll) + _ll_sto_f 0x08014b7d Thumb Code 90 ffltll_clz.o(x$fpl$ffltll) + __fpl_fnaninf 0x08014bd7 Thumb Code 140 fnaninf.o(x$fpl$fnaninf) + _fp_init 0x08014c63 Thumb Code 26 fpinit.o(x$fpl$fpinit) + __fplib_config_fpu_vfp 0x08014c7b Thumb Code 0 fpinit.o(x$fpl$fpinit) + __fplib_config_pureend_doubles 0x08014c7b Thumb Code 0 fpinit.o(x$fpl$fpinit) + __fpl_fretinf 0x08014c7d Thumb Code 10 fretinf.o(x$fpl$fretinf) + __I$use$fp 0x08014c86 Number 0 usenofp.o(x$fpl$usenofp) + __mathlib_zero 0x08014d20 Data 8 qnan.o(.constdata) + AHBPrescTable 0x08014d48 Data 16 system_stm32f4xx.o(.rodata.AHBPrescTable) + APBPrescTable 0x08014d58 Data 8 system_stm32f4xx.o(.rodata.APBPrescTable) + attr_atti_esti 0x08014da8 Data 36 user_task.o(.rodata.attr_atti_esti) + attr_gimbal_ctrl 0x08014dcc Data 36 user_task.o(.rodata.attr_gimbal_ctrl) + attr_init 0x08014df0 Data 36 user_task.o(.rodata.attr_init) + attr_remote 0x08014e14 Data 36 user_task.o(.rodata.attr_remote) + defaultTask_attributes 0x08014e38 Data 36 freertos.o(.rodata.defaultTask_attributes) + Region$$Table$$Base 0x08014ec4 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x08014ee4 Number 0 anon$$obj.o(Region$$Table) SystemCoreClock 0x20000000 Data 4 system_stm32f4xx.o(.data.SystemCoreClock) - robot_config 0x20000008 Data 404 config.o(.data.robot_config) - uwTickFreq 0x2000019c Data 1 stm32f4xx_hal.o(.data.uwTickFreq) - uwTickPrio 0x200001a0 Data 4 stm32f4xx_hal.o(.data.uwTickPrio) + robot_config 0x20000008 Data 400 config.o(.data.robot_config) + uwTickFreq 0x20000198 Data 1 stm32f4xx_hal.o(.data.uwTickFreq) + uwTickPrio 0x2000019c Data 4 stm32f4xx_hal.o(.data.uwTickPrio) __libspace_start 0x200001a8 Data 96 libspace.o(.bss) __temporary_stack_top$libspace 0x20000208 Data 0 libspace.o(.bss) bmi088 0x20000368 Data 48 atti_esti.o(.bss.bmi088) cali_bmi088 0x200003b0 Data 12 atti_esti.o(.bss.cali_bmi088) defaultTaskHandle 0x200003cc Data 4 freertos.o(.bss.defaultTaskHandle) eulr_to_send 0x200003d0 Data 12 atti_esti.o(.bss.eulr_to_send) - gimbal 0x200003e8 Data 744 gimbal_ctrl.o(.bss.gimbal) - gimbal_ahrs 0x200006d0 Data 20 atti_esti.o(.bss.gimbal_ahrs) - gimbal_cmd 0x200006e4 Data 12 gimbal_ctrl.o(.bss.gimbal_cmd) - gimbal_imu 0x200006f0 Data 24 gimbal_ctrl.o(.bss.gimbal_imu) - gimbal_to_send 0x20000708 Data 24 atti_esti.o(.bss.gimbal_to_send) - hcan1 0x20000720 Data 40 can.o(.bss.hcan1) - hcan2 0x20000748 Data 40 can.o(.bss.hcan2) - hdma_spi1_rx 0x20000770 Data 96 spi.o(.bss.hdma_spi1_rx) - hdma_spi1_tx 0x200007d0 Data 96 spi.o(.bss.hdma_spi1_tx) - hdma_usart3_rx 0x20000830 Data 96 usart.o(.bss.hdma_usart3_rx) - hi2c1 0x20000890 Data 84 i2c.o(.bss.hi2c1) - hi2c2 0x200008e4 Data 84 i2c.o(.bss.hi2c2) - hspi1 0x20000938 Data 88 spi.o(.bss.hspi1) - hspi2 0x20000990 Data 88 spi.o(.bss.hspi2) - htim10 0x200009e8 Data 72 tim.o(.bss.htim10) - htim7 0x20000a30 Data 72 tim.o(.bss.htim7) - huart1 0x20000a78 Data 72 usart.o(.bss.huart1) - huart3 0x20000ac0 Data 72 usart.o(.bss.huart3) - imu 0x20000b0c Data 24 remote.o(.bss.imu) - imu_temp_ctrl_pid 0x20000b24 Data 60 atti_esti.o(.bss.imu_temp_ctrl_pid) - magn 0x20000b64 Data 12 atti_esti.o(.bss.magn) - pxCurrentTCB 0x20000c64 Data 4 tasks.o(.bss.pxCurrentTCB) - rc_ctrl 0x200010e4 Data 24 remote_control.o(.bss.rc_ctrl) - remote_cmd 0x200010fc Data 12 remote.o(.bss.remote_cmd) - task_runtime 0x20001124 Data 80 user_task.o(.bss.task_runtime) - uwTick 0x20007998 Data 4 stm32f4xx_hal.o(.bss.uwTick) - xQueueRegistry 0x20008100 Data 64 queue.o(.bss.xQueueRegistry) + gimbal 0x200003e8 Data 720 gimbal_ctrl.o(.bss.gimbal) + gimbal_ahrs 0x200006b8 Data 20 atti_esti.o(.bss.gimbal_ahrs) + gimbal_cmd 0x200006cc Data 12 gimbal_ctrl.o(.bss.gimbal_cmd) + gimbal_imu 0x200006d8 Data 24 gimbal_ctrl.o(.bss.gimbal_imu) + gimbal_to_send 0x200006f0 Data 24 atti_esti.o(.bss.gimbal_to_send) + hcan1 0x20000708 Data 40 can.o(.bss.hcan1) + hcan2 0x20000730 Data 40 can.o(.bss.hcan2) + hdma_spi1_rx 0x20000758 Data 96 spi.o(.bss.hdma_spi1_rx) + hdma_spi1_tx 0x200007b8 Data 96 spi.o(.bss.hdma_spi1_tx) + hdma_usart3_rx 0x20000818 Data 96 usart.o(.bss.hdma_usart3_rx) + hi2c1 0x20000878 Data 84 i2c.o(.bss.hi2c1) + hi2c2 0x200008cc Data 84 i2c.o(.bss.hi2c2) + hspi1 0x20000920 Data 88 spi.o(.bss.hspi1) + hspi2 0x20000978 Data 88 spi.o(.bss.hspi2) + htim10 0x200009d0 Data 72 tim.o(.bss.htim10) + htim7 0x20000a18 Data 72 tim.o(.bss.htim7) + huart1 0x20000a60 Data 72 usart.o(.bss.huart1) + huart3 0x20000aa8 Data 72 usart.o(.bss.huart3) + imu 0x20000af4 Data 24 remote.o(.bss.imu) + imu_temp_ctrl_pid 0x20000b0c Data 60 atti_esti.o(.bss.imu_temp_ctrl_pid) + magn 0x20000b4c Data 12 atti_esti.o(.bss.magn) + pxCurrentTCB 0x20000c4c Data 4 tasks.o(.bss.pxCurrentTCB) + rc_ctrl 0x200010cc Data 24 remote_control.o(.bss.rc_ctrl) + remote_cmd 0x200010e4 Data 12 remote.o(.bss.remote_cmd) + task_runtime 0x2000110c Data 80 user_task.o(.bss.task_runtime) + uwTick 0x20007980 Data 4 stm32f4xx_hal.o(.bss.uwTick) + xQueueRegistry 0x200080e8 Data 64 queue.o(.bss.xQueueRegistry) @@ -7777,9 +7779,9 @@ Memory Map of the image Image Entry point : 0x08000189 - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00014f70, Max: 0x00100000, ABSOLUTE, COMPRESSED[0x00014e50]) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00015090, Max: 0x00100000, ABSOLUTE, COMPRESSED[0x00014f60]) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00014dc4, Max: 0x00100000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00014ee4, Max: 0x00100000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object @@ -7963,597 +7965,599 @@ Memory Map of the image 0x0800384a 0x0800384a 0x00000002 PAD 0x0800384c 0x0800384c 0x00000006 Code RO 15 .text.Error_Handler main.o 0x08003852 0x08003852 0x00000002 PAD - 0x08003854 0x08003854 0x000003e8 Code RO 3049 .text.Gimbal_Control gimbal.o - 0x08003c3c 0x08003c3c 0x000001d8 Code RO 3043 .text.Gimbal_Init gimbal.o - 0x08003e14 0x08003e14 0x00000112 Code RO 3053 .text.Gimbal_Output gimbal.o - 0x08003f26 0x08003f26 0x00000002 PAD - 0x08003f28 0x08003f28 0x000000b4 Code RO 3051 .text.Gimbal_SetMode gimbal.o - 0x08003fdc 0x08003fdc 0x00000168 Code RO 3045 .text.Gimbal_UpdateFeedback gimbal.o - 0x08004144 0x08004144 0x0000004a Code RO 3047 .text.Gimbal_UpdateIMU gimbal.o - 0x0800418e 0x0800418e 0x00000002 PAD - 0x08004190 0x08004190 0x00000052 Code RO 249 .text.HAL_CAN_ActivateNotification stm32f4xx_hal_can.o - 0x080041e2 0x080041e2 0x00000002 PAD - 0x080041e4 0x080041e4 0x00000156 Code RO 235 .text.HAL_CAN_AddTxMessage stm32f4xx_hal_can.o - 0x0800433a 0x0800433a 0x00000002 PAD - 0x0800433c 0x0800433c 0x0000019e Code RO 225 .text.HAL_CAN_ConfigFilter stm32f4xx_hal_can.o - 0x080044da 0x080044da 0x00000002 PAD - 0x080044dc 0x080044dc 0x00000050 Code RO 2212 .text.HAL_CAN_ErrorCallback can_1.o - 0x0800452c 0x0800452c 0x00000052 Code RO 247 .text.HAL_CAN_GetRxFifoFillLevel stm32f4xx_hal_can.o - 0x0800457e 0x0800457e 0x00000002 PAD - 0x08004580 0x08004580 0x00000212 Code RO 245 .text.HAL_CAN_GetRxMessage stm32f4xx_hal_can.o - 0x08004792 0x08004792 0x00000002 PAD - 0x08004794 0x08004794 0x00000070 Code RO 239 .text.HAL_CAN_GetTxMailboxesFreeLevel stm32f4xx_hal_can.o - 0x08004804 0x08004804 0x000003f2 Code RO 253 .text.HAL_CAN_IRQHandler stm32f4xx_hal_can.o - 0x08004bf6 0x08004bf6 0x00000002 PAD - 0x08004bf8 0x08004bf8 0x000001de Code RO 215 .text.HAL_CAN_Init stm32f4xx_hal_can.o - 0x08004dd6 0x08004dd6 0x00000002 PAD - 0x08004dd8 0x08004dd8 0x000001d0 Code RO 57 .text.HAL_CAN_MspInit can.o - 0x08004fa8 0x08004fa8 0x00000050 Code RO 2202 .text.HAL_CAN_RxFifo0FullCallback can_1.o - 0x08004ff8 0x08004ff8 0x00000050 Code RO 2200 .text.HAL_CAN_RxFifo0MsgPendingCallback can_1.o - 0x08005048 0x08005048 0x00000050 Code RO 2206 .text.HAL_CAN_RxFifo1FullCallback can_1.o - 0x08005098 0x08005098 0x00000050 Code RO 2204 .text.HAL_CAN_RxFifo1MsgPendingCallback can_1.o - 0x080050e8 0x080050e8 0x00000050 Code RO 2208 .text.HAL_CAN_SleepCallback can_1.o - 0x08005138 0x08005138 0x0000008a Code RO 227 .text.HAL_CAN_Start stm32f4xx_hal_can.o - 0x080051c2 0x080051c2 0x00000002 PAD - 0x080051c4 0x080051c4 0x00000050 Code RO 2194 .text.HAL_CAN_TxMailbox0AbortCallback can_1.o - 0x08005214 0x08005214 0x0000004c Code RO 2186 .text.HAL_CAN_TxMailbox0CompleteCallback can_1.o - 0x08005260 0x08005260 0x00000050 Code RO 2196 .text.HAL_CAN_TxMailbox1AbortCallback can_1.o - 0x080052b0 0x080052b0 0x00000050 Code RO 2190 .text.HAL_CAN_TxMailbox1CompleteCallback can_1.o - 0x08005300 0x08005300 0x00000050 Code RO 2198 .text.HAL_CAN_TxMailbox2AbortCallback can_1.o - 0x08005350 0x08005350 0x00000050 Code RO 2192 .text.HAL_CAN_TxMailbox2CompleteCallback can_1.o - 0x080053a0 0x080053a0 0x00000050 Code RO 2210 .text.HAL_CAN_WakeUpFromRxMsgCallback can_1.o - 0x080053f0 0x080053f0 0x000000ec Code RO 482 .text.HAL_DMA_Abort stm32f4xx_hal_dma.o - 0x080054dc 0x080054dc 0x00000044 Code RO 484 .text.HAL_DMA_Abort_IT stm32f4xx_hal_dma.o - 0x08005520 0x08005520 0x0000000e Code RO 494 .text.HAL_DMA_GetState stm32f4xx_hal_dma.o - 0x0800552e 0x0800552e 0x00000002 PAD - 0x08005530 0x08005530 0x0000031e Code RO 488 .text.HAL_DMA_IRQHandler stm32f4xx_hal_dma.o - 0x0800584e 0x0800584e 0x00000002 PAD - 0x08005850 0x08005850 0x0000016e Code RO 468 .text.HAL_DMA_Init stm32f4xx_hal_dma.o - 0x080059be 0x080059be 0x00000002 PAD - 0x080059c0 0x080059c0 0x000000c2 Code RO 480 .text.HAL_DMA_Start_IT stm32f4xx_hal_dma.o - 0x08005a82 0x08005a82 0x00000002 PAD - 0x08005a84 0x08005a84 0x00000042 Code RO 663 .text.HAL_Delay stm32f4xx_hal.o + 0x08003854 0x08003854 0x00000520 Code RO 3049 .text.Gimbal_Control gimbal.o + 0x08003d74 0x08003d74 0x000001a8 Code RO 3043 .text.Gimbal_Init gimbal.o + 0x08003f1c 0x08003f1c 0x00000112 Code RO 3053 .text.Gimbal_Output gimbal.o + 0x0800402e 0x0800402e 0x00000002 PAD + 0x08004030 0x08004030 0x000000b4 Code RO 3051 .text.Gimbal_SetMode gimbal.o + 0x080040e4 0x080040e4 0x00000168 Code RO 3045 .text.Gimbal_UpdateFeedback gimbal.o + 0x0800424c 0x0800424c 0x0000004a Code RO 3047 .text.Gimbal_UpdateIMU gimbal.o + 0x08004296 0x08004296 0x00000002 PAD + 0x08004298 0x08004298 0x00000052 Code RO 249 .text.HAL_CAN_ActivateNotification stm32f4xx_hal_can.o + 0x080042ea 0x080042ea 0x00000002 PAD + 0x080042ec 0x080042ec 0x00000156 Code RO 235 .text.HAL_CAN_AddTxMessage stm32f4xx_hal_can.o + 0x08004442 0x08004442 0x00000002 PAD + 0x08004444 0x08004444 0x0000019e Code RO 225 .text.HAL_CAN_ConfigFilter stm32f4xx_hal_can.o + 0x080045e2 0x080045e2 0x00000002 PAD + 0x080045e4 0x080045e4 0x00000050 Code RO 2212 .text.HAL_CAN_ErrorCallback can_1.o + 0x08004634 0x08004634 0x00000052 Code RO 247 .text.HAL_CAN_GetRxFifoFillLevel stm32f4xx_hal_can.o + 0x08004686 0x08004686 0x00000002 PAD + 0x08004688 0x08004688 0x00000212 Code RO 245 .text.HAL_CAN_GetRxMessage stm32f4xx_hal_can.o + 0x0800489a 0x0800489a 0x00000002 PAD + 0x0800489c 0x0800489c 0x00000070 Code RO 239 .text.HAL_CAN_GetTxMailboxesFreeLevel stm32f4xx_hal_can.o + 0x0800490c 0x0800490c 0x000003f2 Code RO 253 .text.HAL_CAN_IRQHandler stm32f4xx_hal_can.o + 0x08004cfe 0x08004cfe 0x00000002 PAD + 0x08004d00 0x08004d00 0x000001de Code RO 215 .text.HAL_CAN_Init stm32f4xx_hal_can.o + 0x08004ede 0x08004ede 0x00000002 PAD + 0x08004ee0 0x08004ee0 0x000001d0 Code RO 57 .text.HAL_CAN_MspInit can.o + 0x080050b0 0x080050b0 0x00000050 Code RO 2202 .text.HAL_CAN_RxFifo0FullCallback can_1.o + 0x08005100 0x08005100 0x00000050 Code RO 2200 .text.HAL_CAN_RxFifo0MsgPendingCallback can_1.o + 0x08005150 0x08005150 0x00000050 Code RO 2206 .text.HAL_CAN_RxFifo1FullCallback can_1.o + 0x080051a0 0x080051a0 0x00000050 Code RO 2204 .text.HAL_CAN_RxFifo1MsgPendingCallback can_1.o + 0x080051f0 0x080051f0 0x00000050 Code RO 2208 .text.HAL_CAN_SleepCallback can_1.o + 0x08005240 0x08005240 0x0000008a Code RO 227 .text.HAL_CAN_Start stm32f4xx_hal_can.o + 0x080052ca 0x080052ca 0x00000002 PAD + 0x080052cc 0x080052cc 0x00000050 Code RO 2194 .text.HAL_CAN_TxMailbox0AbortCallback can_1.o + 0x0800531c 0x0800531c 0x0000004c Code RO 2186 .text.HAL_CAN_TxMailbox0CompleteCallback can_1.o + 0x08005368 0x08005368 0x00000050 Code RO 2196 .text.HAL_CAN_TxMailbox1AbortCallback can_1.o + 0x080053b8 0x080053b8 0x00000050 Code RO 2190 .text.HAL_CAN_TxMailbox1CompleteCallback can_1.o + 0x08005408 0x08005408 0x00000050 Code RO 2198 .text.HAL_CAN_TxMailbox2AbortCallback can_1.o + 0x08005458 0x08005458 0x00000050 Code RO 2192 .text.HAL_CAN_TxMailbox2CompleteCallback can_1.o + 0x080054a8 0x080054a8 0x00000050 Code RO 2210 .text.HAL_CAN_WakeUpFromRxMsgCallback can_1.o + 0x080054f8 0x080054f8 0x000000ec Code RO 482 .text.HAL_DMA_Abort stm32f4xx_hal_dma.o + 0x080055e4 0x080055e4 0x00000044 Code RO 484 .text.HAL_DMA_Abort_IT stm32f4xx_hal_dma.o + 0x08005628 0x08005628 0x0000000e Code RO 494 .text.HAL_DMA_GetState stm32f4xx_hal_dma.o + 0x08005636 0x08005636 0x00000002 PAD + 0x08005638 0x08005638 0x0000031e Code RO 488 .text.HAL_DMA_IRQHandler stm32f4xx_hal_dma.o + 0x08005956 0x08005956 0x00000002 PAD + 0x08005958 0x08005958 0x0000016e Code RO 468 .text.HAL_DMA_Init stm32f4xx_hal_dma.o 0x08005ac6 0x08005ac6 0x00000002 PAD - 0x08005ac8 0x08005ac8 0x00000066 Code RO 2275 .text.HAL_GPIO_EXTI_Callback gpio_1.o - 0x08005b2e 0x08005b2e 0x00000002 PAD - 0x08005b30 0x08005b30 0x00000038 Code RO 442 .text.HAL_GPIO_EXTI_IRQHandler stm32f4xx_hal_gpio.o - 0x08005b68 0x08005b68 0x000003b6 Code RO 430 .text.HAL_GPIO_Init stm32f4xx_hal_gpio.o - 0x08005f1e 0x08005f1e 0x00000002 PAD - 0x08005f20 0x08005f20 0x0000002e Code RO 434 .text.HAL_GPIO_ReadPin stm32f4xx_hal_gpio.o - 0x08005f4e 0x08005f4e 0x00000002 PAD - 0x08005f50 0x08005f50 0x0000002e Code RO 436 .text.HAL_GPIO_WritePin stm32f4xx_hal_gpio.o - 0x08005f7e 0x08005f7e 0x00000002 PAD - 0x08005f80 0x08005f80 0x0000000c Code RO 655 .text.HAL_GetTick stm32f4xx_hal.o - 0x08005f8c 0x08005f8c 0x00000054 Code RO 2316 .text.HAL_I2C_AbortCpltCallback i2c_1.o - 0x08005fe0 0x08005fe0 0x00000010 Code RO 870 .text.HAL_I2C_AddrCallback stm32f4xx_hal_i2c.o - 0x08005ff0 0x08005ff0 0x0000017a Code RO 858 .text.HAL_I2C_ER_IRQHandler stm32f4xx_hal_i2c.o - 0x0800616a 0x0800616a 0x00000002 PAD - 0x0800616c 0x0800616c 0x000003ca Code RO 826 .text.HAL_I2C_EV_IRQHandler stm32f4xx_hal_i2c.o - 0x08006536 0x08006536 0x00000002 PAD - 0x08006538 0x08006538 0x00000054 Code RO 2314 .text.HAL_I2C_ErrorCallback i2c_1.o - 0x0800658c 0x0800658c 0x000002a4 Code RO 732 .text.HAL_I2C_Init stm32f4xx_hal_i2c.o - 0x08006830 0x08006830 0x00000054 Code RO 2308 .text.HAL_I2C_ListenCpltCallback i2c_1.o - 0x08006884 0x08006884 0x00000054 Code RO 2302 .text.HAL_I2C_MasterRxCpltCallback i2c_1.o - 0x080068d8 0x080068d8 0x00000050 Code RO 2298 .text.HAL_I2C_MasterTxCpltCallback i2c_1.o - 0x08006928 0x08006928 0x00000054 Code RO 2312 .text.HAL_I2C_MemRxCpltCallback i2c_1.o - 0x0800697c 0x0800697c 0x00000054 Code RO 2310 .text.HAL_I2C_MemTxCpltCallback i2c_1.o - 0x080069d0 0x080069d0 0x00000134 Code RO 83 .text.HAL_I2C_MspInit i2c.o - 0x08006b04 0x08006b04 0x00000054 Code RO 2306 .text.HAL_I2C_SlaveRxCpltCallback i2c_1.o - 0x08006b58 0x08006b58 0x00000054 Code RO 2304 .text.HAL_I2C_SlaveTxCpltCallback i2c_1.o - 0x08006bac 0x08006bac 0x0000001a Code RO 653 .text.HAL_IncTick stm32f4xx_hal.o - 0x08006bc6 0x08006bc6 0x00000002 PAD - 0x08006bc8 0x08006bc8 0x00000036 Code RO 643 .text.HAL_Init stm32f4xx_hal.o - 0x08006bfe 0x08006bfe 0x00000002 PAD - 0x08006c00 0x08006c00 0x00000070 Code RO 645 .text.HAL_InitTick stm32f4xx_hal.o - 0x08006c70 0x08006c70 0x00000058 Code RO 207 .text.HAL_MspInit stm32f4xx_hal_msp.o - 0x08006cc8 0x08006cc8 0x00000014 Code RO 582 .text.HAL_NVIC_DisableIRQ stm32f4xx_hal_cortex.o - 0x08006cdc 0x08006cdc 0x00000014 Code RO 578 .text.HAL_NVIC_EnableIRQ stm32f4xx_hal_cortex.o - 0x08006cf0 0x08006cf0 0x00000032 Code RO 570 .text.HAL_NVIC_SetPriority stm32f4xx_hal_cortex.o - 0x08006d22 0x08006d22 0x00000002 PAD - 0x08006d24 0x08006d24 0x00000010 Code RO 566 .text.HAL_NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o - 0x08006d34 0x08006d34 0x00000262 Code RO 298 .text.HAL_RCC_ClockConfig stm32f4xx_hal_rcc.o - 0x08006f96 0x08006f96 0x00000002 PAD - 0x08006f98 0x08006f98 0x0000000c Code RO 308 .text.HAL_RCC_GetHCLKFreq stm32f4xx_hal_rcc.o - 0x08006fa4 0x08006fa4 0x00000022 Code RO 310 .text.HAL_RCC_GetPCLK1Freq stm32f4xx_hal_rcc.o - 0x08006fc6 0x08006fc6 0x00000002 PAD - 0x08006fc8 0x08006fc8 0x00000022 Code RO 312 .text.HAL_RCC_GetPCLK2Freq stm32f4xx_hal_rcc.o - 0x08006fea 0x08006fea 0x00000002 PAD - 0x08006fec 0x08006fec 0x000000e6 Code RO 300 .text.HAL_RCC_GetSysClockFreq stm32f4xx_hal_rcc.o - 0x080070d2 0x080070d2 0x00000002 PAD - 0x080070d4 0x080070d4 0x000006be Code RO 296 .text.HAL_RCC_OscConfig stm32f4xx_hal_rcc.o - 0x08007792 0x08007792 0x00000002 PAD - 0x08007794 0x08007794 0x00000054 Code RO 2393 .text.HAL_SPI_ErrorCallback spi_1.o - 0x080077e8 0x080077e8 0x00000100 Code RO 904 .text.HAL_SPI_Init stm32f4xx_hal_spi.o - 0x080078e8 0x080078e8 0x00000210 Code RO 100 .text.HAL_SPI_MspInit spi.o - 0x08007af8 0x08007af8 0x0000024e Code RO 916 .text.HAL_SPI_Receive stm32f4xx_hal_spi.o - 0x08007d46 0x08007d46 0x00000002 PAD - 0x08007d48 0x08007d48 0x00000198 Code RO 952 .text.HAL_SPI_Receive_DMA stm32f4xx_hal_spi.o - 0x08007ee0 0x08007ee0 0x00000054 Code RO 2383 .text.HAL_SPI_RxCpltCallback spi_1.o - 0x08007f34 0x08007f34 0x00000054 Code RO 2389 .text.HAL_SPI_RxHalfCpltCallback spi_1.o - 0x08007f88 0x08007f88 0x000002a2 Code RO 912 .text.HAL_SPI_Transmit stm32f4xx_hal_spi.o - 0x0800822a 0x0800822a 0x00000002 PAD - 0x0800822c 0x0800822c 0x000003a2 Code RO 918 .text.HAL_SPI_TransmitReceive stm32f4xx_hal_spi.o - 0x080085ce 0x080085ce 0x00000002 PAD - 0x080085d0 0x080085d0 0x00000214 Code RO 954 .text.HAL_SPI_TransmitReceive_DMA stm32f4xx_hal_spi.o - 0x080087e4 0x080087e4 0x0000016c Code RO 944 .text.HAL_SPI_Transmit_DMA stm32f4xx_hal_spi.o - 0x08008950 0x08008950 0x00000048 Code RO 2379 .text.HAL_SPI_TxCpltCallback spi_1.o - 0x08008998 0x08008998 0x00000054 Code RO 2387 .text.HAL_SPI_TxHalfCpltCallback spi_1.o - 0x080089ec 0x080089ec 0x00000054 Code RO 2385 .text.HAL_SPI_TxRxCpltCallback spi_1.o - 0x08008a40 0x08008a40 0x00000054 Code RO 2391 .text.HAL_SPI_TxRxHalfCpltCallback spi_1.o - 0x08008a94 0x08008a94 0x00000010 Code RO 590 .text.HAL_SYSTICK_Config stm32f4xx_hal_cortex.o - 0x08008aa4 0x08008aa4 0x00000008 Code RO 1344 .text.HAL_TIMEx_BreakCallback stm32f4xx_hal_tim_ex.o - 0x08008aac 0x08008aac 0x00000008 Code RO 1340 .text.HAL_TIMEx_CommutCallback stm32f4xx_hal_tim_ex.o - 0x08008ab4 0x08008ab4 0x00000122 Code RO 1334 .text.HAL_TIMEx_MasterConfigSynchronization stm32f4xx_hal_tim_ex.o - 0x08008bd6 0x08008bd6 0x00000002 PAD - 0x08008bd8 0x08008bd8 0x0000009c Code RO 1021 .text.HAL_TIM_Base_Init stm32f4xx_hal_tim.o - 0x08008c74 0x08008c74 0x0000008a Code RO 121 .text.HAL_TIM_Base_MspInit tim.o - 0x08008cfe 0x08008cfe 0x00000002 PAD - 0x08008d00 0x08008d00 0x00000008 Code RO 1157 .text.HAL_TIM_IC_CaptureCallback stm32f4xx_hal_tim.o - 0x08008d08 0x08008d08 0x0000021a Code RO 1155 .text.HAL_TIM_IRQHandler stm32f4xx_hal_tim.o - 0x08008f22 0x08008f22 0x00000002 PAD - 0x08008f24 0x08008f24 0x0000006c Code RO 119 .text.HAL_TIM_MspPostInit tim.o - 0x08008f90 0x08008f90 0x00000008 Code RO 1159 .text.HAL_TIM_OC_DelayElapsedCallback stm32f4xx_hal_tim.o - 0x08008f98 0x08008f98 0x00000142 Code RO 1187 .text.HAL_TIM_PWM_ConfigChannel stm32f4xx_hal_tim.o - 0x080090da 0x080090da 0x00000002 PAD - 0x080090dc 0x080090dc 0x0000009c Code RO 1075 .text.HAL_TIM_PWM_Init stm32f4xx_hal_tim.o - 0x08009178 0x08009178 0x00000008 Code RO 1077 .text.HAL_TIM_PWM_MspInit stm32f4xx_hal_tim.o - 0x08009180 0x08009180 0x00000008 Code RO 1161 .text.HAL_TIM_PWM_PulseFinishedCallback stm32f4xx_hal_tim.o - 0x08009188 0x08009188 0x000001ca Code RO 1083 .text.HAL_TIM_PWM_Start stm32f4xx_hal_tim.o - 0x08009352 0x08009352 0x00000002 PAD - 0x08009354 0x08009354 0x00000008 Code RO 1163 .text.HAL_TIM_PeriodElapsedCallback stm32f4xx_hal_tim.o - 0x0800935c 0x0800935c 0x00000008 Code RO 1165 .text.HAL_TIM_TriggerCallback stm32f4xx_hal_tim.o - 0x08009364 0x08009364 0x0000000c Code RO 1449 .text.HAL_UARTEx_RxEventCallback stm32f4xx_hal_uart.o - 0x08009370 0x08009370 0x00000054 Code RO 2448 .text.HAL_UART_ErrorCallback uart.o - 0x080093c4 0x080093c4 0x0000045c Code RO 1441 .text.HAL_UART_IRQHandler stm32f4xx_hal_uart.o - 0x08009820 0x08009820 0x0000009e Code RO 1357 .text.HAL_UART_Init stm32f4xx_hal_uart.o - 0x080098be 0x080098be 0x00000002 PAD - 0x080098c0 0x080098c0 0x000001cc Code RO 138 .text.HAL_UART_MspInit usart.o - 0x08009a8c 0x08009a8c 0x00000054 Code RO 2444 .text.HAL_UART_RxCpltCallback uart.o - 0x08009ae0 0x08009ae0 0x00000054 Code RO 2438 .text.HAL_UART_TxCpltCallback uart.o - 0x08009b34 0x08009b34 0x00000004 Code RO 154 .text.HardFault_Handler stm32f4xx_it.o - 0x08009b38 0x08009b38 0x00000010 Code RO 184 .text.I2C1_ER_IRQHandler stm32f4xx_it.o - 0x08009b48 0x08009b48 0x00000010 Code RO 182 .text.I2C1_EV_IRQHandler stm32f4xx_it.o - 0x08009b58 0x08009b58 0x00000034 Code RO 828 .text.I2C_ConvertOtherXferOptions stm32f4xx_hal_i2c.o - 0x08009b8c 0x08009b8c 0x00000156 Code RO 812 .text.I2C_DMAAbort stm32f4xx_hal_i2c.o - 0x08009ce2 0x08009ce2 0x00000002 PAD - 0x08009ce4 0x08009ce4 0x00000024 Code RO 888 .text.I2C_Flush_DR stm32f4xx_hal_i2c.o - 0x08009d08 0x08009d08 0x00000048 Code RO 2300 .text.I2C_Get i2c_1.o - 0x08009d50 0x08009d50 0x0000027a Code RO 824 .text.I2C_ITError stm32f4xx_hal_i2c.o - 0x08009fca 0x08009fca 0x00000002 PAD - 0x08009fcc 0x08009fcc 0x000001ac Code RO 844 .text.I2C_MasterReceive_BTF stm32f4xx_hal_i2c.o - 0x0800a178 0x0800a178 0x0000016a Code RO 842 .text.I2C_MasterReceive_RXNE stm32f4xx_hal_i2c.o - 0x0800a2e2 0x0800a2e2 0x00000002 PAD - 0x0800a2e4 0x0800a2e4 0x000000de Code RO 838 .text.I2C_MasterTransmit_BTF stm32f4xx_hal_i2c.o - 0x0800a3c2 0x0800a3c2 0x00000002 PAD - 0x0800a3c4 0x0800a3c4 0x0000013e Code RO 836 .text.I2C_MasterTransmit_TXE stm32f4xx_hal_i2c.o - 0x0800a502 0x0800a502 0x00000002 PAD - 0x0800a504 0x0800a504 0x00000046 Code RO 832 .text.I2C_Master_ADD10 stm32f4xx_hal_i2c.o - 0x0800a54a 0x0800a54a 0x00000002 PAD - 0x0800a54c 0x0800a54c 0x0000033e Code RO 834 .text.I2C_Master_ADDR stm32f4xx_hal_i2c.o - 0x0800a88a 0x0800a88a 0x00000002 PAD - 0x0800a88c 0x0800a88c 0x000000f0 Code RO 830 .text.I2C_Master_SB stm32f4xx_hal_i2c.o - 0x0800a97c 0x0800a97c 0x00000128 Code RO 840 .text.I2C_MemoryTransmit_TXE_BTF stm32f4xx_hal_i2c.o - 0x0800aaa4 0x0800aaa4 0x0000002e Code RO 856 .text.I2C_SlaveReceive_BTF stm32f4xx_hal_i2c.o - 0x0800aad2 0x0800aad2 0x00000002 PAD - 0x0800aad4 0x0800aad4 0x0000006e Code RO 854 .text.I2C_SlaveReceive_RXNE stm32f4xx_hal_i2c.o - 0x0800ab42 0x0800ab42 0x00000002 PAD - 0x0800ab44 0x0800ab44 0x0000002c Code RO 852 .text.I2C_SlaveTransmit_BTF stm32f4xx_hal_i2c.o - 0x0800ab70 0x0800ab70 0x0000006c Code RO 850 .text.I2C_SlaveTransmit_TXE stm32f4xx_hal_i2c.o - 0x0800abdc 0x0800abdc 0x000000ae Code RO 846 .text.I2C_Slave_ADDR stm32f4xx_hal_i2c.o - 0x0800ac8a 0x0800ac8a 0x00000002 PAD - 0x0800ac8c 0x0800ac8c 0x000000e4 Code RO 860 .text.I2C_Slave_AF stm32f4xx_hal_i2c.o - 0x0800ad70 0x0800ad70 0x0000024a Code RO 848 .text.I2C_Slave_STOPF stm32f4xx_hal_i2c.o - 0x0800afba 0x0800afba 0x00000002 PAD - 0x0800afbc 0x0800afbc 0x00000078 Code RO 890 .text.I2C_WaitOnSTOPRequestThroughIT stm32f4xx_hal_i2c.o - 0x0800b034 0x0800b034 0x00000076 Code RO 2675 .text.InvSqrt user_math.o - 0x0800b0aa 0x0800b0aa 0x00000002 PAD - 0x0800b0ac 0x0800b0ac 0x000000b8 Code RO 2527 .text.LowPassFilter2p_Apply filter.o - 0x0800b164 0x0800b164 0x0000013c Code RO 2525 .text.LowPassFilter2p_Init filter.o - 0x0800b2a0 0x0800b2a0 0x00000092 Code RO 2533 .text.LowPassFilter2p_Reset filter.o - 0x0800b332 0x0800b332 0x00000002 PAD - 0x0800b334 0x0800b334 0x00000096 Code RO 2944 .text.MOTOR_DM_CreateCANManager motor_dm.o - 0x0800b3ca 0x0800b3ca 0x00000002 PAD - 0x0800b3cc 0x0800b3cc 0x0000007a Code RO 2968 .text.MOTOR_DM_Enable motor_dm.o - 0x0800b446 0x0800b446 0x00000002 PAD - 0x0800b448 0x0800b448 0x00000030 Code RO 2946 .text.MOTOR_DM_GetCANManager motor_dm.o - 0x0800b478 0x0800b478 0x00000086 Code RO 2956 .text.MOTOR_DM_GetMotor motor_dm.o - 0x0800b4fe 0x0800b4fe 0x00000002 PAD - 0x0800b500 0x0800b500 0x00000048 Code RO 2954 .text.MOTOR_DM_MITCtrl motor_dm.o - 0x0800b548 0x0800b548 0x00000158 Code RO 2950 .text.MOTOR_DM_ParseFeedbackFrame motor_dm.o - 0x0800b6a0 0x0800b6a0 0x0000012c Code RO 2942 .text.MOTOR_DM_Register motor_dm.o - 0x0800b7cc 0x0800b7cc 0x00000144 Code RO 2958 .text.MOTOR_DM_SendMITCmd motor_dm.o - 0x0800b910 0x0800b910 0x0000010c Code RO 2948 .text.MOTOR_DM_Update motor_dm.o - 0x0800ba1c 0x0800ba1c 0x00000096 Code RO 2843 .text.MOTOR_RM_CreateCANManager motor_rm.o - 0x0800bab2 0x0800bab2 0x00000002 PAD - 0x0800bab4 0x0800bab4 0x00000170 Code RO 2861 .text.MOTOR_RM_Ctrl motor_rm.o - 0x0800bc24 0x0800bc24 0x00000030 Code RO 2845 .text.MOTOR_RM_GetCANManager motor_rm.o - 0x0800bc54 0x0800bc54 0x00000052 Code RO 2859 .text.MOTOR_RM_GetLSB motor_rm.o - 0x0800bca6 0x0800bca6 0x00000002 PAD - 0x0800bca8 0x0800bca8 0x00000080 Code RO 2857 .text.MOTOR_RM_GetLogicalIndex motor_rm.o - 0x0800bd28 0x0800bd28 0x00000078 Code RO 2855 .text.MOTOR_RM_GetMotor motor_rm.o - 0x0800bda0 0x0800bda0 0x00000050 Code RO 2867 .text.MOTOR_RM_GetRatio motor_rm.o - 0x0800bdf0 0x0800bdf0 0x00000120 Code RO 2841 .text.MOTOR_RM_Register motor_rm.o - 0x0800bf10 0x0800bf10 0x0000011a Code RO 2853 .text.MOTOR_RM_SetOutput motor_rm.o - 0x0800c02a 0x0800c02a 0x00000002 PAD - 0x0800c02c 0x0800c02c 0x00000102 Code RO 2847 .text.MOTOR_RM_Update motor_rm.o - 0x0800c12e 0x0800c12e 0x00000002 PAD - 0x0800c130 0x0800c130 0x0000004e Code RO 53 .text.MX_CAN1_Init can.o - 0x0800c17e 0x0800c17e 0x00000002 PAD - 0x0800c180 0x0800c180 0x0000004e Code RO 55 .text.MX_CAN2_Init can.o - 0x0800c1ce 0x0800c1ce 0x00000002 PAD - 0x0800c1d0 0x0800c1d0 0x00000086 Code RO 71 .text.MX_DMA_Init dma.o - 0x0800c256 0x0800c256 0x00000002 PAD - 0x0800c258 0x0800c258 0x00000040 Code RO 39 .text.MX_FREERTOS_Init freertos.o - 0x0800c298 0x0800c298 0x0000022a Code RO 25 .text.MX_GPIO_Init gpio.o - 0x0800c4c2 0x0800c4c2 0x00000002 PAD - 0x0800c4c4 0x0800c4c4 0x00000048 Code RO 79 .text.MX_I2C1_Init i2c.o - 0x0800c50c 0x0800c50c 0x00000048 Code RO 81 .text.MX_I2C2_Init i2c.o - 0x0800c554 0x0800c554 0x00000052 Code RO 96 .text.MX_SPI1_Init spi.o - 0x0800c5a6 0x0800c5a6 0x00000002 PAD - 0x0800c5a8 0x0800c5a8 0x00000054 Code RO 98 .text.MX_SPI2_Init spi.o - 0x0800c5fc 0x0800c5fc 0x0000008e Code RO 117 .text.MX_TIM10_Init tim.o - 0x0800c68a 0x0800c68a 0x00000002 PAD - 0x0800c68c 0x0800c68c 0x00000058 Code RO 115 .text.MX_TIM7_Init tim.o - 0x0800c6e4 0x0800c6e4 0x00000040 Code RO 134 .text.MX_USART1_UART_Init usart.o - 0x0800c724 0x0800c724 0x0000004c Code RO 136 .text.MX_USART3_UART_Init usart.o - 0x0800c770 0x0800c770 0x00000004 Code RO 156 .text.MemManage_Handler stm32f4xx_it.o - 0x0800c774 0x0800c774 0x0000021c Code RO 2849 .text.Motor_RM_Decode motor_rm.o - 0x0800c990 0x0800c990 0x00000004 Code RO 152 .text.NMI_Handler stm32f4xx_it.o - 0x0800c994 0x0800c994 0x0000006c Code RO 576 .text.NVIC_EncodePriority stm32f4xx_hal_cortex.o - 0x0800ca00 0x0800ca00 0x000002f0 Code RO 2638 .text.PID_Calc pid.o - 0x0800ccf0 0x0800ccf0 0x00000196 Code RO 2630 .text.PID_Init pid.o - 0x0800ce86 0x0800ce86 0x00000002 PAD - 0x0800ce88 0x0800ce88 0x00000048 Code RO 2636 .text.PID_Reset pid.o - 0x0800ced0 0x0800ced0 0x00000064 Code RO 2170 .text.PendSV_Handler port.o - 0x0800cf34 0x0800cf34 0x00000094 Code RO 2717 .text.RC_Init bsp_rc.o - 0x0800cfc8 0x0800cfc8 0x0000005a Code RO 2721 .text.RC_restart bsp_rc.o - 0x0800d022 0x0800d022 0x00000002 PAD - 0x0800d024 0x0800d024 0x00000034 Code RO 950 .text.SPI_DMAError stm32f4xx_hal_spi.o - 0x0800d058 0x0800d058 0x00000016 Code RO 956 .text.SPI_DMAHalfReceiveCplt stm32f4xx_hal_spi.o - 0x0800d06e 0x0800d06e 0x00000002 PAD - 0x0800d070 0x0800d070 0x00000016 Code RO 946 .text.SPI_DMAHalfTransmitCplt stm32f4xx_hal_spi.o - 0x0800d086 0x0800d086 0x00000002 PAD - 0x0800d088 0x0800d088 0x00000016 Code RO 960 .text.SPI_DMAHalfTransmitReceiveCplt stm32f4xx_hal_spi.o - 0x0800d09e 0x0800d09e 0x00000002 PAD - 0x0800d0a0 0x0800d0a0 0x000000a2 Code RO 958 .text.SPI_DMAReceiveCplt stm32f4xx_hal_spi.o - 0x0800d142 0x0800d142 0x00000002 PAD - 0x0800d144 0x0800d144 0x000000a6 Code RO 948 .text.SPI_DMATransmitCplt stm32f4xx_hal_spi.o - 0x0800d1ea 0x0800d1ea 0x00000002 PAD - 0x0800d1ec 0x0800d1ec 0x00000086 Code RO 962 .text.SPI_DMATransmitReceiveCplt stm32f4xx_hal_spi.o - 0x0800d272 0x0800d272 0x00000002 PAD - 0x0800d274 0x0800d274 0x000000e4 Code RO 920 .text.SPI_EndRxTransaction stm32f4xx_hal_spi.o - 0x0800d358 0x0800d358 0x000000cc Code RO 914 .text.SPI_EndRxTxTransaction stm32f4xx_hal_spi.o - 0x0800d424 0x0800d424 0x0000002e Code RO 2381 .text.SPI_Get spi_1.o - 0x0800d452 0x0800d452 0x00000002 PAD - 0x0800d454 0x0800d454 0x0000012c Code RO 1012 .text.SPI_WaitFlagStateUntilTimeout stm32f4xx_hal_spi.o - 0x0800d580 0x0800d580 0x00000024 Code RO 2154 .text.SVC_Handler port.o - 0x0800d5a4 0x0800d5a4 0x0000000e Code RO 1948 .text.SVC_Setup cmsis_os2.o - 0x0800d5b2 0x0800d5b2 0x00000002 PAD - 0x0800d5b4 0x0800d5b4 0x00000012 Code RO 41 .text.StartDefaultTask freertos.o - 0x0800d5c6 0x0800d5c6 0x00000002 PAD - 0x0800d5c8 0x0800d5c8 0x00000052 Code RO 592 .text.SysTick_Config stm32f4xx_hal_cortex.o - 0x0800d61a 0x0800d61a 0x00000002 PAD - 0x0800d61c 0x0800d61c 0x00000018 Code RO 164 .text.SysTick_Handler stm32f4xx_it.o - 0x0800d634 0x0800d634 0x000000bc Code RO 13 .text.SystemClock_Config main.o - 0x0800d6f0 0x0800d6f0 0x00000012 Code RO 1488 .text.SystemInit system_stm32f4xx.o - 0x0800d702 0x0800d702 0x00000002 PAD - 0x0800d704 0x0800d704 0x00000010 Code RO 188 .text.TIM7_IRQHandler stm32f4xx_it.o - 0x0800d714 0x0800d714 0x000001a4 Code RO 1025 .text.TIM_Base_SetConfig stm32f4xx_hal_tim.o - 0x0800d8b8 0x0800d8b8 0x00000036 Code RO 1059 .text.TIM_CCxChannelCmd stm32f4xx_hal_tim.o - 0x0800d8ee 0x0800d8ee 0x00000002 PAD - 0x0800d8f0 0x0800d8f0 0x000000ea Code RO 1169 .text.TIM_OC1_SetConfig stm32f4xx_hal_tim.o - 0x0800d9da 0x0800d9da 0x00000002 PAD - 0x0800d9dc 0x0800d9dc 0x000000f4 Code RO 1171 .text.TIM_OC2_SetConfig stm32f4xx_hal_tim.o - 0x0800dad0 0x0800dad0 0x000000f2 Code RO 1173 .text.TIM_OC3_SetConfig stm32f4xx_hal_tim.o - 0x0800dbc2 0x0800dbc2 0x00000002 PAD - 0x0800dbc4 0x0800dbc4 0x000000a4 Code RO 1175 .text.TIM_OC4_SetConfig stm32f4xx_hal_tim.o - 0x0800dc68 0x0800dc68 0x000000b8 Code RO 2986 .text.Task_Init init.o - 0x0800dd20 0x0800dd20 0x00000190 Code RO 2994 .text.Task_atti_esti atti_esti.o - 0x0800deb0 0x0800deb0 0x000000dc Code RO 3032 .text.Task_gimbal_ctrl gimbal_ctrl.o - 0x0800df8c 0x0800df8c 0x00000004 PAD - 0x0800df90 0x0800df90 0x000000a0 Code RO 3011 .text.Task_remote remote.o - 0x0800e030 0x0800e030 0x0000001c Code RO 1445 .text.UART_DMAAbortOnError stm32f4xx_hal_uart.o - 0x0800e04c 0x0800e04c 0x00000094 Code RO 1405 .text.UART_EndRxTransfer stm32f4xx_hal_uart.o - 0x0800e0e0 0x0800e0e0 0x00000026 Code RO 1453 .text.UART_EndTransmit_IT stm32f4xx_hal_uart.o - 0x0800e106 0x0800e106 0x00000002 PAD - 0x0800e108 0x0800e108 0x0000002e Code RO 2440 .text.UART_Get uart.o - 0x0800e136 0x0800e136 0x00000002 PAD - 0x0800e138 0x0800e138 0x00000168 Code RO 1443 .text.UART_Receive_IT stm32f4xx_hal_uart.o - 0x0800e2a0 0x0800e2a0 0x0000013a Code RO 1361 .text.UART_SetConfig stm32f4xx_hal_uart.o - 0x0800e3da 0x0800e3da 0x00000002 PAD - 0x0800e3dc 0x0800e3dc 0x00000094 Code RO 1451 .text.UART_Transmit_IT stm32f4xx_hal_uart.o - 0x0800e470 0x0800e470 0x00000020 Code RO 186 .text.USART3_IRQHandler stm32f4xx_it.o - 0x0800e490 0x0800e490 0x00000022 Code RO 2919 .text.USART3_IRQHandler1 remote_control.o - 0x0800e4b2 0x0800e4b2 0x00000002 PAD - 0x0800e4b4 0x0800e4b4 0x00000004 Code RO 160 .text.UsageFault_Handler stm32f4xx_it.o - 0x0800e4b8 0x0800e4b8 0x0000001e Code RO 2537 .text.__ARM_isfinite filter.o - 0x0800e4d6 0x0800e4d6 0x00000002 PAD - 0x0800e4d8 0x0800e4d8 0x0000001e Code RO 2634 .text.__ARM_isfinite pid.o - 0x0800e4f6 0x0800e4f6 0x00000002 PAD - 0x0800e4f8 0x0800e4f8 0x00000018 Code RO 2535 .text.__ARM_isfinitef filter.o - 0x0800e510 0x0800e510 0x00000018 Code RO 2632 .text.__ARM_isfinitef pid.o - 0x0800e528 0x0800e528 0x00000034 Code RO 2531 .text.__ARM_isinf filter.o - 0x0800e55c 0x0800e55c 0x0000001c Code RO 2529 .text.__ARM_isinff filter.o - 0x0800e578 0x0800e578 0x00000038 Code RO 584 .text.__NVIC_DisableIRQ stm32f4xx_hal_cortex.o - 0x0800e5b0 0x0800e5b0 0x00000030 Code RO 580 .text.__NVIC_EnableIRQ stm32f4xx_hal_cortex.o - 0x0800e5e0 0x0800e5e0 0x00000010 Code RO 572 .text.__NVIC_GetPriorityGrouping stm32f4xx_hal_cortex.o - 0x0800e5f0 0x0800e5f0 0x00000042 Code RO 574 .text.__NVIC_SetPriority stm32f4xx_hal_cortex.o - 0x0800e632 0x0800e632 0x00000002 PAD - 0x0800e634 0x0800e634 0x00000042 Code RO 2104 .text.__NVIC_SetPriority cmsis_os2.o - 0x0800e676 0x0800e676 0x00000002 PAD - 0x0800e678 0x0800e678 0x0000003c Code RO 568 .text.__NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o - 0x0800e6b4 0x0800e6b4 0x00000002 Code RO 33 .text.configureTimerForRunTimeStats freertos.o - 0x0800e6b6 0x0800e6b6 0x00000002 PAD - 0x0800e6b8 0x0800e6b8 0x0000001e Code RO 2482 .text.copysignf ahrs.o - 0x0800e6d6 0x0800e6d6 0x00000002 PAD - 0x0800e6d8 0x0800e6d8 0x0000003e Code RO 2702 .text.delay_init bsp_delay.o - 0x0800e716 0x0800e716 0x00000002 PAD - 0x0800e718 0x0800e718 0x000000f6 Code RO 1726 .text.eTaskGetState tasks.o - 0x0800e80e 0x0800e80e 0x00000002 PAD - 0x0800e810 0x0800e810 0x00000058 Code RO 2976 .text.float_to_uint motor_dm.o - 0x0800e868 0x0800e868 0x00000004 Code RO 35 .text.getRunTimeCounterValue freertos.o - 0x0800e86c 0x0800e86c 0x00000050 Code RO 11 .text.main main.o - 0x0800e8bc 0x0800e8bc 0x0000002a Code RO 2742 .text.map calc_lib.o - 0x0800e8e6 0x0800e8e6 0x00000002 PAD - 0x0800e8e8 0x0800e8e8 0x00000034 Code RO 2006 .text.osDelay cmsis_os2.o - 0x0800e91c 0x0800e91c 0x00000058 Code RO 2008 .text.osDelayUntil cmsis_os2.o - 0x0800e974 0x0800e974 0x00000052 Code RO 1944 .text.osKernelGetState cmsis_os2.o - 0x0800e9c6 0x0800e9c6 0x00000002 PAD - 0x0800e9c8 0x0800e9c8 0x00000026 Code RO 1956 .text.osKernelGetTickCount cmsis_os2.o - 0x0800e9ee 0x0800e9ee 0x00000002 PAD - 0x0800e9f0 0x0800e9f0 0x00000006 Code RO 1958 .text.osKernelGetTickFreq cmsis_os2.o - 0x0800e9f6 0x0800e9f6 0x00000002 PAD - 0x0800e9f8 0x0800e9f8 0x00000046 Code RO 1940 .text.osKernelInitialize cmsis_os2.o - 0x0800ea3e 0x0800ea3e 0x00000002 PAD - 0x0800ea40 0x0800ea40 0x00000056 Code RO 1950 .text.osKernelLock cmsis_os2.o - 0x0800ea96 0x0800ea96 0x00000002 PAD - 0x0800ea98 0x0800ea98 0x00000052 Code RO 1946 .text.osKernelStart cmsis_os2.o - 0x0800eaea 0x0800eaea 0x00000002 PAD - 0x0800eaec 0x0800eaec 0x0000006e Code RO 1952 .text.osKernelUnlock cmsis_os2.o - 0x0800eb5a 0x0800eb5a 0x00000002 PAD - 0x0800eb5c 0x0800eb5c 0x000000c0 Code RO 2060 .text.osMessageQueueGet cmsis_os2.o - 0x0800ec1c 0x0800ec1c 0x000000fe Code RO 2056 .text.osMessageQueueNew cmsis_os2.o - 0x0800ed1a 0x0800ed1a 0x00000002 PAD - 0x0800ed1c 0x0800ed1c 0x000000c4 Code RO 2058 .text.osMessageQueuePut cmsis_os2.o - 0x0800ede0 0x0800ede0 0x00000040 Code RO 2070 .text.osMessageQueueReset cmsis_os2.o - 0x0800ee20 0x0800ee20 0x0000009e Code RO 2038 .text.osMutexAcquire cmsis_os2.o - 0x0800eebe 0x0800eebe 0x00000002 PAD - 0x0800eec0 0x0800eec0 0x00000128 Code RO 2036 .text.osMutexNew cmsis_os2.o - 0x0800efe8 0x0800efe8 0x0000007e Code RO 2040 .text.osMutexRelease cmsis_os2.o - 0x0800f066 0x0800f066 0x00000002 PAD - 0x0800f068 0x0800f068 0x000000a4 Code RO 1998 .text.osThreadFlagsSet cmsis_os2.o - 0x0800f10c 0x0800f10c 0x0000011a Code RO 2004 .text.osThreadFlagsWait cmsis_os2.o - 0x0800f226 0x0800f226 0x00000002 PAD - 0x0800f228 0x0800f228 0x00000010 Code RO 1974 .text.osThreadGetId cmsis_os2.o - 0x0800f238 0x0800f238 0x0000015a Code RO 1970 .text.osThreadNew cmsis_os2.o - 0x0800f392 0x0800f392 0x00000002 PAD - 0x0800f394 0x0800f394 0x0000005e Code RO 1992 .text.osThreadTerminate cmsis_os2.o - 0x0800f3f2 0x0800f3f2 0x00000002 PAD - 0x0800f3f4 0x0800f3f4 0x000000d4 Code RO 1720 .text.prvAddCurrentTaskToDelayedList tasks.o - 0x0800f4c8 0x0800f4c8 0x00000122 Code RO 1706 .text.prvAddNewTaskToReadyList tasks.o - 0x0800f5ea 0x0800f5ea 0x00000002 PAD - 0x0800f5ec 0x0800f5ec 0x000000a2 Code RO 1871 .text.prvCheckForValidListAndQueue timers.o - 0x0800f68e 0x0800f68e 0x00000002 PAD - 0x0800f690 0x0800f690 0x0000005a Code RO 1836 .text.prvCheckTasksWaitingTermination tasks.o - 0x0800f6ea 0x0800f6ea 0x00000002 PAD - 0x0800f6ec 0x0800f6ec 0x00000042 Code RO 1599 .text.prvCopyDataFromQueue queue.o - 0x0800f72e 0x0800f72e 0x00000002 PAD - 0x0800f730 0x0800f730 0x000000cc Code RO 1587 .text.prvCopyDataToQueue queue.o - 0x0800f7fc 0x0800f7fc 0x0000005e Code RO 1712 .text.prvDeleteTCB tasks.o - 0x0800f85a 0x0800f85a 0x00000002 PAD - 0x0800f85c 0x0800f85c 0x00000026 Code RO 1603 .text.prvGetDisinheritPriorityAfterTimeout queue.o - 0x0800f882 0x0800f882 0x00000002 PAD - 0x0800f884 0x0800f884 0x00000040 Code RO 1909 .text.prvGetNextExpireTime timers.o - 0x0800f8c4 0x0800f8c4 0x000000bc Code RO 2121 .text.prvHeapInit heap_4.o - 0x0800f980 0x0800f980 0x00000038 Code RO 1746 .text.prvIdleTask tasks.o - 0x0800f9b8 0x0800f9b8 0x0000002c Code RO 1567 .text.prvInitialiseMutex queue.o - 0x0800f9e4 0x0800f9e4 0x00000048 Code RO 1561 .text.prvInitialiseNewQueue queue.o - 0x0800fa2c 0x0800fa2c 0x0000012c Code RO 1704 .text.prvInitialiseNewTask tasks.o - 0x0800fb58 0x0800fb58 0x0000008e Code RO 1834 .text.prvInitialiseTaskLists tasks.o - 0x0800fbe6 0x0800fbe6 0x00000002 PAD - 0x0800fbe8 0x0800fbe8 0x000000c6 Code RO 2123 .text.prvInsertBlockIntoFreeList heap_4.o - 0x0800fcae 0x0800fcae 0x00000002 PAD - 0x0800fcb0 0x0800fcb0 0x00000086 Code RO 1921 .text.prvInsertTimerInActiveList timers.o - 0x0800fd36 0x0800fd36 0x00000002 PAD - 0x0800fd38 0x0800fd38 0x00000028 Code RO 1601 .text.prvIsQueueEmpty queue.o - 0x0800fd60 0x0800fd60 0x0000002e Code RO 1589 .text.prvIsQueueFull queue.o - 0x0800fd8e 0x0800fd8e 0x00000002 PAD - 0x0800fd90 0x0800fd90 0x00000028 Code RO 2162 .text.prvPortStartFirstTask port.o - 0x0800fdb8 0x0800fdb8 0x0000008e Code RO 1917 .text.prvProcessExpiredTimer timers.o - 0x0800fe46 0x0800fe46 0x00000002 PAD - 0x0800fe48 0x0800fe48 0x00000192 Code RO 1913 .text.prvProcessReceivedCommands timers.o - 0x0800ffda 0x0800ffda 0x00000002 PAD - 0x0800ffdc 0x0800ffdc 0x0000009a Code RO 1911 .text.prvProcessTimerOrBlockTask timers.o - 0x08010076 0x08010076 0x00000002 PAD - 0x08010078 0x08010078 0x00000046 Code RO 1714 .text.prvResetNextTaskUnblockTime tasks.o - 0x080100be 0x080100be 0x00000002 PAD - 0x080100c0 0x080100c0 0x00000044 Code RO 1915 .text.prvSampleTimeNow timers.o - 0x08010104 0x08010104 0x000000d4 Code RO 1919 .text.prvSwitchTimerLists timers.o - 0x080101d8 0x080101d8 0x0000004c Code RO 2152 .text.prvTaskExitError port.o - 0x08010224 0x08010224 0x0000001e Code RO 1873 .text.prvTimerTask timers.o - 0x08010242 0x08010242 0x00000002 PAD - 0x08010244 0x08010244 0x000000ae Code RO 1591 .text.prvUnlockQueue queue.o - 0x080102f2 0x080102f2 0x00000002 PAD - 0x080102f4 0x080102f4 0x000001ec Code RO 2119 .text.pvPortMalloc heap_4.o - 0x080104e0 0x080104e0 0x0000002c Code RO 1818 .text.pvTaskIncrementMutexHeldCount tasks.o - 0x0801050c 0x0801050c 0x0000005e Code RO 2150 .text.pxPortInitialiseStack port.o - 0x0801056a 0x0801056a 0x00000006 PAD - 0x08010570 0x08010570 0x000000b0 Code RO 2934 .text.remote_ParseHost ai.o - 0x08010620 0x08010620 0x00000012 Code RO 2915 .text.remote_control_init remote_control.o - 0x08010632 0x08010632 0x00000006 PAD - 0x08010638 0x08010638 0x00000290 Code RO 2923 .text.sbus_to_rc remote_control.o - 0x080108c8 0x080108c8 0x00000052 Code RO 2974 .text.uint_to_float motor_dm.o - 0x0801091a 0x0801091a 0x00000002 PAD - 0x0801091c 0x0801091c 0x0000002e Code RO 2732 .text.user_delay_ms calc_lib.o - 0x0801094a 0x0801094a 0x00000002 PAD - 0x0801094c 0x0801094c 0x00000044 Code RO 2730 .text.user_delay_us calc_lib.o - 0x08010990 0x08010990 0x00000048 Code RO 1548 .text.uxListRemove list.o - 0x080109d8 0x080109d8 0x0000002a Code RO 2100 .text.vApplicationGetIdleTaskMemory cmsis_os2.o - 0x08010a02 0x08010a02 0x00000002 PAD - 0x08010a04 0x08010a04 0x0000002c Code RO 2102 .text.vApplicationGetTimerTaskMemory cmsis_os2.o - 0x08010a30 0x08010a30 0x0000000a Code RO 37 .text.vApplicationStackOverflowHook freertos.o + 0x08005ac8 0x08005ac8 0x000000c2 Code RO 480 .text.HAL_DMA_Start_IT stm32f4xx_hal_dma.o + 0x08005b8a 0x08005b8a 0x00000002 PAD + 0x08005b8c 0x08005b8c 0x00000042 Code RO 663 .text.HAL_Delay stm32f4xx_hal.o + 0x08005bce 0x08005bce 0x00000002 PAD + 0x08005bd0 0x08005bd0 0x00000066 Code RO 2275 .text.HAL_GPIO_EXTI_Callback gpio_1.o + 0x08005c36 0x08005c36 0x00000002 PAD + 0x08005c38 0x08005c38 0x00000038 Code RO 442 .text.HAL_GPIO_EXTI_IRQHandler stm32f4xx_hal_gpio.o + 0x08005c70 0x08005c70 0x000003b6 Code RO 430 .text.HAL_GPIO_Init stm32f4xx_hal_gpio.o + 0x08006026 0x08006026 0x00000002 PAD + 0x08006028 0x08006028 0x0000002e Code RO 434 .text.HAL_GPIO_ReadPin stm32f4xx_hal_gpio.o + 0x08006056 0x08006056 0x00000002 PAD + 0x08006058 0x08006058 0x0000002e Code RO 436 .text.HAL_GPIO_WritePin stm32f4xx_hal_gpio.o + 0x08006086 0x08006086 0x00000002 PAD + 0x08006088 0x08006088 0x0000000c Code RO 655 .text.HAL_GetTick stm32f4xx_hal.o + 0x08006094 0x08006094 0x00000054 Code RO 2316 .text.HAL_I2C_AbortCpltCallback i2c_1.o + 0x080060e8 0x080060e8 0x00000010 Code RO 870 .text.HAL_I2C_AddrCallback stm32f4xx_hal_i2c.o + 0x080060f8 0x080060f8 0x0000017a Code RO 858 .text.HAL_I2C_ER_IRQHandler stm32f4xx_hal_i2c.o + 0x08006272 0x08006272 0x00000002 PAD + 0x08006274 0x08006274 0x000003ca Code RO 826 .text.HAL_I2C_EV_IRQHandler stm32f4xx_hal_i2c.o + 0x0800663e 0x0800663e 0x00000002 PAD + 0x08006640 0x08006640 0x00000054 Code RO 2314 .text.HAL_I2C_ErrorCallback i2c_1.o + 0x08006694 0x08006694 0x000002a4 Code RO 732 .text.HAL_I2C_Init stm32f4xx_hal_i2c.o + 0x08006938 0x08006938 0x00000054 Code RO 2308 .text.HAL_I2C_ListenCpltCallback i2c_1.o + 0x0800698c 0x0800698c 0x00000054 Code RO 2302 .text.HAL_I2C_MasterRxCpltCallback i2c_1.o + 0x080069e0 0x080069e0 0x00000050 Code RO 2298 .text.HAL_I2C_MasterTxCpltCallback i2c_1.o + 0x08006a30 0x08006a30 0x00000054 Code RO 2312 .text.HAL_I2C_MemRxCpltCallback i2c_1.o + 0x08006a84 0x08006a84 0x00000054 Code RO 2310 .text.HAL_I2C_MemTxCpltCallback i2c_1.o + 0x08006ad8 0x08006ad8 0x00000134 Code RO 83 .text.HAL_I2C_MspInit i2c.o + 0x08006c0c 0x08006c0c 0x00000054 Code RO 2306 .text.HAL_I2C_SlaveRxCpltCallback i2c_1.o + 0x08006c60 0x08006c60 0x00000054 Code RO 2304 .text.HAL_I2C_SlaveTxCpltCallback i2c_1.o + 0x08006cb4 0x08006cb4 0x0000001a Code RO 653 .text.HAL_IncTick stm32f4xx_hal.o + 0x08006cce 0x08006cce 0x00000002 PAD + 0x08006cd0 0x08006cd0 0x00000036 Code RO 643 .text.HAL_Init stm32f4xx_hal.o + 0x08006d06 0x08006d06 0x00000002 PAD + 0x08006d08 0x08006d08 0x00000070 Code RO 645 .text.HAL_InitTick stm32f4xx_hal.o + 0x08006d78 0x08006d78 0x00000058 Code RO 207 .text.HAL_MspInit stm32f4xx_hal_msp.o + 0x08006dd0 0x08006dd0 0x00000014 Code RO 582 .text.HAL_NVIC_DisableIRQ stm32f4xx_hal_cortex.o + 0x08006de4 0x08006de4 0x00000014 Code RO 578 .text.HAL_NVIC_EnableIRQ stm32f4xx_hal_cortex.o + 0x08006df8 0x08006df8 0x00000032 Code RO 570 .text.HAL_NVIC_SetPriority stm32f4xx_hal_cortex.o + 0x08006e2a 0x08006e2a 0x00000002 PAD + 0x08006e2c 0x08006e2c 0x00000010 Code RO 566 .text.HAL_NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o + 0x08006e3c 0x08006e3c 0x00000262 Code RO 298 .text.HAL_RCC_ClockConfig stm32f4xx_hal_rcc.o + 0x0800709e 0x0800709e 0x00000002 PAD + 0x080070a0 0x080070a0 0x0000000c Code RO 308 .text.HAL_RCC_GetHCLKFreq stm32f4xx_hal_rcc.o + 0x080070ac 0x080070ac 0x00000022 Code RO 310 .text.HAL_RCC_GetPCLK1Freq stm32f4xx_hal_rcc.o + 0x080070ce 0x080070ce 0x00000002 PAD + 0x080070d0 0x080070d0 0x00000022 Code RO 312 .text.HAL_RCC_GetPCLK2Freq stm32f4xx_hal_rcc.o + 0x080070f2 0x080070f2 0x00000002 PAD + 0x080070f4 0x080070f4 0x000000e6 Code RO 300 .text.HAL_RCC_GetSysClockFreq stm32f4xx_hal_rcc.o + 0x080071da 0x080071da 0x00000002 PAD + 0x080071dc 0x080071dc 0x000006be Code RO 296 .text.HAL_RCC_OscConfig stm32f4xx_hal_rcc.o + 0x0800789a 0x0800789a 0x00000002 PAD + 0x0800789c 0x0800789c 0x00000054 Code RO 2393 .text.HAL_SPI_ErrorCallback spi_1.o + 0x080078f0 0x080078f0 0x00000100 Code RO 904 .text.HAL_SPI_Init stm32f4xx_hal_spi.o + 0x080079f0 0x080079f0 0x00000210 Code RO 100 .text.HAL_SPI_MspInit spi.o + 0x08007c00 0x08007c00 0x0000024e Code RO 916 .text.HAL_SPI_Receive stm32f4xx_hal_spi.o + 0x08007e4e 0x08007e4e 0x00000002 PAD + 0x08007e50 0x08007e50 0x00000198 Code RO 952 .text.HAL_SPI_Receive_DMA stm32f4xx_hal_spi.o + 0x08007fe8 0x08007fe8 0x00000054 Code RO 2383 .text.HAL_SPI_RxCpltCallback spi_1.o + 0x0800803c 0x0800803c 0x00000054 Code RO 2389 .text.HAL_SPI_RxHalfCpltCallback spi_1.o + 0x08008090 0x08008090 0x000002a2 Code RO 912 .text.HAL_SPI_Transmit stm32f4xx_hal_spi.o + 0x08008332 0x08008332 0x00000002 PAD + 0x08008334 0x08008334 0x000003a2 Code RO 918 .text.HAL_SPI_TransmitReceive stm32f4xx_hal_spi.o + 0x080086d6 0x080086d6 0x00000002 PAD + 0x080086d8 0x080086d8 0x00000214 Code RO 954 .text.HAL_SPI_TransmitReceive_DMA stm32f4xx_hal_spi.o + 0x080088ec 0x080088ec 0x0000016c Code RO 944 .text.HAL_SPI_Transmit_DMA stm32f4xx_hal_spi.o + 0x08008a58 0x08008a58 0x00000048 Code RO 2379 .text.HAL_SPI_TxCpltCallback spi_1.o + 0x08008aa0 0x08008aa0 0x00000054 Code RO 2387 .text.HAL_SPI_TxHalfCpltCallback spi_1.o + 0x08008af4 0x08008af4 0x00000054 Code RO 2385 .text.HAL_SPI_TxRxCpltCallback spi_1.o + 0x08008b48 0x08008b48 0x00000054 Code RO 2391 .text.HAL_SPI_TxRxHalfCpltCallback spi_1.o + 0x08008b9c 0x08008b9c 0x00000010 Code RO 590 .text.HAL_SYSTICK_Config stm32f4xx_hal_cortex.o + 0x08008bac 0x08008bac 0x00000008 Code RO 1344 .text.HAL_TIMEx_BreakCallback stm32f4xx_hal_tim_ex.o + 0x08008bb4 0x08008bb4 0x00000008 Code RO 1340 .text.HAL_TIMEx_CommutCallback stm32f4xx_hal_tim_ex.o + 0x08008bbc 0x08008bbc 0x00000122 Code RO 1334 .text.HAL_TIMEx_MasterConfigSynchronization stm32f4xx_hal_tim_ex.o + 0x08008cde 0x08008cde 0x00000002 PAD + 0x08008ce0 0x08008ce0 0x0000009c Code RO 1021 .text.HAL_TIM_Base_Init stm32f4xx_hal_tim.o + 0x08008d7c 0x08008d7c 0x0000008a Code RO 121 .text.HAL_TIM_Base_MspInit tim.o + 0x08008e06 0x08008e06 0x00000002 PAD + 0x08008e08 0x08008e08 0x00000008 Code RO 1157 .text.HAL_TIM_IC_CaptureCallback stm32f4xx_hal_tim.o + 0x08008e10 0x08008e10 0x0000021a Code RO 1155 .text.HAL_TIM_IRQHandler stm32f4xx_hal_tim.o + 0x0800902a 0x0800902a 0x00000002 PAD + 0x0800902c 0x0800902c 0x0000006c Code RO 119 .text.HAL_TIM_MspPostInit tim.o + 0x08009098 0x08009098 0x00000008 Code RO 1159 .text.HAL_TIM_OC_DelayElapsedCallback stm32f4xx_hal_tim.o + 0x080090a0 0x080090a0 0x00000142 Code RO 1187 .text.HAL_TIM_PWM_ConfigChannel stm32f4xx_hal_tim.o + 0x080091e2 0x080091e2 0x00000002 PAD + 0x080091e4 0x080091e4 0x0000009c Code RO 1075 .text.HAL_TIM_PWM_Init stm32f4xx_hal_tim.o + 0x08009280 0x08009280 0x00000008 Code RO 1077 .text.HAL_TIM_PWM_MspInit stm32f4xx_hal_tim.o + 0x08009288 0x08009288 0x00000008 Code RO 1161 .text.HAL_TIM_PWM_PulseFinishedCallback stm32f4xx_hal_tim.o + 0x08009290 0x08009290 0x000001ca Code RO 1083 .text.HAL_TIM_PWM_Start stm32f4xx_hal_tim.o + 0x0800945a 0x0800945a 0x00000002 PAD + 0x0800945c 0x0800945c 0x00000008 Code RO 1163 .text.HAL_TIM_PeriodElapsedCallback stm32f4xx_hal_tim.o + 0x08009464 0x08009464 0x00000008 Code RO 1165 .text.HAL_TIM_TriggerCallback stm32f4xx_hal_tim.o + 0x0800946c 0x0800946c 0x0000000c Code RO 1449 .text.HAL_UARTEx_RxEventCallback stm32f4xx_hal_uart.o + 0x08009478 0x08009478 0x00000054 Code RO 2448 .text.HAL_UART_ErrorCallback uart.o + 0x080094cc 0x080094cc 0x0000045c Code RO 1441 .text.HAL_UART_IRQHandler stm32f4xx_hal_uart.o + 0x08009928 0x08009928 0x0000009e Code RO 1357 .text.HAL_UART_Init stm32f4xx_hal_uart.o + 0x080099c6 0x080099c6 0x00000002 PAD + 0x080099c8 0x080099c8 0x000001cc Code RO 138 .text.HAL_UART_MspInit usart.o + 0x08009b94 0x08009b94 0x00000054 Code RO 2444 .text.HAL_UART_RxCpltCallback uart.o + 0x08009be8 0x08009be8 0x00000054 Code RO 2438 .text.HAL_UART_TxCpltCallback uart.o + 0x08009c3c 0x08009c3c 0x00000004 Code RO 154 .text.HardFault_Handler stm32f4xx_it.o + 0x08009c40 0x08009c40 0x00000010 Code RO 184 .text.I2C1_ER_IRQHandler stm32f4xx_it.o + 0x08009c50 0x08009c50 0x00000010 Code RO 182 .text.I2C1_EV_IRQHandler stm32f4xx_it.o + 0x08009c60 0x08009c60 0x00000034 Code RO 828 .text.I2C_ConvertOtherXferOptions stm32f4xx_hal_i2c.o + 0x08009c94 0x08009c94 0x00000156 Code RO 812 .text.I2C_DMAAbort stm32f4xx_hal_i2c.o + 0x08009dea 0x08009dea 0x00000002 PAD + 0x08009dec 0x08009dec 0x00000024 Code RO 888 .text.I2C_Flush_DR stm32f4xx_hal_i2c.o + 0x08009e10 0x08009e10 0x00000048 Code RO 2300 .text.I2C_Get i2c_1.o + 0x08009e58 0x08009e58 0x0000027a Code RO 824 .text.I2C_ITError stm32f4xx_hal_i2c.o + 0x0800a0d2 0x0800a0d2 0x00000002 PAD + 0x0800a0d4 0x0800a0d4 0x000001ac Code RO 844 .text.I2C_MasterReceive_BTF stm32f4xx_hal_i2c.o + 0x0800a280 0x0800a280 0x0000016a Code RO 842 .text.I2C_MasterReceive_RXNE stm32f4xx_hal_i2c.o + 0x0800a3ea 0x0800a3ea 0x00000002 PAD + 0x0800a3ec 0x0800a3ec 0x000000de Code RO 838 .text.I2C_MasterTransmit_BTF stm32f4xx_hal_i2c.o + 0x0800a4ca 0x0800a4ca 0x00000002 PAD + 0x0800a4cc 0x0800a4cc 0x0000013e Code RO 836 .text.I2C_MasterTransmit_TXE stm32f4xx_hal_i2c.o + 0x0800a60a 0x0800a60a 0x00000002 PAD + 0x0800a60c 0x0800a60c 0x00000046 Code RO 832 .text.I2C_Master_ADD10 stm32f4xx_hal_i2c.o + 0x0800a652 0x0800a652 0x00000002 PAD + 0x0800a654 0x0800a654 0x0000033e Code RO 834 .text.I2C_Master_ADDR stm32f4xx_hal_i2c.o + 0x0800a992 0x0800a992 0x00000002 PAD + 0x0800a994 0x0800a994 0x000000f0 Code RO 830 .text.I2C_Master_SB stm32f4xx_hal_i2c.o + 0x0800aa84 0x0800aa84 0x00000128 Code RO 840 .text.I2C_MemoryTransmit_TXE_BTF stm32f4xx_hal_i2c.o + 0x0800abac 0x0800abac 0x0000002e Code RO 856 .text.I2C_SlaveReceive_BTF stm32f4xx_hal_i2c.o + 0x0800abda 0x0800abda 0x00000002 PAD + 0x0800abdc 0x0800abdc 0x0000006e Code RO 854 .text.I2C_SlaveReceive_RXNE stm32f4xx_hal_i2c.o + 0x0800ac4a 0x0800ac4a 0x00000002 PAD + 0x0800ac4c 0x0800ac4c 0x0000002c Code RO 852 .text.I2C_SlaveTransmit_BTF stm32f4xx_hal_i2c.o + 0x0800ac78 0x0800ac78 0x0000006c Code RO 850 .text.I2C_SlaveTransmit_TXE stm32f4xx_hal_i2c.o + 0x0800ace4 0x0800ace4 0x000000ae Code RO 846 .text.I2C_Slave_ADDR stm32f4xx_hal_i2c.o + 0x0800ad92 0x0800ad92 0x00000002 PAD + 0x0800ad94 0x0800ad94 0x000000e4 Code RO 860 .text.I2C_Slave_AF stm32f4xx_hal_i2c.o + 0x0800ae78 0x0800ae78 0x0000024a Code RO 848 .text.I2C_Slave_STOPF stm32f4xx_hal_i2c.o + 0x0800b0c2 0x0800b0c2 0x00000002 PAD + 0x0800b0c4 0x0800b0c4 0x00000078 Code RO 890 .text.I2C_WaitOnSTOPRequestThroughIT stm32f4xx_hal_i2c.o + 0x0800b13c 0x0800b13c 0x00000076 Code RO 2675 .text.InvSqrt user_math.o + 0x0800b1b2 0x0800b1b2 0x00000002 PAD + 0x0800b1b4 0x0800b1b4 0x000000b8 Code RO 2527 .text.LowPassFilter2p_Apply filter.o + 0x0800b26c 0x0800b26c 0x0000013c Code RO 2525 .text.LowPassFilter2p_Init filter.o + 0x0800b3a8 0x0800b3a8 0x00000092 Code RO 2533 .text.LowPassFilter2p_Reset filter.o + 0x0800b43a 0x0800b43a 0x00000002 PAD + 0x0800b43c 0x0800b43c 0x00000096 Code RO 2944 .text.MOTOR_DM_CreateCANManager motor_dm.o + 0x0800b4d2 0x0800b4d2 0x00000002 PAD + 0x0800b4d4 0x0800b4d4 0x0000007a Code RO 2968 .text.MOTOR_DM_Enable motor_dm.o + 0x0800b54e 0x0800b54e 0x00000002 PAD + 0x0800b550 0x0800b550 0x00000030 Code RO 2946 .text.MOTOR_DM_GetCANManager motor_dm.o + 0x0800b580 0x0800b580 0x00000086 Code RO 2956 .text.MOTOR_DM_GetMotor motor_dm.o + 0x0800b606 0x0800b606 0x00000002 PAD + 0x0800b608 0x0800b608 0x00000048 Code RO 2954 .text.MOTOR_DM_MITCtrl motor_dm.o + 0x0800b650 0x0800b650 0x00000158 Code RO 2950 .text.MOTOR_DM_ParseFeedbackFrame motor_dm.o + 0x0800b7a8 0x0800b7a8 0x0000012c Code RO 2942 .text.MOTOR_DM_Register motor_dm.o + 0x0800b8d4 0x0800b8d4 0x00000144 Code RO 2958 .text.MOTOR_DM_SendMITCmd motor_dm.o + 0x0800ba18 0x0800ba18 0x0000010c Code RO 2948 .text.MOTOR_DM_Update motor_dm.o + 0x0800bb24 0x0800bb24 0x00000096 Code RO 2843 .text.MOTOR_RM_CreateCANManager motor_rm.o + 0x0800bbba 0x0800bbba 0x00000002 PAD + 0x0800bbbc 0x0800bbbc 0x00000170 Code RO 2861 .text.MOTOR_RM_Ctrl motor_rm.o + 0x0800bd2c 0x0800bd2c 0x00000030 Code RO 2845 .text.MOTOR_RM_GetCANManager motor_rm.o + 0x0800bd5c 0x0800bd5c 0x00000052 Code RO 2859 .text.MOTOR_RM_GetLSB motor_rm.o + 0x0800bdae 0x0800bdae 0x00000002 PAD + 0x0800bdb0 0x0800bdb0 0x00000080 Code RO 2857 .text.MOTOR_RM_GetLogicalIndex motor_rm.o + 0x0800be30 0x0800be30 0x00000078 Code RO 2855 .text.MOTOR_RM_GetMotor motor_rm.o + 0x0800bea8 0x0800bea8 0x00000050 Code RO 2867 .text.MOTOR_RM_GetRatio motor_rm.o + 0x0800bef8 0x0800bef8 0x00000120 Code RO 2841 .text.MOTOR_RM_Register motor_rm.o + 0x0800c018 0x0800c018 0x0000011a Code RO 2853 .text.MOTOR_RM_SetOutput motor_rm.o + 0x0800c132 0x0800c132 0x00000002 PAD + 0x0800c134 0x0800c134 0x00000102 Code RO 2847 .text.MOTOR_RM_Update motor_rm.o + 0x0800c236 0x0800c236 0x00000002 PAD + 0x0800c238 0x0800c238 0x0000004e Code RO 53 .text.MX_CAN1_Init can.o + 0x0800c286 0x0800c286 0x00000002 PAD + 0x0800c288 0x0800c288 0x0000004e Code RO 55 .text.MX_CAN2_Init can.o + 0x0800c2d6 0x0800c2d6 0x00000002 PAD + 0x0800c2d8 0x0800c2d8 0x00000086 Code RO 71 .text.MX_DMA_Init dma.o + 0x0800c35e 0x0800c35e 0x00000002 PAD + 0x0800c360 0x0800c360 0x00000040 Code RO 39 .text.MX_FREERTOS_Init freertos.o + 0x0800c3a0 0x0800c3a0 0x0000022a Code RO 25 .text.MX_GPIO_Init gpio.o + 0x0800c5ca 0x0800c5ca 0x00000002 PAD + 0x0800c5cc 0x0800c5cc 0x00000048 Code RO 79 .text.MX_I2C1_Init i2c.o + 0x0800c614 0x0800c614 0x00000048 Code RO 81 .text.MX_I2C2_Init i2c.o + 0x0800c65c 0x0800c65c 0x00000052 Code RO 96 .text.MX_SPI1_Init spi.o + 0x0800c6ae 0x0800c6ae 0x00000002 PAD + 0x0800c6b0 0x0800c6b0 0x00000054 Code RO 98 .text.MX_SPI2_Init spi.o + 0x0800c704 0x0800c704 0x0000008e Code RO 117 .text.MX_TIM10_Init tim.o + 0x0800c792 0x0800c792 0x00000002 PAD + 0x0800c794 0x0800c794 0x00000058 Code RO 115 .text.MX_TIM7_Init tim.o + 0x0800c7ec 0x0800c7ec 0x00000040 Code RO 134 .text.MX_USART1_UART_Init usart.o + 0x0800c82c 0x0800c82c 0x0000004c Code RO 136 .text.MX_USART3_UART_Init usart.o + 0x0800c878 0x0800c878 0x00000004 Code RO 156 .text.MemManage_Handler stm32f4xx_it.o + 0x0800c87c 0x0800c87c 0x0000021c Code RO 2849 .text.Motor_RM_Decode motor_rm.o + 0x0800ca98 0x0800ca98 0x00000004 Code RO 152 .text.NMI_Handler stm32f4xx_it.o + 0x0800ca9c 0x0800ca9c 0x0000006c Code RO 576 .text.NVIC_EncodePriority stm32f4xx_hal_cortex.o + 0x0800cb08 0x0800cb08 0x000002f0 Code RO 2638 .text.PID_Calc pid.o + 0x0800cdf8 0x0800cdf8 0x00000196 Code RO 2630 .text.PID_Init pid.o + 0x0800cf8e 0x0800cf8e 0x00000002 PAD + 0x0800cf90 0x0800cf90 0x00000048 Code RO 2636 .text.PID_Reset pid.o + 0x0800cfd8 0x0800cfd8 0x00000008 PAD + 0x0800cfe0 0x0800cfe0 0x00000064 Code RO 2170 .text.PendSV_Handler port.o + 0x0800d044 0x0800d044 0x00000094 Code RO 2717 .text.RC_Init bsp_rc.o + 0x0800d0d8 0x0800d0d8 0x0000005a Code RO 2721 .text.RC_restart bsp_rc.o + 0x0800d132 0x0800d132 0x00000002 PAD + 0x0800d134 0x0800d134 0x00000034 Code RO 950 .text.SPI_DMAError stm32f4xx_hal_spi.o + 0x0800d168 0x0800d168 0x00000016 Code RO 956 .text.SPI_DMAHalfReceiveCplt stm32f4xx_hal_spi.o + 0x0800d17e 0x0800d17e 0x00000002 PAD + 0x0800d180 0x0800d180 0x00000016 Code RO 946 .text.SPI_DMAHalfTransmitCplt stm32f4xx_hal_spi.o + 0x0800d196 0x0800d196 0x00000002 PAD + 0x0800d198 0x0800d198 0x00000016 Code RO 960 .text.SPI_DMAHalfTransmitReceiveCplt stm32f4xx_hal_spi.o + 0x0800d1ae 0x0800d1ae 0x00000002 PAD + 0x0800d1b0 0x0800d1b0 0x000000a2 Code RO 958 .text.SPI_DMAReceiveCplt stm32f4xx_hal_spi.o + 0x0800d252 0x0800d252 0x00000002 PAD + 0x0800d254 0x0800d254 0x000000a6 Code RO 948 .text.SPI_DMATransmitCplt stm32f4xx_hal_spi.o + 0x0800d2fa 0x0800d2fa 0x00000002 PAD + 0x0800d2fc 0x0800d2fc 0x00000086 Code RO 962 .text.SPI_DMATransmitReceiveCplt stm32f4xx_hal_spi.o + 0x0800d382 0x0800d382 0x00000002 PAD + 0x0800d384 0x0800d384 0x000000e4 Code RO 920 .text.SPI_EndRxTransaction stm32f4xx_hal_spi.o + 0x0800d468 0x0800d468 0x000000cc Code RO 914 .text.SPI_EndRxTxTransaction stm32f4xx_hal_spi.o + 0x0800d534 0x0800d534 0x0000002e Code RO 2381 .text.SPI_Get spi_1.o + 0x0800d562 0x0800d562 0x00000002 PAD + 0x0800d564 0x0800d564 0x0000012c Code RO 1012 .text.SPI_WaitFlagStateUntilTimeout stm32f4xx_hal_spi.o + 0x0800d690 0x0800d690 0x00000024 Code RO 2154 .text.SVC_Handler port.o + 0x0800d6b4 0x0800d6b4 0x0000000e Code RO 1948 .text.SVC_Setup cmsis_os2.o + 0x0800d6c2 0x0800d6c2 0x00000002 PAD + 0x0800d6c4 0x0800d6c4 0x00000012 Code RO 41 .text.StartDefaultTask freertos.o + 0x0800d6d6 0x0800d6d6 0x00000002 PAD + 0x0800d6d8 0x0800d6d8 0x00000052 Code RO 592 .text.SysTick_Config stm32f4xx_hal_cortex.o + 0x0800d72a 0x0800d72a 0x00000002 PAD + 0x0800d72c 0x0800d72c 0x00000018 Code RO 164 .text.SysTick_Handler stm32f4xx_it.o + 0x0800d744 0x0800d744 0x000000bc Code RO 13 .text.SystemClock_Config main.o + 0x0800d800 0x0800d800 0x00000012 Code RO 1488 .text.SystemInit system_stm32f4xx.o + 0x0800d812 0x0800d812 0x00000002 PAD + 0x0800d814 0x0800d814 0x00000010 Code RO 188 .text.TIM7_IRQHandler stm32f4xx_it.o + 0x0800d824 0x0800d824 0x000001a4 Code RO 1025 .text.TIM_Base_SetConfig stm32f4xx_hal_tim.o + 0x0800d9c8 0x0800d9c8 0x00000036 Code RO 1059 .text.TIM_CCxChannelCmd stm32f4xx_hal_tim.o + 0x0800d9fe 0x0800d9fe 0x00000002 PAD + 0x0800da00 0x0800da00 0x000000ea Code RO 1169 .text.TIM_OC1_SetConfig stm32f4xx_hal_tim.o + 0x0800daea 0x0800daea 0x00000002 PAD + 0x0800daec 0x0800daec 0x000000f4 Code RO 1171 .text.TIM_OC2_SetConfig stm32f4xx_hal_tim.o + 0x0800dbe0 0x0800dbe0 0x000000f2 Code RO 1173 .text.TIM_OC3_SetConfig stm32f4xx_hal_tim.o + 0x0800dcd2 0x0800dcd2 0x00000002 PAD + 0x0800dcd4 0x0800dcd4 0x000000a4 Code RO 1175 .text.TIM_OC4_SetConfig stm32f4xx_hal_tim.o + 0x0800dd78 0x0800dd78 0x000000b8 Code RO 2986 .text.Task_Init init.o + 0x0800de30 0x0800de30 0x00000190 Code RO 2994 .text.Task_atti_esti atti_esti.o + 0x0800dfc0 0x0800dfc0 0x000000ec Code RO 3032 .text.Task_gimbal_ctrl gimbal_ctrl.o + 0x0800e0ac 0x0800e0ac 0x00000004 PAD + 0x0800e0b0 0x0800e0b0 0x000000a0 Code RO 3011 .text.Task_remote remote.o + 0x0800e150 0x0800e150 0x0000001c Code RO 1445 .text.UART_DMAAbortOnError stm32f4xx_hal_uart.o + 0x0800e16c 0x0800e16c 0x00000094 Code RO 1405 .text.UART_EndRxTransfer stm32f4xx_hal_uart.o + 0x0800e200 0x0800e200 0x00000026 Code RO 1453 .text.UART_EndTransmit_IT stm32f4xx_hal_uart.o + 0x0800e226 0x0800e226 0x00000002 PAD + 0x0800e228 0x0800e228 0x0000002e Code RO 2440 .text.UART_Get uart.o + 0x0800e256 0x0800e256 0x00000002 PAD + 0x0800e258 0x0800e258 0x00000168 Code RO 1443 .text.UART_Receive_IT stm32f4xx_hal_uart.o + 0x0800e3c0 0x0800e3c0 0x0000013a Code RO 1361 .text.UART_SetConfig stm32f4xx_hal_uart.o + 0x0800e4fa 0x0800e4fa 0x00000002 PAD + 0x0800e4fc 0x0800e4fc 0x00000094 Code RO 1451 .text.UART_Transmit_IT stm32f4xx_hal_uart.o + 0x0800e590 0x0800e590 0x00000020 Code RO 186 .text.USART3_IRQHandler stm32f4xx_it.o + 0x0800e5b0 0x0800e5b0 0x00000022 Code RO 2919 .text.USART3_IRQHandler1 remote_control.o + 0x0800e5d2 0x0800e5d2 0x00000002 PAD + 0x0800e5d4 0x0800e5d4 0x00000004 Code RO 160 .text.UsageFault_Handler stm32f4xx_it.o + 0x0800e5d8 0x0800e5d8 0x0000001e Code RO 2537 .text.__ARM_isfinite filter.o + 0x0800e5f6 0x0800e5f6 0x00000002 PAD + 0x0800e5f8 0x0800e5f8 0x0000001e Code RO 2634 .text.__ARM_isfinite pid.o + 0x0800e616 0x0800e616 0x00000002 PAD + 0x0800e618 0x0800e618 0x00000018 Code RO 2535 .text.__ARM_isfinitef filter.o + 0x0800e630 0x0800e630 0x00000018 Code RO 2632 .text.__ARM_isfinitef pid.o + 0x0800e648 0x0800e648 0x00000034 Code RO 2531 .text.__ARM_isinf filter.o + 0x0800e67c 0x0800e67c 0x0000001c Code RO 2529 .text.__ARM_isinff filter.o + 0x0800e698 0x0800e698 0x00000038 Code RO 584 .text.__NVIC_DisableIRQ stm32f4xx_hal_cortex.o + 0x0800e6d0 0x0800e6d0 0x00000030 Code RO 580 .text.__NVIC_EnableIRQ stm32f4xx_hal_cortex.o + 0x0800e700 0x0800e700 0x00000010 Code RO 572 .text.__NVIC_GetPriorityGrouping stm32f4xx_hal_cortex.o + 0x0800e710 0x0800e710 0x00000042 Code RO 574 .text.__NVIC_SetPriority stm32f4xx_hal_cortex.o + 0x0800e752 0x0800e752 0x00000002 PAD + 0x0800e754 0x0800e754 0x00000042 Code RO 2104 .text.__NVIC_SetPriority cmsis_os2.o + 0x0800e796 0x0800e796 0x00000002 PAD + 0x0800e798 0x0800e798 0x0000003c Code RO 568 .text.__NVIC_SetPriorityGrouping stm32f4xx_hal_cortex.o + 0x0800e7d4 0x0800e7d4 0x00000002 Code RO 33 .text.configureTimerForRunTimeStats freertos.o + 0x0800e7d6 0x0800e7d6 0x00000002 PAD + 0x0800e7d8 0x0800e7d8 0x0000001e Code RO 2482 .text.copysignf ahrs.o + 0x0800e7f6 0x0800e7f6 0x00000002 PAD + 0x0800e7f8 0x0800e7f8 0x0000003e Code RO 2702 .text.delay_init bsp_delay.o + 0x0800e836 0x0800e836 0x00000002 PAD + 0x0800e838 0x0800e838 0x000000f6 Code RO 1726 .text.eTaskGetState tasks.o + 0x0800e92e 0x0800e92e 0x00000002 PAD + 0x0800e930 0x0800e930 0x00000058 Code RO 2976 .text.float_to_uint motor_dm.o + 0x0800e988 0x0800e988 0x00000004 Code RO 35 .text.getRunTimeCounterValue freertos.o + 0x0800e98c 0x0800e98c 0x00000050 Code RO 11 .text.main main.o + 0x0800e9dc 0x0800e9dc 0x0000002a Code RO 2742 .text.map calc_lib.o + 0x0800ea06 0x0800ea06 0x00000002 PAD + 0x0800ea08 0x0800ea08 0x00000034 Code RO 2006 .text.osDelay cmsis_os2.o + 0x0800ea3c 0x0800ea3c 0x00000058 Code RO 2008 .text.osDelayUntil cmsis_os2.o + 0x0800ea94 0x0800ea94 0x00000052 Code RO 1944 .text.osKernelGetState cmsis_os2.o + 0x0800eae6 0x0800eae6 0x00000002 PAD + 0x0800eae8 0x0800eae8 0x00000026 Code RO 1956 .text.osKernelGetTickCount cmsis_os2.o + 0x0800eb0e 0x0800eb0e 0x00000002 PAD + 0x0800eb10 0x0800eb10 0x00000006 Code RO 1958 .text.osKernelGetTickFreq cmsis_os2.o + 0x0800eb16 0x0800eb16 0x00000002 PAD + 0x0800eb18 0x0800eb18 0x00000046 Code RO 1940 .text.osKernelInitialize cmsis_os2.o + 0x0800eb5e 0x0800eb5e 0x00000002 PAD + 0x0800eb60 0x0800eb60 0x00000056 Code RO 1950 .text.osKernelLock cmsis_os2.o + 0x0800ebb6 0x0800ebb6 0x00000002 PAD + 0x0800ebb8 0x0800ebb8 0x00000052 Code RO 1946 .text.osKernelStart cmsis_os2.o + 0x0800ec0a 0x0800ec0a 0x00000002 PAD + 0x0800ec0c 0x0800ec0c 0x0000006e Code RO 1952 .text.osKernelUnlock cmsis_os2.o + 0x0800ec7a 0x0800ec7a 0x00000002 PAD + 0x0800ec7c 0x0800ec7c 0x000000c0 Code RO 2060 .text.osMessageQueueGet cmsis_os2.o + 0x0800ed3c 0x0800ed3c 0x000000fe Code RO 2056 .text.osMessageQueueNew cmsis_os2.o + 0x0800ee3a 0x0800ee3a 0x00000002 PAD + 0x0800ee3c 0x0800ee3c 0x000000c4 Code RO 2058 .text.osMessageQueuePut cmsis_os2.o + 0x0800ef00 0x0800ef00 0x00000040 Code RO 2070 .text.osMessageQueueReset cmsis_os2.o + 0x0800ef40 0x0800ef40 0x0000009e Code RO 2038 .text.osMutexAcquire cmsis_os2.o + 0x0800efde 0x0800efde 0x00000002 PAD + 0x0800efe0 0x0800efe0 0x00000128 Code RO 2036 .text.osMutexNew cmsis_os2.o + 0x0800f108 0x0800f108 0x0000007e Code RO 2040 .text.osMutexRelease cmsis_os2.o + 0x0800f186 0x0800f186 0x00000002 PAD + 0x0800f188 0x0800f188 0x000000a4 Code RO 1998 .text.osThreadFlagsSet cmsis_os2.o + 0x0800f22c 0x0800f22c 0x0000011a Code RO 2004 .text.osThreadFlagsWait cmsis_os2.o + 0x0800f346 0x0800f346 0x00000002 PAD + 0x0800f348 0x0800f348 0x00000010 Code RO 1974 .text.osThreadGetId cmsis_os2.o + 0x0800f358 0x0800f358 0x0000015a Code RO 1970 .text.osThreadNew cmsis_os2.o + 0x0800f4b2 0x0800f4b2 0x00000002 PAD + 0x0800f4b4 0x0800f4b4 0x0000005e Code RO 1992 .text.osThreadTerminate cmsis_os2.o + 0x0800f512 0x0800f512 0x00000002 PAD + 0x0800f514 0x0800f514 0x000000d4 Code RO 1720 .text.prvAddCurrentTaskToDelayedList tasks.o + 0x0800f5e8 0x0800f5e8 0x00000122 Code RO 1706 .text.prvAddNewTaskToReadyList tasks.o + 0x0800f70a 0x0800f70a 0x00000002 PAD + 0x0800f70c 0x0800f70c 0x000000a2 Code RO 1871 .text.prvCheckForValidListAndQueue timers.o + 0x0800f7ae 0x0800f7ae 0x00000002 PAD + 0x0800f7b0 0x0800f7b0 0x0000005a Code RO 1836 .text.prvCheckTasksWaitingTermination tasks.o + 0x0800f80a 0x0800f80a 0x00000002 PAD + 0x0800f80c 0x0800f80c 0x00000042 Code RO 1599 .text.prvCopyDataFromQueue queue.o + 0x0800f84e 0x0800f84e 0x00000002 PAD + 0x0800f850 0x0800f850 0x000000cc Code RO 1587 .text.prvCopyDataToQueue queue.o + 0x0800f91c 0x0800f91c 0x0000005e Code RO 1712 .text.prvDeleteTCB tasks.o + 0x0800f97a 0x0800f97a 0x00000002 PAD + 0x0800f97c 0x0800f97c 0x00000026 Code RO 1603 .text.prvGetDisinheritPriorityAfterTimeout queue.o + 0x0800f9a2 0x0800f9a2 0x00000002 PAD + 0x0800f9a4 0x0800f9a4 0x00000040 Code RO 1909 .text.prvGetNextExpireTime timers.o + 0x0800f9e4 0x0800f9e4 0x000000bc Code RO 2121 .text.prvHeapInit heap_4.o + 0x0800faa0 0x0800faa0 0x00000038 Code RO 1746 .text.prvIdleTask tasks.o + 0x0800fad8 0x0800fad8 0x0000002c Code RO 1567 .text.prvInitialiseMutex queue.o + 0x0800fb04 0x0800fb04 0x00000048 Code RO 1561 .text.prvInitialiseNewQueue queue.o + 0x0800fb4c 0x0800fb4c 0x0000012c Code RO 1704 .text.prvInitialiseNewTask tasks.o + 0x0800fc78 0x0800fc78 0x0000008e Code RO 1834 .text.prvInitialiseTaskLists tasks.o + 0x0800fd06 0x0800fd06 0x00000002 PAD + 0x0800fd08 0x0800fd08 0x000000c6 Code RO 2123 .text.prvInsertBlockIntoFreeList heap_4.o + 0x0800fdce 0x0800fdce 0x00000002 PAD + 0x0800fdd0 0x0800fdd0 0x00000086 Code RO 1921 .text.prvInsertTimerInActiveList timers.o + 0x0800fe56 0x0800fe56 0x00000002 PAD + 0x0800fe58 0x0800fe58 0x00000028 Code RO 1601 .text.prvIsQueueEmpty queue.o + 0x0800fe80 0x0800fe80 0x0000002e Code RO 1589 .text.prvIsQueueFull queue.o + 0x0800feae 0x0800feae 0x00000002 PAD + 0x0800feb0 0x0800feb0 0x00000028 Code RO 2162 .text.prvPortStartFirstTask port.o + 0x0800fed8 0x0800fed8 0x0000008e Code RO 1917 .text.prvProcessExpiredTimer timers.o + 0x0800ff66 0x0800ff66 0x00000002 PAD + 0x0800ff68 0x0800ff68 0x00000192 Code RO 1913 .text.prvProcessReceivedCommands timers.o + 0x080100fa 0x080100fa 0x00000002 PAD + 0x080100fc 0x080100fc 0x0000009a Code RO 1911 .text.prvProcessTimerOrBlockTask timers.o + 0x08010196 0x08010196 0x00000002 PAD + 0x08010198 0x08010198 0x00000046 Code RO 1714 .text.prvResetNextTaskUnblockTime tasks.o + 0x080101de 0x080101de 0x00000002 PAD + 0x080101e0 0x080101e0 0x00000044 Code RO 1915 .text.prvSampleTimeNow timers.o + 0x08010224 0x08010224 0x000000d4 Code RO 1919 .text.prvSwitchTimerLists timers.o + 0x080102f8 0x080102f8 0x0000004c Code RO 2152 .text.prvTaskExitError port.o + 0x08010344 0x08010344 0x0000001e Code RO 1873 .text.prvTimerTask timers.o + 0x08010362 0x08010362 0x00000002 PAD + 0x08010364 0x08010364 0x000000ae Code RO 1591 .text.prvUnlockQueue queue.o + 0x08010412 0x08010412 0x00000002 PAD + 0x08010414 0x08010414 0x000001ec Code RO 2119 .text.pvPortMalloc heap_4.o + 0x08010600 0x08010600 0x0000002c Code RO 1818 .text.pvTaskIncrementMutexHeldCount tasks.o + 0x0801062c 0x0801062c 0x0000005e Code RO 2150 .text.pxPortInitialiseStack port.o + 0x0801068a 0x0801068a 0x00000006 PAD + 0x08010690 0x08010690 0x000000b0 Code RO 2934 .text.remote_ParseHost ai.o + 0x08010740 0x08010740 0x00000012 Code RO 2915 .text.remote_control_init remote_control.o + 0x08010752 0x08010752 0x00000006 PAD + 0x08010758 0x08010758 0x00000290 Code RO 2923 .text.sbus_to_rc remote_control.o + 0x080109e8 0x080109e8 0x00000052 Code RO 2974 .text.uint_to_float motor_dm.o 0x08010a3a 0x08010a3a 0x00000002 PAD - 0x08010a3c 0x08010a3c 0x0000002e Code RO 1540 .text.vListInitialise list.o + 0x08010a3c 0x08010a3c 0x0000002e Code RO 2732 .text.user_delay_ms calc_lib.o 0x08010a6a 0x08010a6a 0x00000002 PAD - 0x08010a6c 0x08010a6c 0x0000000e Code RO 1542 .text.vListInitialiseItem list.o - 0x08010a7a 0x08010a7a 0x00000002 PAD - 0x08010a7c 0x08010a7c 0x0000006a Code RO 1546 .text.vListInsert list.o - 0x08010ae6 0x08010ae6 0x00000002 PAD - 0x08010ae8 0x08010ae8 0x0000003a Code RO 1544 .text.vListInsertEnd list.o + 0x08010a6c 0x08010a6c 0x00000044 Code RO 2730 .text.user_delay_us calc_lib.o + 0x08010ab0 0x08010ab0 0x00000048 Code RO 1548 .text.uxListRemove list.o + 0x08010af8 0x08010af8 0x0000002a Code RO 2100 .text.vApplicationGetIdleTaskMemory cmsis_os2.o 0x08010b22 0x08010b22 0x00000002 PAD - 0x08010b24 0x08010b24 0x00000014 Code RO 2160 .text.vPortEnableVFP port.o - 0x08010b38 0x08010b38 0x00000056 Code RO 2166 .text.vPortEnterCritical port.o - 0x08010b8e 0x08010b8e 0x00000002 PAD - 0x08010b90 0x08010b90 0x0000004a Code RO 2168 .text.vPortExitCritical port.o - 0x08010bda 0x08010bda 0x00000002 PAD - 0x08010bdc 0x08010bdc 0x000000ce Code RO 2125 .text.vPortFree heap_4.o - 0x08010caa 0x08010caa 0x00000002 PAD - 0x08010cac 0x08010cac 0x00000044 Code RO 2158 .text.vPortSetupTimerInterrupt port.o - 0x08010cf0 0x08010cf0 0x00000084 Code RO 2174 .text.vPortValidateInterruptPriority port.o - 0x08010d74 0x08010d74 0x00000052 Code RO 1631 .text.vQueueAddToRegistry queue.o - 0x08010dc6 0x08010dc6 0x00000002 PAD - 0x08010dc8 0x08010dc8 0x00000064 Code RO 1635 .text.vQueueWaitForMessageRestricted queue.o - 0x08010e2c 0x08010e2c 0x0000006e Code RO 1724 .text.vTaskDelay tasks.o - 0x08010e9a 0x08010e9a 0x00000002 PAD - 0x08010e9c 0x08010e9c 0x00000114 Code RO 1716 .text.vTaskDelayUntil tasks.o - 0x08010fb0 0x08010fb0 0x0000010e Code RO 1710 .text.vTaskDelete tasks.o - 0x080110be 0x080110be 0x00000002 PAD - 0x080110c0 0x080110c0 0x00000024 Code RO 1782 .text.vTaskInternalSetTimeOutState tasks.o - 0x080110e4 0x080110e4 0x0000000e Code RO 1786 .text.vTaskMissedYield tasks.o - 0x080110f2 0x080110f2 0x00000002 PAD - 0x080110f4 0x080110f4 0x00000042 Code RO 1770 .text.vTaskPlaceOnEventList tasks.o - 0x08011136 0x08011136 0x00000002 PAD - 0x08011138 0x08011138 0x00000052 Code RO 1774 .text.vTaskPlaceOnEventListRestricted tasks.o - 0x0801118a 0x0801118a 0x00000002 PAD - 0x0801118c 0x0801118c 0x00000134 Code RO 1808 .text.vTaskPriorityDisinheritAfterTimeout tasks.o - 0x080112c0 0x080112c0 0x000000e4 Code RO 1744 .text.vTaskStartScheduler tasks.o - 0x080113a4 0x080113a4 0x00000010 Code RO 1718 .text.vTaskSuspendAll tasks.o - 0x080113b4 0x080113b4 0x00000180 Code RO 1736 .text.vTaskSwitchContext tasks.o - 0x08011534 0x08011534 0x00000156 Code RO 2156 .text.xPortStartScheduler port.o - 0x0801168a 0x0801168a 0x00000002 PAD - 0x0801168c 0x0801168c 0x0000003c Code RO 2172 .text.xPortSysTickHandler port.o - 0x080116c8 0x080116c8 0x00000026 Code RO 1565 .text.xQueueCreateMutex queue.o - 0x080116ee 0x080116ee 0x00000002 PAD - 0x080116f0 0x080116f0 0x00000032 Code RO 1569 .text.xQueueCreateMutexStatic queue.o - 0x08011722 0x08011722 0x00000002 PAD - 0x08011724 0x08011724 0x00000074 Code RO 1563 .text.xQueueGenericCreate queue.o - 0x08011798 0x08011798 0x0000010e Code RO 1559 .text.xQueueGenericCreateStatic queue.o - 0x080118a6 0x080118a6 0x00000002 PAD - 0x080118a8 0x080118a8 0x000000ba Code RO 1557 .text.xQueueGenericReset queue.o - 0x08011962 0x08011962 0x00000002 PAD - 0x08011964 0x08011964 0x0000022c Code RO 1577 .text.xQueueGenericSend queue.o - 0x08011b90 0x08011b90 0x0000014c Code RO 1593 .text.xQueueGenericSendFromISR queue.o - 0x08011cdc 0x08011cdc 0x0000006c Code RO 1575 .text.xQueueGiveMutexRecursive queue.o - 0x08011d48 0x08011d48 0x000001dc Code RO 1597 .text.xQueueReceive queue.o - 0x08011f24 0x08011f24 0x00000108 Code RO 1607 .text.xQueueReceiveFromISR queue.o - 0x0801202c 0x0801202c 0x0000022c Code RO 1581 .text.xQueueSemaphoreTake queue.o - 0x08012258 0x08012258 0x0000006e Code RO 1579 .text.xQueueTakeMutexRecursive queue.o - 0x080122c6 0x080122c6 0x00000002 PAD - 0x080122c8 0x080122c8 0x000000cc Code RO 1784 .text.xTaskCheckForTimeOut tasks.o - 0x08012394 0x08012394 0x0000009e Code RO 1708 .text.xTaskCreate tasks.o - 0x08012432 0x08012432 0x00000002 PAD - 0x08012434 0x08012434 0x000000ce Code RO 1702 .text.xTaskCreateStatic tasks.o - 0x08012502 0x08012502 0x00000002 PAD - 0x08012504 0x08012504 0x00000178 Code RO 1824 .text.xTaskGenericNotify tasks.o - 0x0801267c 0x0801267c 0x000001c4 Code RO 1826 .text.xTaskGenericNotifyFromISR tasks.o - 0x08012840 0x08012840 0x00000014 Code RO 1800 .text.xTaskGetCurrentTaskHandle tasks.o - 0x08012854 0x08012854 0x00000038 Code RO 1802 .text.xTaskGetSchedulerState tasks.o - 0x0801288c 0x0801288c 0x00000014 Code RO 1752 .text.xTaskGetTickCount tasks.o - 0x080128a0 0x080128a0 0x0000001e Code RO 1754 .text.xTaskGetTickCountFromISR tasks.o - 0x080128be 0x080128be 0x00000002 PAD - 0x080128c0 0x080128c0 0x000001c4 Code RO 1750 .text.xTaskIncrementTick tasks.o - 0x08012a84 0x08012a84 0x000000d6 Code RO 1822 .text.xTaskNotifyWait tasks.o - 0x08012b5a 0x08012b5a 0x00000002 PAD - 0x08012b5c 0x08012b5c 0x000000ec Code RO 1806 .text.xTaskPriorityDisinherit tasks.o - 0x08012c48 0x08012c48 0x0000010e Code RO 1804 .text.xTaskPriorityInherit tasks.o - 0x08012d56 0x08012d56 0x00000002 PAD - 0x08012d58 0x08012d58 0x000000ce Code RO 1776 .text.xTaskRemoveFromEventList tasks.o - 0x08012e26 0x08012e26 0x00000002 PAD - 0x08012e28 0x08012e28 0x00000186 Code RO 1722 .text.xTaskResumeAll tasks.o - 0x08012fae 0x08012fae 0x00000002 PAD - 0x08012fb0 0x08012fb0 0x00000094 Code RO 1869 .text.xTimerCreateTimerTask timers.o - 0x08013044 0x08013044 0x000000b0 Code RO 1881 .text.xTimerGenericCommand timers.o - 0x080130f4 0x080130f4 0x00000030 Code RO 3382 i.__ARM_fpclassify m_wm.l(fpclassify.o) - 0x08013124 0x08013124 0x00000026 Code RO 3312 i.__ARM_fpclassifyf m_wm.l(fpclassifyf.o) - 0x0801314a 0x0801314a 0x00000002 PAD - 0x0801314c 0x0801314c 0x0000012c Code RO 3126 i.__hardfp_asinf m_wm.l(asinf.o) - 0x08013278 0x08013278 0x000002d8 Code RO 3285 i.__hardfp_atan m_wm.l(atan.o) - 0x08013550 0x08013550 0x00000200 Code RO 3132 i.__hardfp_atan2 m_wm.l(atan2.o) - 0x08013750 0x08013750 0x000002ac Code RO 3138 i.__hardfp_atan2f m_wm.l(atan2f.o) - 0x080139fc 0x080139fc 0x00000150 Code RO 3144 i.__hardfp_cosf m_wm.l(cosf.o) - 0x08013b4c 0x08013b4c 0x0000017c Code RO 3150 i.__hardfp_tanf m_wm.l(tanf.o) - 0x08013cc8 0x08013cc8 0x000000f8 Code RO 3384 i.__kernel_poly m_wm.l(poly.o) - 0x08013dc0 0x08013dc0 0x00000014 Code RO 3293 i.__mathlib_dbl_infnan m_wm.l(dunder.o) - 0x08013dd4 0x08013dd4 0x00000014 Code RO 3294 i.__mathlib_dbl_infnan2 m_wm.l(dunder.o) - 0x08013de8 0x08013de8 0x00000020 Code RO 3298 i.__mathlib_dbl_underflow m_wm.l(dunder.o) - 0x08013e08 0x08013e08 0x00000006 Code RO 3315 i.__mathlib_flt_infnan m_wm.l(funder.o) - 0x08013e0e 0x08013e0e 0x00000006 Code RO 3316 i.__mathlib_flt_infnan2 m_wm.l(funder.o) - 0x08013e14 0x08013e14 0x00000010 Code RO 3317 i.__mathlib_flt_invalid m_wm.l(funder.o) - 0x08013e24 0x08013e24 0x00000010 Code RO 3320 i.__mathlib_flt_underflow m_wm.l(funder.o) - 0x08013e34 0x08013e34 0x00000154 Code RO 3329 i.__mathlib_rredf2 m_wm.l(rredf.o) - 0x08013f88 0x08013f88 0x00000010 Code RO 3287 i.atan m_wm.l(atan.o) - 0x08013f98 0x08013f98 0x00000018 Code RO 3308 i.fabs m_wm.l(fabs.o) - 0x08013fb0 0x08013fb0 0x0000003e Code RO 3334 i.sqrtf m_wm.l(sqrtf.o) - 0x08013fee 0x08013fee 0x00000018 Code RO 3258 x$fpl$basic fz_wm.l(basic.o) - 0x08014006 0x08014006 0x00000002 PAD - 0x08014008 0x08014008 0x00000062 Code RO 3100 x$fpl$d2f fz_wm.l(d2f.o) - 0x0801406a 0x0801406a 0x00000002 PAD - 0x0801406c 0x0801406c 0x00000150 Code RO 3260 x$fpl$dadd fz_wm.l(daddsub_clz.o) - 0x080141bc 0x080141bc 0x00000018 Code RO 3380 x$fpl$dcmpinf fz_wm.l(dcmpi.o) - 0x080141d4 0x080141d4 0x000002b4 Code RO 3103 x$fpl$ddiv fz_wm.l(ddiv.o) - 0x08014488 0x08014488 0x00000078 Code RO 3266 x$fpl$deqf fz_wm.l(deqf.o) - 0x08014500 0x08014500 0x0000005e Code RO 3106 x$fpl$dfix fz_wm.l(dfix.o) - 0x0801455e 0x0801455e 0x00000002 PAD - 0x08014560 0x08014560 0x0000005a Code RO 3110 x$fpl$dfixu fz_wm.l(dfixu.o) - 0x080145ba 0x080145ba 0x0000002e Code RO 3115 x$fpl$dflt fz_wm.l(dflt_clz.o) - 0x080145e8 0x080145e8 0x00000026 Code RO 3114 x$fpl$dfltu fz_wm.l(dflt_clz.o) - 0x0801460e 0x0801460e 0x00000002 PAD - 0x08014610 0x08014610 0x00000154 Code RO 3120 x$fpl$dmul fz_wm.l(dmul.o) - 0x08014764 0x08014764 0x0000009c Code RO 3268 x$fpl$dnaninf fz_wm.l(dnaninf.o) - 0x08014800 0x08014800 0x0000000c Code RO 3270 x$fpl$dretinf fz_wm.l(dretinf.o) - 0x0801480c 0x0801480c 0x00000016 Code RO 3261 x$fpl$drsb fz_wm.l(daddsub_clz.o) - 0x08014822 0x08014822 0x00000002 PAD - 0x08014824 0x08014824 0x000001dc Code RO 3262 x$fpl$dsub fz_wm.l(daddsub_clz.o) - 0x08014a00 0x08014a00 0x00000056 Code RO 3122 x$fpl$f2d fz_wm.l(f2d.o) - 0x08014a56 0x08014a56 0x00000060 Code RO 3124 x$fpl$ffltll fz_wm.l(ffltll_clz.o) - 0x08014ab6 0x08014ab6 0x0000008c Code RO 3272 x$fpl$fnaninf fz_wm.l(fnaninf.o) - 0x08014b42 0x08014b42 0x0000001a Code RO 3523 x$fpl$fpinit fz_wm.l(fpinit.o) - 0x08014b5c 0x08014b5c 0x0000000a Code RO 3274 x$fpl$fretinf fz_wm.l(fretinf.o) - 0x08014b66 0x08014b66 0x00000000 Code RO 3284 x$fpl$usenofp fz_wm.l(usenofp.o) - 0x08014b66 0x08014b66 0x00000002 PAD - 0x08014b68 0x08014b68 0x00000098 Data RO 3288 .constdata m_wm.l(atan.o) - 0x08014c00 0x08014c00 0x00000008 Data RO 3328 .constdata m_wm.l(qnan.o) - 0x08014c08 0x08014c08 0x00000020 Data RO 3330 .constdata m_wm.l(rredf.o) - 0x08014c28 0x08014c28 0x00000010 Data RO 1493 .rodata.AHBPrescTable system_stm32f4xx.o - 0x08014c38 0x08014c38 0x00000008 Data RO 1494 .rodata.APBPrescTable system_stm32f4xx.o - 0x08014c40 0x08014c40 0x00000008 Data RO 498 .rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset stm32f4xx_hal_dma.o - 0x08014c48 0x08014c48 0x00000038 Data RO 2290 .rodata.GPIO_Map gpio_1.o - 0x08014c80 0x08014c80 0x00000008 Data RO 2371 .rodata.PWM_Map pwm.o - 0x08014c88 0x08014c88 0x00000024 Data RO 3023 .rodata.attr_atti_esti user_task.o - 0x08014cac 0x08014cac 0x00000024 Data RO 3024 .rodata.attr_gimbal_ctrl user_task.o - 0x08014cd0 0x08014cd0 0x00000024 Data RO 3022 .rodata.attr_init user_task.o - 0x08014cf4 0x08014cf4 0x00000024 Data RO 3025 .rodata.attr_remote user_task.o - 0x08014d18 0x08014d18 0x00000024 Data RO 44 .rodata.defaultTask_attributes freertos.o - 0x08014d3c 0x08014d3c 0x00000020 Data RO 3001 .rodata.imu_temp_ctrl_pid_param atti_esti.o - 0x08014d5c 0x08014d5c 0x0000000c Data RO 43 .rodata.str1.1 freertos.o - 0x08014d68 0x08014d68 0x00000005 Data RO 1852 .rodata.str1.1 tasks.o - 0x08014d6d 0x08014d6d 0x0000000d Data RO 1924 .rodata.str1.1 timers.o - 0x08014d7a 0x08014d7a 0x00000027 Data RO 3021 .rodata.str1.1 user_task.o - 0x08014da1 0x08014da1 0x00000003 PAD - 0x08014da4 0x08014da4 0x00000020 Data RO 3584 Region$$Table anon$$obj.o + 0x08010b24 0x08010b24 0x0000002c Code RO 2102 .text.vApplicationGetTimerTaskMemory cmsis_os2.o + 0x08010b50 0x08010b50 0x0000000a Code RO 37 .text.vApplicationStackOverflowHook freertos.o + 0x08010b5a 0x08010b5a 0x00000002 PAD + 0x08010b5c 0x08010b5c 0x0000002e Code RO 1540 .text.vListInitialise list.o + 0x08010b8a 0x08010b8a 0x00000002 PAD + 0x08010b8c 0x08010b8c 0x0000000e Code RO 1542 .text.vListInitialiseItem list.o + 0x08010b9a 0x08010b9a 0x00000002 PAD + 0x08010b9c 0x08010b9c 0x0000006a Code RO 1546 .text.vListInsert list.o + 0x08010c06 0x08010c06 0x00000002 PAD + 0x08010c08 0x08010c08 0x0000003a Code RO 1544 .text.vListInsertEnd list.o + 0x08010c42 0x08010c42 0x00000002 PAD + 0x08010c44 0x08010c44 0x00000014 Code RO 2160 .text.vPortEnableVFP port.o + 0x08010c58 0x08010c58 0x00000056 Code RO 2166 .text.vPortEnterCritical port.o + 0x08010cae 0x08010cae 0x00000002 PAD + 0x08010cb0 0x08010cb0 0x0000004a Code RO 2168 .text.vPortExitCritical port.o + 0x08010cfa 0x08010cfa 0x00000002 PAD + 0x08010cfc 0x08010cfc 0x000000ce Code RO 2125 .text.vPortFree heap_4.o + 0x08010dca 0x08010dca 0x00000002 PAD + 0x08010dcc 0x08010dcc 0x00000044 Code RO 2158 .text.vPortSetupTimerInterrupt port.o + 0x08010e10 0x08010e10 0x00000084 Code RO 2174 .text.vPortValidateInterruptPriority port.o + 0x08010e94 0x08010e94 0x00000052 Code RO 1631 .text.vQueueAddToRegistry queue.o + 0x08010ee6 0x08010ee6 0x00000002 PAD + 0x08010ee8 0x08010ee8 0x00000064 Code RO 1635 .text.vQueueWaitForMessageRestricted queue.o + 0x08010f4c 0x08010f4c 0x0000006e Code RO 1724 .text.vTaskDelay tasks.o + 0x08010fba 0x08010fba 0x00000002 PAD + 0x08010fbc 0x08010fbc 0x00000114 Code RO 1716 .text.vTaskDelayUntil tasks.o + 0x080110d0 0x080110d0 0x0000010e Code RO 1710 .text.vTaskDelete tasks.o + 0x080111de 0x080111de 0x00000002 PAD + 0x080111e0 0x080111e0 0x00000024 Code RO 1782 .text.vTaskInternalSetTimeOutState tasks.o + 0x08011204 0x08011204 0x0000000e Code RO 1786 .text.vTaskMissedYield tasks.o + 0x08011212 0x08011212 0x00000002 PAD + 0x08011214 0x08011214 0x00000042 Code RO 1770 .text.vTaskPlaceOnEventList tasks.o + 0x08011256 0x08011256 0x00000002 PAD + 0x08011258 0x08011258 0x00000052 Code RO 1774 .text.vTaskPlaceOnEventListRestricted tasks.o + 0x080112aa 0x080112aa 0x00000002 PAD + 0x080112ac 0x080112ac 0x00000134 Code RO 1808 .text.vTaskPriorityDisinheritAfterTimeout tasks.o + 0x080113e0 0x080113e0 0x000000e4 Code RO 1744 .text.vTaskStartScheduler tasks.o + 0x080114c4 0x080114c4 0x00000010 Code RO 1718 .text.vTaskSuspendAll tasks.o + 0x080114d4 0x080114d4 0x00000180 Code RO 1736 .text.vTaskSwitchContext tasks.o + 0x08011654 0x08011654 0x00000156 Code RO 2156 .text.xPortStartScheduler port.o + 0x080117aa 0x080117aa 0x00000002 PAD + 0x080117ac 0x080117ac 0x0000003c Code RO 2172 .text.xPortSysTickHandler port.o + 0x080117e8 0x080117e8 0x00000026 Code RO 1565 .text.xQueueCreateMutex queue.o + 0x0801180e 0x0801180e 0x00000002 PAD + 0x08011810 0x08011810 0x00000032 Code RO 1569 .text.xQueueCreateMutexStatic queue.o + 0x08011842 0x08011842 0x00000002 PAD + 0x08011844 0x08011844 0x00000074 Code RO 1563 .text.xQueueGenericCreate queue.o + 0x080118b8 0x080118b8 0x0000010e Code RO 1559 .text.xQueueGenericCreateStatic queue.o + 0x080119c6 0x080119c6 0x00000002 PAD + 0x080119c8 0x080119c8 0x000000ba Code RO 1557 .text.xQueueGenericReset queue.o + 0x08011a82 0x08011a82 0x00000002 PAD + 0x08011a84 0x08011a84 0x0000022c Code RO 1577 .text.xQueueGenericSend queue.o + 0x08011cb0 0x08011cb0 0x0000014c Code RO 1593 .text.xQueueGenericSendFromISR queue.o + 0x08011dfc 0x08011dfc 0x0000006c Code RO 1575 .text.xQueueGiveMutexRecursive queue.o + 0x08011e68 0x08011e68 0x000001dc Code RO 1597 .text.xQueueReceive queue.o + 0x08012044 0x08012044 0x00000108 Code RO 1607 .text.xQueueReceiveFromISR queue.o + 0x0801214c 0x0801214c 0x0000022c Code RO 1581 .text.xQueueSemaphoreTake queue.o + 0x08012378 0x08012378 0x0000006e Code RO 1579 .text.xQueueTakeMutexRecursive queue.o + 0x080123e6 0x080123e6 0x00000002 PAD + 0x080123e8 0x080123e8 0x000000cc Code RO 1784 .text.xTaskCheckForTimeOut tasks.o + 0x080124b4 0x080124b4 0x0000009e Code RO 1708 .text.xTaskCreate tasks.o + 0x08012552 0x08012552 0x00000002 PAD + 0x08012554 0x08012554 0x000000ce Code RO 1702 .text.xTaskCreateStatic tasks.o + 0x08012622 0x08012622 0x00000002 PAD + 0x08012624 0x08012624 0x00000178 Code RO 1824 .text.xTaskGenericNotify tasks.o + 0x0801279c 0x0801279c 0x000001c4 Code RO 1826 .text.xTaskGenericNotifyFromISR tasks.o + 0x08012960 0x08012960 0x00000014 Code RO 1800 .text.xTaskGetCurrentTaskHandle tasks.o + 0x08012974 0x08012974 0x00000038 Code RO 1802 .text.xTaskGetSchedulerState tasks.o + 0x080129ac 0x080129ac 0x00000014 Code RO 1752 .text.xTaskGetTickCount tasks.o + 0x080129c0 0x080129c0 0x0000001e Code RO 1754 .text.xTaskGetTickCountFromISR tasks.o + 0x080129de 0x080129de 0x00000002 PAD + 0x080129e0 0x080129e0 0x000001c4 Code RO 1750 .text.xTaskIncrementTick tasks.o + 0x08012ba4 0x08012ba4 0x000000d6 Code RO 1822 .text.xTaskNotifyWait tasks.o + 0x08012c7a 0x08012c7a 0x00000002 PAD + 0x08012c7c 0x08012c7c 0x000000ec Code RO 1806 .text.xTaskPriorityDisinherit tasks.o + 0x08012d68 0x08012d68 0x0000010e Code RO 1804 .text.xTaskPriorityInherit tasks.o + 0x08012e76 0x08012e76 0x00000002 PAD + 0x08012e78 0x08012e78 0x000000ce Code RO 1776 .text.xTaskRemoveFromEventList tasks.o + 0x08012f46 0x08012f46 0x00000002 PAD + 0x08012f48 0x08012f48 0x00000186 Code RO 1722 .text.xTaskResumeAll tasks.o + 0x080130ce 0x080130ce 0x00000002 PAD + 0x080130d0 0x080130d0 0x00000094 Code RO 1869 .text.xTimerCreateTimerTask timers.o + 0x08013164 0x08013164 0x000000b0 Code RO 1881 .text.xTimerGenericCommand timers.o + 0x08013214 0x08013214 0x00000030 Code RO 3382 i.__ARM_fpclassify m_wm.l(fpclassify.o) + 0x08013244 0x08013244 0x00000026 Code RO 3312 i.__ARM_fpclassifyf m_wm.l(fpclassifyf.o) + 0x0801326a 0x0801326a 0x00000002 PAD + 0x0801326c 0x0801326c 0x0000012c Code RO 3126 i.__hardfp_asinf m_wm.l(asinf.o) + 0x08013398 0x08013398 0x000002d8 Code RO 3285 i.__hardfp_atan m_wm.l(atan.o) + 0x08013670 0x08013670 0x00000200 Code RO 3132 i.__hardfp_atan2 m_wm.l(atan2.o) + 0x08013870 0x08013870 0x000002ac Code RO 3138 i.__hardfp_atan2f m_wm.l(atan2f.o) + 0x08013b1c 0x08013b1c 0x00000150 Code RO 3144 i.__hardfp_cosf m_wm.l(cosf.o) + 0x08013c6c 0x08013c6c 0x0000017c Code RO 3150 i.__hardfp_tanf m_wm.l(tanf.o) + 0x08013de8 0x08013de8 0x000000f8 Code RO 3384 i.__kernel_poly m_wm.l(poly.o) + 0x08013ee0 0x08013ee0 0x00000014 Code RO 3293 i.__mathlib_dbl_infnan m_wm.l(dunder.o) + 0x08013ef4 0x08013ef4 0x00000014 Code RO 3294 i.__mathlib_dbl_infnan2 m_wm.l(dunder.o) + 0x08013f08 0x08013f08 0x00000020 Code RO 3298 i.__mathlib_dbl_underflow m_wm.l(dunder.o) + 0x08013f28 0x08013f28 0x00000006 Code RO 3315 i.__mathlib_flt_infnan m_wm.l(funder.o) + 0x08013f2e 0x08013f2e 0x00000006 Code RO 3316 i.__mathlib_flt_infnan2 m_wm.l(funder.o) + 0x08013f34 0x08013f34 0x00000010 Code RO 3317 i.__mathlib_flt_invalid m_wm.l(funder.o) + 0x08013f44 0x08013f44 0x00000010 Code RO 3320 i.__mathlib_flt_underflow m_wm.l(funder.o) + 0x08013f54 0x08013f54 0x00000154 Code RO 3329 i.__mathlib_rredf2 m_wm.l(rredf.o) + 0x080140a8 0x080140a8 0x00000010 Code RO 3287 i.atan m_wm.l(atan.o) + 0x080140b8 0x080140b8 0x00000018 Code RO 3308 i.fabs m_wm.l(fabs.o) + 0x080140d0 0x080140d0 0x0000003e Code RO 3334 i.sqrtf m_wm.l(sqrtf.o) + 0x0801410e 0x0801410e 0x00000018 Code RO 3258 x$fpl$basic fz_wm.l(basic.o) + 0x08014126 0x08014126 0x00000002 PAD + 0x08014128 0x08014128 0x00000062 Code RO 3100 x$fpl$d2f fz_wm.l(d2f.o) + 0x0801418a 0x0801418a 0x00000002 PAD + 0x0801418c 0x0801418c 0x00000150 Code RO 3260 x$fpl$dadd fz_wm.l(daddsub_clz.o) + 0x080142dc 0x080142dc 0x00000018 Code RO 3380 x$fpl$dcmpinf fz_wm.l(dcmpi.o) + 0x080142f4 0x080142f4 0x000002b4 Code RO 3103 x$fpl$ddiv fz_wm.l(ddiv.o) + 0x080145a8 0x080145a8 0x00000078 Code RO 3266 x$fpl$deqf fz_wm.l(deqf.o) + 0x08014620 0x08014620 0x0000005e Code RO 3106 x$fpl$dfix fz_wm.l(dfix.o) + 0x0801467e 0x0801467e 0x00000002 PAD + 0x08014680 0x08014680 0x0000005a Code RO 3110 x$fpl$dfixu fz_wm.l(dfixu.o) + 0x080146da 0x080146da 0x0000002e Code RO 3115 x$fpl$dflt fz_wm.l(dflt_clz.o) + 0x08014708 0x08014708 0x00000026 Code RO 3114 x$fpl$dfltu fz_wm.l(dflt_clz.o) + 0x0801472e 0x0801472e 0x00000002 PAD + 0x08014730 0x08014730 0x00000154 Code RO 3120 x$fpl$dmul fz_wm.l(dmul.o) + 0x08014884 0x08014884 0x0000009c Code RO 3268 x$fpl$dnaninf fz_wm.l(dnaninf.o) + 0x08014920 0x08014920 0x0000000c Code RO 3270 x$fpl$dretinf fz_wm.l(dretinf.o) + 0x0801492c 0x0801492c 0x00000016 Code RO 3261 x$fpl$drsb fz_wm.l(daddsub_clz.o) + 0x08014942 0x08014942 0x00000002 PAD + 0x08014944 0x08014944 0x000001dc Code RO 3262 x$fpl$dsub fz_wm.l(daddsub_clz.o) + 0x08014b20 0x08014b20 0x00000056 Code RO 3122 x$fpl$f2d fz_wm.l(f2d.o) + 0x08014b76 0x08014b76 0x00000060 Code RO 3124 x$fpl$ffltll fz_wm.l(ffltll_clz.o) + 0x08014bd6 0x08014bd6 0x0000008c Code RO 3272 x$fpl$fnaninf fz_wm.l(fnaninf.o) + 0x08014c62 0x08014c62 0x0000001a Code RO 3523 x$fpl$fpinit fz_wm.l(fpinit.o) + 0x08014c7c 0x08014c7c 0x0000000a Code RO 3274 x$fpl$fretinf fz_wm.l(fretinf.o) + 0x08014c86 0x08014c86 0x00000000 Code RO 3284 x$fpl$usenofp fz_wm.l(usenofp.o) + 0x08014c86 0x08014c86 0x00000002 PAD + 0x08014c88 0x08014c88 0x00000098 Data RO 3288 .constdata m_wm.l(atan.o) + 0x08014d20 0x08014d20 0x00000008 Data RO 3328 .constdata m_wm.l(qnan.o) + 0x08014d28 0x08014d28 0x00000020 Data RO 3330 .constdata m_wm.l(rredf.o) + 0x08014d48 0x08014d48 0x00000010 Data RO 1493 .rodata.AHBPrescTable system_stm32f4xx.o + 0x08014d58 0x08014d58 0x00000008 Data RO 1494 .rodata.APBPrescTable system_stm32f4xx.o + 0x08014d60 0x08014d60 0x00000008 Data RO 498 .rodata.DMA_CalcBaseAndBitshift.flagBitshiftOffset stm32f4xx_hal_dma.o + 0x08014d68 0x08014d68 0x00000038 Data RO 2290 .rodata.GPIO_Map gpio_1.o + 0x08014da0 0x08014da0 0x00000008 Data RO 2371 .rodata.PWM_Map pwm.o + 0x08014da8 0x08014da8 0x00000024 Data RO 3023 .rodata.attr_atti_esti user_task.o + 0x08014dcc 0x08014dcc 0x00000024 Data RO 3024 .rodata.attr_gimbal_ctrl user_task.o + 0x08014df0 0x08014df0 0x00000024 Data RO 3022 .rodata.attr_init user_task.o + 0x08014e14 0x08014e14 0x00000024 Data RO 3025 .rodata.attr_remote user_task.o + 0x08014e38 0x08014e38 0x00000024 Data RO 44 .rodata.defaultTask_attributes freertos.o + 0x08014e5c 0x08014e5c 0x00000020 Data RO 3001 .rodata.imu_temp_ctrl_pid_param atti_esti.o + 0x08014e7c 0x08014e7c 0x0000000c Data RO 43 .rodata.str1.1 freertos.o + 0x08014e88 0x08014e88 0x00000005 Data RO 1852 .rodata.str1.1 tasks.o + 0x08014e8d 0x08014e8d 0x0000000d Data RO 1924 .rodata.str1.1 timers.o + 0x08014e9a 0x08014e9a 0x00000027 Data RO 3021 .rodata.str1.1 user_task.o + 0x08014ec1 0x08014ec1 0x00000003 PAD + 0x08014ec4 0x08014ec4 0x00000020 Data RO 3584 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08014dc8, Size: 0x00008788, Max: 0x0001c000, ABSOLUTE, COMPRESSED[0x00000088]) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08014ee8, Size: 0x00008770, Max: 0x0001c000, ABSOLUTE, COMPRESSED[0x00000078]) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x20000000 COMPRESSED 0x00000004 Data RW 1492 .data.SystemCoreClock system_stm32f4xx.o 0x20000004 COMPRESSED 0x00000004 Data RW 2486 .data.beta ahrs.o - 0x20000008 COMPRESSED 0x00000194 Data RW 3064 .data.robot_config config.o - 0x2000019c COMPRESSED 0x00000001 Data RW 698 .data.uwTickFreq stm32f4xx_hal.o - 0x2000019d COMPRESSED 0x00000003 PAD - 0x200001a0 COMPRESSED 0x00000004 Data RW 697 .data.uwTickPrio stm32f4xx_hal.o - 0x200001a4 COMPRESSED 0x00000004 Data RW 2178 .data.uxCriticalNesting port.o + 0x20000008 COMPRESSED 0x00000190 Data RW 3064 .data.robot_config config.o + 0x20000198 COMPRESSED 0x00000001 Data RW 698 .data.uwTickFreq stm32f4xx_hal.o + 0x20000199 COMPRESSED 0x00000003 PAD + 0x2000019c COMPRESSED 0x00000004 Data RW 697 .data.uwTickPrio stm32f4xx_hal.o + 0x200001a0 COMPRESSED 0x00000004 Data RW 2178 .data.uxCriticalNesting port.o + 0x200001a4 COMPRESSED 0x00000004 PAD 0x200001a8 - 0x00000060 Zero RW 3387 .bss c_w.l(libspace.o) 0x20000208 - 0x00000068 Zero RW 2262 .bss.CAN_Callback can_1.o 0x20000270 - 0x00000040 Zero RW 2289 .bss.GPIO_Callback gpio_1.o @@ -8575,95 +8579,95 @@ Memory Map of the image 0x200003dc - 0x00000004 Zero RW 2709 .bss.fac_ms bsp_delay.o 0x200003e0 - 0x00000001 Zero RW 2708 .bss.fac_us bsp_delay.o 0x200003e1 COMPRESSED 0x00000007 PAD - 0x200003e8 - 0x000002e8 Zero RW 3034 .bss.gimbal gimbal_ctrl.o - 0x200006d0 - 0x00000014 Zero RW 2998 .bss.gimbal_ahrs atti_esti.o - 0x200006e4 - 0x0000000c Zero RW 3036 .bss.gimbal_cmd gimbal_ctrl.o - 0x200006f0 - 0x00000018 Zero RW 3035 .bss.gimbal_imu gimbal_ctrl.o - 0x20000708 - 0x00000018 Zero RW 3003 .bss.gimbal_to_send atti_esti.o - 0x20000720 - 0x00000028 Zero RW 61 .bss.hcan1 can.o - 0x20000748 - 0x00000028 Zero RW 62 .bss.hcan2 can.o - 0x20000770 - 0x00000060 Zero RW 106 .bss.hdma_spi1_rx spi.o - 0x200007d0 - 0x00000060 Zero RW 107 .bss.hdma_spi1_tx spi.o - 0x20000830 - 0x00000060 Zero RW 144 .bss.hdma_usart3_rx usart.o - 0x20000890 - 0x00000054 Zero RW 87 .bss.hi2c1 i2c.o - 0x200008e4 - 0x00000054 Zero RW 88 .bss.hi2c2 i2c.o - 0x20000938 - 0x00000058 Zero RW 104 .bss.hspi1 spi.o - 0x20000990 - 0x00000058 Zero RW 105 .bss.hspi2 spi.o - 0x200009e8 - 0x00000048 Zero RW 126 .bss.htim10 tim.o - 0x20000a30 - 0x00000048 Zero RW 125 .bss.htim7 tim.o - 0x20000a78 - 0x00000048 Zero RW 142 .bss.huart1 usart.o - 0x20000ac0 - 0x00000048 Zero RW 143 .bss.huart3 usart.o - 0x20000b08 - 0x00000004 Zero RW 2264 .bss.id_parser can_1.o - 0x20000b0c - 0x00000018 Zero RW 3014 .bss.imu remote.o - 0x20000b24 - 0x0000003c Zero RW 3000 .bss.imu_temp_ctrl_pid atti_esti.o - 0x20000b60 - 0x00000001 Zero RW 2263 .bss.inited can_1.o - 0x20000b61 - 0x00000001 Zero RW 2785 .bss.inited bmi088.o - 0x20000b62 COMPRESSED 0x00000002 PAD - 0x20000b64 - 0x0000000c Zero RW 2999 .bss.magn atti_esti.o - 0x20000b70 - 0x000000a0 Zero RW 1932 .bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage timers.o - 0x20000c10 - 0x00000050 Zero RW 1931 .bss.prvCheckForValidListAndQueue.xStaticTimerQueue timers.o - 0x20000c60 - 0x00000004 Zero RW 1928 .bss.prvSampleTimeNow.xLastTime timers.o - 0x20000c64 - 0x00000004 Zero RW 1838 .bss.pxCurrentTCB tasks.o - 0x20000c68 - 0x00000004 Zero RW 1926 .bss.pxCurrentTimerList timers.o - 0x20000c6c - 0x00000004 Zero RW 1846 .bss.pxDelayedTaskList tasks.o - 0x20000c70 - 0x00000004 Zero RW 2135 .bss.pxEnd heap_4.o - 0x20000c74 - 0x00000004 Zero RW 1847 .bss.pxOverflowDelayedTaskList tasks.o - 0x20000c78 - 0x00000004 Zero RW 1927 .bss.pxOverflowTimerList timers.o - 0x20000c7c - 0x00000460 Zero RW 1849 .bss.pxReadyTasksLists tasks.o - 0x200010dc - 0x00000004 Zero RW 2267 .bss.queue_list can_1.o - 0x200010e0 - 0x00000004 Zero RW 2265 .bss.queue_mutex can_1.o - 0x200010e4 - 0x00000018 Zero RW 2926 .bss.rc_ctrl remote_control.o - 0x200010fc - 0x0000000c Zero RW 3013 .bss.remote_cmd remote.o - 0x20001108 - 0x00000019 Zero RW 2925 .bss.sbus_rx_buf remote_control.o - 0x20001121 COMPRESSED 0x00000003 PAD - 0x20001124 - 0x00000050 Zero RW 3026 .bss.task_runtime user_task.o - 0x20001174 - 0x00000004 Zero RW 2786 .bss.thread_alert bmi088.o - 0x20001178 - 0x00000810 Zero RW 2266 .bss.tx_queues can_1.o - 0x20001988 - 0x00006000 Zero RW 2142 .bss.ucHeap heap_4.o - 0x20007988 - 0x00000001 Zero RW 2176 .bss.ucMaxSysCallPriority port.o - 0x20007989 COMPRESSED 0x00000003 PAD - 0x2000798c - 0x00000004 Zero RW 2177 .bss.ulMaxPRIGROUPValue port.o - 0x20007990 - 0x00000004 Zero RW 1859 .bss.ulTaskSwitchedInTime tasks.o - 0x20007994 - 0x00000004 Zero RW 1858 .bss.ulTotalRunTime tasks.o - 0x20007998 - 0x00000004 Zero RW 699 .bss.uwTick stm32f4xx_hal.o - 0x2000799c - 0x00000004 Zero RW 1842 .bss.uxCurrentNumberOfTasks tasks.o - 0x200079a0 - 0x00000004 Zero RW 1841 .bss.uxDeletedTasksWaitingCleanUp tasks.o - 0x200079a4 - 0x00000004 Zero RW 1844 .bss.uxSchedulerSuspended tasks.o - 0x200079a8 - 0x00000004 Zero RW 1839 .bss.uxTaskNumber tasks.o - 0x200079ac - 0x00000004 Zero RW 1850 .bss.uxTopReadyPriority tasks.o - 0x200079b0 - 0x00000200 Zero RW 2109 .bss.vApplicationGetIdleTaskMemory.Idle_Stack cmsis_os2.o - 0x20007bb0 - 0x00000064 Zero RW 2108 .bss.vApplicationGetIdleTaskMemory.Idle_TCB cmsis_os2.o - 0x20007c14 - 0x00000400 Zero RW 2111 .bss.vApplicationGetTimerTaskMemory.Timer_Stack cmsis_os2.o - 0x20008014 - 0x00000064 Zero RW 2110 .bss.vApplicationGetTimerTaskMemory.Timer_TCB cmsis_os2.o - 0x20008078 - 0x00000014 Zero RW 1929 .bss.xActiveTimerList1 timers.o - 0x2000808c - 0x00000014 Zero RW 1930 .bss.xActiveTimerList2 timers.o - 0x200080a0 - 0x00000004 Zero RW 2136 .bss.xBlockAllocatedBit heap_4.o - 0x200080a4 - 0x00000014 Zero RW 1860 .bss.xDelayedTaskList1 tasks.o - 0x200080b8 - 0x00000014 Zero RW 1861 .bss.xDelayedTaskList2 tasks.o - 0x200080cc - 0x00000004 Zero RW 2137 .bss.xFreeBytesRemaining heap_4.o - 0x200080d0 - 0x00000004 Zero RW 1853 .bss.xIdleTaskHandle tasks.o - 0x200080d4 - 0x00000004 Zero RW 2139 .bss.xMinimumEverFreeBytesRemaining heap_4.o - 0x200080d8 - 0x00000004 Zero RW 1854 .bss.xNextTaskUnblockTime tasks.o - 0x200080dc - 0x00000004 Zero RW 1857 .bss.xNumOfOverflows tasks.o - 0x200080e0 - 0x00000004 Zero RW 2140 .bss.xNumberOfSuccessfulAllocations heap_4.o - 0x200080e4 - 0x00000004 Zero RW 2141 .bss.xNumberOfSuccessfulFrees heap_4.o - 0x200080e8 - 0x00000004 Zero RW 1856 .bss.xPendedTicks tasks.o - 0x200080ec - 0x00000014 Zero RW 1851 .bss.xPendingReadyList tasks.o - 0x20008100 - 0x00000040 Zero RW 1637 .bss.xQueueRegistry queue.o - 0x20008140 - 0x00000004 Zero RW 1843 .bss.xSchedulerRunning tasks.o - 0x20008144 - 0x00000008 Zero RW 2138 .bss.xStart heap_4.o - 0x2000814c - 0x00000014 Zero RW 1848 .bss.xSuspendedTaskList tasks.o - 0x20008160 - 0x00000014 Zero RW 1840 .bss.xTasksWaitingTermination tasks.o - 0x20008174 - 0x00000004 Zero RW 1845 .bss.xTickCount tasks.o - 0x20008178 - 0x00000004 Zero RW 1923 .bss.xTimerQueue timers.o - 0x2000817c - 0x00000004 Zero RW 1925 .bss.xTimerTaskHandle timers.o - 0x20008180 - 0x00000004 Zero RW 1855 .bss.xYieldPending tasks.o - 0x20008184 COMPRESSED 0x00000004 PAD - 0x20008188 - 0x00000200 Zero RW 2 HEAP startup_stm32f407xx.o - 0x20008388 - 0x00000400 Zero RW 1 STACK startup_stm32f407xx.o + 0x200003e8 - 0x000002d0 Zero RW 3034 .bss.gimbal gimbal_ctrl.o + 0x200006b8 - 0x00000014 Zero RW 2998 .bss.gimbal_ahrs atti_esti.o + 0x200006cc - 0x0000000c Zero RW 3036 .bss.gimbal_cmd gimbal_ctrl.o + 0x200006d8 - 0x00000018 Zero RW 3035 .bss.gimbal_imu gimbal_ctrl.o + 0x200006f0 - 0x00000018 Zero RW 3003 .bss.gimbal_to_send atti_esti.o + 0x20000708 - 0x00000028 Zero RW 61 .bss.hcan1 can.o + 0x20000730 - 0x00000028 Zero RW 62 .bss.hcan2 can.o + 0x20000758 - 0x00000060 Zero RW 106 .bss.hdma_spi1_rx spi.o + 0x200007b8 - 0x00000060 Zero RW 107 .bss.hdma_spi1_tx spi.o + 0x20000818 - 0x00000060 Zero RW 144 .bss.hdma_usart3_rx usart.o + 0x20000878 - 0x00000054 Zero RW 87 .bss.hi2c1 i2c.o + 0x200008cc - 0x00000054 Zero RW 88 .bss.hi2c2 i2c.o + 0x20000920 - 0x00000058 Zero RW 104 .bss.hspi1 spi.o + 0x20000978 - 0x00000058 Zero RW 105 .bss.hspi2 spi.o + 0x200009d0 - 0x00000048 Zero RW 126 .bss.htim10 tim.o + 0x20000a18 - 0x00000048 Zero RW 125 .bss.htim7 tim.o + 0x20000a60 - 0x00000048 Zero RW 142 .bss.huart1 usart.o + 0x20000aa8 - 0x00000048 Zero RW 143 .bss.huart3 usart.o + 0x20000af0 - 0x00000004 Zero RW 2264 .bss.id_parser can_1.o + 0x20000af4 - 0x00000018 Zero RW 3014 .bss.imu remote.o + 0x20000b0c - 0x0000003c Zero RW 3000 .bss.imu_temp_ctrl_pid atti_esti.o + 0x20000b48 - 0x00000001 Zero RW 2263 .bss.inited can_1.o + 0x20000b49 - 0x00000001 Zero RW 2785 .bss.inited bmi088.o + 0x20000b4a COMPRESSED 0x00000002 PAD + 0x20000b4c - 0x0000000c Zero RW 2999 .bss.magn atti_esti.o + 0x20000b58 - 0x000000a0 Zero RW 1932 .bss.prvCheckForValidListAndQueue.ucStaticTimerQueueStorage timers.o + 0x20000bf8 - 0x00000050 Zero RW 1931 .bss.prvCheckForValidListAndQueue.xStaticTimerQueue timers.o + 0x20000c48 - 0x00000004 Zero RW 1928 .bss.prvSampleTimeNow.xLastTime timers.o + 0x20000c4c - 0x00000004 Zero RW 1838 .bss.pxCurrentTCB tasks.o + 0x20000c50 - 0x00000004 Zero RW 1926 .bss.pxCurrentTimerList timers.o + 0x20000c54 - 0x00000004 Zero RW 1846 .bss.pxDelayedTaskList tasks.o + 0x20000c58 - 0x00000004 Zero RW 2135 .bss.pxEnd heap_4.o + 0x20000c5c - 0x00000004 Zero RW 1847 .bss.pxOverflowDelayedTaskList tasks.o + 0x20000c60 - 0x00000004 Zero RW 1927 .bss.pxOverflowTimerList timers.o + 0x20000c64 - 0x00000460 Zero RW 1849 .bss.pxReadyTasksLists tasks.o + 0x200010c4 - 0x00000004 Zero RW 2267 .bss.queue_list can_1.o + 0x200010c8 - 0x00000004 Zero RW 2265 .bss.queue_mutex can_1.o + 0x200010cc - 0x00000018 Zero RW 2926 .bss.rc_ctrl remote_control.o + 0x200010e4 - 0x0000000c Zero RW 3013 .bss.remote_cmd remote.o + 0x200010f0 - 0x00000019 Zero RW 2925 .bss.sbus_rx_buf remote_control.o + 0x20001109 COMPRESSED 0x00000003 PAD + 0x2000110c - 0x00000050 Zero RW 3026 .bss.task_runtime user_task.o + 0x2000115c - 0x00000004 Zero RW 2786 .bss.thread_alert bmi088.o + 0x20001160 - 0x00000810 Zero RW 2266 .bss.tx_queues can_1.o + 0x20001970 - 0x00006000 Zero RW 2142 .bss.ucHeap heap_4.o + 0x20007970 - 0x00000001 Zero RW 2176 .bss.ucMaxSysCallPriority port.o + 0x20007971 COMPRESSED 0x00000003 PAD + 0x20007974 - 0x00000004 Zero RW 2177 .bss.ulMaxPRIGROUPValue port.o + 0x20007978 - 0x00000004 Zero RW 1859 .bss.ulTaskSwitchedInTime tasks.o + 0x2000797c - 0x00000004 Zero RW 1858 .bss.ulTotalRunTime tasks.o + 0x20007980 - 0x00000004 Zero RW 699 .bss.uwTick stm32f4xx_hal.o + 0x20007984 - 0x00000004 Zero RW 1842 .bss.uxCurrentNumberOfTasks tasks.o + 0x20007988 - 0x00000004 Zero RW 1841 .bss.uxDeletedTasksWaitingCleanUp tasks.o + 0x2000798c - 0x00000004 Zero RW 1844 .bss.uxSchedulerSuspended tasks.o + 0x20007990 - 0x00000004 Zero RW 1839 .bss.uxTaskNumber tasks.o + 0x20007994 - 0x00000004 Zero RW 1850 .bss.uxTopReadyPriority tasks.o + 0x20007998 - 0x00000200 Zero RW 2109 .bss.vApplicationGetIdleTaskMemory.Idle_Stack cmsis_os2.o + 0x20007b98 - 0x00000064 Zero RW 2108 .bss.vApplicationGetIdleTaskMemory.Idle_TCB cmsis_os2.o + 0x20007bfc - 0x00000400 Zero RW 2111 .bss.vApplicationGetTimerTaskMemory.Timer_Stack cmsis_os2.o + 0x20007ffc - 0x00000064 Zero RW 2110 .bss.vApplicationGetTimerTaskMemory.Timer_TCB cmsis_os2.o + 0x20008060 - 0x00000014 Zero RW 1929 .bss.xActiveTimerList1 timers.o + 0x20008074 - 0x00000014 Zero RW 1930 .bss.xActiveTimerList2 timers.o + 0x20008088 - 0x00000004 Zero RW 2136 .bss.xBlockAllocatedBit heap_4.o + 0x2000808c - 0x00000014 Zero RW 1860 .bss.xDelayedTaskList1 tasks.o + 0x200080a0 - 0x00000014 Zero RW 1861 .bss.xDelayedTaskList2 tasks.o + 0x200080b4 - 0x00000004 Zero RW 2137 .bss.xFreeBytesRemaining heap_4.o + 0x200080b8 - 0x00000004 Zero RW 1853 .bss.xIdleTaskHandle tasks.o + 0x200080bc - 0x00000004 Zero RW 2139 .bss.xMinimumEverFreeBytesRemaining heap_4.o + 0x200080c0 - 0x00000004 Zero RW 1854 .bss.xNextTaskUnblockTime tasks.o + 0x200080c4 - 0x00000004 Zero RW 1857 .bss.xNumOfOverflows tasks.o + 0x200080c8 - 0x00000004 Zero RW 2140 .bss.xNumberOfSuccessfulAllocations heap_4.o + 0x200080cc - 0x00000004 Zero RW 2141 .bss.xNumberOfSuccessfulFrees heap_4.o + 0x200080d0 - 0x00000004 Zero RW 1856 .bss.xPendedTicks tasks.o + 0x200080d4 - 0x00000014 Zero RW 1851 .bss.xPendingReadyList tasks.o + 0x200080e8 - 0x00000040 Zero RW 1637 .bss.xQueueRegistry queue.o + 0x20008128 - 0x00000004 Zero RW 1843 .bss.xSchedulerRunning tasks.o + 0x2000812c - 0x00000008 Zero RW 2138 .bss.xStart heap_4.o + 0x20008134 - 0x00000014 Zero RW 1848 .bss.xSuspendedTaskList tasks.o + 0x20008148 - 0x00000014 Zero RW 1840 .bss.xTasksWaitingTermination tasks.o + 0x2000815c - 0x00000004 Zero RW 1845 .bss.xTickCount tasks.o + 0x20008160 - 0x00000004 Zero RW 1923 .bss.xTimerQueue timers.o + 0x20008164 - 0x00000004 Zero RW 1925 .bss.xTimerTaskHandle timers.o + 0x20008168 - 0x00000004 Zero RW 1855 .bss.xYieldPending tasks.o + 0x2000816c COMPRESSED 0x00000004 PAD + 0x20008170 - 0x00000200 Zero RW 2 HEAP startup_stm32f407xx.o + 0x20008370 - 0x00000400 Zero RW 1 STACK startup_stm32f407xx.o - Execution Region RW_IRAM2 (Exec base: 0x2001c000, Load base: 0x08014e50, Size: 0x00000000, Max: 0x00004000, ABSOLUTE) + Execution Region RW_IRAM2 (Exec base: 0x2001c000, Load base: 0x08014f60, Size: 0x00000000, Max: 0x00004000, ABSOLUTE) **** No section assigned to this execution region **** @@ -8685,12 +8689,12 @@ Image component sizes 620 0 0 0 84 6422 can.o 3946 4 0 0 2181 14234 can_1.o 2968 0 0 0 1740 35206 cmsis_os2.o - 10 0 0 404 0 2684 config.o + 10 0 0 400 0 2772 config.o 134 0 0 0 0 3297 dma.o 780 8 0 0 0 3412 filter.o 98 0 48 0 4 3084 freertos.o - 2360 28 0 0 0 8229 gimbal.o - 220 12 0 0 780 4989 gimbal_ctrl.o + 2624 40 0 0 0 8481 gimbal.o + 236 12 0 0 756 5066 gimbal_ctrl.o 554 0 0 0 0 4164 gpio.o 576 12 56 0 64 4722 gpio_1.o 1084 0 0 0 24608 4434 heap_4.o @@ -8735,9 +8739,9 @@ Image component sizes 0 0 183 0 80 3063 user_task.o ---------------------------------------------------------------------- - 76728 290 804 424 34176 453749 Object Totals + 77016 310 804 420 34156 454166 Object Totals 0 0 32 0 0 0 (incl. Generated) - 390 4 3 3 26 0 (incl. Padding) + 398 12 3 3 30 0 (incl. Padding) ---------------------------------------------------------------------- @@ -8826,15 +8830,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 84448 966 996 424 34272 455513 Grand Totals - 84448 966 996 136 34272 455513 ELF Image Totals (compressed) - 84448 966 996 136 0 0 ROM Totals + 84736 986 996 420 34252 455930 Grand Totals + 84736 986 996 120 34252 455930 ELF Image Totals (compressed) + 84736 986 996 120 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 85444 ( 83.44kB) - Total RW Size (RW Data + ZI Data) 34696 ( 33.88kB) - Total ROM Size (Code + RO Data + RW Data) 85580 ( 83.57kB) + Total RO Size (Code + RO Data) 85732 ( 83.72kB) + Total RW Size (RW Data + ZI Data) 34672 ( 33.86kB) + Total ROM Size (Code + RO Data + RW Data) 85852 ( 83.84kB) ============================================================================== diff --git a/MDK-ARM/gimbal/gimbal.o b/MDK-ARM/gimbal/gimbal.o index 238a75d0a54ccf149ce1b7fe31f66cd7f69910da..19b48dd2ca2110c44a5dfb9624fa6faa822673a5 100644 GIT binary patch literal 17572 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 delta 4409 zcmYk93vg7`8OP5(_kMTpW_Mu&nD}vg1{2+maB_pwp)#eD*lojfuGzi1lfAjpHTs3H$oYqJ zB#h{a>qzgP~{B&nNjRV^er|(Po#d<4Eg?&E9ZBvw;YmHyU6%El!9puQJ_1*`L z-cBpwSj3@SiW;qcpqcKp`oYzdwR*=s3ax&)C(>p0BlS*Xk2M}$=tQ2i#$yj<9Tn+| zbvE)Ey5rg(rgzcDn8IBVICd*~-s(L8)g#dOpG?vStM?XDv(-6^x%=J7V%f>Tl75NM1)Xm1BH9E2c?Y?B=xm{YhucLrBj{LPR^=&2Pc%8?N$HD~$?dEx8q#0fR}dtJo&H2RXm#OXA8`Ufg<6vi$1=_{%nKhQIX7iMDp#9TdcLAE8`|nomDNAO1GjoXoJLr^FiGRA zZcEW6Rxc{1E3Lk+Ohx9ySdX7xKHtH%T1-n}yu|rlqUaIPS-mtxyJ47_E~}%LtiG`x z5BCVHLSA^YU#ZVEo6)>g=P8o{qtAEf6rTA=yhwVartR1dMvuy)UC|9pQeG zb+M+)tuFECO6V8ZU+U93==WG-&%2u;s^M^}b3?l6*f%Q6W4iD?vTE8z&`K7-&X z>>eA81|r&h9iGLIUjJNkFF)1-6Vu!XXvh5=0jD9U$q#5q?_8-~(LuO*uGFB-{D$Hw z&`=Na!}vTwY9#s+K}HYrl{*>{A981fxzVU!?6)vg>{XOb>^MrinJtJ~fV}#H{j^^} zqhs(-${*u5`wiw|_!KUGs4^Eu zK8`lO(WCo4yZ)x&Y?6k@>0xxXpBs!y`f+~*?Uc@a?E5`dpYQdaE&j*=J)?rpR{sJd z>MOMVIUIg@Zf$;P>>8LVwhW~cTaQw!Xki4;Kh9^DTZ5Kg!5hu^>1ZK63(3ogVyC}i zHJ16B)ujQwVRc!Y-n4pPl8#wjo}zcGP8ZWBR##wxzr=V03G3IxaP~D&0Vcr%YUHTI z>PAnw&moZancjp$38=XxeJr}{dnR~ezSNKilAitUeSE;kt`RcfGuY+?v z;(~LqTdHXdq}dfU*q~O|;>EK%TZiqk9gThuPo&gOMha+~R7MIFJz;f`N58SUIG~rU zE{QAsH4I*plh;4@`Jy!*|7qh%$p?)aRjLABJ=l-yn%-}ftgcm*fZyc4&Z8o$&k0ms z8yb1By@}y)s>Dc?*~D0sYZI5Eye%;o<(kA2l(#0bC~rw@LU{)NA}SaPNnRhcRQ!?U z%-IGFZ$F-z8lDygT%Adq=u;TBqRk;tA%8xVL=TW=?uQM(<9R4Tv zyYSukQEHj6WXbj24bAw*>-#?Kgw6Q_GThPf))g&iWN15QA8Q_bH={9}17V zVw&&H9;)NYal)pG{$W=^%6T)~UvSJh5#Cui);ZOEv~aT1^cZ^0D^+S2*w|mGz2GqL z*X&Oy^&B$~cP%rn)NA3q;xpMx_~k+h`F>)~7cLdvCgkgm>$eIY748$hEPO*~t^&k= zEOw9ZzrqC0Z}gW{B{`w0g-t@f9e6;#0GL+@`QT@JvCw=f!M;oEPT}Li{lXW8$As@2 z;-LFf9A67P9QHgwfv`f@ARH~cSa`W`j<8L5laOy6?vF1h=62x|OnyBMiQ`q_ap4ET z&xEIi9u7=1K_Nb3jXhY{By1K=7S0s52(JUP+|ep=Y!u!jyid48__%PNkZ%KS|FZCH z;R)eM;TOX1gn2laxLu(+=pib_ajtNJkpF7nz)OX*h4Y0=g?yfJ+(zLRVV7{1@PP2B z@HmAt$_l5R7Slr)+)aV7N;p`EFCbGtMmR}0LpV2ls;oA8zgRoN56cE+-xsS#ct%LL ze|W5zFfAM+94Wj=c$x4j;R4}uq4|pm{k4m|EyplBFd97|z9V7Bz@q3$u}+6i4J>LJ zgzJFkF+_NwaEfr2uvNG;{AS?D?5kqEE&PaCpwvmR|HVux^{vWUl@BjeFwg@Ev delta 41 ucmaDO`$l$y2a`-Civ(jCD=Q-d!z~5|2F7v*Rv93h4~Q8nHm5Lk@BjeAtOw}; diff --git a/User/module/config.c b/User/module/config.c index 6adc2a4..2f56bb1 100644 --- a/User/module/config.c +++ b/User/module/config.c @@ -23,34 +23,39 @@ Config_RobotParam_t robot_config = { .Set_Limit_t= { .pit_max=0.69, .pit_min=-0.47, - .yaw_max= 1.0,//yaw的限位作用于小yaw + .yaw_max= 1.0,//yaw的 .yaw_min=-1.0, - .pit_ecd_max=0, - .pit_ecd_min=0, - .yaw_ecd_max=0, - .yaw_ecd_min=0, }, -// .mech_zero = { -// .yaw = 0.0f, -// .pit = -0.69f, -// }, - - /*是否启动限位,1启动,-1不启动 - 小yaw默认限位 - 一般pit统一限位*/ - .travel = { - .yaw = -1.0f, - .pit = 1.0f, - .ecd_yaw=-1.0f, - .ecd_pit=1.0f, - }, - + + .feedforward={ + .imu = { + .yaw=false, + .pit=false, + .coefficient_yaw=0, + .coefficient_pit=0, + }, + + }, + + /*零点参数*/ + .gimbal_zero={ + .pit_encoder=0, + .yaw_encoder=0, + /*零点行程*/ + .travel={ + .yaw=0, + .pit=0, + }, + }, .motor={ /*按自己需求选择电机*/ - .pit=RM, + .pit=DM, .yaw=RM, + /*是否开启限位*/ + .limit_yaw=false, + .limit_pit=true, .pit_rm_motor={BSP_CAN_2,0x20A,MOTOR_GM6020,false,false}, .yaw_rm_motor={BSP_CAN_1,0x205,MOTOR_GM6020,false,false}, /*达妙电机参数自己配*/ @@ -110,48 +115,7 @@ Config_RobotParam_t robot_config = { .out_limit = 10.0f, .d_cutoff_freq = -1.0f, .range = M_2PI, - }, - /*电机控制参数*/ - .yaw_velocity = { - .k = 1.0f, - .p = 1.0f, - .i = 0.0f, - .d = 0.000f,//0 - .i_limit = 1.0f, - .out_limit = 1.0f, - .d_cutoff_freq = -1.0f, - .range = -1.0f, - }, - .yaw_ecd_angle = { - .k = 1.0f, - .p = 1.0f , - .i = 0.0f, - .d = 0.0f, - .i_limit = 0.0f, - .out_limit = 10.0f, - .d_cutoff_freq = -1.0f, - .range = M_2PI, - }, - .pit_velocity = { - .k = 0.0f, - .p = 0.0f, - .i = 0.0f, - .d = 0.0f, - .i_limit = 1.0f, - .out_limit = 1.0f, - .d_cutoff_freq = -1.0f, - .range = -1.0f, - }, - .pit_ecd_angle = { - .k = 1.0f, - .p = 0.0f, - .i = 0.0f, - .d = 0.0f, - .i_limit = 0.0f, - .out_limit = 10.0f, - .d_cutoff_freq = -1.0f, - .range = M_2PI, - }, + }, } }, }; diff --git a/User/module/gimbal.c b/User/module/gimbal.c index 4fcdd93..2426a8c 100644 --- a/User/module/gimbal.c +++ b/User/module/gimbal.c @@ -122,10 +122,7 @@ int8_t Gimbal_Init(Gimbal_t *g,Gimbal_Params_t *param, g->limit.set_pit.min=g->param->Set_Limit_t.pit_min; g->limit.set_yaw.max=g->param->Set_Limit_t.yaw_max; g->limit.set_yaw.min=g->param->Set_Limit_t.yaw_min; - g->limit.set_ecd_pit.max=g->param->Set_Limit_t.pit_ecd_max; - g->limit.set_ecd_pit.min=g->param->Set_Limit_t.pit_ecd_min; - g->limit.set_ecd_yaw.max=g->param->Set_Limit_t.yaw_ecd_max; - g->limit.set_ecd_yaw.min=g->param->Set_Limit_t.yaw_ecd_min; + @@ -230,8 +227,8 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { float yaw_omega_set_point, pit_omega_set_point; /* 电机角度控制相关逻辑 */ float yaw_velocity_set_point, pit_velocity_set_point; - - float small_yaw_omega_setpoint; + + float delta_ecd_yaw = g_cmd->delta_yaw*g->dt; float delta_ecd_pit = g_cmd->delta_pit*g->dt; @@ -241,11 +238,13 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { +// if((g->feedback.motor.yaw.rotor_abs_angle)>M_PI)g->feedback.motor.yaw.rotor_abs_angle-M_2PI; + float motor_imu_offset = g->feedback.motor.yaw.rotor_abs_angle - g->feedback.imu.eulr.yaw; /* 处理跨越±π的情况 */ if (motor_imu_offset > M_PI) motor_imu_offset -= M_2PI; if (motor_imu_offset < -M_PI) motor_imu_offset += M_2PI; - /* 计算到限位边界的距离 (这个限位给双yaw)*/ + /* 计算到限位边界的距离 (这个限位给yaw)*/ float delta_max = CircleError(g->limit.set_yaw.max, (g->setpoint.eulr.yaw + motor_imu_offset + delta_yaw), M_2PI); float delta_min = CircleError(g->limit.set_yaw.min, @@ -259,10 +258,9 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { case GIMBAL_MODE_ABSOLUTE:/*绝对模式*/ g->setpoint.eulr.yaw+=delta_yaw; - if (g->param->travel.yaw > 0) + if (g->param->motor.limit_yaw==true) Clip(&(g->setpoint.eulr.yaw),delta_min,delta_max); else{ - CircleAdd(&(g->setpoint.eulr.yaw), delta_yaw, M_2PI); /*限制在-3.14~3.14*/ if (g->setpoint.eulr.yaw > M_PI) g->setpoint.eulr.yaw -= M_2PI; } @@ -270,7 +268,7 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { /* 处理pitch控制命令,软件限位 - 使用电机绝对角度 */ g->setpoint.eulr.pit+=delta_pit; - if (g->param->travel.pit > 0) + if (g->param->motor.limit_pit == true) /* 限制pit控制命令 */ Clip(&(g->setpoint.eulr.pit),g->limit.set_pit.min,g->limit.set_pit.max); @@ -283,37 +281,54 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) { g->feedback.imu.eulr.pit, 0.0f, g->dt); g->out.pit = PID_Calc(&(g->pid.pit_omega), pit_omega_set_point, g->feedback.imu.gyro.x, 0.f, g->dt); - - + + /*前馈添加*/ + if(g->param->feedforward.imu.yaw==true) + g->out.yaw+=g->param->feedforward.imu.coefficient_yaw*(yaw_omega_set_point - g->feedback.imu.gyro.z); + if(g->param->feedforward.imu.pit==true) + g->out.pit+=g->param->feedforward.imu.coefficient_pit*(pit_omega_set_point - g->feedback.imu.gyro.x); + break; case GIMBAL_MODE_RELATIVE: - /*跟据电机角度控制,遥控器不给值不会动*/ - g->setpoint.ecd.yaw+=delta_ecd_yaw; - /*yaw的限位*/ - if(g->param->travel.yaw > 0) - Clip(&(g->setpoint.ecd.yaw),g->limit.set_ecd_yaw.min,g->limit.set_ecd_yaw.max); - else{ - /*限制yaw在0~6.28*/ - CircleAdd(&(g->setpoint.ecd.yaw), delta_ecd_yaw, M_2PI); - } + /*计算零点*/ + g->param->gimbal_zero.yaw = g->param->gimbal_zero.yaw_encoder - g->param->gimbal_zero.travel.yaw; + g->param->gimbal_zero.pit = g->param->gimbal_zero.pit_encoder - g->param->gimbal_zero.travel.pit; + /*基于零点的设定角度*/ + /*加的相对角度应该限制在3.14~-3.14*/ + CircleAdd(&(g->relative_angle.yaw),delta_yaw,M_2PI); + if((g->relative_angle.yaw)>=M_2PI)g->relative_angle.yaw-=(M_2PI); - /* 处理pitch控制命令,软件限位 - 使用电机绝对角度 */ - g->setpoint.ecd.pit+=delta_ecd_pit; - /* 限制控制命令 */ - if (g->param->travel.pit > 0) - Clip(&(g->setpoint.ecd.pit),g->limit.set_ecd_pit.min,g->limit.set_ecd_pit.max); - - - yaw_velocity_set_point = PID_Calc(&(g->pid.yaw_ecd_angle), g->setpoint.ecd.yaw, - g->feedback.motor.yaw.rotor_abs_angle, 0.0f, g->dt); - g->out.yaw = PID_Calc(&(g->pid.yaw_velocity), yaw_velocity_set_point, - g->feedback.motor.yaw.rotor_speed, 0.f, g->dt); + g->relative_angle.pit=+delta_pit; + + g->setpoint.eulr.yaw=g->param->gimbal_zero.yaw + g->relative_angle.yaw; + g->setpoint.eulr.pit=g->param->gimbal_zero.pit + g->relative_angle.pit; - pit_velocity_set_point = PID_Calc(&(g->pid.pit_ecd_angle), g->setpoint.ecd.pit, - g->feedback.motor.pit.rotor_abs_angle, 0.0f, g->dt); - g->out.pit = PID_Calc(&(g->pid.pit_velocity), pit_velocity_set_point, - g->feedback.motor.pit.rotor_speed, 0.f, g->dt); - + /*yaw的限位*/ + if (g->param->motor.limit_yaw==true) + Clip(&(g->setpoint.eulr.yaw),g->limit.set_yaw.min,g->limit.set_yaw.max); + else{ + /*限制在-3.14~3.14*/ + if(g->setpoint.eulr.yaw > M_PI) g->setpoint.eulr.yaw -= M_2PI; + } + /* pit限制控制命令 */ + if (g->param->motor.limit_pit==true) + Clip(&(g->setpoint.eulr.pit),g->limit.set_pit.min,g->limit.set_pit.max); + + yaw_omega_set_point = PID_Calc(&(g->pid.yaw_angle), g->setpoint.eulr.yaw, + g->feedback.imu.eulr.yaw, 0.0f, g->dt); + g->out.yaw = PID_Calc(&(g->pid.yaw_omega), yaw_omega_set_point, + g->feedback.imu.gyro.z, 0.f, g->dt); + + pit_omega_set_point = PID_Calc(&(g->pid.pit_angle), g->setpoint.eulr.pit, + g->feedback.imu.eulr.pit, 0.0f, g->dt); + g->out.pit = PID_Calc(&(g->pid.pit_omega), pit_omega_set_point, + g->feedback.imu.gyro.x, 0.f, g->dt); + + /*前馈添加*/ + if(g->param->feedforward.imu.yaw==true) + g->out.yaw+=g->param->feedforward.imu.coefficient_yaw*(yaw_omega_set_point - g->feedback.imu.gyro.z); + if(g->param->feedforward.imu.pit==true) + g->out.pit+=g->param->feedforward.imu.coefficient_pit*(pit_omega_set_point - g->feedback.imu.gyro.x); break; /* 输出滤波 */ diff --git a/User/module/gimbal.h b/User/module/gimbal.h index 569e0a9..4099337 100644 --- a/User/module/gimbal.h +++ b/User/module/gimbal.h @@ -49,7 +49,8 @@ typedef struct { typedef struct { - + bool limit_yaw;/*是否开启限位*/ + bool limit_pit; Gimbal_MOTOR pit; Gimbal_MOTOR yaw; MOTOR_DM_Param_t pit_dm_motor; /* pitch轴电机参数 */ @@ -57,6 +58,7 @@ typedef struct { MOTOR_RM_Param_t pit_rm_motor; /* pitch轴电机参数 */ MOTOR_RM_Param_t yaw_rm_motor; /* yaw轴电机参数 */ + } Gimbal_MOTOR_Param_t; /* 云台参数的结构体,包含所有初始化用的参数,通常是const,存好几组。*/ @@ -78,35 +80,48 @@ typedef struct { } pid; + /* 前馈系数 */ + struct { + struct{ + bool yaw; + bool pit; + float coefficient_yaw; + float coefficient_pit; + }imu; + + }feedforward; + /* 低通滤波器截止频率 */ struct { float out; /* 电机输出 */ float gyro; /* 陀螺仪数据 */ } low_pass_cutoff_freq; - struct { - float yaw; /* yaw轴机械限位 */ - float pit; /* pitch轴机械限位 */ - } mech_zero; - - struct { - float yaw; /* yaw轴机械限位行程 -1表示无限位 */ - float pit; /* pitch轴机械限位行程 -1表示无限位*/ - float ecd_yaw; /* yaw轴机械限位行程 -1表示无限位 */ - float ecd_pit; /* pitch轴机械限位行程 -1表示无限位*/ - } travel; struct { float pit_max; /*pit的限位*/ float pit_min; float yaw_max; /*yaw的限位*/ float yaw_min; - float pit_ecd_max; /*pit的限位*/ - float pit_ecd_min; - float yaw_ecd_max; /*yaw的限位*/ - float yaw_ecd_min; + }Set_Limit_t; + struct { + + struct{ + float yaw; /* 零点行程 */ + float pit; + }travel; + + float pit; /*零点*/ + float yaw; + + float pit_encoder; /*零点*/ + float yaw_encoder; + }gimbal_zero; + + + struct { MOTOR_MIT_Output_t yaw_dm; /*达妙的参数*/ MOTOR_MIT_Output_t pit_dm; @@ -170,16 +185,15 @@ typedef struct { } pid; struct { - Gimbal_Limit_t yaw; - Gimbal_Limit_t pit; + Gimbal_Limit_t set_yaw; Gimbal_Limit_t set_pit; - Gimbal_Limit_t set_ecd_yaw; - Gimbal_Limit_t set_ecd_pit; } limit; - - + struct { + float yaw; + float pit; + } relative_angle; struct { LowPassFilter2p_t yaw; diff --git a/User/task/gimbal_ctrl.c b/User/task/gimbal_ctrl.c index b280d6a..d8a0d1f 100644 --- a/User/task/gimbal_ctrl.c +++ b/User/task/gimbal_ctrl.c @@ -39,11 +39,9 @@ void Task_gimbal_ctrl(void *argument) { while (1) { tick += delay_tick; /* 计算下一个唤醒时刻 */ /* USER CODE BEGIN */ - if(osMessageQueueGet(task_runtime.msgq.gimbal.imu, &gimbal_imu, NULL, 0)==osOK) - Gimbal_UpdateIMU(&gimbal, &gimbal_imu); - - - osMessageQueueGet(task_runtime.msgq.gimbal.cmd, &gimbal_cmd, NULL, 0); + if(osMessageQueueGet(task_runtime.msgq.gimbal.imu, &gimbal_imu, NULL, 0)==osOK){ + Gimbal_UpdateIMU(&gimbal, &gimbal_imu);} + if(osMessageQueueGet(task_runtime.msgq.gimbal.cmd, &gimbal_cmd, NULL, 0)==osOK) Gimbal_UpdateFeedback(&gimbal); Gimbal_Control(&gimbal,&gimbal_cmd); Gimbal_Output(&gimbal);