From 223841301ea5524d281b0b817dd86ebbcda397b9 Mon Sep 17 00:00:00 2001 From: andrey Date: Sat, 23 May 2026 19:07:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=89=D0=B5=D0=BD=20=D1=88=D0=B8=D0=BC=20?= =?UTF-8?q?=D0=B8=D0=B4=D0=B5=D1=82,=20=D0=BD=D1=83=D0=B6=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D1=82=D0=B8=D1=82=D1=8C=20=D1=81?= =?UTF-8?q?=20=D0=BF=D0=B8=D0=B4=20=D1=80=D0=B5=D0=B3=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BE=D0=BC=20=D0=B2=D1=8B=D0=B2=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20=D0=B2=D1=81=D0=B5=20=D0=B8=D0=B7=D0=BC=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D1=83=D0=BA=D1=82=D1=83=D1=80=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../B-G474E-DPOW1_DCDC.uvguix.z | 193 +-- B-G474E-DPOW1_Keil/B-G474E-DPOW1_DCDC.uvoptx | 47 +- B-G474E-DPOW1_Keil/CODE_COMMENTS.md | 101 ++ B-G474E-DPOW1_Keil/Core/Inc/app_config.h | 104 +- B-G474E-DPOW1_Keil/Core/Inc/dcdc.h | 65 + B-G474E-DPOW1_Keil/Core/Src/dcdc.c | 273 ++++- B-G474E-DPOW1_Keil/Core/Src/main.c | 91 +- .../Listings/B-G474E-DPOW1_DCDC.map | 957 ++++++++------- .../Objects/B-G474E-DPOW1_DCDC.axf | Bin 65000 -> 69400 bytes .../Objects/B-G474E-DPOW1_DCDC.build_log.htm | 11 +- .../Objects/B-G474E-DPOW1_DCDC.hex | 1047 +++++++++-------- .../Objects/B-G474E-DPOW1_DCDC.htm | 472 +++++--- .../B-G474E-DPOW1_DCDC_B-G474E-DPOW1_DCDC.dep | 18 +- B-G474E-DPOW1_Keil/Objects/dcdc.o | Bin 26396 -> 33892 bytes B-G474E-DPOW1_Keil/Objects/main.o | Bin 4988 -> 5512 bytes B-G474E-DPOW1_Keil/rebuild_541.log | 6 +- 16 files changed, 2066 insertions(+), 1319 deletions(-) create mode 100644 B-G474E-DPOW1_Keil/CODE_COMMENTS.md diff --git a/B-G474E-DPOW1_Keil/B-G474E-DPOW1_DCDC.uvguix.z b/B-G474E-DPOW1_Keil/B-G474E-DPOW1_DCDC.uvguix.z index 4a23880..f830063 100644 --- a/B-G474E-DPOW1_Keil/B-G474E-DPOW1_DCDC.uvguix.z +++ b/B-G474E-DPOW1_Keil/B-G474E-DPOW1_DCDC.uvguix.z @@ -9,7 +9,20 @@ - + + + System Viewer\GPIOB + 35905 + + 163 + + + System Viewer\HRTIM_TIMA + 35904 + + 166 + + @@ -20,12 +33,12 @@ 346 Code Coverage - 443 727 + 1010 217 204 Performance Analyzer - 352 175 175 468 + 352 175 175 525 @@ -70,7 +83,7 @@ 466 Source Browser 500 - 300 + 166 @@ -1805,8 +1818,8 @@ 59392 File - 2576 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000564656C6179960000000000000003000564656C6179085F5F474E55435F5F067374646F7574000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2610 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000011444344435F537461727450776D546573749600000000000000040011444344435F537461727450776D546573740564656C6179085F5F474E55435F5F067374646F757400000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1835,7 @@ Build 996 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000012422D47343734452D44504F57315F444344439600000000000000010012422D47343734452D44504F57315F44434443000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000012422D47343734452D44504F57315F444344439600000000000000010012422D47343734452D44504F57315F44434443000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1871,11 +1884,11 @@ 0 16 - F40000004F000000C7070000D8000000 + F40000004F000000C9050000D8000000 16 - F4F6FFFFD1FFFFFFC7FDFFFF5A000000 + F4F6FFFFD1FFFFFFC9FBFFFF5A000000 @@ -1891,7 +1904,7 @@ 0 16 - 0300000066000000ED000000DC030000 + 0300000066000000ED0000004F030000 16 @@ -1911,7 +1924,7 @@ 0 16 - 0300000066000000ED000000DC030000 + 0300000066000000ED0000004F030000 16 @@ -2011,7 +2024,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2031,7 +2044,7 @@ 0 16 - F700000066000000C4070000BF000000 + F700000066000000C6050000BF000000 16 @@ -2191,7 +2204,7 @@ 0 16 - 0300000066000000ED000000DC030000 + 0300000066000000ED0000004F030000 16 @@ -2211,7 +2224,7 @@ 0 16 - 0300000066000000ED000000DC030000 + 0300000066000000ED0000004F030000 16 @@ -2231,7 +2244,7 @@ 0 16 - 030000002C0200008D05000085020000 + 03000000DC040000C407000035050000 16 @@ -2251,7 +2264,7 @@ 0 16 - 00000000F9030000C70700004E050000 + 000000006C030000C7070000C1040000 16 @@ -2261,7 +2274,7 @@ 199 199 - 0 + 1 0 0 0 @@ -2271,7 +2284,7 @@ 0 16 - 030000002C0200008D05000085020000 + 00000000D9040000C70700004E050000 16 @@ -2291,7 +2304,7 @@ 0 16 - F400000063000000C7070000D8000000 + F400000063000000C9050000D8000000 16 @@ -2311,7 +2324,7 @@ 0 16 - F700000066000000C4070000BF000000 + F700000066000000C6050000BF000000 16 @@ -2351,7 +2364,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2391,7 +2404,7 @@ 0 16 - F700000066000000C4070000BF000000 + F700000066000000C6050000BF000000 16 @@ -2411,7 +2424,7 @@ 0 16 - F700000066000000C4070000BF000000 + F700000066000000C6050000BF000000 16 @@ -2431,7 +2444,7 @@ 0 16 - F700000066000000C4070000BF000000 + F700000066000000C6050000BF000000 16 @@ -2451,7 +2464,7 @@ 0 16 - F700000066000000C4070000BF000000 + F700000066000000C6050000BF000000 16 @@ -2471,7 +2484,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2491,7 +2504,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2511,7 +2524,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2531,7 +2544,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2551,7 +2564,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2571,7 +2584,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2591,7 +2604,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2611,7 +2624,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2631,7 +2644,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2651,7 +2664,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2671,7 +2684,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2691,7 +2704,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2711,7 +2724,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2731,7 +2744,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2751,7 +2764,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2771,7 +2784,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2791,7 +2804,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2811,7 +2824,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2831,7 +2844,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2841,7 +2854,7 @@ 35904 35904 - 0 + 1 0 0 0 @@ -2851,7 +2864,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2861,7 +2874,7 @@ 35905 35905 - 0 + 1 0 0 0 @@ -2871,7 +2884,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -2891,7 +2904,7 @@ 0 16 - 0300000066000000ED000000DC030000 + 0300000066000000ED0000004F030000 16 @@ -2911,7 +2924,7 @@ 0 16 - 030000002C0200008D05000085020000 + 03000000DC040000C407000035050000 16 @@ -2931,7 +2944,7 @@ 0 16 - 030000002C0200008D05000085020000 + 03000000DC040000C407000035050000 16 @@ -2991,7 +3004,7 @@ 0 16 - 030000002C0200008D05000085020000 + 03000000DC040000C407000035050000 16 @@ -3011,7 +3024,7 @@ 0 16 - 030000002C0200008D05000085020000 + 03000000DC040000C407000035050000 16 @@ -3031,7 +3044,7 @@ 0 16 - F700000066000000C4070000BF000000 + F700000066000000C6050000BF000000 16 @@ -3051,7 +3064,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3071,7 +3084,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3091,7 +3104,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3111,7 +3124,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3131,7 +3144,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3151,7 +3164,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3171,7 +3184,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3191,7 +3204,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3211,7 +3224,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3231,7 +3244,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3251,7 +3264,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3271,7 +3284,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3291,7 +3304,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3311,7 +3324,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3331,7 +3344,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3351,7 +3364,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3371,7 +3384,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3391,7 +3404,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3411,7 +3424,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3431,7 +3444,7 @@ 0 16 - A3040000660000008D050000F8010000 + D005000066000000C40700004F030000 16 @@ -3539,15 +3552,15 @@ - 3415 - 000000000C000000000000000020000001000000FFFFFFFFFFFFFFFFF4000000D8000000C7070000DC000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000F4F6FFFFD1FFFFFFC7FDFFFF5A000000F40000004F000000C7070000D80000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000011020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0FAFFFFD1FFFFFF90FBFFFF93010000A00400004F000000900500001102000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000F5030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000F6FFFFD1FFFFFFF0F6FFFF77030000000000004F000000F0000000F50300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000F5030000C7070000F90300000100000001000010040000000100000034FCFFFF3800000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF00050000F9030000040500004E05000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000110200009005000015020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000000000000F6FFFF9701000090FBFFFF200200000000000015020000900500009E0200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000040000001000000FFFFFFFFFFFFFFFFC70700004F000000CB0700004E0500000100000002000010040000000100000083FBFFFF8404000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800040000001000000CBFDFFFFD1FFFFFF00000000D0040000CB0700004F000000000A00004E05000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000000000000000000 + 3430 + 000000000C000000000000000020000001000000FFFFFFFFFFFFFFFFF4000000D8000000C9050000DC000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000F4F6FFFFD1FFFFFFC9FBFFFF5A000000F40000004F000000C9050000D80000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000001000000FFFFFFFFFFFFFFFFC90500004F000000CD050000680300000100000002000010040000000100000026FAFFFFEE000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000001000000CDFBFFFFD1FFFFFFC7FDFFFFEA020000CD0500004F000000C70700006803000000000000404100562B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0A485254494D5F54494D4101000000408C000001000000FFFFFFFFFFFFFFFF054750494F4201000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFF15000000000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000068030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000F6FFFFD1FFFFFFF0F6FFFFEA020000000000004F000000F0000000680300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000068030000C70700006C0300000100000001000010040000000100000034FCFFFF3800000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF00050000F9030000040500004E05000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000C1040000C7070000C5040000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000F6FFFF47040000C7FDFFFFD004000000000000C5040000C70700004E0500000000000040820056060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000040000001000000FFFFFFFFFFFFFFFFC70700004F000000CB0700004E0500000100000002000010040000000100000083FBFFFF8404000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800040000001000000CBFDFFFFD1FFFFFF00000000D0040000CB0700004F000000000A00004E05000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000000000000000000 59392 File - 2576 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000564656C6179960000000000000003000564656C6179085F5F474E55435F5F067374646F7574000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2610 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000011444344435F537461727450776D546573749600000000000000040011444344435F537461727450776D546573740564656C6179085F5F474E55435F5F067374646F757400000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3579,7 +3592,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3606,9 +3619,9 @@ 0 Core\Src\main.c - 17 + 60 1 - 37 + 49 1 0 @@ -3625,7 +3638,7 @@ Core\Src\retarget.c 0 - 24 + 33 78 1 @@ -3633,9 +3646,9 @@ C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\arm\startup_stm32g474xx.s - 21 - 182 - 200 + 0 + 185 + 196 1 0 @@ -3643,8 +3656,8 @@ Core\Src\board.c 0 - 11 - 26 + 18 + 30 1 0 @@ -3652,8 +3665,8 @@ Core\Src\dcdc.c 0 - 283 - 312 + 40 + 52 1 0 diff --git a/B-G474E-DPOW1_Keil/B-G474E-DPOW1_DCDC.uvoptx b/B-G474E-DPOW1_Keil/B-G474E-DPOW1_DCDC.uvoptx index df7c6eb..82d57d9 100644 --- a/B-G474E-DPOW1_Keil/B-G474E-DPOW1_DCDC.uvoptx +++ b/B-G474E-DPOW1_Keil/B-G474E-DPOW1_DCDC.uvoptx @@ -148,46 +148,13 @@ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32G47x-8x_512 -FS08000000 -FL080000 -FP0($$Device:STM32G474RETx$CMSIS\Flash\STM32G47x-8x_512.FLM)) - - - 0 - 0 - 12 - 1 -
0
- 0 - 0 - 0 - 0 - 0 - 0 - Core\Src\board.c - - -
- - 1 - 0 - 24 - 1 -
0
- 0 - 0 - 0 - 0 - 0 - 0 - Core\Src\main.c - - -
-
+ 0 0 - 0 + 1 1 0 0 @@ -224,6 +191,16 @@ + + + System Viewer\GPIOB + 35905 + + + System Viewer\HRTIM_TIMA + 35904 + + 1 0 diff --git a/B-G474E-DPOW1_Keil/CODE_COMMENTS.md b/B-G474E-DPOW1_Keil/CODE_COMMENTS.md new file mode 100644 index 0000000..d56235f --- /dev/null +++ b/B-G474E-DPOW1_Keil/CODE_COMMENTS.md @@ -0,0 +1,101 @@ +# B-G474E-DPOW1 DCDC Code Map + +## Runtime knobs + +The live configuration object is: + +```c +g_dcdc_config +``` + +Edit it in Keil **Watch** while the target is running. + +Useful fields: + +```c +g_dcdc_config.mode +g_dcdc_config.pwm.frequency_hz +g_dcdc_config.pwm.test_duty_permille +g_dcdc_config.pwm.deadtime_enable +g_dcdc_config.pwm.deadtime_rising_ticks +g_dcdc_config.pwm.deadtime_falling_ticks +g_dcdc_config.limits.target_vout_mv +g_dcdc_config.limits.current_limit_ma +``` + +Modes: + +```c +0 = DCDC_MODE_MONITOR +1 = DCDC_MODE_PWM_TEST +2 = DCDC_MODE_CLOSED_LOOP +``` + +## Startup path + +`main.c`: + +1. `Board_Init()` starts clocks, SysTick, GPIO basics. +2. `Retarget_Init()` enables `printf()` through `USART3`. +3. `DCDC_Init()` prepares ADC and HRTIM Timer C. +4. `DCDC_Service1ms()` runs every 1 ms and applies live runtime edits. + +## HRTIM PWM path + +`dcdc.c`: + +- `hrtim1_timer_c_init()` configures HRTIM1 Timer C. +- `DCDC_StartPwmTest()` starts open-loop analyzer PWM. +- `hrtim1_apply_pwm_config()` applies live frequency and dead-time edits. +- `hrtim1_set_duty()` updates `CMP1`, which sets the PB12/PB13 split point. + +Current complementary test routing: + +```c +PB12 / CHC1: set at period, reset at CMP1 +PB13 / CHC2: set at CMP1, reset at period +``` + +Dead-time is enabled by: + +```c +timer->OUTxR |= HRTIM_OUTR_DTEN; +``` + +## ADC path + +`DCDC_ReadMeasurements()` reads: + +```c +PA1 / ADC1_IN2 = VIN +PA2 / ADC1_IN3 = input current average +PA3 / ADC1_IN4 = VOUT +``` + +Raw ADC values are converted through: + +```c +adc_raw_to_mv() +sense_mv_to_voltage_mv() +sense_mv_to_current_ma() +``` + +## Safety path + +The closed-loop mode checks: + +```c +g_dcdc_config.limits.min_vin_mv +g_dcdc_config.limits.max_vout_mv +g_dcdc_config.limits.hard_current_ma +``` + +If a limit trips, `latch_fault()` disables HRTIM outputs, clears duty, opens +the USB-PD/VIN switch, and moves the state to `DCDC_STATE_FAULT`. + +## Current safe workflow + +1. Keep `g_dcdc_config.mode = 1`. +2. Tune `g_dcdc_config.pwm.deadtime_*_ticks`. +3. Verify PB12/PB13 on the logic analyzer. +4. Only after clean waveforms, move toward closed-loop testing. diff --git a/B-G474E-DPOW1_Keil/Core/Inc/app_config.h b/B-G474E-DPOW1_Keil/Core/Inc/app_config.h index 3e1143e..5442db0 100644 --- a/B-G474E-DPOW1_Keil/Core/Inc/app_config.h +++ b/B-G474E-DPOW1_Keil/Core/Inc/app_config.h @@ -4,76 +4,84 @@ #include /* - * B-G474E-DPOW1 quick configuration. - * - * SAFETY: - * - The project configures the buck half-bridge on PB12/PB13. - * - Keep DCDC_POWER_STAGE_ENABLE at 0 until VIN, load and oscilloscope - * probes are ready. With 0 the firmware prints ADC values and prepares - * HRTIM, but does not enable HRTIM outputs. - * - If VIN comes from USB-C/USB-PD through JP1, set - * DCDC_CONNECT_USBPD_INPUT to 1 only after checking the board jumpers. - */ +## B-G474E-DPOW1 build-time defaults + +These macros are now **boot defaults**. Runtime values live in +`g_dcdc_config` and can be edited while the firmware is running. + +### Safety + +- `DCDC_POWER_STAGE_ENABLE = 0` keeps the real closed-loop power stage off. +- `DCDC_PWM_TEST_ENABLE = 1` starts the current HRTIM analyzer test. +- `DCDC_CONNECT_USBPD_INPUT = 0` keeps the USB-PD-to-VIN switch off. +*/ #define DCDC_POWER_STAGE_ENABLE 0U +#define DCDC_PWM_TEST_ENABLE 1U +#define DCDC_GPIO_PIN_TEST_ENABLE 0U #define DCDC_CONNECT_USBPD_INPUT 0U /* - * Clock startup. - * 0 = safest rescue mode: run directly from HSI16, no PLL switch. - * 1 = normal performance mode: HSI16 -> PLL -> 170 MHz. - * - * If the debugger hangs inside SystemClock_Config(), keep this at 0 until - * the board is recovered and ST-LINK connects reliably. - */ +## Clock startup + +- `0`: rescue mode, direct HSI16, no PLL switch. +- `1`: normal mode, HSI16 -> PLL -> 170 MHz. +*/ #define CLOCK_USE_PLL_170MHZ 1U #define SYSCLK_HZ 170000000UL #define HSI16_HZ 16000000UL #define USART3_BAUDRATE 115200UL -#define DEBUG_ATTACH_DELAY_LOOPS 8000000UL /* - * HRTIM Timer C drives the onboard buck leg: - * PB12 = BUCKBOOST_P1_DRIVE = HRTIM1_CHC1, high-side buck MOSFET - * PB13 = BUCKBOOST_N1_DRIVE = HRTIM1_CHC2, low-side buck MOSFET - * - * fHRCK = fHRTIM * 32. The firmware calculates the actual period from - * SystemCoreClock, so rescue HSI16 mode still works. - */ +## HRTIM Timer C defaults + +- `PB12`: `HRTIM1_CHC1` +- `PB13`: `HRTIM1_CHC2` +- `fHRCK = fHRTIM * 32` + +Live edits: + +- `g_dcdc_config.pwm.frequency_hz` +- `g_dcdc_config.pwm.test_duty_permille` +- `g_dcdc_config.pwm.deadtime_rising_ticks` +- `g_dcdc_config.pwm.deadtime_falling_ticks` +*/ #define DCDC_HRTIM_PERIOD_TICKS 27200U #define DCDC_PWM_FREQUENCY_HZ 200000UL +#define DCDC_PWM_TEST_DUTY_PERMILLE 100U +#define DCDC_PWM_TEST_DEADTIME_ENABLE 1U +#define DCDC_PWM_TEST_DEADTIME_TICKS 34U +#define DCDC_GPIO_PIN_TEST_HALF_PERIOD_MS 1U #define DCDC_MIN_DUTY_TICKS 0U #define DCDC_MAX_DUTY_TICKS 24000U #define DCDC_START_DUTY_TICKS 400U /* - * Dead-time values are expressed in HRTIM dead-time ticks. - * They are intentionally conservative starter values; verify PB12/PB13 - * with an oscilloscope before enabling the power stage. - */ +## Closed-loop dead-time defaults + +These are used when the real power stage mode is enabled. The current analyzer +test uses `g_dcdc_config.pwm.deadtime_*_ticks`. +*/ #define DCDC_DEADTIME_RISING_TICKS 110U #define DCDC_DEADTIME_FALLING_TICKS 350U /* - * ADC measurement pins on B-G474E-DPOW1: - * PA1 = BUCKBOOST_VIN (ADC1_IN2) - * PA2 = BUCKBOOST_I_IN_AVG (ADC1_IN3) - * PA3 = BUCKBOOST_VOUT (ADC1_IN4) - * - * ST X-CUBE-DPower reference values for this board use: - * Vout_Scaling = 0.198795180 -> ADC pin voltage = VOUT * 0.198795180 - * Iin_Scaling = 0.721543408 -> ADC pin voltage = IIN * 0.721543408 V/A - * - * VIN uses the same divider value by default here. If your hardware revision - * or solder bridge setup differs, adjust DCDC_VIN_SCALE_PPM after measuring. - */ +## ADC measurement defaults + +- `PA1 / ADC1_IN2`: `BUCKBOOST_VIN` +- `PA2 / ADC1_IN3`: `BUCKBOOST_I_IN_AVG` +- `PA3 / ADC1_IN4`: `BUCKBOOST_VOUT` + +Scaling starts from ST X-CUBE-DPower board values and can be adjusted after +multimeter comparison. +*/ #define ADC_REFERENCE_MV 3300U #define ADC_FULL_SCALE_COUNTS 4095U #define DCDC_VOUT_SCALE_PPM 198795UL #define DCDC_VIN_SCALE_PPM 198795UL #define DCDC_IIN_UV_PER_MA 721UL -/* Starter setpoints and protection thresholds. */ +/* ## Starter setpoints and protection thresholds */ #define DCDC_TARGET_VOUT_MV 3300U #define DCDC_MIN_VIN_MV 4500U #define DCDC_MAX_VOUT_MV 3800U @@ -81,10 +89,14 @@ #define DCDC_HARD_INPUT_CURRENT_MA 450U /* - * Simple voltage loop gains for the starter firmware. - * Duty command = feed-forward + proportional + integral - current limiting. - * Tune these gently with a current-limited supply and a scope. - */ +## Starter loop gains + +Duty command: + +`feed-forward + proportional + integral - current-limit correction` + +Tune with a current-limited supply and an oscilloscope. +*/ #define DCDC_KP_TICKS_PER_100MV 90 #define DCDC_KI_TICKS_PER_100MV 3 #define DCDC_CURRENT_LIMIT_KP 60 diff --git a/B-G474E-DPOW1_Keil/Core/Inc/dcdc.h b/B-G474E-DPOW1_Keil/Core/Inc/dcdc.h index 69f9434..d6fd750 100644 --- a/B-G474E-DPOW1_Keil/Core/Inc/dcdc.h +++ b/B-G474E-DPOW1_Keil/Core/Inc/dcdc.h @@ -4,6 +4,63 @@ #include #include +/* +## Runtime configuration model + +`g_dcdc_config` is intentionally a global `volatile` structure so it can be +edited from Keil **Watch**, **Memory**, or a future UART command parser while +the firmware is running. + +Typical live edits during the current HRTIM test: + +- `g_dcdc_config.mode = DCDC_MODE_PWM_TEST` +- `g_dcdc_config.pwm.frequency_hz = 200000` +- `g_dcdc_config.pwm.test_duty_permille = 100` +- `g_dcdc_config.pwm.deadtime_rising_ticks = 34` +- `g_dcdc_config.pwm.deadtime_falling_ticks = 34` +*/ +typedef enum +{ + DCDC_MODE_MONITOR = 0, + DCDC_MODE_PWM_TEST, + DCDC_MODE_CLOSED_LOOP +} DCDC_Mode; + +typedef struct +{ + uint32_t frequency_hz; + uint32_t test_duty_permille; + uint32_t max_duty_permille; + uint32_t deadtime_enable; + uint32_t deadtime_rising_ticks; + uint32_t deadtime_falling_ticks; +} DCDC_PwmRuntimeConfig; + +typedef struct +{ + uint32_t target_vout_mv; + uint32_t min_vin_mv; + uint32_t max_vout_mv; + uint32_t current_limit_ma; + uint32_t hard_current_ma; +} DCDC_LimitsRuntimeConfig; + +typedef struct +{ + int32_t kp_ticks_per_100mv; + int32_t ki_ticks_per_100mv; + int32_t current_limit_kp; +} DCDC_LoopRuntimeConfig; + +typedef struct +{ + uint32_t mode; + uint32_t connect_usbpd_input; + DCDC_PwmRuntimeConfig pwm; + DCDC_LimitsRuntimeConfig limits; + DCDC_LoopRuntimeConfig loop; +} DCDC_RuntimeConfig; + typedef struct { uint16_t vin_raw; @@ -18,6 +75,7 @@ typedef enum { DCDC_STATE_STOPPED = 0, DCDC_STATE_READY, + DCDC_STATE_PWM_TEST, DCDC_STATE_RUNNING, DCDC_STATE_FAULT } DCDC_State; @@ -31,17 +89,24 @@ typedef enum DCDC_FAULT_HRTIM } DCDC_Fault; +extern volatile DCDC_RuntimeConfig g_dcdc_config; + void DCDC_Init(void); void DCDC_Start(void); +void DCDC_StartPwmTest(void); void DCDC_Stop(void); +void DCDC_Service1ms(void); +void DCDC_ApplyRuntimeConfig(void); void DCDC_ControlStep(void); void DCDC_ReadMeasurements(DCDC_Measurements *out); +DCDC_Mode DCDC_GetMode(void); DCDC_State DCDC_GetState(void); DCDC_Fault DCDC_GetFault(void); bool DCDC_IsHrtimReady(void); uint32_t DCDC_GetDutyTicks(void); uint32_t DCDC_GetPeriodTicks(void); +const char *DCDC_ModeText(DCDC_Mode mode); const char *DCDC_StateText(DCDC_State state); const char *DCDC_FaultText(DCDC_Fault fault); diff --git a/B-G474E-DPOW1_Keil/Core/Src/dcdc.c b/B-G474E-DPOW1_Keil/Core/Src/dcdc.c index 0b5afac..3b689b1 100644 --- a/B-G474E-DPOW1_Keil/Core/Src/dcdc.c +++ b/B-G474E-DPOW1_Keil/Core/Src/dcdc.c @@ -7,6 +7,48 @@ #define HRTIM_TIMER_C_INDEX 2U #define ADC_SAMPLE_TIME_47CYCLES 5U #define HRTIM_DLL_READY_TIMEOUT 1000000UL +#define DCDC_MIN_PERIOD_TICKS 100UL +#define DCDC_MAX_PERIOD_TICKS 0xFFFFUL +#define DCDC_MAX_PERMILLE 1000UL + +/* +## Live configuration + +The compile-time macros in `app_config.h` only seed this object. After reset, +edit `g_dcdc_config` in Keil Watch and the 1 ms service loop applies the new +values to HRTIM and the control loop. +*/ +volatile DCDC_RuntimeConfig g_dcdc_config = +{ +#if DCDC_PWM_TEST_ENABLE + DCDC_MODE_PWM_TEST, +#elif DCDC_POWER_STAGE_ENABLE + DCDC_MODE_CLOSED_LOOP, +#else + DCDC_MODE_MONITOR, +#endif + DCDC_CONNECT_USBPD_INPUT, + { + DCDC_PWM_FREQUENCY_HZ, + DCDC_PWM_TEST_DUTY_PERMILLE, + 900U, + DCDC_PWM_TEST_DEADTIME_ENABLE, + DCDC_PWM_TEST_DEADTIME_TICKS, + DCDC_PWM_TEST_DEADTIME_TICKS + }, + { + DCDC_TARGET_VOUT_MV, + DCDC_MIN_VIN_MV, + DCDC_MAX_VOUT_MV, + DCDC_MAX_INPUT_CURRENT_MA, + DCDC_HARD_INPUT_CURRENT_MA + }, + { + DCDC_KP_TICKS_PER_100MV, + DCDC_KI_TICKS_PER_100MV, + DCDC_CURRENT_LIMIT_KP + } +}; static DCDC_State s_state = DCDC_STATE_STOPPED; static DCDC_Fault s_fault = DCDC_FAULT_NONE; @@ -22,8 +64,11 @@ static bool hrtim1_timer_c_init(void); static bool hrtim1_wait_dll_ready(void); static void hrtim1_outputs_enable(bool enable); static void hrtim1_set_duty(uint32_t duty_ticks); -static uint32_t hrtim_period_from_clock(void); +static uint32_t hrtim_period_from_frequency(uint32_t frequency_hz); +static uint32_t permille_to_ticks(uint32_t permille); +static void hrtim1_apply_pwm_config(void); static uint32_t hrtim_max_duty_ticks(void); +static uint32_t clamp_u32(uint32_t value, uint32_t min_value, uint32_t max_value); static uint32_t adc_raw_to_mv(uint16_t raw); static uint32_t sense_mv_to_voltage_mv(uint32_t sense_mv, uint32_t scale_ppm); static uint32_t sense_mv_to_current_ma(uint32_t sense_mv); @@ -61,17 +106,46 @@ void DCDC_Start(void) return; } -#if DCDC_CONNECT_USBPD_INPUT - set_usbpd_input_switch(true); -#endif + set_usbpd_input_switch(g_dcdc_config.connect_usbpd_input != 0U); s_integrator_ticks = 0; + hrtim1_apply_pwm_config(); hrtim1_set_duty(DCDC_START_DUTY_TICKS); HRTIM1->sMasterRegs.MCR |= HRTIM_MCR_TCCEN; hrtim1_outputs_enable(true); s_state = DCDC_STATE_RUNNING; } +void DCDC_StartPwmTest(void) +{ + uint32_t test_duty_ticks; + + if (s_fault != DCDC_FAULT_NONE) + { + return; + } + + if (!s_hrtim_ready) + { + latch_fault(DCDC_FAULT_HRTIM); + return; + } + + hrtim1_apply_pwm_config(); + test_duty_ticks = permille_to_ticks(g_dcdc_config.pwm.test_duty_permille); + if (test_duty_ticks == 0U) + { + test_duty_ticks = 1U; + } + + set_usbpd_input_switch(false); + s_integrator_ticks = 0; + hrtim1_set_duty(test_duty_ticks); + HRTIM1->sMasterRegs.MCR |= HRTIM_MCR_TCCEN; + hrtim1_outputs_enable(true); + s_state = DCDC_STATE_PWM_TEST; +} + void DCDC_Stop(void) { hrtim1_outputs_enable(false); @@ -81,6 +155,59 @@ void DCDC_Stop(void) s_state = DCDC_STATE_STOPPED; } +void DCDC_Service1ms(void) +{ + DCDC_Mode mode = DCDC_GetMode(); + + DCDC_ApplyRuntimeConfig(); + + switch (mode) + { + case DCDC_MODE_MONITOR: + if ((s_state == DCDC_STATE_PWM_TEST) || (s_state == DCDC_STATE_RUNNING)) + { + DCDC_Stop(); + } + break; + + case DCDC_MODE_PWM_TEST: + if (s_state != DCDC_STATE_PWM_TEST) + { + DCDC_StartPwmTest(); + } + break; + + case DCDC_MODE_CLOSED_LOOP: + if (s_state != DCDC_STATE_RUNNING) + { + DCDC_Start(); + } + if (s_state == DCDC_STATE_RUNNING) + { + DCDC_ControlStep(); + } + break; + + default: + break; + } +} + +void DCDC_ApplyRuntimeConfig(void) +{ + if (!s_hrtim_ready) + { + return; + } + + hrtim1_apply_pwm_config(); + + if (s_state == DCDC_STATE_PWM_TEST) + { + hrtim1_set_duty(permille_to_ticks(g_dcdc_config.pwm.test_duty_permille)); + } +} + void DCDC_ControlStep(void) { DCDC_Measurements m; @@ -95,19 +222,19 @@ void DCDC_ControlStep(void) return; } - if (m.vin_mv < DCDC_MIN_VIN_MV) + if (m.vin_mv < g_dcdc_config.limits.min_vin_mv) { latch_fault(DCDC_FAULT_UNDERVOLTAGE); return; } - if (m.vout_mv > DCDC_MAX_VOUT_MV) + if (m.vout_mv > g_dcdc_config.limits.max_vout_mv) { latch_fault(DCDC_FAULT_OVERVOLTAGE); return; } - if (m.iin_ma > DCDC_HARD_INPUT_CURRENT_MA) + if (m.iin_ma > g_dcdc_config.limits.hard_current_ma) { latch_fault(DCDC_FAULT_OVERCURRENT); return; @@ -121,10 +248,10 @@ void DCDC_ControlStep(void) * * This is deliberately readable, not a final compensated SMPS loop. */ - feed_forward = (int32_t)(((uint64_t)DCDC_TARGET_VOUT_MV * s_period_ticks) / m.vin_mv); - error_mv = (int32_t)DCDC_TARGET_VOUT_MV - (int32_t)m.vout_mv; + feed_forward = (int32_t)(((uint64_t)g_dcdc_config.limits.target_vout_mv * s_period_ticks) / m.vin_mv); + error_mv = (int32_t)g_dcdc_config.limits.target_vout_mv - (int32_t)m.vout_mv; - s_integrator_ticks += (error_mv * DCDC_KI_TICKS_PER_100MV) / 100; + s_integrator_ticks += (error_mv * g_dcdc_config.loop.ki_ticks_per_100mv) / 100; if (s_integrator_ticks > 3000) { s_integrator_ticks = 3000; @@ -135,12 +262,13 @@ void DCDC_ControlStep(void) } duty = feed_forward + - ((error_mv * DCDC_KP_TICKS_PER_100MV) / 100) + + ((error_mv * g_dcdc_config.loop.kp_ticks_per_100mv) / 100) + s_integrator_ticks; - if (m.iin_ma > DCDC_MAX_INPUT_CURRENT_MA) + if (m.iin_ma > g_dcdc_config.limits.current_limit_ma) { - duty -= (int32_t)((m.iin_ma - DCDC_MAX_INPUT_CURRENT_MA) * DCDC_CURRENT_LIMIT_KP); + duty -= (int32_t)((m.iin_ma - g_dcdc_config.limits.current_limit_ma) * + g_dcdc_config.loop.current_limit_kp); } if (duty < (int32_t)DCDC_MIN_DUTY_TICKS) @@ -174,6 +302,20 @@ void DCDC_ReadMeasurements(DCDC_Measurements *out) out->vout_mv = sense_mv_to_voltage_mv(vout_sense_mv, DCDC_VOUT_SCALE_PPM); } +DCDC_Mode DCDC_GetMode(void) +{ + switch ((DCDC_Mode)g_dcdc_config.mode) + { + case DCDC_MODE_MONITOR: + case DCDC_MODE_PWM_TEST: + case DCDC_MODE_CLOSED_LOOP: + return (DCDC_Mode)g_dcdc_config.mode; + + default: + return DCDC_MODE_MONITOR; + } +} + DCDC_State DCDC_GetState(void) { return s_state; @@ -205,12 +347,24 @@ const char *DCDC_StateText(DCDC_State state) { case DCDC_STATE_STOPPED: return "stopped"; case DCDC_STATE_READY: return "ready"; + case DCDC_STATE_PWM_TEST:return "pwm-test"; case DCDC_STATE_RUNNING: return "running"; case DCDC_STATE_FAULT: return "fault"; default: return "unknown"; } } +const char *DCDC_ModeText(DCDC_Mode mode) +{ + switch (mode) + { + case DCDC_MODE_MONITOR: return "monitor"; + case DCDC_MODE_PWM_TEST: return "pwm-test"; + case DCDC_MODE_CLOSED_LOOP: return "closed-loop"; + default: return "unknown"; + } +} + const char *DCDC_FaultText(DCDC_Fault fault) { switch (fault) @@ -303,9 +457,11 @@ static bool hrtim1_timer_c_init(void) RCC->APB2ENR |= RCC_APB2ENR_HRTIM1EN; (void)RCC->APB2ENR; + RCC->APB2RSTR |= RCC_APB2RSTR_HRTIM1RST; + RCC->APB2RSTR &= ~RCC_APB2RSTR_HRTIM1RST; HRTIM1->sCommonRegs.ODISR = HRTIM_ODISR_TC1ODIS | HRTIM_ODISR_TC2ODIS; - s_period_ticks = hrtim_period_from_clock(); + s_period_ticks = hrtim_period_from_frequency(g_dcdc_config.pwm.frequency_hz); HRTIM1->sCommonRegs.ICR = HRTIM_ICR_DLLRDYC; HRTIM1->sCommonRegs.DLLCR = HRTIM_DLLCR_CALEN | @@ -326,11 +482,18 @@ static bool hrtim1_timer_c_init(void) timer->CMP2xR = hrtim_max_duty_ticks(); timer->CMP3xR = 1000U; - timer->DTxR = - ((DCDC_DEADTIME_RISING_TICKS & 0x1FFUL) << HRTIM_DTR_DTR_Pos) | - ((DCDC_DEADTIME_FALLING_TICKS & 0x1FFUL) << HRTIM_DTR_DTF_Pos) | - (HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0); - +#if DCDC_PWM_TEST_ENABLE + /* + * Complementary HRTIM test without dead-time/fault handling: + * PB12/CHC1 goes active at period and inactive at CMP1. + * PB13/CHC2 goes active at CMP1 and inactive at period. + */ + timer->SETx1R = HRTIM_SET1R_PER; + timer->RSTx1R = HRTIM_RST1R_CMP1; + timer->SETx2R = HRTIM_SET2R_CMP1; + timer->RSTx2R = HRTIM_RST2R_PER; + timer->OUTxR = 0U; +#else /* * Complementary buck PWM: * CHC1 goes active at period event and inactive at CMP1. @@ -342,6 +505,9 @@ static bool hrtim1_timer_c_init(void) timer->SETx2R = HRTIM_SET2R_CMP1; timer->RSTx2R = HRTIM_RST2R_PER; timer->OUTxR = HRTIM_OUTR_DTEN | HRTIM_OUTR_FAULT1_1 | HRTIM_OUTR_FAULT2_1; +#endif + + hrtim1_apply_pwm_config(); /* Trigger point for future synchronized ADC sampling. */ HRTIM1->sCommonRegs.ADC1R = HRTIM_ADC1R_AD1TCC3; @@ -389,26 +555,64 @@ static void hrtim1_set_duty(uint32_t duty_ticks) s_duty_ticks = duty_ticks; } -static uint32_t hrtim_period_from_clock(void) +static uint32_t hrtim_period_from_frequency(uint32_t frequency_hz) { - uint64_t ticks = (((uint64_t)SystemCoreClock * 32ULL) + (DCDC_PWM_FREQUENCY_HZ / 2ULL)) / - DCDC_PWM_FREQUENCY_HZ; + uint64_t ticks; - if (ticks < 100ULL) + if (frequency_hz == 0U) { - ticks = 100ULL; + frequency_hz = DCDC_PWM_FREQUENCY_HZ; } - else if (ticks > 0xFFFFULL) + + ticks = (((uint64_t)SystemCoreClock * 32ULL) + (frequency_hz / 2ULL)) / + frequency_hz; + + if (ticks < DCDC_MIN_PERIOD_TICKS) { - ticks = 0xFFFFULL; + ticks = DCDC_MIN_PERIOD_TICKS; + } + else if (ticks > DCDC_MAX_PERIOD_TICKS) + { + ticks = DCDC_MAX_PERIOD_TICKS; } return (uint32_t)ticks; } +static uint32_t permille_to_ticks(uint32_t permille) +{ + permille = clamp_u32(permille, 0U, DCDC_MAX_PERMILLE); + return (uint32_t)(((uint64_t)s_period_ticks * permille) / DCDC_MAX_PERMILLE); +} + +static void hrtim1_apply_pwm_config(void) +{ + HRTIM_Timerx_TypeDef *timer = &HRTIM1->sTimerxRegs[HRTIM_TIMER_C_INDEX]; + uint32_t period_ticks = hrtim_period_from_frequency(g_dcdc_config.pwm.frequency_hz); + uint32_t rising_ticks = clamp_u32(g_dcdc_config.pwm.deadtime_rising_ticks, 0U, 0x1FFU); + uint32_t falling_ticks = clamp_u32(g_dcdc_config.pwm.deadtime_falling_ticks, 0U, 0x1FFU); + + s_period_ticks = period_ticks; + timer->PERxR = period_ticks; + timer->DTxR = + (rising_ticks << HRTIM_DTR_DTR_Pos) | + (falling_ticks << HRTIM_DTR_DTF_Pos) | + (HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0); + + if (g_dcdc_config.pwm.deadtime_enable != 0U) + { + timer->OUTxR |= HRTIM_OUTR_DTEN; + } + else + { + timer->OUTxR &= ~HRTIM_OUTR_DTEN; + } +} + static uint32_t hrtim_max_duty_ticks(void) { - uint32_t max_ticks = DCDC_MAX_DUTY_TICKS; + uint32_t max_permille = clamp_u32(g_dcdc_config.pwm.max_duty_permille, 1U, DCDC_MAX_PERMILLE); + uint32_t max_ticks = permille_to_ticks(max_permille); if (s_period_ticks > 10U && max_ticks >= (s_period_ticks - 1U)) { @@ -418,6 +622,21 @@ static uint32_t hrtim_max_duty_ticks(void) return max_ticks; } +static uint32_t clamp_u32(uint32_t value, uint32_t min_value, uint32_t max_value) +{ + if (value < min_value) + { + return min_value; + } + + if (value > max_value) + { + return max_value; + } + + return value; +} + static uint32_t adc_raw_to_mv(uint16_t raw) { return ((uint32_t)raw * ADC_REFERENCE_MV) / ADC_FULL_SCALE_COUNTS; diff --git a/B-G474E-DPOW1_Keil/Core/Src/main.c b/B-G474E-DPOW1_Keil/Core/Src/main.c index d6dd632..575b173 100644 --- a/B-G474E-DPOW1_Keil/Core/Src/main.c +++ b/B-G474E-DPOW1_Keil/Core/Src/main.c @@ -6,20 +6,29 @@ #include "retarget.h" #include "stm32g474xx.h" +/* +## Main loop + +The application is intentionally small: + +- board clocks and UART start first; +- `DCDC_Init()` prepares ADC and HRTIM; +- `DCDC_Service1ms()` applies live edits from `g_dcdc_config`; +- terminal output prints the current measurements and active runtime mode. +*/ +#if DCDC_GPIO_PIN_TEST_ENABLE +static void GpioPinTest_Init(void); +static void GpioPinTest_SetPhase(bool phase); +#endif + int main(void) { uint32_t last_control_ms = 0U; uint32_t last_print_ms = 0U; - volatile uint32_t debug_attach_delay; - - /* - * Short rescue window after reset. It lets ST-LINK attach before the - * firmware reconfigures clocks and power peripherals. - */ - for (debug_attach_delay = 0U; debug_attach_delay < DEBUG_ATTACH_DELAY_LOOPS; debug_attach_delay++) - { - __NOP(); - } +#if DCDC_GPIO_PIN_TEST_ENABLE + uint32_t last_gpio_test_ms = 0U; + bool gpio_test_phase = false; +#endif Board_Init(); Retarget_Init(USART3_BAUDRATE); @@ -32,23 +41,40 @@ int main(void) (unsigned long)DCDC_PWM_FREQUENCY_HZ, (unsigned long)DCDC_GetPeriodTicks()); printf("HRTIM DLL: %s\n", DCDC_IsHrtimReady() ? "ready" : "not ready"); + printf("Runtime mode: %s; edit g_dcdc_config in Keil Watch.\n", + DCDC_ModeText(DCDC_GetMode())); + printf("Runtime PWM: freq=%luHz duty=%lu/1000 deadtime=%lu rise=%lu fall=%lu ticks\n", + (unsigned long)g_dcdc_config.pwm.frequency_hz, + (unsigned long)g_dcdc_config.pwm.test_duty_permille, + (unsigned long)g_dcdc_config.pwm.deadtime_enable, + (unsigned long)g_dcdc_config.pwm.deadtime_rising_ticks, + (unsigned long)g_dcdc_config.pwm.deadtime_falling_ticks); -#if DCDC_POWER_STAGE_ENABLE - printf("Power stage: ENABLED. Check VIN/current limit before flashing.\n"); - DCDC_Start(); +#if DCDC_GPIO_PIN_TEST_ENABLE + printf("GPIO pin test: PB12/PB13 toggle as ordinary outputs.\n"); + GpioPinTest_Init(); #else - printf("Power stage: disabled in app_config.h; ADC monitor only.\n"); + printf("Runtime service active. mode=0 monitor, 1 pwm-test, 2 closed-loop.\n"); #endif while (1) { uint32_t now = Board_Millis(); +#if DCDC_GPIO_PIN_TEST_ENABLE + if ((now - last_gpio_test_ms) >= DCDC_GPIO_PIN_TEST_HALF_PERIOD_MS) + { + last_gpio_test_ms = now; + gpio_test_phase = !gpio_test_phase; + GpioPinTest_SetPhase(gpio_test_phase); + } +#else if ((now - last_control_ms) >= 1U) { last_control_ms = now; - DCDC_ControlStep(); + DCDC_Service1ms(); } +#endif if ((now - last_print_ms) >= 500U) { @@ -56,7 +82,8 @@ int main(void) last_print_ms = now; DCDC_ReadMeasurements(&m); - printf("state=%s fault=%s hrtim=%s vin=%lumV iin=%lumA vout=%lumV duty=%lu/%lu\n", + printf("mode=%s state=%s fault=%s hrtim=%s vin=%lumV iin=%lumA vout=%lumV duty=%lu/%lu dt=%lu/%lu\n", + DCDC_ModeText(DCDC_GetMode()), DCDC_StateText(DCDC_GetState()), DCDC_FaultText(DCDC_GetFault()), DCDC_IsHrtimReady() ? "ready" : "not-ready", @@ -64,7 +91,37 @@ int main(void) (unsigned long)m.iin_ma, (unsigned long)m.vout_mv, (unsigned long)DCDC_GetDutyTicks(), - (unsigned long)DCDC_GetPeriodTicks()); + (unsigned long)DCDC_GetPeriodTicks(), + (unsigned long)g_dcdc_config.pwm.deadtime_rising_ticks, + (unsigned long)g_dcdc_config.pwm.deadtime_falling_ticks); } } } + +#if DCDC_GPIO_PIN_TEST_ENABLE +static void GpioPinTest_Init(void) +{ + RCC->AHB2ENR |= RCC_AHB2ENR_GPIOBEN; + (void)RCC->AHB2ENR; + + GPIOB->MODER &= ~((3UL << (12U * 2U)) | (3UL << (13U * 2U))); + GPIOB->MODER |= ((1UL << (12U * 2U)) | (1UL << (13U * 2U))); + GPIOB->OTYPER &= ~((1UL << 12U) | (1UL << 13U)); + GPIOB->OSPEEDR |= ((3UL << (12U * 2U)) | (3UL << (13U * 2U))); + GPIOB->PUPDR &= ~((3UL << (12U * 2U)) | (3UL << (13U * 2U))); + + GpioPinTest_SetPhase(false); +} + +static void GpioPinTest_SetPhase(bool phase) +{ + if (phase) + { + GPIOB->BSRR = (1UL << 12U) | (1UL << (13U + 16U)); + } + else + { + GPIOB->BSRR = (1UL << 13U) | (1UL << (12U + 16U)); + } +} +#endif diff --git a/B-G474E-DPOW1_Keil/Listings/B-G474E-DPOW1_DCDC.map b/B-G474E-DPOW1_Keil/Listings/B-G474E-DPOW1_DCDC.map index 4183a9f..9d255c6 100644 --- a/B-G474E-DPOW1_Keil/Listings/B-G474E-DPOW1_DCDC.map +++ b/B-G474E-DPOW1_Keil/Listings/B-G474E-DPOW1_DCDC.map @@ -23,8 +23,11 @@ Section Cross References main.o(.text.main) refers to system_stm32g4xx.o(.data.SystemCoreClock) for SystemCoreClock main.o(.text.main) refers to dcdc.o(.text.DCDC_GetPeriodTicks) for DCDC_GetPeriodTicks main.o(.text.main) refers to dcdc.o(.text.DCDC_IsHrtimReady) for DCDC_IsHrtimReady + main.o(.text.main) refers to dcdc.o(.text.DCDC_GetMode) for DCDC_GetMode + main.o(.text.main) refers to dcdc.o(.text.DCDC_ModeText) for DCDC_ModeText + main.o(.text.main) refers to dcdc.o(.data.g_dcdc_config) for g_dcdc_config main.o(.text.main) refers to board.o(.text.Board_Millis) for Board_Millis - main.o(.text.main) refers to dcdc.o(.text.DCDC_ControlStep) for DCDC_ControlStep + main.o(.text.main) refers to dcdc.o(.text.DCDC_Service1ms) for DCDC_Service1ms main.o(.text.main) refers to dcdc.o(.text.DCDC_ReadMeasurements) for DCDC_ReadMeasurements main.o(.text.main) refers to dcdc.o(.text.DCDC_GetState) for DCDC_GetState main.o(.text.main) refers to dcdc.o(.text.DCDC_StateText) for DCDC_StateText @@ -78,16 +81,21 @@ Section Cross References dcdc.o(.ARM.exidx.text.set_loads_off) refers to dcdc.o(.text.set_loads_off) for [Anonymous Symbol] dcdc.o(.text.adc1_init) refers to board.o(.text.Board_DelayMs) for Board_DelayMs dcdc.o(.ARM.exidx.text.adc1_init) refers to dcdc.o(.text.adc1_init) for [Anonymous Symbol] - dcdc.o(.text.hrtim1_timer_c_init) refers to dcdc.o(.text.hrtim_period_from_clock) for hrtim_period_from_clock + dcdc.o(.text.hrtim1_timer_c_init) refers to dcdc.o(.data.g_dcdc_config) for g_dcdc_config + dcdc.o(.text.hrtim1_timer_c_init) refers to dcdc.o(.text.hrtim_period_from_frequency) for hrtim_period_from_frequency dcdc.o(.text.hrtim1_timer_c_init) refers to dcdc.o(.data.s_period_ticks) for s_period_ticks dcdc.o(.text.hrtim1_timer_c_init) refers to dcdc.o(.text.hrtim1_wait_dll_ready) for hrtim1_wait_dll_ready dcdc.o(.text.hrtim1_timer_c_init) refers to dcdc.o(.text.hrtim_max_duty_ticks) for hrtim_max_duty_ticks + dcdc.o(.text.hrtim1_timer_c_init) refers to dcdc.o(.text.hrtim1_apply_pwm_config) for hrtim1_apply_pwm_config dcdc.o(.ARM.exidx.text.hrtim1_timer_c_init) refers to dcdc.o(.text.hrtim1_timer_c_init) for [Anonymous Symbol] dcdc.o(.ARM.exidx.text.hrtim1_outputs_enable) refers to dcdc.o(.text.hrtim1_outputs_enable) for [Anonymous Symbol] dcdc.o(.text.DCDC_Start) refers to dcdc.o(.bss.s_fault) for s_fault dcdc.o(.text.DCDC_Start) refers to dcdc.o(.bss.s_hrtim_ready) for s_hrtim_ready dcdc.o(.text.DCDC_Start) refers to dcdc.o(.text.latch_fault) for latch_fault + dcdc.o(.text.DCDC_Start) refers to dcdc.o(.data.g_dcdc_config) for g_dcdc_config + dcdc.o(.text.DCDC_Start) refers to dcdc.o(.text.set_usbpd_input_switch) for set_usbpd_input_switch dcdc.o(.text.DCDC_Start) refers to dcdc.o(.bss.s_integrator_ticks) for s_integrator_ticks + dcdc.o(.text.DCDC_Start) refers to dcdc.o(.text.hrtim1_apply_pwm_config) for hrtim1_apply_pwm_config dcdc.o(.text.DCDC_Start) refers to dcdc.o(.text.hrtim1_set_duty) for hrtim1_set_duty dcdc.o(.text.DCDC_Start) refers to dcdc.o(.text.hrtim1_outputs_enable) for hrtim1_outputs_enable dcdc.o(.text.DCDC_Start) refers to dcdc.o(.bss.s_state) for s_state @@ -98,16 +106,55 @@ Section Cross References dcdc.o(.text.latch_fault) refers to dcdc.o(.bss.s_fault) for s_fault dcdc.o(.text.latch_fault) refers to dcdc.o(.bss.s_state) for s_state dcdc.o(.ARM.exidx.text.latch_fault) refers to dcdc.o(.text.latch_fault) for [Anonymous Symbol] + dcdc.o(.text.hrtim1_apply_pwm_config) refers to dcdc.o(.data.g_dcdc_config) for g_dcdc_config + dcdc.o(.text.hrtim1_apply_pwm_config) refers to dcdc.o(.text.hrtim_period_from_frequency) for hrtim_period_from_frequency + dcdc.o(.text.hrtim1_apply_pwm_config) refers to dcdc.o(.text.clamp_u32) for clamp_u32 + dcdc.o(.text.hrtim1_apply_pwm_config) refers to dcdc.o(.data.s_period_ticks) for s_period_ticks + dcdc.o(.ARM.exidx.text.hrtim1_apply_pwm_config) refers to dcdc.o(.text.hrtim1_apply_pwm_config) for [Anonymous Symbol] dcdc.o(.text.hrtim1_set_duty) refers to dcdc.o(.text.hrtim_max_duty_ticks) for hrtim_max_duty_ticks dcdc.o(.text.hrtim1_set_duty) refers to dcdc.o(.data.s_duty_ticks) for s_duty_ticks dcdc.o(.ARM.exidx.text.hrtim1_set_duty) refers to dcdc.o(.text.hrtim1_set_duty) for [Anonymous Symbol] + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.bss.s_fault) for s_fault + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.bss.s_hrtim_ready) for s_hrtim_ready + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.text.latch_fault) for latch_fault + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.text.hrtim1_apply_pwm_config) for hrtim1_apply_pwm_config + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.data.g_dcdc_config) for g_dcdc_config + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.text.permille_to_ticks) for permille_to_ticks + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.text.set_usbpd_input_switch) for set_usbpd_input_switch + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.bss.s_integrator_ticks) for s_integrator_ticks + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.text.hrtim1_set_duty) for hrtim1_set_duty + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.text.hrtim1_outputs_enable) for hrtim1_outputs_enable + dcdc.o(.text.DCDC_StartPwmTest) refers to dcdc.o(.bss.s_state) for s_state + dcdc.o(.ARM.exidx.text.DCDC_StartPwmTest) refers to dcdc.o(.text.DCDC_StartPwmTest) for [Anonymous Symbol] + dcdc.o(.text.permille_to_ticks) refers to dcdc.o(.text.clamp_u32) for clamp_u32 + dcdc.o(.text.permille_to_ticks) refers to dcdc.o(.data.s_period_ticks) for s_period_ticks + dcdc.o(.text.permille_to_ticks) refers to lludivv7m.o(.text) for __aeabi_uldivmod + dcdc.o(.ARM.exidx.text.permille_to_ticks) refers to dcdc.o(.text.permille_to_ticks) for [Anonymous Symbol] dcdc.o(.text.DCDC_Stop) refers to dcdc.o(.text.hrtim1_outputs_enable) for hrtim1_outputs_enable dcdc.o(.text.DCDC_Stop) refers to dcdc.o(.text.hrtim1_set_duty) for hrtim1_set_duty dcdc.o(.text.DCDC_Stop) refers to dcdc.o(.text.set_usbpd_input_switch) for set_usbpd_input_switch dcdc.o(.text.DCDC_Stop) refers to dcdc.o(.bss.s_state) for s_state dcdc.o(.ARM.exidx.text.DCDC_Stop) refers to dcdc.o(.text.DCDC_Stop) for [Anonymous Symbol] + dcdc.o(.text.DCDC_Service1ms) refers to dcdc.o(.text.DCDC_GetMode) for DCDC_GetMode + dcdc.o(.text.DCDC_Service1ms) refers to dcdc.o(.text.DCDC_ApplyRuntimeConfig) for DCDC_ApplyRuntimeConfig + dcdc.o(.text.DCDC_Service1ms) refers to dcdc.o(.bss.s_state) for s_state + dcdc.o(.text.DCDC_Service1ms) refers to dcdc.o(.text.DCDC_Stop) for DCDC_Stop + dcdc.o(.text.DCDC_Service1ms) refers to dcdc.o(.text.DCDC_StartPwmTest) for DCDC_StartPwmTest + dcdc.o(.text.DCDC_Service1ms) refers to dcdc.o(.text.DCDC_Start) for DCDC_Start + dcdc.o(.text.DCDC_Service1ms) refers to dcdc.o(.text.DCDC_ControlStep) for DCDC_ControlStep + dcdc.o(.ARM.exidx.text.DCDC_Service1ms) refers to dcdc.o(.text.DCDC_Service1ms) for [Anonymous Symbol] + dcdc.o(.text.DCDC_GetMode) refers to dcdc.o(.data.g_dcdc_config) for g_dcdc_config + dcdc.o(.ARM.exidx.text.DCDC_GetMode) refers to dcdc.o(.text.DCDC_GetMode) for [Anonymous Symbol] + dcdc.o(.text.DCDC_ApplyRuntimeConfig) refers to dcdc.o(.bss.s_hrtim_ready) for s_hrtim_ready + dcdc.o(.text.DCDC_ApplyRuntimeConfig) refers to dcdc.o(.text.hrtim1_apply_pwm_config) for hrtim1_apply_pwm_config + dcdc.o(.text.DCDC_ApplyRuntimeConfig) refers to dcdc.o(.bss.s_state) for s_state + dcdc.o(.text.DCDC_ApplyRuntimeConfig) refers to dcdc.o(.data.g_dcdc_config) for g_dcdc_config + dcdc.o(.text.DCDC_ApplyRuntimeConfig) refers to dcdc.o(.text.permille_to_ticks) for permille_to_ticks + dcdc.o(.text.DCDC_ApplyRuntimeConfig) refers to dcdc.o(.text.hrtim1_set_duty) for hrtim1_set_duty + dcdc.o(.ARM.exidx.text.DCDC_ApplyRuntimeConfig) refers to dcdc.o(.text.DCDC_ApplyRuntimeConfig) for [Anonymous Symbol] dcdc.o(.text.DCDC_ControlStep) refers to dcdc.o(.text.DCDC_ReadMeasurements) for DCDC_ReadMeasurements dcdc.o(.text.DCDC_ControlStep) refers to dcdc.o(.bss.s_state) for s_state + dcdc.o(.text.DCDC_ControlStep) refers to dcdc.o(.data.g_dcdc_config) for g_dcdc_config dcdc.o(.text.DCDC_ControlStep) refers to dcdc.o(.text.latch_fault) for latch_fault dcdc.o(.text.DCDC_ControlStep) refers to dcdc.o(.data.s_period_ticks) for s_period_ticks dcdc.o(.text.DCDC_ControlStep) refers to lludivv7m.o(.text) for __aeabi_uldivmod @@ -120,6 +167,9 @@ Section Cross References dcdc.o(.text.DCDC_ReadMeasurements) refers to dcdc.o(.text.sense_mv_to_voltage_mv) for sense_mv_to_voltage_mv dcdc.o(.text.DCDC_ReadMeasurements) refers to dcdc.o(.text.sense_mv_to_current_ma) for sense_mv_to_current_ma dcdc.o(.ARM.exidx.text.DCDC_ReadMeasurements) refers to dcdc.o(.text.DCDC_ReadMeasurements) for [Anonymous Symbol] + dcdc.o(.text.hrtim_max_duty_ticks) refers to dcdc.o(.data.g_dcdc_config) for g_dcdc_config + dcdc.o(.text.hrtim_max_duty_ticks) refers to dcdc.o(.text.clamp_u32) for clamp_u32 + dcdc.o(.text.hrtim_max_duty_ticks) refers to dcdc.o(.text.permille_to_ticks) for permille_to_ticks dcdc.o(.text.hrtim_max_duty_ticks) refers to dcdc.o(.data.s_period_ticks) for s_period_ticks dcdc.o(.ARM.exidx.text.hrtim_max_duty_ticks) refers to dcdc.o(.text.hrtim_max_duty_ticks) for [Anonymous Symbol] dcdc.o(.ARM.exidx.text.adc1_read_channel) refers to dcdc.o(.text.adc1_read_channel) for [Anonymous Symbol] @@ -139,12 +189,15 @@ Section Cross References dcdc.o(.ARM.exidx.text.DCDC_GetPeriodTicks) refers to dcdc.o(.text.DCDC_GetPeriodTicks) for [Anonymous Symbol] dcdc.o(.text.DCDC_StateText) refers to dcdc.o(.rodata.str1.1) for .L.str dcdc.o(.ARM.exidx.text.DCDC_StateText) refers to dcdc.o(.text.DCDC_StateText) for [Anonymous Symbol] - dcdc.o(.text.DCDC_FaultText) refers to dcdc.o(.rodata.str1.1) for .L.str.5 + dcdc.o(.text.DCDC_ModeText) refers to dcdc.o(.rodata.str1.1) for .L.str.6 + dcdc.o(.ARM.exidx.text.DCDC_ModeText) refers to dcdc.o(.text.DCDC_ModeText) for [Anonymous Symbol] + dcdc.o(.text.DCDC_FaultText) refers to dcdc.o(.rodata.str1.1) for .L.str.8 dcdc.o(.ARM.exidx.text.DCDC_FaultText) refers to dcdc.o(.text.DCDC_FaultText) for [Anonymous Symbol] - dcdc.o(.text.hrtim_period_from_clock) refers to system_stm32g4xx.o(.data.SystemCoreClock) for SystemCoreClock - dcdc.o(.text.hrtim_period_from_clock) refers to lludivv7m.o(.text) for __aeabi_uldivmod - dcdc.o(.ARM.exidx.text.hrtim_period_from_clock) refers to dcdc.o(.text.hrtim_period_from_clock) for [Anonymous Symbol] + dcdc.o(.text.hrtim_period_from_frequency) refers to system_stm32g4xx.o(.data.SystemCoreClock) for SystemCoreClock + dcdc.o(.text.hrtim_period_from_frequency) refers to lludivv7m.o(.text) for __aeabi_uldivmod + dcdc.o(.ARM.exidx.text.hrtim_period_from_frequency) refers to dcdc.o(.text.hrtim_period_from_frequency) for [Anonymous Symbol] dcdc.o(.ARM.exidx.text.hrtim1_wait_dll_ready) refers to dcdc.o(.text.hrtim1_wait_dll_ready) for [Anonymous Symbol] + dcdc.o(.ARM.exidx.text.clamp_u32) refers to dcdc.o(.text.clamp_u32) for [Anonymous Symbol] retarget.o(.text) refers (Special) to use_no_semi_2.o(.text) for __use_no_semihosting retarget.o(.text.Retarget_Init) refers (Special) to use_no_semi_2.o(.text) for __use_no_semihosting retarget.o(.text.Retarget_Init) refers to retarget.o(.text.gpio_pc10_pc11_to_usart3) for gpio_pc10_pc11_to_usart3 @@ -521,12 +574,16 @@ Removing Unused input sections from the image. Removing dcdc.o(.ARM.exidx.text.adc1_init), (8 bytes). Removing dcdc.o(.ARM.exidx.text.hrtim1_timer_c_init), (8 bytes). Removing dcdc.o(.ARM.exidx.text.hrtim1_outputs_enable), (8 bytes). - Removing dcdc.o(.text.DCDC_Start), (100 bytes). Removing dcdc.o(.ARM.exidx.text.DCDC_Start), (8 bytes). Removing dcdc.o(.ARM.exidx.text.latch_fault), (8 bytes). + Removing dcdc.o(.ARM.exidx.text.hrtim1_apply_pwm_config), (8 bytes). Removing dcdc.o(.ARM.exidx.text.hrtim1_set_duty), (8 bytes). - Removing dcdc.o(.text.DCDC_Stop), (56 bytes). + Removing dcdc.o(.ARM.exidx.text.DCDC_StartPwmTest), (8 bytes). + Removing dcdc.o(.ARM.exidx.text.permille_to_ticks), (8 bytes). Removing dcdc.o(.ARM.exidx.text.DCDC_Stop), (8 bytes). + Removing dcdc.o(.ARM.exidx.text.DCDC_Service1ms), (8 bytes). + Removing dcdc.o(.ARM.exidx.text.DCDC_GetMode), (8 bytes). + Removing dcdc.o(.ARM.exidx.text.DCDC_ApplyRuntimeConfig), (8 bytes). Removing dcdc.o(.ARM.exidx.text.DCDC_ControlStep), (8 bytes). Removing dcdc.o(.ARM.exidx.text.DCDC_ReadMeasurements), (8 bytes). Removing dcdc.o(.ARM.exidx.text.hrtim_max_duty_ticks), (8 bytes). @@ -540,9 +597,11 @@ Removing Unused input sections from the image. Removing dcdc.o(.ARM.exidx.text.DCDC_GetDutyTicks), (8 bytes). Removing dcdc.o(.ARM.exidx.text.DCDC_GetPeriodTicks), (8 bytes). Removing dcdc.o(.ARM.exidx.text.DCDC_StateText), (8 bytes). + Removing dcdc.o(.ARM.exidx.text.DCDC_ModeText), (8 bytes). Removing dcdc.o(.ARM.exidx.text.DCDC_FaultText), (8 bytes). - Removing dcdc.o(.ARM.exidx.text.hrtim_period_from_clock), (8 bytes). + Removing dcdc.o(.ARM.exidx.text.hrtim_period_from_frequency), (8 bytes). Removing dcdc.o(.ARM.exidx.text.hrtim1_wait_dll_ready), (8 bytes). + Removing dcdc.o(.ARM.exidx.text.clamp_u32), (8 bytes). Removing retarget.o(.text), (0 bytes). Removing retarget.o(.ARM.exidx.text.Retarget_Init), (8 bytes). Removing retarget.o(.ARM.exidx.text.gpio_pc10_pc11_to_usart3), (8 bytes). @@ -559,7 +618,7 @@ Removing Unused input sections from the image. Removing system_stm32g4xx.o(.ARM.exidx.text.SystemCoreClockUpdate), (8 bytes). Removing system_stm32g4xx.o(.rodata.APBPrescTable), (8 bytes). -62 unused section(s) (total 714 bytes) removed from the image. +68 unused section(s) (total 622 bytes) removed from the image. ============================================================================== @@ -833,155 +892,173 @@ Image Symbol Table [Anonymous Symbol] 0x080015dc Section 0 board.o(.text.Board_Millis) Clock_UseHsi16 0x080015e9 Thumb Code 58 board.o(.text.Clock_UseHsi16) [Anonymous Symbol] 0x080015e8 Section 0 board.o(.text.Clock_UseHsi16) - [Anonymous Symbol] 0x08001624 Section 0 dcdc.o(.text.DCDC_ControlStep) - [Anonymous Symbol] 0x08001794 Section 0 dcdc.o(.text.DCDC_FaultText) - [Anonymous Symbol] 0x08001800 Section 0 dcdc.o(.text.DCDC_GetDutyTicks) - [Anonymous Symbol] 0x0800180c Section 0 dcdc.o(.text.DCDC_GetFault) - [Anonymous Symbol] 0x08001818 Section 0 dcdc.o(.text.DCDC_GetPeriodTicks) - [Anonymous Symbol] 0x08001824 Section 0 dcdc.o(.text.DCDC_GetState) - [Anonymous Symbol] 0x08001830 Section 0 dcdc.o(.text.DCDC_Init) - [Anonymous Symbol] 0x08001880 Section 0 dcdc.o(.text.DCDC_IsHrtimReady) - [Anonymous Symbol] 0x08001890 Section 0 dcdc.o(.text.DCDC_ReadMeasurements) - [Anonymous Symbol] 0x08001900 Section 0 dcdc.o(.text.DCDC_StateText) - Flash_SetLatency 0x08001961 Thumb Code 102 board.o(.text.Flash_SetLatency) - [Anonymous Symbol] 0x08001960 Section 0 board.o(.text.Flash_SetLatency) - [Anonymous Symbol] 0x080019c8 Section 0 retarget.o(.text.Retarget_Init) - [Anonymous Symbol] 0x08001a2c Section 0 retarget.o(.text.Retarget_PutChar) - SysTick_Config 0x08001a5d Thumb Code 82 board.o(.text.SysTick_Config) - [Anonymous Symbol] 0x08001a5c Section 0 board.o(.text.SysTick_Config) - [Anonymous Symbol] 0x08001ab0 Section 0 board.o(.text.SysTick_Handler) - SystemClock_Config 0x08001ac1 Thumb Code 274 board.o(.text.SystemClock_Config) - [Anonymous Symbol] 0x08001ac0 Section 0 board.o(.text.SystemClock_Config) - [Anonymous Symbol] 0x08001bd4 Section 0 system_stm32g4xx.o(.text.SystemCoreClockUpdate) - [Anonymous Symbol] 0x08001ca4 Section 0 system_stm32g4xx.o(.text.SystemInit) - __NVIC_SetPriority 0x08001cc5 Thumb Code 66 board.o(.text.__NVIC_SetPriority) - [Anonymous Symbol] 0x08001cc4 Section 0 board.o(.text.__NVIC_SetPriority) - [Anonymous Symbol] 0x08001d08 Section 0 retarget.o(.text._sys_exit) - adc1_init 0x08001d15 Thumb Code 166 dcdc.o(.text.adc1_init) - [Anonymous Symbol] 0x08001d14 Section 0 dcdc.o(.text.adc1_init) - adc1_read_channel 0x08001dbd Thumb Code 74 dcdc.o(.text.adc1_read_channel) - [Anonymous Symbol] 0x08001dbc Section 0 dcdc.o(.text.adc1_read_channel) - adc_raw_to_mv 0x08001e09 Thumb Code 32 dcdc.o(.text.adc_raw_to_mv) - [Anonymous Symbol] 0x08001e08 Section 0 dcdc.o(.text.adc_raw_to_mv) - [Anonymous Symbol] 0x08001e28 Section 0 retarget.o(.text.fputc) - gpio_init_for_dcdc 0x08001e51 Thumb Code 228 dcdc.o(.text.gpio_init_for_dcdc) - [Anonymous Symbol] 0x08001e50 Section 0 dcdc.o(.text.gpio_init_for_dcdc) - gpio_pc10_pc11_to_usart3 0x08001f35 Thumb Code 116 retarget.o(.text.gpio_pc10_pc11_to_usart3) - [Anonymous Symbol] 0x08001f34 Section 0 retarget.o(.text.gpio_pc10_pc11_to_usart3) - hrtim1_outputs_enable 0x08001fa9 Thumb Code 48 dcdc.o(.text.hrtim1_outputs_enable) - [Anonymous Symbol] 0x08001fa8 Section 0 dcdc.o(.text.hrtim1_outputs_enable) - hrtim1_set_duty 0x08001fd9 Thumb Code 76 dcdc.o(.text.hrtim1_set_duty) - [Anonymous Symbol] 0x08001fd8 Section 0 dcdc.o(.text.hrtim1_set_duty) - hrtim1_timer_c_init 0x08002025 Thumb Code 266 dcdc.o(.text.hrtim1_timer_c_init) - [Anonymous Symbol] 0x08002024 Section 0 dcdc.o(.text.hrtim1_timer_c_init) - hrtim1_wait_dll_ready 0x08002131 Thumb Code 76 dcdc.o(.text.hrtim1_wait_dll_ready) - [Anonymous Symbol] 0x08002130 Section 0 dcdc.o(.text.hrtim1_wait_dll_ready) - hrtim_max_duty_ticks 0x0800217d Thumb Code 66 dcdc.o(.text.hrtim_max_duty_ticks) - [Anonymous Symbol] 0x0800217c Section 0 dcdc.o(.text.hrtim_max_duty_ticks) - hrtim_period_from_clock 0x080021c1 Thumb Code 122 dcdc.o(.text.hrtim_period_from_clock) - [Anonymous Symbol] 0x080021c0 Section 0 dcdc.o(.text.hrtim_period_from_clock) - latch_fault 0x0800223d Thumb Code 74 dcdc.o(.text.latch_fault) - [Anonymous Symbol] 0x0800223c Section 0 dcdc.o(.text.latch_fault) - [Anonymous Symbol] 0x08002288 Section 0 main.o(.text.main) - sense_mv_to_current_ma 0x080023f5 Thumb Code 30 dcdc.o(.text.sense_mv_to_current_ma) - [Anonymous Symbol] 0x080023f4 Section 0 dcdc.o(.text.sense_mv_to_current_ma) - sense_mv_to_voltage_mv 0x08002415 Thumb Code 34 dcdc.o(.text.sense_mv_to_voltage_mv) - [Anonymous Symbol] 0x08002414 Section 0 dcdc.o(.text.sense_mv_to_voltage_mv) - set_loads_off 0x08002439 Thumb Code 16 dcdc.o(.text.set_loads_off) - [Anonymous Symbol] 0x08002438 Section 0 dcdc.o(.text.set_loads_off) - set_usbpd_input_switch 0x08002449 Thumb Code 48 dcdc.o(.text.set_usbpd_input_switch) - [Anonymous Symbol] 0x08002448 Section 0 dcdc.o(.text.set_usbpd_input_switch) - wait_mask_clear 0x08002479 Thumb Code 74 board.o(.text.wait_mask_clear) - [Anonymous Symbol] 0x08002478 Section 0 board.o(.text.wait_mask_clear) - wait_mask_set 0x080024c5 Thumb Code 78 board.o(.text.wait_mask_set) - [Anonymous Symbol] 0x080024c4 Section 0 board.o(.text.wait_mask_set) - wait_mask_value 0x08002515 Thumb Code 80 board.o(.text.wait_mask_value) - [Anonymous Symbol] 0x08002514 Section 0 board.o(.text.wait_mask_value) - CL$$btod_d2e 0x08002564 Section 62 btod.o(CL$$btod_d2e) - CL$$btod_d2e_denorm_low 0x080025a2 Section 70 btod.o(CL$$btod_d2e_denorm_low) - CL$$btod_d2e_norm_op1 0x080025e8 Section 96 btod.o(CL$$btod_d2e_norm_op1) - CL$$btod_div_common 0x08002648 Section 824 btod.o(CL$$btod_div_common) - CL$$btod_e2e 0x08002980 Section 220 btod.o(CL$$btod_e2e) - CL$$btod_ediv 0x08002a5c Section 42 btod.o(CL$$btod_ediv) - CL$$btod_emul 0x08002a86 Section 42 btod.o(CL$$btod_emul) - CL$$btod_mult_common 0x08002ab0 Section 580 btod.o(CL$$btod_mult_common) - i.__ARM_fpclassify 0x08002cf4 Section 0 fpclassify.o(i.__ARM_fpclassify) - i._is_digit 0x08002d24 Section 0 __printf_wp.o(i._is_digit) - locale$$code 0x08002d34 Section 44 lc_numeric_c.o(locale$$code) - locale$$code 0x08002d60 Section 44 lc_ctype_c.o(locale$$code) - $v0 0x08002d8c Number 0 fpinit.o(x$fpl$fpinit) - x$fpl$fpinit 0x08002d8c Section 26 fpinit.o(x$fpl$fpinit) - $v0 0x08002da6 Number 0 printf1.o(x$fpl$printf1) - x$fpl$printf1 0x08002da6 Section 4 printf1.o(x$fpl$printf1) - $v0 0x08002daa Number 0 printf2.o(x$fpl$printf2) - x$fpl$printf2 0x08002daa Section 4 printf2.o(x$fpl$printf2) - x$fpl$usenofp 0x08002dae Section 0 usenofp.o(x$fpl$usenofp) - initial_mbstate 0x08002db0 Data 8 _printf_wctomb.o(.constdata) - .constdata 0x08002db0 Section 8 _printf_wctomb.o(.constdata) - uc_hextab 0x08002db8 Data 20 _printf_hex_int_ll_ptr.o(.constdata) - .constdata 0x08002db8 Section 40 _printf_hex_int_ll_ptr.o(.constdata) - lc_hextab 0x08002dcc Data 20 _printf_hex_int_ll_ptr.o(.constdata) - maptable 0x08002de0 Data 17 __printf_flags_ss_wp.o(.constdata) - .constdata 0x08002de0 Section 17 __printf_flags_ss_wp.o(.constdata) - lc_hextab 0x08002df1 Data 19 _printf_fp_hex.o(.constdata) - .constdata 0x08002df1 Section 38 _printf_fp_hex.o(.constdata) - uc_hextab 0x08002e04 Data 19 _printf_fp_hex.o(.constdata) - tenpwrs_x 0x08002e18 Data 60 bigflt0.o(.constdata) - .constdata 0x08002e18 Section 148 bigflt0.o(.constdata) - tenpwrs_i 0x08002e54 Data 64 bigflt0.o(.constdata) - .L.str.7 0x08002ebc Data 58 main.o(.rodata.str1.1) - [Anonymous Symbol] 0x08002ebc Section 0 main.o(.rodata.str1.1) - .L.str.1 0x08002ef6 Data 34 main.o(.rodata.str1.1) - .L.str.4 0x08002f18 Data 15 main.o(.rodata.str1.1) - .L.str.3 0x08002f27 Data 37 main.o(.rodata.str1.1) - .L.str 0x08002f4c Data 37 main.o(.rodata.str1.1) - .L.str.8 0x08002f71 Data 72 main.o(.rodata.str1.1) - .L.str.2 0x08002fb9 Data 25 main.o(.rodata.str1.1) - .L.str.6 0x08002fd2 Data 10 main.o(.rodata.str1.1) - .L.str.9 0x08002fdc Data 10 main.o(.rodata.str1.1) - .L.str.1 0x08002fe0 Data 6 main.o(.rodata.str1.1) - .L.str.5 0x08002fe0 Data 6 main.o(.rodata.str1.1) - .L.str 0x08002fe6 Data 8 dcdc.o(.rodata.str1.1) - [Anonymous Symbol] 0x08002fe6 Section 0 dcdc.o(.rodata.str1.1) - .L.str.6 0x08002fee Data 17 dcdc.o(.rodata.str1.1) - .L.str.7 0x08002fff Data 17 dcdc.o(.rodata.str1.1) - .L.str.5 0x08003010 Data 5 dcdc.o(.rodata.str1.1) - .L.str.2 0x08003015 Data 8 dcdc.o(.rodata.str1.1) - .L.str.4 0x0800301d Data 8 dcdc.o(.rodata.str1.1) - .L.str.3 0x08003025 Data 6 dcdc.o(.rodata.str1.1) - .L.str.8 0x0800302b Data 18 dcdc.o(.rodata.str1.1) - .L.str.9 0x0800303d Data 18 dcdc.o(.rodata.str1.1) - locale$$data 0x08003070 Section 28 lc_numeric_c.o(locale$$data) - __lcnum_c_name 0x08003074 Data 2 lc_numeric_c.o(locale$$data) - __lcnum_c_start 0x0800307c Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_point 0x08003088 Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_thousands 0x0800308a Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_grouping 0x0800308b Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_end 0x0800308c Data 0 lc_numeric_c.o(locale$$data) - locale$$data 0x0800308c Section 272 lc_ctype_c.o(locale$$data) - __lcctype_c_name 0x08003090 Data 2 lc_ctype_c.o(locale$$data) - __lcctype_c_start 0x08003098 Data 0 lc_ctype_c.o(locale$$data) - __lcctype_c_end 0x0800319c Data 0 lc_ctype_c.o(locale$$data) - s_duty_ticks 0x20000004 Data 4 dcdc.o(.data.s_duty_ticks) - [Anonymous Symbol] 0x20000004 Section 0 dcdc.o(.data.s_duty_ticks) - s_period_ticks 0x20000008 Data 4 dcdc.o(.data.s_period_ticks) - [Anonymous Symbol] 0x20000008 Section 0 dcdc.o(.data.s_period_ticks) - .bss 0x20000010 Section 96 libspace.o(.bss) - s_fault 0x200000c4 Data 1 dcdc.o(.bss.s_fault) - [Anonymous Symbol] 0x200000c4 Section 0 dcdc.o(.bss.s_fault) - s_hrtim_ready 0x200000c5 Data 1 dcdc.o(.bss.s_hrtim_ready) - [Anonymous Symbol] 0x200000c5 Section 0 dcdc.o(.bss.s_hrtim_ready) - s_integrator_ticks 0x200000c8 Data 4 dcdc.o(.bss.s_integrator_ticks) - [Anonymous Symbol] 0x200000c8 Section 0 dcdc.o(.bss.s_integrator_ticks) - s_ms_ticks 0x200000cc Data 4 board.o(.bss.s_ms_ticks) - [Anonymous Symbol] 0x200000cc Section 0 board.o(.bss.s_ms_ticks) - s_state 0x200000d0 Data 1 dcdc.o(.bss.s_state) - [Anonymous Symbol] 0x200000d0 Section 0 dcdc.o(.bss.s_state) - Heap_Mem 0x200000d8 Data 512 startup_stm32g474xx.o(HEAP) - HEAP 0x200000d8 Section 512 startup_stm32g474xx.o(HEAP) - Stack_Mem 0x200002d8 Data 1024 startup_stm32g474xx.o(STACK) - STACK 0x200002d8 Section 1024 startup_stm32g474xx.o(STACK) - __initial_sp 0x200006d8 Data 0 startup_stm32g474xx.o(STACK) + [Anonymous Symbol] 0x08001624 Section 0 dcdc.o(.text.DCDC_ApplyRuntimeConfig) + [Anonymous Symbol] 0x08001664 Section 0 dcdc.o(.text.DCDC_ControlStep) + [Anonymous Symbol] 0x080017fc Section 0 dcdc.o(.text.DCDC_FaultText) + [Anonymous Symbol] 0x08001868 Section 0 dcdc.o(.text.DCDC_GetDutyTicks) + [Anonymous Symbol] 0x08001874 Section 0 dcdc.o(.text.DCDC_GetFault) + [Anonymous Symbol] 0x08001880 Section 0 dcdc.o(.text.DCDC_GetMode) + [Anonymous Symbol] 0x080018b4 Section 0 dcdc.o(.text.DCDC_GetPeriodTicks) + [Anonymous Symbol] 0x080018c0 Section 0 dcdc.o(.text.DCDC_GetState) + [Anonymous Symbol] 0x080018cc Section 0 dcdc.o(.text.DCDC_Init) + [Anonymous Symbol] 0x0800191c Section 0 dcdc.o(.text.DCDC_IsHrtimReady) + [Anonymous Symbol] 0x0800192c Section 0 dcdc.o(.text.DCDC_ModeText) + [Anonymous Symbol] 0x08001984 Section 0 dcdc.o(.text.DCDC_ReadMeasurements) + [Anonymous Symbol] 0x080019f4 Section 0 dcdc.o(.text.DCDC_Service1ms) + [Anonymous Symbol] 0x08001a94 Section 0 dcdc.o(.text.DCDC_Start) + [Anonymous Symbol] 0x08001b10 Section 0 dcdc.o(.text.DCDC_StartPwmTest) + [Anonymous Symbol] 0x08001ba0 Section 0 dcdc.o(.text.DCDC_StateText) + [Anonymous Symbol] 0x08001c0c Section 0 dcdc.o(.text.DCDC_Stop) + Flash_SetLatency 0x08001c45 Thumb Code 102 board.o(.text.Flash_SetLatency) + [Anonymous Symbol] 0x08001c44 Section 0 board.o(.text.Flash_SetLatency) + [Anonymous Symbol] 0x08001cac Section 0 retarget.o(.text.Retarget_Init) + [Anonymous Symbol] 0x08001d10 Section 0 retarget.o(.text.Retarget_PutChar) + SysTick_Config 0x08001d41 Thumb Code 82 board.o(.text.SysTick_Config) + [Anonymous Symbol] 0x08001d40 Section 0 board.o(.text.SysTick_Config) + [Anonymous Symbol] 0x08001d94 Section 0 board.o(.text.SysTick_Handler) + SystemClock_Config 0x08001da5 Thumb Code 274 board.o(.text.SystemClock_Config) + [Anonymous Symbol] 0x08001da4 Section 0 board.o(.text.SystemClock_Config) + [Anonymous Symbol] 0x08001eb8 Section 0 system_stm32g4xx.o(.text.SystemCoreClockUpdate) + [Anonymous Symbol] 0x08001f88 Section 0 system_stm32g4xx.o(.text.SystemInit) + __NVIC_SetPriority 0x08001fa9 Thumb Code 66 board.o(.text.__NVIC_SetPriority) + [Anonymous Symbol] 0x08001fa8 Section 0 board.o(.text.__NVIC_SetPriority) + [Anonymous Symbol] 0x08001fec Section 0 retarget.o(.text._sys_exit) + adc1_init 0x08001ff9 Thumb Code 166 dcdc.o(.text.adc1_init) + [Anonymous Symbol] 0x08001ff8 Section 0 dcdc.o(.text.adc1_init) + adc1_read_channel 0x080020a1 Thumb Code 74 dcdc.o(.text.adc1_read_channel) + [Anonymous Symbol] 0x080020a0 Section 0 dcdc.o(.text.adc1_read_channel) + adc_raw_to_mv 0x080020ed Thumb Code 32 dcdc.o(.text.adc_raw_to_mv) + [Anonymous Symbol] 0x080020ec Section 0 dcdc.o(.text.adc_raw_to_mv) + clamp_u32 0x0800210d Thumb Code 52 dcdc.o(.text.clamp_u32) + [Anonymous Symbol] 0x0800210c Section 0 dcdc.o(.text.clamp_u32) + [Anonymous Symbol] 0x08002140 Section 0 retarget.o(.text.fputc) + gpio_init_for_dcdc 0x08002169 Thumb Code 228 dcdc.o(.text.gpio_init_for_dcdc) + [Anonymous Symbol] 0x08002168 Section 0 dcdc.o(.text.gpio_init_for_dcdc) + gpio_pc10_pc11_to_usart3 0x0800224d Thumb Code 116 retarget.o(.text.gpio_pc10_pc11_to_usart3) + [Anonymous Symbol] 0x0800224c Section 0 retarget.o(.text.gpio_pc10_pc11_to_usart3) + hrtim1_apply_pwm_config 0x080022c1 Thumb Code 142 dcdc.o(.text.hrtim1_apply_pwm_config) + [Anonymous Symbol] 0x080022c0 Section 0 dcdc.o(.text.hrtim1_apply_pwm_config) + hrtim1_outputs_enable 0x08002351 Thumb Code 48 dcdc.o(.text.hrtim1_outputs_enable) + [Anonymous Symbol] 0x08002350 Section 0 dcdc.o(.text.hrtim1_outputs_enable) + hrtim1_set_duty 0x08002381 Thumb Code 76 dcdc.o(.text.hrtim1_set_duty) + [Anonymous Symbol] 0x08002380 Section 0 dcdc.o(.text.hrtim1_set_duty) + hrtim1_timer_c_init 0x080023cd Thumb Code 290 dcdc.o(.text.hrtim1_timer_c_init) + [Anonymous Symbol] 0x080023cc Section 0 dcdc.o(.text.hrtim1_timer_c_init) + hrtim1_wait_dll_ready 0x080024f1 Thumb Code 76 dcdc.o(.text.hrtim1_wait_dll_ready) + [Anonymous Symbol] 0x080024f0 Section 0 dcdc.o(.text.hrtim1_wait_dll_ready) + hrtim_max_duty_ticks 0x0800253d Thumb Code 92 dcdc.o(.text.hrtim_max_duty_ticks) + [Anonymous Symbol] 0x0800253c Section 0 dcdc.o(.text.hrtim_max_duty_ticks) + hrtim_period_from_frequency 0x08002599 Thumb Code 140 dcdc.o(.text.hrtim_period_from_frequency) + [Anonymous Symbol] 0x08002598 Section 0 dcdc.o(.text.hrtim_period_from_frequency) + latch_fault 0x08002625 Thumb Code 74 dcdc.o(.text.latch_fault) + [Anonymous Symbol] 0x08002624 Section 0 dcdc.o(.text.latch_fault) + [Anonymous Symbol] 0x08002670 Section 0 main.o(.text.main) + permille_to_ticks 0x0800282d Thumb Code 52 dcdc.o(.text.permille_to_ticks) + [Anonymous Symbol] 0x0800282c Section 0 dcdc.o(.text.permille_to_ticks) + sense_mv_to_current_ma 0x08002861 Thumb Code 30 dcdc.o(.text.sense_mv_to_current_ma) + [Anonymous Symbol] 0x08002860 Section 0 dcdc.o(.text.sense_mv_to_current_ma) + sense_mv_to_voltage_mv 0x08002881 Thumb Code 34 dcdc.o(.text.sense_mv_to_voltage_mv) + [Anonymous Symbol] 0x08002880 Section 0 dcdc.o(.text.sense_mv_to_voltage_mv) + set_loads_off 0x080028a5 Thumb Code 16 dcdc.o(.text.set_loads_off) + [Anonymous Symbol] 0x080028a4 Section 0 dcdc.o(.text.set_loads_off) + set_usbpd_input_switch 0x080028b5 Thumb Code 48 dcdc.o(.text.set_usbpd_input_switch) + [Anonymous Symbol] 0x080028b4 Section 0 dcdc.o(.text.set_usbpd_input_switch) + wait_mask_clear 0x080028e5 Thumb Code 74 board.o(.text.wait_mask_clear) + [Anonymous Symbol] 0x080028e4 Section 0 board.o(.text.wait_mask_clear) + wait_mask_set 0x08002931 Thumb Code 78 board.o(.text.wait_mask_set) + [Anonymous Symbol] 0x08002930 Section 0 board.o(.text.wait_mask_set) + wait_mask_value 0x08002981 Thumb Code 80 board.o(.text.wait_mask_value) + [Anonymous Symbol] 0x08002980 Section 0 board.o(.text.wait_mask_value) + CL$$btod_d2e 0x080029d0 Section 62 btod.o(CL$$btod_d2e) + CL$$btod_d2e_denorm_low 0x08002a0e Section 70 btod.o(CL$$btod_d2e_denorm_low) + CL$$btod_d2e_norm_op1 0x08002a54 Section 96 btod.o(CL$$btod_d2e_norm_op1) + CL$$btod_div_common 0x08002ab4 Section 824 btod.o(CL$$btod_div_common) + CL$$btod_e2e 0x08002dec Section 220 btod.o(CL$$btod_e2e) + CL$$btod_ediv 0x08002ec8 Section 42 btod.o(CL$$btod_ediv) + CL$$btod_emul 0x08002ef2 Section 42 btod.o(CL$$btod_emul) + CL$$btod_mult_common 0x08002f1c Section 580 btod.o(CL$$btod_mult_common) + i.__ARM_fpclassify 0x08003160 Section 0 fpclassify.o(i.__ARM_fpclassify) + i._is_digit 0x08003190 Section 0 __printf_wp.o(i._is_digit) + locale$$code 0x080031a0 Section 44 lc_numeric_c.o(locale$$code) + locale$$code 0x080031cc Section 44 lc_ctype_c.o(locale$$code) + $v0 0x080031f8 Number 0 fpinit.o(x$fpl$fpinit) + x$fpl$fpinit 0x080031f8 Section 26 fpinit.o(x$fpl$fpinit) + $v0 0x08003212 Number 0 printf1.o(x$fpl$printf1) + x$fpl$printf1 0x08003212 Section 4 printf1.o(x$fpl$printf1) + $v0 0x08003216 Number 0 printf2.o(x$fpl$printf2) + x$fpl$printf2 0x08003216 Section 4 printf2.o(x$fpl$printf2) + x$fpl$usenofp 0x0800321a Section 0 usenofp.o(x$fpl$usenofp) + initial_mbstate 0x0800321c Data 8 _printf_wctomb.o(.constdata) + .constdata 0x0800321c Section 8 _printf_wctomb.o(.constdata) + uc_hextab 0x08003224 Data 20 _printf_hex_int_ll_ptr.o(.constdata) + .constdata 0x08003224 Section 40 _printf_hex_int_ll_ptr.o(.constdata) + lc_hextab 0x08003238 Data 20 _printf_hex_int_ll_ptr.o(.constdata) + maptable 0x0800324c Data 17 __printf_flags_ss_wp.o(.constdata) + .constdata 0x0800324c Section 17 __printf_flags_ss_wp.o(.constdata) + lc_hextab 0x0800325d Data 19 _printf_fp_hex.o(.constdata) + .constdata 0x0800325d Section 38 _printf_fp_hex.o(.constdata) + uc_hextab 0x08003270 Data 19 _printf_fp_hex.o(.constdata) + tenpwrs_x 0x08003284 Data 60 bigflt0.o(.constdata) + .constdata 0x08003284 Section 148 bigflt0.o(.constdata) + tenpwrs_i 0x080032c0 Data 64 bigflt0.o(.constdata) + .L.str.7 0x08003328 Data 53 main.o(.rodata.str1.1) + [Anonymous Symbol] 0x08003328 Section 0 main.o(.rodata.str1.1) + .L.str.9 0x0800335d Data 68 main.o(.rodata.str1.1) + .L.str.1 0x080033a1 Data 34 main.o(.rodata.str1.1) + .L.str.4 0x080033c3 Data 15 main.o(.rodata.str1.1) + .L.str.3 0x080033d2 Data 37 main.o(.rodata.str1.1) + .L.str.8 0x080033f7 Data 76 main.o(.rodata.str1.1) + .L.str 0x08003443 Data 37 main.o(.rodata.str1.1) + .L.str.10 0x08003468 Data 91 main.o(.rodata.str1.1) + .L.str.2 0x080034c3 Data 25 main.o(.rodata.str1.1) + .L.str.6 0x080034dc Data 10 main.o(.rodata.str1.1) + .L.str.11 0x080034e6 Data 10 main.o(.rodata.str1.1) + .L.str.1 0x080034ea Data 6 main.o(.rodata.str1.1) + .L.str.5 0x080034ea Data 6 main.o(.rodata.str1.1) + .L.str 0x080034f0 Data 8 dcdc.o(.rodata.str1.1) + [Anonymous Symbol] 0x080034f0 Section 0 dcdc.o(.rodata.str1.1) + .L.str.9 0x080034f8 Data 17 dcdc.o(.rodata.str1.1) + .L.str.10 0x08003509 Data 17 dcdc.o(.rodata.str1.1) + .L.str.8 0x0800351a Data 5 dcdc.o(.rodata.str1.1) + .L.str.3 0x0800351f Data 8 dcdc.o(.rodata.str1.1) + .L.str.5 0x08003527 Data 8 dcdc.o(.rodata.str1.1) + .L.str.7 0x0800352f Data 12 dcdc.o(.rodata.str1.1) + .L.str.6 0x0800353b Data 8 dcdc.o(.rodata.str1.1) + .L.str.4 0x08003543 Data 6 dcdc.o(.rodata.str1.1) + .L.str.11 0x08003549 Data 18 dcdc.o(.rodata.str1.1) + .L.str.2 0x0800355b Data 9 dcdc.o(.rodata.str1.1) + .L.str.12 0x08003564 Data 18 dcdc.o(.rodata.str1.1) + locale$$data 0x08003598 Section 28 lc_numeric_c.o(locale$$data) + __lcnum_c_name 0x0800359c Data 2 lc_numeric_c.o(locale$$data) + __lcnum_c_start 0x080035a4 Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_point 0x080035b0 Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_thousands 0x080035b2 Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_grouping 0x080035b3 Data 0 lc_numeric_c.o(locale$$data) + __lcnum_c_end 0x080035b4 Data 0 lc_numeric_c.o(locale$$data) + locale$$data 0x080035b4 Section 272 lc_ctype_c.o(locale$$data) + __lcctype_c_name 0x080035b8 Data 2 lc_ctype_c.o(locale$$data) + __lcctype_c_start 0x080035c0 Data 0 lc_ctype_c.o(locale$$data) + __lcctype_c_end 0x080036c4 Data 0 lc_ctype_c.o(locale$$data) + s_duty_ticks 0x20000044 Data 4 dcdc.o(.data.s_duty_ticks) + [Anonymous Symbol] 0x20000044 Section 0 dcdc.o(.data.s_duty_ticks) + s_period_ticks 0x20000048 Data 4 dcdc.o(.data.s_period_ticks) + [Anonymous Symbol] 0x20000048 Section 0 dcdc.o(.data.s_period_ticks) + .bss 0x20000050 Section 96 libspace.o(.bss) + s_fault 0x20000104 Data 1 dcdc.o(.bss.s_fault) + [Anonymous Symbol] 0x20000104 Section 0 dcdc.o(.bss.s_fault) + s_hrtim_ready 0x20000105 Data 1 dcdc.o(.bss.s_hrtim_ready) + [Anonymous Symbol] 0x20000105 Section 0 dcdc.o(.bss.s_hrtim_ready) + s_integrator_ticks 0x20000108 Data 4 dcdc.o(.bss.s_integrator_ticks) + [Anonymous Symbol] 0x20000108 Section 0 dcdc.o(.bss.s_integrator_ticks) + s_ms_ticks 0x2000010c Data 4 board.o(.bss.s_ms_ticks) + [Anonymous Symbol] 0x2000010c Section 0 board.o(.bss.s_ms_ticks) + s_state 0x20000110 Data 1 dcdc.o(.bss.s_state) + [Anonymous Symbol] 0x20000110 Section 0 dcdc.o(.bss.s_state) + Heap_Mem 0x20000118 Data 512 startup_stm32g474xx.o(HEAP) + HEAP 0x20000118 Section 512 startup_stm32g474xx.o(HEAP) + Stack_Mem 0x20000318 Data 1024 startup_stm32g474xx.o(STACK) + STACK 0x20000318 Section 1024 startup_stm32g474xx.o(STACK) + __initial_sp 0x20000718 Data 0 startup_stm32g474xx.o(STACK) Global Symbols @@ -1268,50 +1345,58 @@ Image Symbol Table Board_FatalError 0x080015a5 Thumb Code 8 board.o(.text.Board_FatalError) Board_Init 0x080015ad Thumb Code 46 board.o(.text.Board_Init) Board_Millis 0x080015dd Thumb Code 12 board.o(.text.Board_Millis) - DCDC_ControlStep 0x08001625 Thumb Code 366 dcdc.o(.text.DCDC_ControlStep) - DCDC_FaultText 0x08001795 Thumb Code 108 dcdc.o(.text.DCDC_FaultText) - DCDC_GetDutyTicks 0x08001801 Thumb Code 12 dcdc.o(.text.DCDC_GetDutyTicks) - DCDC_GetFault 0x0800180d Thumb Code 12 dcdc.o(.text.DCDC_GetFault) - DCDC_GetPeriodTicks 0x08001819 Thumb Code 12 dcdc.o(.text.DCDC_GetPeriodTicks) - DCDC_GetState 0x08001825 Thumb Code 12 dcdc.o(.text.DCDC_GetState) - DCDC_Init 0x08001831 Thumb Code 78 dcdc.o(.text.DCDC_Init) - DCDC_IsHrtimReady 0x08001881 Thumb Code 16 dcdc.o(.text.DCDC_IsHrtimReady) - DCDC_ReadMeasurements 0x08001891 Thumb Code 112 dcdc.o(.text.DCDC_ReadMeasurements) - DCDC_StateText 0x08001901 Thumb Code 94 dcdc.o(.text.DCDC_StateText) - Retarget_Init 0x080019c9 Thumb Code 98 retarget.o(.text.Retarget_Init) - Retarget_PutChar 0x08001a2d Thumb Code 48 retarget.o(.text.Retarget_PutChar) - SysTick_Handler 0x08001ab1 Thumb Code 16 board.o(.text.SysTick_Handler) - SystemCoreClockUpdate 0x08001bd5 Thumb Code 206 system_stm32g4xx.o(.text.SystemCoreClockUpdate) - SystemInit 0x08001ca5 Thumb Code 32 system_stm32g4xx.o(.text.SystemInit) - _sys_exit 0x08001d09 Thumb Code 10 retarget.o(.text._sys_exit) - fputc 0x08001e29 Thumb Code 38 retarget.o(.text.fputc) - main 0x08002289 Thumb Code 362 main.o(.text.main) - _btod_d2e 0x08002565 Thumb Code 62 btod.o(CL$$btod_d2e) - _d2e_denorm_low 0x080025a3 Thumb Code 70 btod.o(CL$$btod_d2e_denorm_low) - _d2e_norm_op1 0x080025e9 Thumb Code 96 btod.o(CL$$btod_d2e_norm_op1) - __btod_div_common 0x08002649 Thumb Code 696 btod.o(CL$$btod_div_common) - _e2e 0x08002981 Thumb Code 220 btod.o(CL$$btod_e2e) - _btod_ediv 0x08002a5d Thumb Code 42 btod.o(CL$$btod_ediv) - _btod_emul 0x08002a87 Thumb Code 42 btod.o(CL$$btod_emul) - __btod_mult_common 0x08002ab1 Thumb Code 580 btod.o(CL$$btod_mult_common) - __ARM_fpclassify 0x08002cf5 Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) - _is_digit 0x08002d25 Thumb Code 14 __printf_wp.o(i._is_digit) - _get_lc_numeric 0x08002d35 Thumb Code 44 lc_numeric_c.o(locale$$code) - _get_lc_ctype 0x08002d61 Thumb Code 44 lc_ctype_c.o(locale$$code) - _fp_init 0x08002d8d Thumb Code 26 fpinit.o(x$fpl$fpinit) - __fplib_config_fpu_vfp 0x08002da5 Thumb Code 0 fpinit.o(x$fpl$fpinit) - __fplib_config_pureend_doubles 0x08002da5 Thumb Code 0 fpinit.o(x$fpl$fpinit) - _printf_fp_dec 0x08002da7 Thumb Code 4 printf1.o(x$fpl$printf1) - _printf_fp_hex 0x08002dab Thumb Code 4 printf2.o(x$fpl$printf2) - __I$use$fp 0x08002dae Number 0 usenofp.o(x$fpl$usenofp) - AHBPrescTable 0x08002eac Data 16 system_stm32g4xx.o(.rodata.AHBPrescTable) - Region$$Table$$Base 0x08003050 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x08003070 Number 0 anon$$obj.o(Region$$Table) - __ctype 0x08003099 Data 0 lc_ctype_c.o(locale$$data) + DCDC_ApplyRuntimeConfig 0x08001625 Thumb Code 62 dcdc.o(.text.DCDC_ApplyRuntimeConfig) + DCDC_ControlStep 0x08001665 Thumb Code 406 dcdc.o(.text.DCDC_ControlStep) + DCDC_FaultText 0x080017fd Thumb Code 108 dcdc.o(.text.DCDC_FaultText) + DCDC_GetDutyTicks 0x08001869 Thumb Code 12 dcdc.o(.text.DCDC_GetDutyTicks) + DCDC_GetFault 0x08001875 Thumb Code 12 dcdc.o(.text.DCDC_GetFault) + DCDC_GetMode 0x08001881 Thumb Code 52 dcdc.o(.text.DCDC_GetMode) + DCDC_GetPeriodTicks 0x080018b5 Thumb Code 12 dcdc.o(.text.DCDC_GetPeriodTicks) + DCDC_GetState 0x080018c1 Thumb Code 12 dcdc.o(.text.DCDC_GetState) + DCDC_Init 0x080018cd Thumb Code 78 dcdc.o(.text.DCDC_Init) + DCDC_IsHrtimReady 0x0800191d Thumb Code 16 dcdc.o(.text.DCDC_IsHrtimReady) + DCDC_ModeText 0x0800192d Thumb Code 88 dcdc.o(.text.DCDC_ModeText) + DCDC_ReadMeasurements 0x08001985 Thumb Code 112 dcdc.o(.text.DCDC_ReadMeasurements) + DCDC_Service1ms 0x080019f5 Thumb Code 160 dcdc.o(.text.DCDC_Service1ms) + DCDC_Start 0x08001a95 Thumb Code 124 dcdc.o(.text.DCDC_Start) + DCDC_StartPwmTest 0x08001b11 Thumb Code 142 dcdc.o(.text.DCDC_StartPwmTest) + DCDC_StateText 0x08001ba1 Thumb Code 108 dcdc.o(.text.DCDC_StateText) + DCDC_Stop 0x08001c0d Thumb Code 56 dcdc.o(.text.DCDC_Stop) + Retarget_Init 0x08001cad Thumb Code 98 retarget.o(.text.Retarget_Init) + Retarget_PutChar 0x08001d11 Thumb Code 48 retarget.o(.text.Retarget_PutChar) + SysTick_Handler 0x08001d95 Thumb Code 16 board.o(.text.SysTick_Handler) + SystemCoreClockUpdate 0x08001eb9 Thumb Code 206 system_stm32g4xx.o(.text.SystemCoreClockUpdate) + SystemInit 0x08001f89 Thumb Code 32 system_stm32g4xx.o(.text.SystemInit) + _sys_exit 0x08001fed Thumb Code 10 retarget.o(.text._sys_exit) + fputc 0x08002141 Thumb Code 38 retarget.o(.text.fputc) + main 0x08002671 Thumb Code 444 main.o(.text.main) + _btod_d2e 0x080029d1 Thumb Code 62 btod.o(CL$$btod_d2e) + _d2e_denorm_low 0x08002a0f Thumb Code 70 btod.o(CL$$btod_d2e_denorm_low) + _d2e_norm_op1 0x08002a55 Thumb Code 96 btod.o(CL$$btod_d2e_norm_op1) + __btod_div_common 0x08002ab5 Thumb Code 696 btod.o(CL$$btod_div_common) + _e2e 0x08002ded Thumb Code 220 btod.o(CL$$btod_e2e) + _btod_ediv 0x08002ec9 Thumb Code 42 btod.o(CL$$btod_ediv) + _btod_emul 0x08002ef3 Thumb Code 42 btod.o(CL$$btod_emul) + __btod_mult_common 0x08002f1d Thumb Code 580 btod.o(CL$$btod_mult_common) + __ARM_fpclassify 0x08003161 Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) + _is_digit 0x08003191 Thumb Code 14 __printf_wp.o(i._is_digit) + _get_lc_numeric 0x080031a1 Thumb Code 44 lc_numeric_c.o(locale$$code) + _get_lc_ctype 0x080031cd Thumb Code 44 lc_ctype_c.o(locale$$code) + _fp_init 0x080031f9 Thumb Code 26 fpinit.o(x$fpl$fpinit) + __fplib_config_fpu_vfp 0x08003211 Thumb Code 0 fpinit.o(x$fpl$fpinit) + __fplib_config_pureend_doubles 0x08003211 Thumb Code 0 fpinit.o(x$fpl$fpinit) + _printf_fp_dec 0x08003213 Thumb Code 4 printf1.o(x$fpl$printf1) + _printf_fp_hex 0x08003217 Thumb Code 4 printf2.o(x$fpl$printf2) + __I$use$fp 0x0800321a Number 0 usenofp.o(x$fpl$usenofp) + AHBPrescTable 0x08003318 Data 16 system_stm32g4xx.o(.rodata.AHBPrescTable) + Region$$Table$$Base 0x08003578 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x08003598 Number 0 anon$$obj.o(Region$$Table) + __ctype 0x080035c1 Data 0 lc_ctype_c.o(locale$$data) SystemCoreClock 0x20000000 Data 4 system_stm32g4xx.o(.data.SystemCoreClock) - __libspace_start 0x20000010 Data 96 libspace.o(.bss) - __stdout 0x20000070 Data 84 retarget.o(.bss.__stdout) - __temporary_stack_top$libspace 0x20000070 Data 0 libspace.o(.bss) + g_dcdc_config 0x20000004 Data 64 dcdc.o(.data.g_dcdc_config) + __libspace_start 0x20000050 Data 96 libspace.o(.bss) + __stdout 0x200000b0 Data 84 retarget.o(.bss.__stdout) + __temporary_stack_top$libspace 0x200000b0 Data 0 libspace.o(.bss) @@ -1321,127 +1406,127 @@ Memory Map of the image Image Entry point : 0x080001d9 - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000031b0, Max: 0x00080000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00003718, Max: 0x00080000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000319c, Max: 0x00080000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000036c4, Max: 0x00080000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x08000000 0x08000000 0x000001d8 Data RO 3 RESET startup_stm32g474xx.o - 0x080001d8 0x080001d8 0x00000008 Code RO 169 * !!!main c_w.l(__main.o) - 0x080001e0 0x080001e0 0x0000005c Code RO 512 !!!scatter c_w.l(__scatter.o) - 0x0800023c 0x0800023c 0x0000001a Code RO 516 !!handler_copy c_w.l(__scatter_copy.o) + 0x080001d8 0x080001d8 0x00000008 Code RO 186 * !!!main c_w.l(__main.o) + 0x080001e0 0x080001e0 0x0000005c Code RO 529 !!!scatter c_w.l(__scatter.o) + 0x0800023c 0x0800023c 0x0000001a Code RO 533 !!handler_copy c_w.l(__scatter_copy.o) 0x08000256 0x08000256 0x00000002 PAD - 0x08000258 0x08000258 0x00000002 Code RO 513 !!handler_null c_w.l(__scatter.o) + 0x08000258 0x08000258 0x00000002 Code RO 530 !!handler_null c_w.l(__scatter.o) 0x0800025a 0x0800025a 0x00000002 PAD - 0x0800025c 0x0800025c 0x0000001c Code RO 518 !!handler_zi c_w.l(__scatter_zi.o) - 0x08000278 0x08000278 0x00000000 Code RO 257 .ARM.Collect$$_printf_percent$$00000000 c_w.l(_printf_percent.o) - 0x08000278 0x08000278 0x00000006 Code RO 246 .ARM.Collect$$_printf_percent$$00000001 c_w.l(_printf_n.o) - 0x0800027e 0x0800027e 0x00000006 Code RO 248 .ARM.Collect$$_printf_percent$$00000002 c_w.l(_printf_p.o) - 0x08000284 0x08000284 0x00000006 Code RO 253 .ARM.Collect$$_printf_percent$$00000003 c_w.l(_printf_f.o) - 0x0800028a 0x0800028a 0x00000006 Code RO 254 .ARM.Collect$$_printf_percent$$00000004 c_w.l(_printf_e.o) - 0x08000290 0x08000290 0x00000006 Code RO 255 .ARM.Collect$$_printf_percent$$00000005 c_w.l(_printf_g.o) - 0x08000296 0x08000296 0x00000006 Code RO 256 .ARM.Collect$$_printf_percent$$00000006 c_w.l(_printf_a.o) - 0x0800029c 0x0800029c 0x0000000a Code RO 261 .ARM.Collect$$_printf_percent$$00000007 c_w.l(_printf_ll.o) - 0x080002a6 0x080002a6 0x00000006 Code RO 250 .ARM.Collect$$_printf_percent$$00000008 c_w.l(_printf_i.o) - 0x080002ac 0x080002ac 0x00000006 Code RO 251 .ARM.Collect$$_printf_percent$$00000009 c_w.l(_printf_d.o) - 0x080002b2 0x080002b2 0x00000006 Code RO 252 .ARM.Collect$$_printf_percent$$0000000A c_w.l(_printf_u.o) - 0x080002b8 0x080002b8 0x00000006 Code RO 249 .ARM.Collect$$_printf_percent$$0000000B c_w.l(_printf_o.o) - 0x080002be 0x080002be 0x00000006 Code RO 247 .ARM.Collect$$_printf_percent$$0000000C c_w.l(_printf_x.o) - 0x080002c4 0x080002c4 0x00000006 Code RO 258 .ARM.Collect$$_printf_percent$$0000000D c_w.l(_printf_lli.o) - 0x080002ca 0x080002ca 0x00000006 Code RO 259 .ARM.Collect$$_printf_percent$$0000000E c_w.l(_printf_lld.o) - 0x080002d0 0x080002d0 0x00000006 Code RO 260 .ARM.Collect$$_printf_percent$$0000000F c_w.l(_printf_llu.o) - 0x080002d6 0x080002d6 0x00000006 Code RO 265 .ARM.Collect$$_printf_percent$$00000010 c_w.l(_printf_llo.o) - 0x080002dc 0x080002dc 0x00000006 Code RO 266 .ARM.Collect$$_printf_percent$$00000011 c_w.l(_printf_llx.o) - 0x080002e2 0x080002e2 0x0000000a Code RO 262 .ARM.Collect$$_printf_percent$$00000012 c_w.l(_printf_l.o) - 0x080002ec 0x080002ec 0x00000006 Code RO 244 .ARM.Collect$$_printf_percent$$00000013 c_w.l(_printf_c.o) - 0x080002f2 0x080002f2 0x00000006 Code RO 245 .ARM.Collect$$_printf_percent$$00000014 c_w.l(_printf_s.o) - 0x080002f8 0x080002f8 0x00000006 Code RO 263 .ARM.Collect$$_printf_percent$$00000015 c_w.l(_printf_lc.o) - 0x080002fe 0x080002fe 0x00000006 Code RO 264 .ARM.Collect$$_printf_percent$$00000016 c_w.l(_printf_ls.o) - 0x08000304 0x08000304 0x00000004 Code RO 309 .ARM.Collect$$_printf_percent$$00000017 c_w.l(_printf_percent_end.o) - 0x08000308 0x08000308 0x00000002 Code RO 370 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) - 0x0800030a 0x0800030a 0x00000004 Code RO 394 .ARM.Collect$$libinit$$00000001 c_w.l(libinit2.o) - 0x0800030e 0x0800030e 0x00000000 Code RO 397 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) - 0x0800030e 0x0800030e 0x00000000 Code RO 399 .ARM.Collect$$libinit$$00000006 c_w.l(libinit2.o) - 0x0800030e 0x0800030e 0x00000000 Code RO 402 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) - 0x0800030e 0x0800030e 0x00000000 Code RO 404 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) - 0x0800030e 0x0800030e 0x00000000 Code RO 406 .ARM.Collect$$libinit$$00000010 c_w.l(libinit2.o) - 0x0800030e 0x0800030e 0x00000006 Code RO 407 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) - 0x08000314 0x08000314 0x00000000 Code RO 409 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) - 0x08000314 0x08000314 0x0000000c Code RO 410 .ARM.Collect$$libinit$$00000014 c_w.l(libinit2.o) - 0x08000320 0x08000320 0x00000000 Code RO 411 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) - 0x08000320 0x08000320 0x00000000 Code RO 413 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) - 0x08000320 0x08000320 0x0000000a Code RO 414 .ARM.Collect$$libinit$$00000018 c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 415 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 417 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 419 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 421 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 423 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 425 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 427 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 429 .ARM.Collect$$libinit$$00000027 c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 433 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 435 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 437 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000000 Code RO 439 .ARM.Collect$$libinit$$00000034 c_w.l(libinit2.o) - 0x0800032a 0x0800032a 0x00000002 Code RO 440 .ARM.Collect$$libinit$$00000035 c_w.l(libinit2.o) - 0x0800032c 0x0800032c 0x00000002 Code RO 466 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) - 0x0800032e 0x0800032e 0x00000000 Code RO 494 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) - 0x0800032e 0x0800032e 0x00000000 Code RO 496 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) - 0x0800032e 0x0800032e 0x00000000 Code RO 499 .ARM.Collect$$libshutdown$$00000007 c_w.l(libshutdown2.o) - 0x0800032e 0x0800032e 0x00000000 Code RO 502 .ARM.Collect$$libshutdown$$0000000A c_w.l(libshutdown2.o) - 0x0800032e 0x0800032e 0x00000000 Code RO 504 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) - 0x0800032e 0x0800032e 0x00000000 Code RO 507 .ARM.Collect$$libshutdown$$0000000F c_w.l(libshutdown2.o) - 0x0800032e 0x0800032e 0x00000002 Code RO 508 .ARM.Collect$$libshutdown$$00000010 c_w.l(libshutdown2.o) - 0x08000330 0x08000330 0x00000000 Code RO 173 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) - 0x08000330 0x08000330 0x00000000 Code RO 276 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) - 0x08000330 0x08000330 0x00000006 Code RO 288 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) - 0x08000336 0x08000336 0x00000000 Code RO 278 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) - 0x08000336 0x08000336 0x00000004 Code RO 279 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) - 0x0800033a 0x0800033a 0x00000000 Code RO 281 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) - 0x0800033a 0x0800033a 0x00000008 Code RO 282 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) - 0x08000342 0x08000342 0x00000002 Code RO 379 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) - 0x08000344 0x08000344 0x00000000 Code RO 442 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) - 0x08000344 0x08000344 0x00000004 Code RO 443 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) - 0x08000348 0x08000348 0x00000006 Code RO 444 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) + 0x0800025c 0x0800025c 0x0000001c Code RO 535 !!handler_zi c_w.l(__scatter_zi.o) + 0x08000278 0x08000278 0x00000000 Code RO 274 .ARM.Collect$$_printf_percent$$00000000 c_w.l(_printf_percent.o) + 0x08000278 0x08000278 0x00000006 Code RO 263 .ARM.Collect$$_printf_percent$$00000001 c_w.l(_printf_n.o) + 0x0800027e 0x0800027e 0x00000006 Code RO 265 .ARM.Collect$$_printf_percent$$00000002 c_w.l(_printf_p.o) + 0x08000284 0x08000284 0x00000006 Code RO 270 .ARM.Collect$$_printf_percent$$00000003 c_w.l(_printf_f.o) + 0x0800028a 0x0800028a 0x00000006 Code RO 271 .ARM.Collect$$_printf_percent$$00000004 c_w.l(_printf_e.o) + 0x08000290 0x08000290 0x00000006 Code RO 272 .ARM.Collect$$_printf_percent$$00000005 c_w.l(_printf_g.o) + 0x08000296 0x08000296 0x00000006 Code RO 273 .ARM.Collect$$_printf_percent$$00000006 c_w.l(_printf_a.o) + 0x0800029c 0x0800029c 0x0000000a Code RO 278 .ARM.Collect$$_printf_percent$$00000007 c_w.l(_printf_ll.o) + 0x080002a6 0x080002a6 0x00000006 Code RO 267 .ARM.Collect$$_printf_percent$$00000008 c_w.l(_printf_i.o) + 0x080002ac 0x080002ac 0x00000006 Code RO 268 .ARM.Collect$$_printf_percent$$00000009 c_w.l(_printf_d.o) + 0x080002b2 0x080002b2 0x00000006 Code RO 269 .ARM.Collect$$_printf_percent$$0000000A c_w.l(_printf_u.o) + 0x080002b8 0x080002b8 0x00000006 Code RO 266 .ARM.Collect$$_printf_percent$$0000000B c_w.l(_printf_o.o) + 0x080002be 0x080002be 0x00000006 Code RO 264 .ARM.Collect$$_printf_percent$$0000000C c_w.l(_printf_x.o) + 0x080002c4 0x080002c4 0x00000006 Code RO 275 .ARM.Collect$$_printf_percent$$0000000D c_w.l(_printf_lli.o) + 0x080002ca 0x080002ca 0x00000006 Code RO 276 .ARM.Collect$$_printf_percent$$0000000E c_w.l(_printf_lld.o) + 0x080002d0 0x080002d0 0x00000006 Code RO 277 .ARM.Collect$$_printf_percent$$0000000F c_w.l(_printf_llu.o) + 0x080002d6 0x080002d6 0x00000006 Code RO 282 .ARM.Collect$$_printf_percent$$00000010 c_w.l(_printf_llo.o) + 0x080002dc 0x080002dc 0x00000006 Code RO 283 .ARM.Collect$$_printf_percent$$00000011 c_w.l(_printf_llx.o) + 0x080002e2 0x080002e2 0x0000000a Code RO 279 .ARM.Collect$$_printf_percent$$00000012 c_w.l(_printf_l.o) + 0x080002ec 0x080002ec 0x00000006 Code RO 261 .ARM.Collect$$_printf_percent$$00000013 c_w.l(_printf_c.o) + 0x080002f2 0x080002f2 0x00000006 Code RO 262 .ARM.Collect$$_printf_percent$$00000014 c_w.l(_printf_s.o) + 0x080002f8 0x080002f8 0x00000006 Code RO 280 .ARM.Collect$$_printf_percent$$00000015 c_w.l(_printf_lc.o) + 0x080002fe 0x080002fe 0x00000006 Code RO 281 .ARM.Collect$$_printf_percent$$00000016 c_w.l(_printf_ls.o) + 0x08000304 0x08000304 0x00000004 Code RO 326 .ARM.Collect$$_printf_percent$$00000017 c_w.l(_printf_percent_end.o) + 0x08000308 0x08000308 0x00000002 Code RO 387 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) + 0x0800030a 0x0800030a 0x00000004 Code RO 411 .ARM.Collect$$libinit$$00000001 c_w.l(libinit2.o) + 0x0800030e 0x0800030e 0x00000000 Code RO 414 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) + 0x0800030e 0x0800030e 0x00000000 Code RO 416 .ARM.Collect$$libinit$$00000006 c_w.l(libinit2.o) + 0x0800030e 0x0800030e 0x00000000 Code RO 419 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) + 0x0800030e 0x0800030e 0x00000000 Code RO 421 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) + 0x0800030e 0x0800030e 0x00000000 Code RO 423 .ARM.Collect$$libinit$$00000010 c_w.l(libinit2.o) + 0x0800030e 0x0800030e 0x00000006 Code RO 424 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) + 0x08000314 0x08000314 0x00000000 Code RO 426 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) + 0x08000314 0x08000314 0x0000000c Code RO 427 .ARM.Collect$$libinit$$00000014 c_w.l(libinit2.o) + 0x08000320 0x08000320 0x00000000 Code RO 428 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) + 0x08000320 0x08000320 0x00000000 Code RO 430 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) + 0x08000320 0x08000320 0x0000000a Code RO 431 .ARM.Collect$$libinit$$00000018 c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 432 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 434 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 436 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 438 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 440 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 442 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 444 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 446 .ARM.Collect$$libinit$$00000027 c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 450 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 452 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 454 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000000 Code RO 456 .ARM.Collect$$libinit$$00000034 c_w.l(libinit2.o) + 0x0800032a 0x0800032a 0x00000002 Code RO 457 .ARM.Collect$$libinit$$00000035 c_w.l(libinit2.o) + 0x0800032c 0x0800032c 0x00000002 Code RO 483 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) + 0x0800032e 0x0800032e 0x00000000 Code RO 511 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) + 0x0800032e 0x0800032e 0x00000000 Code RO 513 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) + 0x0800032e 0x0800032e 0x00000000 Code RO 516 .ARM.Collect$$libshutdown$$00000007 c_w.l(libshutdown2.o) + 0x0800032e 0x0800032e 0x00000000 Code RO 519 .ARM.Collect$$libshutdown$$0000000A c_w.l(libshutdown2.o) + 0x0800032e 0x0800032e 0x00000000 Code RO 521 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) + 0x0800032e 0x0800032e 0x00000000 Code RO 524 .ARM.Collect$$libshutdown$$0000000F c_w.l(libshutdown2.o) + 0x0800032e 0x0800032e 0x00000002 Code RO 525 .ARM.Collect$$libshutdown$$00000010 c_w.l(libshutdown2.o) + 0x08000330 0x08000330 0x00000000 Code RO 190 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) + 0x08000330 0x08000330 0x00000000 Code RO 293 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) + 0x08000330 0x08000330 0x00000006 Code RO 305 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) + 0x08000336 0x08000336 0x00000000 Code RO 295 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) + 0x08000336 0x08000336 0x00000004 Code RO 296 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) + 0x0800033a 0x0800033a 0x00000000 Code RO 298 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) + 0x0800033a 0x0800033a 0x00000008 Code RO 299 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) + 0x08000342 0x08000342 0x00000002 Code RO 396 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) + 0x08000344 0x08000344 0x00000000 Code RO 459 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) + 0x08000344 0x08000344 0x00000004 Code RO 460 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) + 0x08000348 0x08000348 0x00000006 Code RO 461 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) 0x0800034e 0x0800034e 0x00000002 PAD 0x08000350 0x08000350 0x00000040 Code RO 4 .text startup_stm32g474xx.o - 0x08000390 0x08000390 0x00000002 Code RO 161 .text c_w.l(use_no_semi_2.o) - 0x08000392 0x08000392 0x000000f0 Code RO 163 .text c_w.l(lludivv7m.o) + 0x08000390 0x08000390 0x00000002 Code RO 178 .text c_w.l(use_no_semi_2.o) + 0x08000392 0x08000392 0x000000f0 Code RO 180 .text c_w.l(lludivv7m.o) 0x08000482 0x08000482 0x00000002 PAD - 0x08000484 0x08000484 0x00000018 Code RO 165 .text c_w.l(printf.o) - 0x0800049c 0x0800049c 0x00000006 Code RO 167 .text c_w.l(heapauxi.o) - 0x080004a2 0x080004a2 0x00000002 Code RO 171 .text c_w.l(use_no_semi.o) - 0x080004a4 0x080004a4 0x0000004e Code RO 180 .text c_w.l(_printf_pad.o) - 0x080004f2 0x080004f2 0x00000024 Code RO 182 .text c_w.l(_printf_truncate.o) - 0x08000516 0x08000516 0x00000052 Code RO 184 .text c_w.l(_printf_str.o) - 0x08000568 0x08000568 0x00000078 Code RO 186 .text c_w.l(_printf_dec.o) - 0x080005e0 0x080005e0 0x00000028 Code RO 188 .text c_w.l(_printf_charcount.o) - 0x08000608 0x08000608 0x00000024 Code RO 190 .text c_w.l(_printf_char_file.o) - 0x0800062c 0x0800062c 0x000000bc Code RO 192 .text c_w.l(_printf_wctomb.o) - 0x080006e8 0x080006e8 0x0000007c Code RO 195 .text c_w.l(_printf_longlong_dec.o) - 0x08000764 0x08000764 0x00000070 Code RO 201 .text c_w.l(_printf_oct_int_ll.o) - 0x080007d4 0x080007d4 0x00000094 Code RO 221 .text c_w.l(_printf_hex_int_ll_ptr.o) - 0x08000868 0x08000868 0x00000188 Code RO 241 .text c_w.l(__printf_flags_ss_wp.o) - 0x080009f0 0x080009f0 0x0000008a Code RO 292 .text c_w.l(lludiv10.o) - 0x08000a7a 0x08000a7a 0x000000b2 Code RO 294 .text c_w.l(_printf_intcommon.o) - 0x08000b2c 0x08000b2c 0x0000041c Code RO 296 .text c_w.l(_printf_fp_dec.o) - 0x08000f48 0x08000f48 0x000002fc Code RO 300 .text c_w.l(_printf_fp_hex.o) - 0x08001244 0x08001244 0x00000030 Code RO 303 .text c_w.l(_printf_char_common.o) - 0x08001274 0x08001274 0x0000002c Code RO 305 .text c_w.l(_printf_char.o) - 0x080012a0 0x080012a0 0x0000002c Code RO 307 .text c_w.l(_printf_wchar.o) - 0x080012cc 0x080012cc 0x00000008 Code RO 310 .text c_w.l(ferror.o) - 0x080012d4 0x080012d4 0x00000048 Code RO 314 .text c_w.l(_c16rtomb.o) - 0x0800131c 0x0800131c 0x0000004a Code RO 316 .text c_w.l(sys_stackheap_outer.o) + 0x08000484 0x08000484 0x00000018 Code RO 182 .text c_w.l(printf.o) + 0x0800049c 0x0800049c 0x00000006 Code RO 184 .text c_w.l(heapauxi.o) + 0x080004a2 0x080004a2 0x00000002 Code RO 188 .text c_w.l(use_no_semi.o) + 0x080004a4 0x080004a4 0x0000004e Code RO 197 .text c_w.l(_printf_pad.o) + 0x080004f2 0x080004f2 0x00000024 Code RO 199 .text c_w.l(_printf_truncate.o) + 0x08000516 0x08000516 0x00000052 Code RO 201 .text c_w.l(_printf_str.o) + 0x08000568 0x08000568 0x00000078 Code RO 203 .text c_w.l(_printf_dec.o) + 0x080005e0 0x080005e0 0x00000028 Code RO 205 .text c_w.l(_printf_charcount.o) + 0x08000608 0x08000608 0x00000024 Code RO 207 .text c_w.l(_printf_char_file.o) + 0x0800062c 0x0800062c 0x000000bc Code RO 209 .text c_w.l(_printf_wctomb.o) + 0x080006e8 0x080006e8 0x0000007c Code RO 212 .text c_w.l(_printf_longlong_dec.o) + 0x08000764 0x08000764 0x00000070 Code RO 218 .text c_w.l(_printf_oct_int_ll.o) + 0x080007d4 0x080007d4 0x00000094 Code RO 238 .text c_w.l(_printf_hex_int_ll_ptr.o) + 0x08000868 0x08000868 0x00000188 Code RO 258 .text c_w.l(__printf_flags_ss_wp.o) + 0x080009f0 0x080009f0 0x0000008a Code RO 309 .text c_w.l(lludiv10.o) + 0x08000a7a 0x08000a7a 0x000000b2 Code RO 311 .text c_w.l(_printf_intcommon.o) + 0x08000b2c 0x08000b2c 0x0000041c Code RO 313 .text c_w.l(_printf_fp_dec.o) + 0x08000f48 0x08000f48 0x000002fc Code RO 317 .text c_w.l(_printf_fp_hex.o) + 0x08001244 0x08001244 0x00000030 Code RO 320 .text c_w.l(_printf_char_common.o) + 0x08001274 0x08001274 0x0000002c Code RO 322 .text c_w.l(_printf_char.o) + 0x080012a0 0x080012a0 0x0000002c Code RO 324 .text c_w.l(_printf_wchar.o) + 0x080012cc 0x080012cc 0x00000008 Code RO 327 .text c_w.l(ferror.o) + 0x080012d4 0x080012d4 0x00000048 Code RO 331 .text c_w.l(_c16rtomb.o) + 0x0800131c 0x0800131c 0x0000004a Code RO 333 .text c_w.l(sys_stackheap_outer.o) 0x08001366 0x08001366 0x00000002 PAD - 0x08001368 0x08001368 0x00000010 Code RO 318 .text c_w.l(rt_ctype_table.o) - 0x08001378 0x08001378 0x00000008 Code RO 323 .text c_w.l(rt_locale_intlibspace.o) - 0x08001380 0x08001380 0x00000080 Code RO 325 .text c_w.l(_printf_fp_infnan.o) - 0x08001400 0x08001400 0x000000e4 Code RO 329 .text c_w.l(bigflt0.o) - 0x080014e4 0x080014e4 0x00000012 Code RO 359 .text c_w.l(exit.o) + 0x08001368 0x08001368 0x00000010 Code RO 335 .text c_w.l(rt_ctype_table.o) + 0x08001378 0x08001378 0x00000008 Code RO 340 .text c_w.l(rt_locale_intlibspace.o) + 0x08001380 0x08001380 0x00000080 Code RO 342 .text c_w.l(_printf_fp_infnan.o) + 0x08001400 0x08001400 0x000000e4 Code RO 346 .text c_w.l(bigflt0.o) + 0x080014e4 0x080014e4 0x00000012 Code RO 376 .text c_w.l(exit.o) 0x080014f6 0x080014f6 0x00000002 PAD - 0x080014f8 0x080014f8 0x00000008 Code RO 376 .text c_w.l(libspace.o) - 0x08001500 0x08001500 0x0000007c Code RO 392 .text c_w.l(strcmpv7em.o) + 0x080014f8 0x080014f8 0x00000008 Code RO 393 .text c_w.l(libspace.o) + 0x08001500 0x08001500 0x0000007c Code RO 409 .text c_w.l(strcmpv7em.o) 0x0800157c 0x0800157c 0x00000026 Code RO 31 .text.Board_DelayMs board.o 0x080015a2 0x080015a2 0x00000002 PAD 0x080015a4 0x080015a4 0x00000008 Code RO 27 .text.Board_FatalError board.o @@ -1450,121 +1535,131 @@ Memory Map of the image 0x080015dc 0x080015dc 0x0000000c Code RO 29 .text.Board_Millis board.o 0x080015e8 0x080015e8 0x0000003a Code RO 37 .text.Clock_UseHsi16 board.o 0x08001622 0x08001622 0x00000002 PAD - 0x08001624 0x08001624 0x0000016e Code RO 77 .text.DCDC_ControlStep dcdc.o - 0x08001792 0x08001792 0x00000002 PAD - 0x08001794 0x08001794 0x0000006c Code RO 103 .text.DCDC_FaultText dcdc.o - 0x08001800 0x08001800 0x0000000c Code RO 97 .text.DCDC_GetDutyTicks dcdc.o - 0x0800180c 0x0800180c 0x0000000c Code RO 93 .text.DCDC_GetFault dcdc.o - 0x08001818 0x08001818 0x0000000c Code RO 99 .text.DCDC_GetPeriodTicks dcdc.o - 0x08001824 0x08001824 0x0000000c Code RO 91 .text.DCDC_GetState dcdc.o - 0x08001830 0x08001830 0x0000004e Code RO 55 .text.DCDC_Init dcdc.o - 0x0800187e 0x0800187e 0x00000002 PAD - 0x08001880 0x08001880 0x00000010 Code RO 95 .text.DCDC_IsHrtimReady dcdc.o - 0x08001890 0x08001890 0x00000070 Code RO 79 .text.DCDC_ReadMeasurements dcdc.o - 0x08001900 0x08001900 0x0000005e Code RO 101 .text.DCDC_StateText dcdc.o - 0x0800195e 0x0800195e 0x00000002 PAD - 0x08001960 0x08001960 0x00000066 Code RO 41 .text.Flash_SetLatency board.o - 0x080019c6 0x080019c6 0x00000002 PAD - 0x080019c8 0x080019c8 0x00000062 Code RO 123 .text.Retarget_Init retarget.o - 0x08001a2a 0x08001a2a 0x00000002 PAD - 0x08001a2c 0x08001a2c 0x00000030 Code RO 127 .text.Retarget_PutChar retarget.o - 0x08001a5c 0x08001a5c 0x00000052 Code RO 25 .text.SysTick_Config board.o - 0x08001aae 0x08001aae 0x00000002 PAD - 0x08001ab0 0x08001ab0 0x00000010 Code RO 33 .text.SysTick_Handler board.o - 0x08001ac0 0x08001ac0 0x00000112 Code RO 23 .text.SystemClock_Config board.o - 0x08001bd2 0x08001bd2 0x00000002 PAD - 0x08001bd4 0x08001bd4 0x000000ce Code RO 148 .text.SystemCoreClockUpdate system_stm32g4xx.o - 0x08001ca2 0x08001ca2 0x00000002 PAD - 0x08001ca4 0x08001ca4 0x00000020 Code RO 146 .text.SystemInit system_stm32g4xx.o - 0x08001cc4 0x08001cc4 0x00000042 Code RO 35 .text.__NVIC_SetPriority board.o - 0x08001d06 0x08001d06 0x00000002 PAD - 0x08001d08 0x08001d08 0x0000000a Code RO 135 .text._sys_exit retarget.o - 0x08001d12 0x08001d12 0x00000002 PAD - 0x08001d14 0x08001d14 0x000000a6 Code RO 63 .text.adc1_init dcdc.o - 0x08001dba 0x08001dba 0x00000002 PAD - 0x08001dbc 0x08001dbc 0x0000004a Code RO 83 .text.adc1_read_channel dcdc.o - 0x08001e06 0x08001e06 0x00000002 PAD - 0x08001e08 0x08001e08 0x00000020 Code RO 85 .text.adc_raw_to_mv dcdc.o - 0x08001e28 0x08001e28 0x00000026 Code RO 129 .text.fputc retarget.o - 0x08001e4e 0x08001e4e 0x00000002 PAD - 0x08001e50 0x08001e50 0x000000e4 Code RO 57 .text.gpio_init_for_dcdc dcdc.o - 0x08001f34 0x08001f34 0x00000074 Code RO 125 .text.gpio_pc10_pc11_to_usart3 retarget.o - 0x08001fa8 0x08001fa8 0x00000030 Code RO 67 .text.hrtim1_outputs_enable dcdc.o - 0x08001fd8 0x08001fd8 0x0000004c Code RO 73 .text.hrtim1_set_duty dcdc.o - 0x08002024 0x08002024 0x0000010a Code RO 65 .text.hrtim1_timer_c_init dcdc.o - 0x0800212e 0x0800212e 0x00000002 PAD - 0x08002130 0x08002130 0x0000004c Code RO 107 .text.hrtim1_wait_dll_ready dcdc.o - 0x0800217c 0x0800217c 0x00000042 Code RO 81 .text.hrtim_max_duty_ticks dcdc.o - 0x080021be 0x080021be 0x00000002 PAD - 0x080021c0 0x080021c0 0x0000007a Code RO 105 .text.hrtim_period_from_clock dcdc.o - 0x0800223a 0x0800223a 0x00000002 PAD - 0x0800223c 0x0800223c 0x0000004a Code RO 71 .text.latch_fault dcdc.o - 0x08002286 0x08002286 0x00000002 PAD - 0x08002288 0x08002288 0x0000016a Code RO 11 .text.main main.o - 0x080023f2 0x080023f2 0x00000002 PAD - 0x080023f4 0x080023f4 0x0000001e Code RO 89 .text.sense_mv_to_current_ma dcdc.o - 0x08002412 0x08002412 0x00000002 PAD - 0x08002414 0x08002414 0x00000022 Code RO 87 .text.sense_mv_to_voltage_mv dcdc.o - 0x08002436 0x08002436 0x00000002 PAD - 0x08002438 0x08002438 0x00000010 Code RO 61 .text.set_loads_off dcdc.o - 0x08002448 0x08002448 0x00000030 Code RO 59 .text.set_usbpd_input_switch dcdc.o - 0x08002478 0x08002478 0x0000004a Code RO 39 .text.wait_mask_clear board.o - 0x080024c2 0x080024c2 0x00000002 PAD - 0x080024c4 0x080024c4 0x0000004e Code RO 43 .text.wait_mask_set board.o - 0x08002512 0x08002512 0x00000002 PAD - 0x08002514 0x08002514 0x00000050 Code RO 45 .text.wait_mask_value board.o - 0x08002564 0x08002564 0x0000003e Code RO 332 CL$$btod_d2e c_w.l(btod.o) - 0x080025a2 0x080025a2 0x00000046 Code RO 334 CL$$btod_d2e_denorm_low c_w.l(btod.o) - 0x080025e8 0x080025e8 0x00000060 Code RO 333 CL$$btod_d2e_norm_op1 c_w.l(btod.o) - 0x08002648 0x08002648 0x00000338 Code RO 342 CL$$btod_div_common c_w.l(btod.o) - 0x08002980 0x08002980 0x000000dc Code RO 339 CL$$btod_e2e c_w.l(btod.o) - 0x08002a5c 0x08002a5c 0x0000002a Code RO 336 CL$$btod_ediv c_w.l(btod.o) - 0x08002a86 0x08002a86 0x0000002a Code RO 335 CL$$btod_emul c_w.l(btod.o) - 0x08002ab0 0x08002ab0 0x00000244 Code RO 341 CL$$btod_mult_common c_w.l(btod.o) - 0x08002cf4 0x08002cf4 0x00000030 Code RO 374 i.__ARM_fpclassify m_wm.l(fpclassify.o) - 0x08002d24 0x08002d24 0x0000000e Code RO 234 i._is_digit c_w.l(__printf_wp.o) - 0x08002d32 0x08002d32 0x00000002 PAD - 0x08002d34 0x08002d34 0x0000002c Code RO 357 locale$$code c_w.l(lc_numeric_c.o) - 0x08002d60 0x08002d60 0x0000002c Code RO 386 locale$$code c_w.l(lc_ctype_c.o) - 0x08002d8c 0x08002d8c 0x0000001a Code RO 456 x$fpl$fpinit fz_wm.l(fpinit.o) - 0x08002da6 0x08002da6 0x00000004 Code RO 267 x$fpl$printf1 fz_wm.l(printf1.o) - 0x08002daa 0x08002daa 0x00000004 Code RO 269 x$fpl$printf2 fz_wm.l(printf2.o) - 0x08002dae 0x08002dae 0x00000000 Code RO 373 x$fpl$usenofp fz_wm.l(usenofp.o) - 0x08002dae 0x08002dae 0x00000002 PAD - 0x08002db0 0x08002db0 0x00000008 Data RO 193 .constdata c_w.l(_printf_wctomb.o) - 0x08002db8 0x08002db8 0x00000028 Data RO 222 .constdata c_w.l(_printf_hex_int_ll_ptr.o) - 0x08002de0 0x08002de0 0x00000011 Data RO 242 .constdata c_w.l(__printf_flags_ss_wp.o) - 0x08002df1 0x08002df1 0x00000026 Data RO 301 .constdata c_w.l(_printf_fp_hex.o) - 0x08002e17 0x08002e17 0x00000001 PAD - 0x08002e18 0x08002e18 0x00000094 Data RO 330 .constdata c_w.l(bigflt0.o) - 0x08002eac 0x08002eac 0x00000010 Data RO 151 .rodata.AHBPrescTable system_stm32g4xx.o - 0x08002ebc 0x08002ebc 0x0000012a Data RO 13 .rodata.str1.1 main.o - 0x08002fe6 0x08002fe6 0x00000069 Data RO 115 .rodata.str1.1 dcdc.o - 0x0800304f 0x0800304f 0x00000001 PAD - 0x08003050 0x08003050 0x00000020 Data RO 511 Region$$Table anon$$obj.o - 0x08003070 0x08003070 0x0000001c Data RO 356 locale$$data c_w.l(lc_numeric_c.o) - 0x0800308c 0x0800308c 0x00000110 Data RO 385 locale$$data c_w.l(lc_ctype_c.o) + 0x08001624 0x08001624 0x0000003e Code RO 87 .text.DCDC_ApplyRuntimeConfig dcdc.o + 0x08001662 0x08001662 0x00000002 PAD + 0x08001664 0x08001664 0x00000196 Code RO 89 .text.DCDC_ControlStep dcdc.o + 0x080017fa 0x080017fa 0x00000002 PAD + 0x080017fc 0x080017fc 0x0000006c Code RO 117 .text.DCDC_FaultText dcdc.o + 0x08001868 0x08001868 0x0000000c Code RO 109 .text.DCDC_GetDutyTicks dcdc.o + 0x08001874 0x08001874 0x0000000c Code RO 105 .text.DCDC_GetFault dcdc.o + 0x08001880 0x08001880 0x00000034 Code RO 85 .text.DCDC_GetMode dcdc.o + 0x080018b4 0x080018b4 0x0000000c Code RO 111 .text.DCDC_GetPeriodTicks dcdc.o + 0x080018c0 0x080018c0 0x0000000c Code RO 103 .text.DCDC_GetState dcdc.o + 0x080018cc 0x080018cc 0x0000004e Code RO 55 .text.DCDC_Init dcdc.o + 0x0800191a 0x0800191a 0x00000002 PAD + 0x0800191c 0x0800191c 0x00000010 Code RO 107 .text.DCDC_IsHrtimReady dcdc.o + 0x0800192c 0x0800192c 0x00000058 Code RO 115 .text.DCDC_ModeText dcdc.o + 0x08001984 0x08001984 0x00000070 Code RO 91 .text.DCDC_ReadMeasurements dcdc.o + 0x080019f4 0x080019f4 0x000000a0 Code RO 83 .text.DCDC_Service1ms dcdc.o + 0x08001a94 0x08001a94 0x0000007c Code RO 69 .text.DCDC_Start dcdc.o + 0x08001b10 0x08001b10 0x0000008e Code RO 77 .text.DCDC_StartPwmTest dcdc.o + 0x08001b9e 0x08001b9e 0x00000002 PAD + 0x08001ba0 0x08001ba0 0x0000006c Code RO 113 .text.DCDC_StateText dcdc.o + 0x08001c0c 0x08001c0c 0x00000038 Code RO 81 .text.DCDC_Stop dcdc.o + 0x08001c44 0x08001c44 0x00000066 Code RO 41 .text.Flash_SetLatency board.o + 0x08001caa 0x08001caa 0x00000002 PAD + 0x08001cac 0x08001cac 0x00000062 Code RO 140 .text.Retarget_Init retarget.o + 0x08001d0e 0x08001d0e 0x00000002 PAD + 0x08001d10 0x08001d10 0x00000030 Code RO 144 .text.Retarget_PutChar retarget.o + 0x08001d40 0x08001d40 0x00000052 Code RO 25 .text.SysTick_Config board.o + 0x08001d92 0x08001d92 0x00000002 PAD + 0x08001d94 0x08001d94 0x00000010 Code RO 33 .text.SysTick_Handler board.o + 0x08001da4 0x08001da4 0x00000112 Code RO 23 .text.SystemClock_Config board.o + 0x08001eb6 0x08001eb6 0x00000002 PAD + 0x08001eb8 0x08001eb8 0x000000ce Code RO 165 .text.SystemCoreClockUpdate system_stm32g4xx.o + 0x08001f86 0x08001f86 0x00000002 PAD + 0x08001f88 0x08001f88 0x00000020 Code RO 163 .text.SystemInit system_stm32g4xx.o + 0x08001fa8 0x08001fa8 0x00000042 Code RO 35 .text.__NVIC_SetPriority board.o + 0x08001fea 0x08001fea 0x00000002 PAD + 0x08001fec 0x08001fec 0x0000000a Code RO 152 .text._sys_exit retarget.o + 0x08001ff6 0x08001ff6 0x00000002 PAD + 0x08001ff8 0x08001ff8 0x000000a6 Code RO 63 .text.adc1_init dcdc.o + 0x0800209e 0x0800209e 0x00000002 PAD + 0x080020a0 0x080020a0 0x0000004a Code RO 95 .text.adc1_read_channel dcdc.o + 0x080020ea 0x080020ea 0x00000002 PAD + 0x080020ec 0x080020ec 0x00000020 Code RO 97 .text.adc_raw_to_mv dcdc.o + 0x0800210c 0x0800210c 0x00000034 Code RO 123 .text.clamp_u32 dcdc.o + 0x08002140 0x08002140 0x00000026 Code RO 146 .text.fputc retarget.o + 0x08002166 0x08002166 0x00000002 PAD + 0x08002168 0x08002168 0x000000e4 Code RO 57 .text.gpio_init_for_dcdc dcdc.o + 0x0800224c 0x0800224c 0x00000074 Code RO 142 .text.gpio_pc10_pc11_to_usart3 retarget.o + 0x080022c0 0x080022c0 0x0000008e Code RO 73 .text.hrtim1_apply_pwm_config dcdc.o + 0x0800234e 0x0800234e 0x00000002 PAD + 0x08002350 0x08002350 0x00000030 Code RO 67 .text.hrtim1_outputs_enable dcdc.o + 0x08002380 0x08002380 0x0000004c Code RO 75 .text.hrtim1_set_duty dcdc.o + 0x080023cc 0x080023cc 0x00000122 Code RO 65 .text.hrtim1_timer_c_init dcdc.o + 0x080024ee 0x080024ee 0x00000002 PAD + 0x080024f0 0x080024f0 0x0000004c Code RO 121 .text.hrtim1_wait_dll_ready dcdc.o + 0x0800253c 0x0800253c 0x0000005c Code RO 93 .text.hrtim_max_duty_ticks dcdc.o + 0x08002598 0x08002598 0x0000008c Code RO 119 .text.hrtim_period_from_frequency dcdc.o + 0x08002624 0x08002624 0x0000004a Code RO 71 .text.latch_fault dcdc.o + 0x0800266e 0x0800266e 0x00000002 PAD + 0x08002670 0x08002670 0x000001bc Code RO 11 .text.main main.o + 0x0800282c 0x0800282c 0x00000034 Code RO 79 .text.permille_to_ticks dcdc.o + 0x08002860 0x08002860 0x0000001e Code RO 101 .text.sense_mv_to_current_ma dcdc.o + 0x0800287e 0x0800287e 0x00000002 PAD + 0x08002880 0x08002880 0x00000022 Code RO 99 .text.sense_mv_to_voltage_mv dcdc.o + 0x080028a2 0x080028a2 0x00000002 PAD + 0x080028a4 0x080028a4 0x00000010 Code RO 61 .text.set_loads_off dcdc.o + 0x080028b4 0x080028b4 0x00000030 Code RO 59 .text.set_usbpd_input_switch dcdc.o + 0x080028e4 0x080028e4 0x0000004a Code RO 39 .text.wait_mask_clear board.o + 0x0800292e 0x0800292e 0x00000002 PAD + 0x08002930 0x08002930 0x0000004e Code RO 43 .text.wait_mask_set board.o + 0x0800297e 0x0800297e 0x00000002 PAD + 0x08002980 0x08002980 0x00000050 Code RO 45 .text.wait_mask_value board.o + 0x080029d0 0x080029d0 0x0000003e Code RO 349 CL$$btod_d2e c_w.l(btod.o) + 0x08002a0e 0x08002a0e 0x00000046 Code RO 351 CL$$btod_d2e_denorm_low c_w.l(btod.o) + 0x08002a54 0x08002a54 0x00000060 Code RO 350 CL$$btod_d2e_norm_op1 c_w.l(btod.o) + 0x08002ab4 0x08002ab4 0x00000338 Code RO 359 CL$$btod_div_common c_w.l(btod.o) + 0x08002dec 0x08002dec 0x000000dc Code RO 356 CL$$btod_e2e c_w.l(btod.o) + 0x08002ec8 0x08002ec8 0x0000002a Code RO 353 CL$$btod_ediv c_w.l(btod.o) + 0x08002ef2 0x08002ef2 0x0000002a Code RO 352 CL$$btod_emul c_w.l(btod.o) + 0x08002f1c 0x08002f1c 0x00000244 Code RO 358 CL$$btod_mult_common c_w.l(btod.o) + 0x08003160 0x08003160 0x00000030 Code RO 391 i.__ARM_fpclassify m_wm.l(fpclassify.o) + 0x08003190 0x08003190 0x0000000e Code RO 251 i._is_digit c_w.l(__printf_wp.o) + 0x0800319e 0x0800319e 0x00000002 PAD + 0x080031a0 0x080031a0 0x0000002c Code RO 374 locale$$code c_w.l(lc_numeric_c.o) + 0x080031cc 0x080031cc 0x0000002c Code RO 403 locale$$code c_w.l(lc_ctype_c.o) + 0x080031f8 0x080031f8 0x0000001a Code RO 473 x$fpl$fpinit fz_wm.l(fpinit.o) + 0x08003212 0x08003212 0x00000004 Code RO 284 x$fpl$printf1 fz_wm.l(printf1.o) + 0x08003216 0x08003216 0x00000004 Code RO 286 x$fpl$printf2 fz_wm.l(printf2.o) + 0x0800321a 0x0800321a 0x00000000 Code RO 390 x$fpl$usenofp fz_wm.l(usenofp.o) + 0x0800321a 0x0800321a 0x00000002 PAD + 0x0800321c 0x0800321c 0x00000008 Data RO 210 .constdata c_w.l(_printf_wctomb.o) + 0x08003224 0x08003224 0x00000028 Data RO 239 .constdata c_w.l(_printf_hex_int_ll_ptr.o) + 0x0800324c 0x0800324c 0x00000011 Data RO 259 .constdata c_w.l(__printf_flags_ss_wp.o) + 0x0800325d 0x0800325d 0x00000026 Data RO 318 .constdata c_w.l(_printf_fp_hex.o) + 0x08003283 0x08003283 0x00000001 PAD + 0x08003284 0x08003284 0x00000094 Data RO 347 .constdata c_w.l(bigflt0.o) + 0x08003318 0x08003318 0x00000010 Data RO 168 .rodata.AHBPrescTable system_stm32g4xx.o + 0x08003328 0x08003328 0x000001c8 Data RO 13 .rodata.str1.1 main.o + 0x080034f0 0x080034f0 0x00000086 Data RO 132 .rodata.str1.1 dcdc.o + 0x08003576 0x08003576 0x00000002 PAD + 0x08003578 0x08003578 0x00000020 Data RO 528 Region$$Table anon$$obj.o + 0x08003598 0x08003598 0x0000001c Data RO 373 locale$$data c_w.l(lc_numeric_c.o) + 0x080035b4 0x080035b4 0x00000110 Data RO 402 locale$$data c_w.l(lc_ctype_c.o) - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080031a0, Size: 0x000006d8, Max: 0x00020000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080036c8, Size: 0x00000718, Max: 0x00020000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x080031a0 0x00000004 Data RW 150 .data.SystemCoreClock system_stm32g4xx.o - 0x20000004 0x080031a4 0x00000004 Data RW 114 .data.s_duty_ticks dcdc.o - 0x20000008 0x080031a8 0x00000004 Data RW 113 .data.s_period_ticks dcdc.o - 0x2000000c 0x080031ac 0x00000004 PAD - 0x20000010 - 0x00000060 Zero RW 377 .bss c_w.l(libspace.o) - 0x20000070 - 0x00000054 Zero RW 137 .bss.__stdout retarget.o - 0x200000c4 - 0x00000001 Zero RW 111 .bss.s_fault dcdc.o - 0x200000c5 - 0x00000001 Zero RW 109 .bss.s_hrtim_ready dcdc.o - 0x200000c6 0x080031ac 0x00000002 PAD - 0x200000c8 - 0x00000004 Zero RW 112 .bss.s_integrator_ticks dcdc.o - 0x200000cc - 0x00000004 Zero RW 47 .bss.s_ms_ticks board.o - 0x200000d0 - 0x00000001 Zero RW 110 .bss.s_state dcdc.o - 0x200000d1 0x080031ac 0x00000007 PAD - 0x200000d8 - 0x00000200 Zero RW 2 HEAP startup_stm32g474xx.o - 0x200002d8 - 0x00000400 Zero RW 1 STACK startup_stm32g474xx.o + 0x20000000 0x080036c8 0x00000004 Data RW 167 .data.SystemCoreClock system_stm32g4xx.o + 0x20000004 0x080036cc 0x00000040 Data RW 125 .data.g_dcdc_config dcdc.o + 0x20000044 0x0800370c 0x00000004 Data RW 131 .data.s_duty_ticks dcdc.o + 0x20000048 0x08003710 0x00000004 Data RW 130 .data.s_period_ticks dcdc.o + 0x2000004c 0x08003714 0x00000004 PAD + 0x20000050 - 0x00000060 Zero RW 394 .bss c_w.l(libspace.o) + 0x200000b0 - 0x00000054 Zero RW 154 .bss.__stdout retarget.o + 0x20000104 - 0x00000001 Zero RW 128 .bss.s_fault dcdc.o + 0x20000105 - 0x00000001 Zero RW 126 .bss.s_hrtim_ready dcdc.o + 0x20000106 0x08003714 0x00000002 PAD + 0x20000108 - 0x00000004 Zero RW 129 .bss.s_integrator_ticks dcdc.o + 0x2000010c - 0x00000004 Zero RW 47 .bss.s_ms_ticks board.o + 0x20000110 - 0x00000001 Zero RW 127 .bss.s_state dcdc.o + 0x20000111 0x08003714 0x00000007 PAD + 0x20000118 - 0x00000200 Zero RW 2 HEAP startup_stm32g474xx.o + 0x20000318 - 0x00000400 Zero RW 1 STACK startup_stm32g474xx.o ============================================================================== @@ -1575,16 +1670,16 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name 934 0 0 0 4 8239 board.o - 2178 10 105 8 7 9738 dcdc.o - 362 0 298 0 0 1407 main.o + 3230 12 134 72 7 12266 dcdc.o + 444 0 456 0 0 1432 main.o 310 0 0 0 84 3260 retarget.o 64 26 472 0 1536 1048 startup_stm32g474xx.o 238 0 16 4 0 2925 system_stm32g4xx.o ---------------------------------------------------------------------- - 4136 36 924 12 1644 26617 Object Totals + 5268 38 1112 76 1644 29170 Object Totals 0 0 32 0 0 0 (incl. Generated) - 50 0 1 0 13 0 (incl. Padding) + 48 0 2 0 13 0 (incl. Padding) ---------------------------------------------------------------------- @@ -1692,15 +1787,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 11224 300 1476 12 1740 28777 Grand Totals - 11224 300 1476 12 1740 28777 ELF Image Totals - 11224 300 1476 12 0 0 ROM Totals + 12356 302 1664 76 1740 31330 Grand Totals + 12356 302 1664 76 1740 31330 ELF Image Totals + 12356 302 1664 76 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 12700 ( 12.40kB) - Total RW Size (RW Data + ZI Data) 1752 ( 1.71kB) - Total ROM Size (Code + RO Data + RW Data) 12712 ( 12.41kB) + Total RO Size (Code + RO Data) 14020 ( 13.69kB) + Total RW Size (RW Data + ZI Data) 1816 ( 1.77kB) + Total ROM Size (Code + RO Data + RW Data) 14096 ( 13.77kB) ============================================================================== diff --git a/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.axf b/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.axf index 1d3c86475a617672687c0616c7e94cf17583b2ba..8b8a680c37329e64f955c5ecbf3876f2f6c62dfc 100644 GIT binary patch delta 28212 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 delta 23724 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 POVCos+dsG=te^h})R9co diff --git a/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.build_log.htm b/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.build_log.htm index 1bcb8b1..3a0547e 100644 --- a/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.build_log.htm +++ b/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.build_log.htm @@ -26,15 +26,14 @@ Project File Date: 05/23/2026

Output:

*** Using Compiler 'V6.22', folder: 'C:\Keil_v5_41\ARM\ARMCLANG\Bin' -Rebuild target 'B-G474E-DPOW1_DCDC' -compiling retarget.c... -compiling main.c... +Build target 'B-G474E-DPOW1_DCDC' compiling system_stm32g4xx.c... -compiling dcdc.c... -assembling startup_stm32g474xx.s... +compiling main.c... +compiling retarget.c... compiling board.c... +compiling dcdc.c... linking... -Program Size: Code=11224 RO-data=1476 RW-data=12 ZI-data=1740 +Program Size: Code=12356 RO-data=1664 RW-data=76 ZI-data=1740 FromELF: creating hex file... "Objects\B-G474E-DPOW1_DCDC.axf" - 0 Error(s), 0 Warning(s). diff --git a/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.hex b/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.hex index 31b8a64..6e733fc 100644 --- a/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.hex +++ b/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.hex @@ -1,8 +1,8 @@ :020000040800F2 -:10000000D806002051030008590300085B030008CC +:100000001807002051030008590300085B0300088B :100010005D0300085F0300086103000800000000A2 :100020000000000000000000000000006303000862 -:10003000650300080000000067030008B11A00080B +:10003000650300080000000067030008951D000824 :100040006B0300086B0300086B0300086B030008D8 :100050006B0300086B0300086B0300086B030008C8 :100060006B0300086B0300086B0300086B030008B8 @@ -34,28 +34,28 @@ :1002000004EB0607AAEB0704A7F101074FEA15154F :100210004FEA3414A4F10104AC4201D300F088F891 :1002200013F0010F18BFFB1A43F0010300F001F8AF -:10023000DBE718471C2E00003C2E0000103A24BFBC +:10023000DBE718474433000064330000103A24BF62 :1002400078C878C1FAD8520724BF30C830C144BF3B :1002500004680C6070470000704700000023002411 :1002600000250026103A28BF78C1FBD8520728BFC6 :1002700030C148BF0B6070476E2900F0B181702912 -:1002800000F0E782662902F08E85652902F08B85F1 -:10029000672902F08885612902F0878503681B0AB7 +:1002800000F0E782662902F0C487652902F0C18781 +:10029000672902F0BE87612902F0BD8703681B0A47 :1002A00028BF41F08001692900F05E81642900F0D7 :1002B0005B81752900F058816F2900F075827829DB :1002C00000F0B382E92900F00F82E42900F00C82EB :1002D000F52900F00982EF2900F07282F82900F078 :1002E000B2820368DB0928BF41F08001632900F076 :1002F000CB87732900F0D087E32900F0DB87F3294F -:1003000000F0E087002070471FB502F03FFD01F0CC -:1003100033F804000020002102F022FD401C606040 -:100320000020002102F006FDE0601FBD10B510BDE9 -:1003300000F0F4FF1146FFF7E7FF01F0A5FF01F021 -:10034000D1F803B4FFF7F2FF03BC01F0DDFC0000BD +:1003000000F0E087002070471FB502F075FF01F094 +:1003100033F804000020002102F058FF401C606008 +:100320000020002102F03CFFE0601FBD10B510BDB1 +:1003300000F0F4FF1146FFF7E7FF02F099F901F032 +:10034000D1F803B4FFF7F2FF03BC01F04FFE000049 :100350000948804709480047FEE7FEE7FEE7FEE759 :10036000FEE7FEE7FEE7FEE7FEE7FEE70448054995 -:10037000054A064B70470000A51C0008D90100087B -:10038000D8000020D8060020D8020020D802002083 +:10037000054A064B70470000891F0008D901000894 +:10038000180100201807002018030020180300207F :10039000704753EA020C00F069802DE9F04B4FF0F2 :1003A0000006002B1FBFB3FA83F503FA05F424FA05 :1003B00005F65E4012BF1643B2FA82F502FA05F462 @@ -72,7 +72,7 @@ :100460000B46024641464846BDE8F08B13B50843AB :1004700018BF4FF0FF300146AFF30080BDE81C40CD :10048000704700000FB4044910B503AA029800F0A9 -:10049000BBF810BC5DF814FB70000020704770477B +:10049000BBF810BC5DF814FBB0000020704770473B :1004A0007047704770B5044685690068C10601D57C :1004B000302600E02026C00707D070BDD4E9012116 :1004C00030469047206A401C20626D1EF6D570BDF4 @@ -97,7 +97,7 @@ :1005F00001D5088006E0130603D5C217C1E9000241 :1006000000E0086001207047074B70B50D467B4441 :1006100000F01DFE0446284600F058FE10B14FF0D1 -:10062000FF3070BD204670BD171800002DE9FF5F38 +:10062000FF3070BD204670BD2F1B00002DE9FF5F1D :1006300015468A460446DFF8AC80F8440027D8E91E :1006400000103E46CDE9001010E03AF816106A4658 :1006500002A800F03FFE411C07D02178890603D58F @@ -109,7 +109,7 @@ :1006B00000250DF1080B05E0D4E901211BF8050028 :1006C00090476D1C4D45F7D308F10100B0428046BC :1006D000E4DB206A384420622046FFF7F9FEBDE8DB -:1006E000FF9F0000722700002DE9F0418046D21DD7 +:1006E000FF9F0000DE2B00002DE9F0418046D21D67 :1006F00022F007020025D2E90002F52915A614D040 :10070000011E72F1000106DA0023D0EB030063EB57 :10071000020211A608E0D8F800108B0701D50FA639 @@ -133,19 +133,19 @@ :1008300021461068FFF766FE024629462046BDE8BD :1008400070400023C6E7D21D22F00703D3E900233E :10085000C0E70368126843F0200303600823C36104 -:100860000023B7E7D42500002DE9F05F8946044650 +:100860000023B7E7402A00002DE9F05F89460446DF :100870004FF0000ADFF874B1FB44C0F820A0204616 :10088000E1688847002874D0252806D0D4E90121E2 :100890009047206A401C2062F1E700265F46204610 :1008A000E16888472028054607DB312D05D27819F5 :1008B00010F8200C08B10643F1E7B00701D526F087 :1008C0000406C4F81CA00027C4F818A02A2D09D0DB -:1008D000284602F027FA38B304EB8708303DC8F801 +:1008D000284602F05DFC38B304EB8708303DC8F8C9 :1008E000185019E059F8041B204604EB8702916167 :1008F000E1688847012F054618D1E069002820DA11 :1009000026F020061DE0D8F8180000EB800005EB6B :1009100040003038C8F818002046E168884705468E -:1009200002F000FA0028EED1012F0AD02E2D08D1B6 +:1009200002F036FC0028EED1012F0AD02E2D08D17E :100930002046E16888477F1C0546022F46F02006C6 :10094000C4DBA069002803DA404246F00106A0613A :10095000F00701D026F010066C2D0BD0682D09D0C1 @@ -157,7 +157,7 @@ :1009B0004A462946204626604E46FFF75DFC80B138 :1009C00001280BD0F61D26F0070000F1080956E7B4 :1009D0004020E4E78020D8E70020D6E706F10409AC -:1009E0004DE7284652E7206ABDE8F09F64250000E5 +:1009E0004DE7284652E7206ABDE8F09FD029000075 :1009F00030B5B0F10A0271F100034FEA900E4EEAF1 :100A0000817EB0EB0E0061EB91014FEA101E4EEAC1 :100A1000017E10EB0E0041EB11114FEA102E4EEA51 @@ -190,11 +190,11 @@ :100BC0000B99C1F80880C1E900200FB0BDE8F08F93 :100BD000BD1B6D1CDEE74A4600DA694206A800F03C :100BE0000FFC06AB93E8070003AB83E80700504611 -:100BF0000A9901F0B7FC8DE80700A0F500501F38F6 +:100BF0000A9901F0EDFE8DE80700A0F500501F38BE :100C000000900398002D0ADD42F21F014A46084475 -:100C1000002303A90390684601F020FF09E0A0F536 -:100C200000504A461F38002303A90390684601F08C -:100C30002AFF8DE807000004000C03D04FF0FF30BE +:100C1000002303A90390684602F056F909E0A0F505 +:100C200000504A461F38002303A90390684602F08B +:100C300060F98DE807000004000C03D04FF0FF308E :100C4000410800E01046B8F1000F03D000220092E6 :100C500015461EE0751E05D4FFF7CAFE30326255F8 :100C60006D1EF9D5B3460122084302D000227F1C35 @@ -206,7 +206,7 @@ :100CC000002004F80B000B98099AC0F80880C0E9CE :100CD000002B7AE711264FF0000857E72DE9F04F77 :100CE00088460446D21D22F0070191B0D1E90001E7 -:100CF000CDE90A0101F0FEFF02460B98C00F01D0BA +:100CF000CDE90A0102F034FA02460B98C00F01D088 :100D00002D2007E02068810701D52B2002E020215B :100D100001EAC000032A099001D0072A05DB034637 :100D20004146204600F02CFB0BE12078800601D5DF @@ -245,7 +245,7 @@ :100F3000401C2062381EA7F10107F3DC2046FFF7B2 :100F4000C7FA032011B041E62DE9F04F04460D46E3 :100F5000D21D22F0070089B0D0E9009748463946F3 -:100F600001F0C8FE0246F80F01D02D2307E02068EB +:100F600002F0FEF80246F80F01D02D2307E02068BA :100F7000810701D52B2302E0202101EAC0038DF86F :100F800020300BB1012000E00020032A824601D06E :100F9000072A04DB2946204600F0F2F93FE12078D9 @@ -290,7 +290,7 @@ :10120000010B3E280FD0D4E901219047206A401CF1 :101210002062B8F10108F2D22046FFF759F909B06F :101220000320BDE8F08F206A2844206203E0D4E95F -:101230000121302090476D1EEBD3F8E7B21D00006E +:101230000121302090476D1EEBD3F8E71E220000FD :1012400002FCFFFF01694A1C02610878704700B583 :101250008FB0CDE901310021059105497944CDE9EF :10126000031011466846FFF7FFFA0FB000BD0000FB @@ -310,7 +310,7 @@ :101340004FF000074FF000084FF0000BAC46ACE840 :10135000C009ACE8C009ACE8C009ACE8C00921F09C :1013600007018D467047000010B500F005F8001D1C -:1013700010BD00BFED19000000487047300000208C +:1013700010BD00BF591E00000048704770000020DB :101380002DE9F0411F46044603260168072A01F4AF :10139000006004DB08B116A505E016A503E008B15E :1013A00015A500E015A521F010002060A069C01E61 @@ -325,16 +325,16 @@ :10143000F1F5A5F1800501FB12041B3C02D56442C5 :10144000012000E00020DFF898A080460027FA4441 :10145000AAF1BE0A0EE0E0070AD03246684607EB62 -:10146000470101230AEB810101F00DFB8DE8070024 +:10146000470101230AEB810101F043FD8DE80700EC :1014700064107F1C002CEED1194F7F44AE3F19E061 :10148000E80715D007EB04100DF1180A90E80E00DC :101490008AE80E00C068F04201D1981908903246DF -:1014A000012306A903A801F0EEFA03AB83E80700C5 +:1014A000012306A903A801F024FD03AB83E807008C :1014B0006D10641C002DE3D14FF0010332466946E4 -:1014C000B8F1000F03A802D001F0C8FA01E001F062 -:1014D000DAFAC9E90001C9F808200AB0BDE8F087C6 -:1014E000841A000010B50446AFF300802046BDE822 -:1014F0001040FEF726BF0000004870471000002093 +:1014C000B8F1000F03A802D001F0FEFC01E001F02A +:1014D00010FDC9E90001C9F808200AB0BDE8F0878D +:1014E000F01E000010B50446AFF300802046BDE8B2 +:1014F0001040FEF726BF0000004870475000002053 :1015000030B44FF0013C50F8042B51F8043BCCFAB6 :1015100052F4D51A20D1FCB950F8042B51F8043BF1 :10152000CCFA52F4D51A17D1B4B950F8042B51F8AB @@ -346,453 +346,540 @@ :10158000019000F02BF80090FFE700F027F8009999 :10159000401A0199884202D2FFE700BFF5E702B086 :1015A00080BD000072B6FFE700BFFDE780B500F028 -:1015B00087FA40F20000C2F20000006844F6D351FE -:1015C000C1F26201A0FB0110800900F047FA18B1D6 -:1015D000FFE7FFF7E7FFFFE780BD000040F2CC0028 +:1015B000F9FB40F20000C2F20000006844F6D3518B +:1015C000C1F26201A0FB0110800900F0B9FB18B163 +:1015D000FFE7FFF7E7FFFFE780BD000040F20C10D8 :1015E000C2F200000068704780B541F20000C4F20A -:1015F0000200016841F4807101604FF4806100F0E5 -:1016000061FF002000F0ACF941F20800C4F20200D2 -:10161000012101600C21042200F07CFF00F0DAFAC5 -:1016200080BD000080B58AB005A800F031F940F215 -:10163000D000C2F200000078022801D0FFE7A6E047 -:10164000079841F29311884204D8FFE7012000F087 -:10165000F5FD9CE0099840F6D961884204D3FFE784 -:10166000022000F0EBFD92E00898B0F5E17F04D98C -:10167000FFE7032000F0E2FD89E040F20800C2F23B -:101680000000006840F6E4410191A0FB0101079AC7 -:101690000023FEF77EFE0146019803910999401A46 -:1016A0000490049800EB400048F21F51C5F2EB1182 -:1016B00050FB01F1481100EBD17240F2C800C2F2B8 -:1016C0000000016811440160006840F6B9318842A9 -:1016D00008DBFFE740F2C801C2F2000140F6B83073 -:1016E000086016E040F2C800C2F2000000684FF245 -:1016F0004741CFF6FF7188420ADCFFE740F2C8019C -:10170000C2F200014FF24840CFF6FF700860FFE7D9 -:10171000FFE7039804995A22514348F21F52C5F239 -:10172000EB1251FB02F2511101EBD271084440F26D -:10173000C801C2F200010968084402900898B0F597 -:10174000967F0AD9FFE70898A0F59670C0EB0011C4 -:101750000298A0EB81000290FFE70298B0F1FF3FF2 -:1017600003DCFFE7002002900DE00298009000F0FB -:1017700005FD01460098884204DDFFE700F0FEFC0D -:101780000290FFE7FFE7029800F026FCFFE70AB0AF -:1017900080BD000083B08DF807009DF8070001466A -:1017A0000091042823D80099DFE801F003090F1500 -:1017B0001B0043F21000C0F6000002901DE042F64C -:1017C000EE70C0F60000029017E042F6FF70C0F61F -:1017D0000000029011E043F22B00C0F600000290DE -:1017E0000BE043F23D00C0F60000029005E043F23A -:1017F0001D00C0F600000290FFE7029803B070479A -:1018000040F20400C2F200000068704740F2C400D9 -:10181000C2F200000078704740F20800C2F20000F7 -:101820000068704740F2D000C2F2000000787047B4 -:1018300080B500F00DFB002000F006FE00F0FCFD7E -:1018400000F068FA00F0EEFB014640F2C500C2F27B -:10185000000001700078C00720B1FFE7002000F011 -:10186000A3FBFFE740F2D001C2F2000101200870A3 -:1018700040F2C401C2F200010020087080BD0000E7 -:1018800040F2C500C2F20000007800F0010070478D -:1018900080B586B00590022000F090FA0599088086 -:1018A000032000F08BFA05994880042000F086FAA6 -:1018B000059988800598008800F0A6FA049005989C -:1018C000408800F0A1FA03900598808800F09CFA07 -:1018D0000290049840F68B01C0F20301019100F0E0 -:1018E00099FD05998860039800F084FD0199059A97 -:1018F000D060029800F08EFD0599086106B080BDA9 -:1019000083B08DF807009DF8070001460091032879 -:101910001CD80099DFE801F002080E1442F6E670C8 -:10192000C0F60000029017E042F6E070C0F600003A -:10193000029011E043F21500C0F6000002900BE0A7 -:1019400043F22500C0F60000029005E043F21D00BE -:10195000C0F600000290FFE7029803B07047000055 -:1019600083B0029044F24020C0F20F00019042F296 -:101970000001C4F20201086820F00F00029A10432F -:101980000860FFE742F20000C4F20200006800F0C5 -:101990000F01029A00209142009006D0FFE70198C3 -:1019A000002818BF01200090FFE70098C00720B171 -:1019B000FFE7019801380190E4E70198002818BF7B -:1019C000012003B07047000080B582B0019000F0A4 -:1019D000B1FA41F25800C4F20200016841F48021DA -:1019E0000160006844F60001C4F2000100200860B4 -:1019F00044F60402C4F20002106044F60802C4F285 -:101A00000002106040F20000C2F200000068019A7B -:101A100000EB5200B0FBF2F044F60C02C4F20002FC -:101A200010600D20086002B080BD000081B08DF80C -:101A30000300FFE744F61C00C4F200000068000643 -:101A4000002802D4FFE700BFF4E79DF8030044F646 -:101A50002801C4F20001086001B0704780B582B06F -:101A6000009000980138B0F1807F03D3FFE7012098 -:101A7000019019E0009801384EF21401CEF20001F5 -:101A800008604FF0FF300F2100F01CF94EF21801F2 -:101A9000CEF20001002008604EF21002CEF20002E9 -:101AA000072111600190FFE7019802B080BD00009E -:101AB00040F2CC01C2F200010868013008607047B2 -:101AC00080B5FFF791FD41F25800C4F202000168B1 -:101AD00041F080510160006847F20001C4F200014A -:101AE0000868012262F34A20086047F28001C4F2CC -:101AF0000001086820F48070086047F21400C4F206 -:101B000000004FF4806100F0B7FC18B9FFE7FFF761 -:101B10006BFD5DE00420FFF723FF18B9FFE7FFF737 -:101B200063FD55E041F20000C4F20200016841F497 -:101B3000807101604FF4806100F0C4FC18B9FFE7C8 -:101B4000FFF752FD44E041F20000C4F202000168D8 -:101B500021F0807101604FF0007100F08DFC18B928 -:101B6000FFE7FFF741FD33E041F20C01C4F202014F -:101B700045F23250C0F20010086041F20000C4F299 -:101B80000200016841F0807101604FF0007100F0C7 -:101B900099FC18B9FFE7FFF727FD19E041F20800AB -:101BA000C4F20200032101600C22114600F0B2FCD5 -:101BB00018B9FFE7FFF718FD0AE042F20001C4F28E -:101BC0000201086840F4E060086000F003F8FFE7F5 -:101BD00080BD000088B042F20040C0F2F4000790DF -:101BE00041F20800C4F20200006800F00C00069008 -:101BF00006980C2835D1FFE742F20040C0F2F4000D -:101C0000059041F20C00C4F20200006804909DF8B7 -:101C10001010012000EB111003900498C0F306206F -:101C200002900498C0F3416001900199022000EBFA -:101C300041000090049800F00300032806D1FFE75C -:101C400041F20020C0F27A000590FFE70598039961 -:101C5000B0FBF1F0029948430099B0FBF1F0079016 -:101C60000AE00698082806D1FFE741F20020C0F2FA -:101C70007A000790FFE7FFE7079841F20801C4F2F6 -:101C800002010968C9B20A0942F6AC61C0F6000156 -:101C9000895CC84040F20001C2F20001086008B04F -:101CA000704700004EF68851CEF20001086840F4FB -:101CB000700008604EF60851CEF200014FF000604F -:101CC0000860704782B08DF8070000919DF9070009 -:101CD00000280AD4FFE7009800019DF907104EF292 -:101CE0000042CEF2000288540BE0009800019DF8FB -:101CF000071001F00F014EF61452CEF20002885484 -:101D0000FFE702B07047000081B00090FFE700BF1E -:101D1000FDE7000080B582B041F24C00C4F2020041 -:101D2000016841F400510160006840F20831C5F2D9 -:101D30000001086840F4403008600821C5F2000145 -:101D40000191086820F000500860086840F0805059 -:101D500008600120FFF712FC0199086840F000407C -:101D60000860FFE70820C5F200000068C00F10B14E -:101D7000FFE700BFF6E70C21C5F200014FF48050E9 -:101D800008601421C5F2000145F6403008604FF0AC -:101D9000A041012008600821C5F20001086840F058 -:101DA00001000860FFE74FF0A0400068C00710B9CD -:101DB000FFE700BFF7E702B080BD000081B00090F0 -:101DC000009880013021C5F2000108604FF0A04169 -:101DD0000C2008600821C5F20001086840F00400EA -:101DE0000860FFE74FF0A04000684007002802D4D9 -:101DF000FFE700BFF6E74020C5F2000000686FF380 -:101E00001F3001B07047000081B0ADF80200BDF88E -:101E1000020040F6E44148431121C1F20101A0FB58 -:101E20000110000A01B0704780B582B001900091A6 -:101E300001980A2804D1FFE70D20FFF7F7FDFFE71F -:101E40009DF80400FFF7F2FD019802B080BD00008C -:101E500041F24C00C4F20200016841F00701016048 -:101E600000684FF09041086840F0FC0008600C21C9 -:101E7000C4F60001086820F0FC00086040F2004150 -:101E8000C4F60001086820F070600860086840F03F -:101E90002060086040F20441C4F60001086820F4A4 -:101EA0004050086040F20841C4F60001086840F064 -:101EB0007060086040F20C41C4F60001086820F030 -:101EC0007060086040F22441C4F60001086820F404 -:101ED0007F000860086840F45D00086040F600017B -:101EE000C4F6000108684FF63F72C0F6FF7210405A -:101EF000086008684023C5F200031843086040F6F4 -:101F00000401C4F6000108684CF208039843086015 -:101F100040F60801C4F6000108688023CAF20003F5 -:101F20001843086040F60C01C4F600010868104030 -:101F30000860704741F24C00C4F20200016841F0B1 -:101F400004010160006840F60001C4F60001086861 -:101F500020F470000860086840F42000086040F633 -:101F60000401C4F60001086820F44060086040F6EF -:101F70000801C4F60001086840F47000086040F6EB -:101F80000C01C4F60001086820F47000086040F6F7 -:101F90002401C4F60001086820F47F400860086846 -:101FA00040F4EE400860704781B08DF803009DF862 -:101FB0000300C00738B1FFE746F69431C4F20101CF -:101FC0003020086006E046F69831C4F20101302066 -:101FD0000860FFE701B0704780B582B001900198BA -:101FE000002803D2FFE7002001900DE00198009047 -:101FF00000F0C4F801460098884204D9FFE700F0D9 -:10200000BDF80190FFE7FFE7019846F69C11C4F286 -:1020100001010860019840F20401C2F20001086069 -:1020200002B080BD80B584B046F68010C4F20100D5 -:10203000029041F26000C4F20200016841F0806148 -:102040000160006846F69831C4F201013020086052 -:1020500000F0B6F840F20801C2F20001086046F64E -:102060008C31C4F201014FF48030086046F6CC3167 -:10207000C4F201010B20086000F05AF890B9FFE7A4 -:1020800046F69831C4F201013020086046F600019E -:10209000C4F20101086820F40020086000208DF8D7 -:1020A0000F0040E0029908200190086040F208000B -:1020B000C2F200000068029948610299002088611C -:1020C0000299C86100F05AF80199029A5062029A86 -:1020D0004FF47A709062029A40F66E40C0F25E1041 -:1020E0009063029A0420D063029A1164029A5164A8 -:1020F00002998864029940F22010C0F220004866DC -:1021000046F6BC31C4F201014FF40010086046F6F7 -:102110000001C4F20101086820F4002008600120D9 -:102120008DF80F00FFE79DF80F0004B080BD0000A0 -:1021300082B044F24020C0F20F000190FFE746F663 -:102140008830C4F2010001680020C9030029009012 -:1021500006D4FFE70198002818BF01200090FFE790 -:102160000098C00720B1FFE7019801380190E6E729 -:102170000198002818BF012002B0704781B045F6D1 -:10218000C050009040F20800C2F2000000680B2826 -:1021900012D3FFE7009840F20801C2F2000109687B -:1021A0000139884208D3FFE740F20800C2F200007C -:1021B000006801380090FFE7009801B07047000008 -:1021C00080B584B040F20000C2F200000268D10E77 -:1021D00048F2A060C0F2010010EB421041F1000192 -:1021E00040F64052C0F2030200230093FEF7D1F8FC -:1021F0000246009801920A46019903920291029ABE -:102200000399D2F16302884105D3FFE700200390D0 -:10221000642002900EE002990398B1F5803170F1CC -:10222000000006D3FFE7002003904FF6FF700290F6 -:10223000FFE7FFE7029804B080BD000080B582B0E0 -:102240008DF8070000200090FFF7AEFE0098FFF722 -:10225000C3FE009846F60002C4F20102116821F4A0 -:102260000021116000F0F0F89DF8070040F2C40171 -:10227000C2F20001087040F2D001C2F20001032056 -:10228000087002B080BD000070B596B000201590B7 -:10229000149013901290FFE7129841F2FF11C0F2D0 -:1022A0007A01884206D8FFE700BFFFE712980130A5 -:1022B0001290F1E7FFF77AF94FF4E1300B90FFF756 -:1022C00083FBFFF7B5FA42F64C70C0F60000FEF74C -:1022D000D9F80B9942F6F660C0F60000FEF7D2F886 -:1022E00040F20000C2F20000016842F6B970C0F688 -:1022F0000000FEF7C7F8FFF78FFA024642F6277094 -:10230000C0F6000040F64051C0F20301FEF7BAF8F3 -:10231000FFF7B6FA024642F6E070C0F6000042F659 -:10232000D271C0F60001002A18BF014642F61870AB -:10233000C0F60000FEF7A6F842F6BC60C0F600004A -:10234000FEF7A0F8FFE7FFF749F9119011981499EB -:10235000401A28B1FFE711981490FFF763F9FFE7DF -:1023600011981399401AB0F5FA7F41D3FFE71198FD -:1023700013900CA8FFF78CFAFFF754FAFFF7C0FA96 -:102380000690FFF743FAFFF705FA0790FFF778FA90 -:10239000024642F6E071C0F6000142F6DC70C0F67B -:1023A0000000002A18BF084608900E980A900F985F -:1023B0000990109CFFF724FA0546FFF72DFA0699BD -:1023C000079A089BDDF824E006460A98EC46CCF80C -:1023D0001060CCF80C50CCF80840CCF804E0CCF8F5 -:1023E000000042F67170C0F60000FEF74BF8FFE700 -:1023F000A9E7000081B0009000984FF47A7148433B -:102400004BF69B51CBF2CA51A0FB0110400A01B020 -:102410007047000080B582B001900091019844F2AD -:102420004021C0F20F01A0FB0101009A0023FDF73B -:10243000B0FF02B080BD000040F62801C4F60001E4 -:102440004FF440400860704781B08DF803009DF85C -:102450000300C00738B1FFE740F61801C4F60001D9 -:102460000820086006E040F62801C4F600010820B4 -:102470000860FFE701B0704784B00390029144F216 -:102480004020C0F20F000190FFE703980168029A14 -:1024900000201142009006D0FFE70198002818BFE5 -:1024A00001200090FFE70098C00720B1FFE70198E6 -:1024B00001380190E9E70198002818BF012004B015 -:1024C0007047000084B00390029144F24020C0F2B3 -:1024D0000F000190FFE703980068029A00EA0201EA -:1024E00000209142009006D0FFE70198002818BF15 -:1024F00001200090FFE70098C00720B1FFE7019896 -:1025000001380190E7E70198002818BF012004B0C6 -:102510007047000085B004900391029244F240207D -:10252000C0F20F000190FFE7049800680399014092 -:10253000029A00209142009006D0FFE701980028FF -:1025400018BF01200090FFE70098C00720B1FFE707 -:10255000019801380190E7E70198002818BF012091 -:1025600005B070475FEA400C08BF91F0000F4FEADA -:102570008C234FEAC12243EA51514FEA1C5018BF45 -:1025800000F5F0404FEA300018BF41F000415FEA2B -:102590006C5C00F02980BCF1FF3F08BF40F0804038 -:1025A0007047130C06BF12044FF0100C4FF0000CD4 -:1025B000130E04BF12020CF1080C130F04BF12011A -:1025C0000CF1040C930F04BF92000CF1020CD30F1A -:1025D00004BF52000CF1010C11464FF00002A0F1B3 -:1025E0001F00A0EB0C00704711F0004F08BF7047B0 -:1025F00031F000413FF4D5AF0B0C06BF09044FF09A -:10260000100C4FF0000C0B0E04BF09020CF1080C6B -:102610000B0F04BF09010CF1040C8B0F04BF8900E0 -:102620000CF1020CCB0F04BF49000CF1010CCCF1F2 -:10263000200322FA03F341EA030102FA0CF2A0EBB1 -:102640000C0000F10100704723F07F4720F07F4C21 -:1026500080EA030000F00040ACEB070303F57C5375 -:1026600003F1FF032DE9804909B44FEA144324EA3A -:1026700003484FEA154B25EA0B4E0FF2042606EBF2 -:1026800013273E7803FB0667C7F5000707FB06F62E -:102690004FEAD64606F102064FEA543707FB066CAE -:1026A000CCF1005C4FEA1C472CEA074C0CFB06F50A -:1026B00007FB06F404EB15464FEA961649085FEA55 -:1026C000320234BF00204FF000404FEAD13706FB02 -:1026D00007FC4FEA1C4C0CFB0BF7D21B03FB0CF75F -:1026E00061EB07010CFB0EF7B0EB074072EB1742F2 -:1026F0000CFB08F734BFA2EB0742B2EB074261EBD9 -:1027000017414FEA0C444FEA910706FB07FC4FEADA -:102710001C4C0CFB0BF7B0EBC74072EB573203FBC2 -:102720000CF734BFA2EBC742B2EBC74261EB5731A3 -:102730000CFB0EF7B0EBC70072EB57720CFB08F7FF -:1027400034BFA2EBC702B2EBC70261EB57714FEA8D -:10275000816141EA92114FEA826242EA90124FEAA5 -:10276000806004EBCC04039F4FEAD13706FB07FCE3 -:102770004FEA1C4C0CFB0BF7D21B03FB0CF761EB75 -:1027800007010CFB0EF7B0EB074072EB17420CFB96 -:1027900008F734BFA2EB0742B2EB074261EB1741E7 -:1027A0004FEA8C5504EB9C244FEA910706FB07FC8B -:1027B0004FEA1C4C0CFB0BF7B0EBC74072EB5732E7 -:1027C00003FB0CF734BFA2EBC742B2EBC74261EB8D -:1027D00057310CFB0EF7B0EBC70072EB57720CFBD6 -:1027E00008F734BFA2EBC702B2EBC70261EB577127 -:1027F0004FEA816141EA92114FEA826242EA901205 -:102800004FEA806015EB4C2544F100044FEAD137C4 -:1028100006FB07FC4FEA1C4C0CFB0BF7D21B03FB1F -:102820000CF761EB07010CFB0EF7B0EB074072EB06 -:1028300017420CFB08F734BFA2EB0742B2EB07428A -:1028400061EB17414FEA813141EA92414FEA82320E -:1028500042EA90424FEA80304FEA0C7615EB1C15A5 -:1028600044F1000448EA03434EEA0B484FF0000EDF -:10287000B2EB080C71EB030724BF624639464EEBFE -:102880000E0E4FF0000B0018524149414BEB0B0B61 -:10289000B2EB080C71EB03077BF1000B24BF62461F -:1028A00039464EEB0E0E4FF0000B001852414941D5 -:1028B0004BEB0B0BB2EB080C71EB03077BF1000B3E -:1028C00024BF624639464EEB0E0E51EA020718BF8E -:1028D00046F0010616EB0E7655F1000254F10001A8 -:1028E00003D5BDE88901BDE80088BDE88901BDE8E0 -:1028F0000048B619524141EB0101A3F101037047B1 -:1029000080807F7E7D7C7B7A79787776767574732C -:10291000727171706F6E6E6D6C6C6B6A6A696868EB -:10292000676666656464636362616160605F5F5E81 -:102930005E5D5D5C5C5B5B5A5A59595858575756F7 -:10294000565555555454535352525251515050505C -:102950004F4F4F4E4E4D4D4D4C4C4C4B4B4B4A4AAE -:102960004A494949484848474747474646464545F2 -:10297000454444444443434343424242424141412B -:102980009C46002B30D477002BD04FEA37071CB57C -:1029900003B44FF010004FF01001BAF1000F06D051 -:1029A000BCF1000FDCBF40F0080040F008014FF020 -:1029B00000000FBCBDE810400BF1010BBBF1010F93 -:1029C00008BF5FEA170722BF12F1010211F10101EE -:1029D0004FF0004143F1000300F0004043EA0000E3 -:1029E0007047F9D35708D0E746EA06464FEA16463D -:1029F00013F1400F1FDD13F1200FDFBF16430A460E -:102A0000002120335B42BED0C3F1200746EA0646D0 -:102A10004FEA164602FA07F746EA070622FA03F2D9 -:102A2000C3F1200701FA07F742EA070221FA03F18E -:102A30004FF00003A7E746EA020646EA06464FEAD9 -:102A4000164646EA0106BCBF46EA0646360C4FF07B -:102A500000034FF000024FF0000194E72DE9804C95 -:102A600070B49A46934691E8380007C831EA400CA2 -:102A700048BF34EA430C03D5FFF7E6FDFFF780FFBC -:102A8000F0BCBDE8008C2DE9804C70B49A469346AA -:102A900091E8380007C810F0804F08BF13F0804F4E -:102AA00003D100F005F8FFF76BFFF0BCBDE8008C28 -:102AB00020F07F4723F07F4C80EA030000F00040C5 -:102AC00007EB0C03A3F57C53A3F1FE0392F0000F78 -:102AD00000F0B38095F0000F00F077802DE90149F8 -:102AE0004FEA114021EA00484FEA144624EA06471B -:102AF00000FB06FC08FB06F607FB08F818EB064887 -:102B00004CEB164C00FB07F718EB07484CEB174053 -:102B10004FEA124B22EA0B4E4FEA154625EA0647CA -:102B20000BFB06FC0EFB06F607FB0EFE1EEB064E2D -:102B30004CEB164C0BFB07F71EEB074E4CEB174B01 -:102B400018EB0B0840F1000018EB0E0B58EB0008D7 -:102B500040F100008F1A4FF000014FF000063CBF1B -:102B6000C943661B14BFB5EB040C00213CBFC9432D -:102B7000F61B4FEA174427EA04454FEA1C472CEAA4 -:102B8000074C04FB076205FB07F70CFB05F616EB89 -:102B9000074642EB174204FB0CFC16EB0C4642EBDB -:102BA0001C421BEB060658EB020241414EEA8E0E18 -:102BB00046EA9E0601D5BDE80189B619524141EBAE -:102BC0000101A3F10103BDE801894FEA144524EA9C -:102BD00005464FEA114721EA074C05FB07F406FBBF -:102BE00007F70CFB06F111EB074144EB174405FB1B -:102BF0000CFC11EB0C4144EB1C444FEA124722EA57 -:102C0000074C05FB07F206FB07F70CFB06F616EB75 -:102C1000074642EB174205FB0CFC16EB0C4642EB59 -:102C20001C456A1854F1000148BF7047B61952415B -:102C300041EB0101A3F10103704795F0000F37D07C -:102C40004FEA114221EA02464FEA144724EA074CB0 -:102C500002FB07F106FB07F70CFB06F414EB074435 -:102C600041EB174102FB0CFC14EB0C4441EB1C4103 -:102C70004FEA154725EA074C02FB07F506FB07F765 -:102C80000CFB06F616EB074645EB174502FB0CFC62 -:102C900016EB0C4645EB1C42121951F1000148BFDE -:102CA0007047B619524141EB0101A3F1010370478E -:102CB0004FEA144524EA05464FEA114721EA074C3A -:102CC00005FB07F106FB07F70CFB06F212EB0742C8 -:102CD00041EB174105FB0CFC12EB0C4251EB1C4184 -:102CE0004FF0000648BF7047921841EB0101A3F175 -:102CF0000103704703B401984100009850EAC120D5 -:102D000018BF04204A0D18BF40F0010040F2FF72C6 -:102D1000B2EB515F08BF40F00200012808BF052058 -:102D200002B0704730380A2801D2012070470020D5 -:102D30007047000010B500290AD00878002807D095 -:102D400005487844FEF7DCFB002801D0002010BDC8 -:102D50000248784410BD00002E0300002603000046 -:102D600010B500290AD00878002807D00548784413 -:102D7000FEF7C6FB002801D0002010BD02487844B1 -:102D800010BD00001E03000016030000F1EE100A43 -:102D90004FF6FF71C0F2C03120EA010040F04070F0 -:102DA000E1EE100A7047FDF799BFFEF7CDB80000BD -:102DB0000000000000000000303132333435363777 -:102DC000383941424344454640305800303132336F -:102DD000343536373839616263646566403078006F -:102DE00004000008000000000000000200010000D4 -:102DF00010303132333435363738396162636465C7 -:102E000066787000303132333435363738394142E4 -:102E1000434445465850000002400000000000A016 -:102E20000000000005400000000000C80000000095 -:102E30000C4000000000409C000000001940000011 -:102E40000020BCBE0000000034400000BFC91B8E43 -:102E500000000004B5400000504BCFD06607E2CF21 -:102E6000010000006C4100003E8251AADFEEA73451 -:102E700001000000D9420000DCB5A0E23A301F9703 -:102E8000FFFFFFFFB4450000FD25A0C8E9A3C14F27 -:102E9000FFFFFFFFFF3F0000000000800000000078 -:102EA000FF3F000000000080000000000000000064 -:102EB000000000000102030406070809506F77654F -:102EC000722073746167653A2064697361626C652E -:102ED0006420696E206170705F636F6E6669672E33 -:102EE000683B20414443206D6F6E69746F72206FA0 -:102EF0006E6C792E0A00555341525433207265741A -:102F00006172676574207072696E74663A20256C10 -:102F10007520626175640A00485254494D20444C42 -:102F20004C3A2025730A0050574D3A20256C7520E5 -:102F3000487A2C20706572696F643D256C75204855 -:102F40005254494D207469636B730A000A422D473D -:102F5000343734452D44504F5731204443444320A7 -:102F6000737461727465722070726F6A6563740A3B -:102F70000073746174653D2573206661756C743DE2 -:102F8000257320687274696D3D25732076696E3DE6 -:102F9000256C756D562069696E3D256C756D4120F7 -:102FA000766F75743D256C756D5620647574793D2A -:102FB000256C752F256C750A0053797374656D4304 -:102FC0006F7265436C6F636B3A20256C7520487A8D -:102FD0000A006E6F74207265616479006E6F742DE3 -:102FE00072656164790073746F70706564007669EE -:102FF0006E20756E646572766F6C746167650076BD -:103000006F7574206F766572766F6C74616765009A -:103010006E6F6E650072756E6E696E6700756E6BB1 -:103020006E6F776E006661756C7400696E70757492 -:10303000206F76657263757272656E740068727463 -:10304000696D20646C6C2074696D656F7574000027 -:10305000A031000800000020100000003C02000821 -:10306000B031000810000020C80600005C02000813 -:103070001C00000043000000F8FFFFFF0C000000F0 -:103080000E0000000F0000002E00000010010000E4 -:1030900043000000F8FFFFFF004040404040404038 -:1030A000404041414141414040404040404040401B -:1030B00040404040404040404005020202020202BF -:1030C000020202020202020202202020202020200E -:1030D0002020200202020202020290909090909022 -:1030E00010101010101010101010101010101010E0 -:1030F0001010101002020202020288888888888854 -:10310000080808080808080808080808080808083F -:103110000808080802020202400000000000000047 -:10312000000000000000000000000000000000009F -:10313000000000000000000000000000000000008F -:10314000000000000000000000000000000000007F -:10315000000000000000000000000000000000006F -:10316000000000000000000000000000000000005F -:10317000000000000000000000000000000000004F -:10318000000000000000000000000000000000003F -:10319000000000000000000000000000000000002F -:1031A0000024F40090010000406A000000000000CC +:1015F0000200016841F4807101604FF4806101F0E4 +:1016000097F9002000F01EFB41F20800C4F202002E +:10161000012101600C21042201F0B2F900F04CFC20 +:1016200080BD000080B540F20510C2F200000078D5 +:10163000C00708B9FFE713E000F042FE40F21010C7 +:10164000C2F20000007802280AD1FFE740F204004D +:10165000C2F20000C06801F0E9F800F091FEFFE777 +:1016600080BD000080B58AB005A800F08BF940F27B +:101670001010C2F200000078032801D0FFE7BAE0A2 +:10168000079840F20401C2F20001496A884204D27C +:10169000FFE7012000F0C6FFADE0099840F2040129 +:1016A000C2F20001896A884204D9FFE7022000F0F3 +:1016B000B9FFA0E0089840F20401C2F20001096BF2 +:1016C000884204D9FFE7032000F0ACFF93E040F22A +:1016D0000400C2F200000190006A40F24801C2F228 +:1016E00000010968A0FB0101079A0023FEF751FEE3 +:1016F00001990390086A099A801A04900498896BEA +:10170000484348F21F51C5F2EB1150FB01F148115B +:1017100000EBD17240F20810C2F2000001681144DF +:101720000160006840F6B931884208DBFFE740F20B +:101730000811C2F2000140F6B830086016E040F22D +:101740000810C2F2000000684FF24741CFF6FF7167 +:1017500088420ADCFFE740F20811C2F200014FF2B2 +:101760004840CFF6FF700860FFE7FFE70398049A50 +:1017700040F20401C2F200014B6B5A4348F21F537E +:10178000C5F2EB1352FB03F35A1102EBD372104470 +:1017900040F20812C2F20002126810440290089847 +:1017A000C96A88420DD9FFE7089840F20401C2F2E5 +:1017B0000001CA6A801AC96B029A00FB11200290CC +:1017C000FFE70298B0F1FF3F03DCFFE70020029043 +:1017D0000DE00298009000F0B1FE014600988842AA +:1017E00004DDFFE700F0AAFE0290FFE7FFE70298A2 +:1017F00000F0C6FDFFE70AB080BD000083B08DF8A1 +:1018000007009DF8070001460091042823D800999D +:10181000DFE801F003090F151B0043F21A50C0F670 +:10182000000002901DE043F2F840C0F60000029074 +:1018300017E043F20950C0F60000029011E043F2B5 +:101840004950C0F6000002900BE043F26450C0F62D +:101850000000029005E043F22750C0F6000002901D +:10186000FFE7029803B0704740F24400C2F2000064 +:101870000068704740F20410C2F200000078704720 +:1018800081B040F20400C2F200000068C0B2022839 +:1018900008D8FFE740F20400C2F2000000688DF8AB +:1018A000030003E000208DF80300FFE79DF803002C +:1018B00001B0704740F24800C2F200000068704773 +:1018C00040F21010C2F200000078704780B500F0BE +:1018D0004BFC002000F0EEFF00F0E4FF00F08CFB7A +:1018E00000F074FD014640F20510C2F200000170E4 +:1018F0000078C00720B1FFE7002000F029FDFFE7D6 +:1019000040F21011C2F200010120087040F20411EF +:10191000C2F200010020087080BD000040F20510F6 +:10192000C2F20000007800F00100704783B08DF82B +:1019300007009DF807000146009140B1FFE70098BD +:1019400001280AD0FFE7009802280CD011E043F2EA +:101950003B50C0F60000029011E043F25B50C0F62D +:10196000000002900BE043F22F50C0F600000290FE +:1019700005E043F22750C0F600000290FFE702980E +:1019800003B0704780B586B00590022000F088FB58 +:1019900005990880032000F083FB05994880042006 +:1019A00000F07EFB059988800598008800F09EFB7A +:1019B00004900598408800F099FB03900598808872 +:1019C00000F094FB0290049840F68B01C0F20301F2 +:1019D000019100F055FF05998860039800F040FFE1 +:1019E0000199059AD060029800F04AFF05990861B4 +:1019F00006B080BD80B582B0FFF742FF8DF80700CA +:101A0000FFF710FE9DF807000146009140B1FFE787 +:101A10000098012818D0FFE70098022820D036E06F +:101A200040F21010C2F200000078022808D0FFE750 +:101A300040F21010C2F200000078032803D1FFE743 +:101A400000F0E4F8FFE723E040F21010C2F20000DB +:101A50000078022803D0FFE700F05AF8FFE717E00C +:101A600040F21010C2F200000078032803D0FFE714 +:101A700000F010F8FFE740F21010C2F2000000780A +:101A8000032803D1FFE7FFF7EDFDFFE700E0FFE7E5 +:101A900002B080BD80B540F20410C2F200000078B0 +:101AA00008B1FFE733E040F20510C2F20000007811 +:101AB000C00720B9FFE7042000F0B4FD27E040F2A2 +:101AC0000400C2F200004068002818BF012000F0A6 +:101AD000F1FE40F20811C2F200010020086000F09F +:101AE000EFFB4FF4C87000F04BFC46F60001C4F267 +:101AF0000101086840F400200860012000F028FC83 +:101B000040F21011C2F2000103200870FFE780BD0F +:101B100080B582B040F20410C2F20000007808B133 +:101B2000FFE73AE040F20510C2F200000078C0077B +:101B300020B9FFE7042000F075FD2EE000F0C0FBA7 +:101B400040F20400C2F20000C06800F06FFE019095 +:101B5000019818B9FFE701200190FFE700200090ED +:101B600000F0A8FE009840F20811C2F200010860DF +:101B7000019800F005FC46F60001C4F20101086876 +:101B800040F400200860012000F0E2FB40F2101158 +:101B9000C2F2000102200870FFE702B080BD000021 +:101BA00083B08DF807009DF80700014600910428D6 +:101BB00023D80099DFE801F003090F151B0043F259 +:101BC000F040C0F6000002901DE043F2EA40C0F68B +:101BD0000000029017E043F25B50C0F60000029054 +:101BE00011E043F21F50C0F6000002900BE043F2F8 +:101BF0004350C0F60000029005E043F22750C0F6C3 +:101C000000000290FFE7029803B0704780B582B0F1 +:101C10000020019000F09CFB019800F0B1FB0198BE +:101C200046F60002C4F20102116821F4002111609D +:101C300000F040FE019840F21011C2F2000108705D +:101C400002B080BD83B0029044F24020C0F20F0089 +:101C5000019042F20001C4F20201086820F00F0076 +:101C6000029A10430860FFE742F20000C4F202004B +:101C7000006800F00F01029A00209142009006D007 +:101C8000FFE70198002818BF01200090FFE70098A7 +:101C9000C00720B1FFE7019801380190E4E70198FF +:101CA000002818BF012003B07047000080B582B043 +:101CB000019000F0CBFA41F25800C4F20200016832 +:101CC00041F480210160006844F60001C4F2000183 +:101CD0000020086044F60402C4F20002106044F6DA +:101CE0000802C4F20002106040F20000C2F20000DC +:101CF0000068019A00EB5200B0FBF2F044F60C02CF +:101D0000C4F2000210600D20086002B080BD000027 +:101D100081B08DF80300FFE744F61C00C4F2000018 +:101D200000680006002802D4FFE700BFF4E79DF832 +:101D3000030044F62801C4F20001086001B07047B6 +:101D400080B582B0009000980138B0F1807F03D355 +:101D5000FFE70120019019E0009801384EF21401CC +:101D6000CEF2000108604FF0FF300F2100F01CF9A7 +:101D70004EF21801CEF20001002008604EF210026F +:101D8000CEF20002072111600190FFE7019802B036 +:101D900080BD000040F20C11C2F200010868013061 +:101DA0000860704780B5FFF71FFC41F25800C4F28D +:101DB0000200016841F080510160006847F20001B3 +:101DC000C4F200010868012262F34A20086047F269 +:101DD0008001C4F20001086820F48070086047F2B6 +:101DE0001400C4F200004FF4806100F07BFD18B9CC +:101DF000FFE7FFF7F9FB5DE00420FFF723FF18B9C9 +:101E0000FFE7FFF7F1FB55E041F20000C4F20200EA +:101E1000016841F4807101604FF4806100F088FD39 +:101E200018B9FFE7FFF7E0FB44E041F20000C4F21D +:101E30000200016821F0807101604FF0007100F034 +:101E400051FD18B9FFE7FFF7CFFB33E041F20C017A +:101E5000C4F2020145F23250C0F20010086041F2B3 +:101E60000000C4F20200016841F0807101604FF08F +:101E7000007100F05DFD18B9FFE7FFF7B5FB19E051 +:101E800041F20800C4F20200032101600C22114655 +:101E900000F076FD18B9FFE7FFF7A6FB0AE042F273 +:101EA0000001C4F20201086840F4E060086000F03C +:101EB00003F8FFE780BD000088B042F20040C0F2A6 +:101EC000F400079041F20800C4F20200006800F03C +:101ED0000C00069006980C2835D1FFE742F200402E +:101EE000C0F2F400059041F20C00C4F20200006858 +:101EF00004909DF81010012000EB1110039004983D +:101F0000C0F3062002900498C0F34160019001994B +:101F1000022000EB41000090049800F00300032829 +:101F200006D1FFE741F20020C0F27A000590FFE7FA +:101F300005980399B0FBF1F0029948430099B0FB72 +:101F4000F1F007900AE00698082806D1FFE741F271 +:101F50000020C0F27A000790FFE7FFE7079841F200 +:101F60000801C4F202010968C9B20A0943F2183132 +:101F7000C0F60001895CC84040F20001C2F20001D5 +:101F8000086008B0704700004EF68851CEF200019C +:101F9000086840F4700008604EF60851CEF2000167 +:101FA0004FF000600860704782B08DF80700009124 +:101FB0009DF9070000280AD4FFE7009800019DF969 +:101FC00007104EF20042CEF2000288540BE0009857 +:101FD00000019DF8071001F00F014EF61452CEF2E9 +:101FE00000028854FFE702B07047000081B0009003 +:101FF000FFE700BFFDE7000080B582B041F24C0072 +:10200000C4F20200016841F400510160006840F22E +:102010000831C5F20001086840F44030086008212A +:10202000C5F200010191086820F0005008600868BE +:1020300040F0805008600120FFF7A0FA019908687D +:1020400040F000400860FFE70820C5F2000000688B +:10205000C00F10B1FFE700BFF6E70C21C5F2000189 +:102060004FF4805008601421C5F2000145F640305D +:1020700008604FF0A041012008600821C5F200016E +:10208000086840F001000860FFE74FF0A0400068DA +:10209000C00710B9FFE700BFF7E702B080BD00003E +:1020A00081B00090009880013021C5F200010860E5 +:1020B0004FF0A0410C2008600821C5F2000108681B +:1020C00040F004000860FFE74FF0A04000684007C0 +:1020D000002802D4FFE700BFF6E74020C5F2000069 +:1020E00000686FF31F3001B07047000081B0ADF899 +:1020F0000200BDF8020040F6E44148431121C1F25C +:102100000101A0FB0110000A01B0704784B00290E9 +:102110000191009202980199884203D2FFE7019849 +:1021200003900AE002980099884203D9FFE70098DB +:10213000039002E002980390FFE7039804B0704711 +:1021400080B582B00190009101980A2804D1FFE780 +:102150000D20FFF7DDFDFFE79DF80400FFF7D8FD38 +:10216000019802B080BD000041F24C00C4F20200B0 +:10217000016841F00701016000684FF09041086874 +:1021800040F0FC0008600C21C4F60001086820F053 +:10219000FC00086040F20041C4F60001086820F02D +:1021A00070600860086840F02060086040F20441F8 +:1021B000C4F60001086820F44050086040F208416D +:1021C000C4F60001086840F07060086040F20C41FD +:1021D000C4F60001086820F07060086040F22441F5 +:1021E000C4F60001086820F47F000860086840F425 +:1021F0005D00086040F60001C4F6000108684FF673 +:102200003F72C0F6FF721040086008684023C5F2B4 +:1022100000031843086040F60401C4F60001086892 +:102220004CF208039843086040F60801C4F6000128 +:1022300008688023CAF200031843086040F60C01C6 +:10224000C4F60001086810400860704741F24C0075 +:10225000C4F20200016841F004010160006840F628 +:102260000001C4F60001086820F4700008600868E6 +:1022700040F42000086040F60401C4F6000108683C +:1022800020F44060086040F60801C4F600010868C8 +:1022900040F47000086040F60C01C4F600010868C4 +:1022A00020F47000086040F62401C4F600010868BC +:1022B00020F47F400860086840F4EE4008607047F2 +:1022C00080B588B046F68010C4F20100079040F255 +:1022D0000400C2F200000390806800F05DF901463E +:1022E0000398069180690021019140F2FF12029249 +:1022F000FFF70CFF0199029A034603980593C06902 +:10230000FFF704FF014603980491069940F2480242 +:10231000C2F2000211600699079A51610599049A68 +:1023200041EA024141F44061079A9163406930B14A +:10233000FFE70799486E40F48070486605E007990A +:10234000486E20F480704866FFE708B080BD00004A +:1023500081B08DF803009DF80300C00738B1FFE796 +:1023600046F69431C4F201013020086006E046F6DA +:102370009831C4F2010130200860FFE701B07047D6 +:1023800080B582B001900198002803D2FFE70020B9 +:1023900001900DE00198009000F0D0F801460098FF +:1023A000884204D9FFE700F0C9F80190FFE7FFE792 +:1023B000019846F69C11C4F201010860019840F2B0 +:1023C0004401C2F20001086002B080BD80B584B053 +:1023D00046F68010C4F20100029041F26000C4F29F +:1023E0000200016841F080610160006841F2400133 +:1023F000C4F20201086840F080600860086820F0BC +:102400008060086046F69831C4F20101302008600F +:1024100040F20400C2F20000806800F0BDF840F213 +:102420004801C2F20001086046F68C31C4F2010195 +:102430004FF48030086046F6CC31C4F201010B2025 +:10244000086000F055F890B9FFE746F69831C4F2FD +:1024500001013020086046F60001C4F2010108685D +:1024600020F40020086000208DF80F003BE0029966 +:1024700008200090086040F24800C2F200000068A6 +:102480000299486102990020019088610299C8610F +:1024900000F054F8009A01460198029B5962029B91 +:1024A0004FF47A719962029B0421D963029B1A64EA +:1024B000029B5A64029A916402994866FFF700FFF2 +:1024C00046F6BC31C4F201014FF40010086046F634 +:1024D0000001C4F20101086820F400200860012016 +:1024E0008DF80F00FFE79DF80F0004B080BD0000DD +:1024F00082B044F24020C0F20F000190FFE746F6A0 +:102500008830C4F2010001680020C903002900904E +:1025100006D4FFE70198002818BF01200090FFE7CC +:102520000098C00720B1FFE7019801380190E6E765 +:102530000198002818BF012002B0704780B582B012 +:1025400040F20400C2F20000006901214FF47A72E7 +:10255000FFF7DCFD0190019800F068F9009040F26F +:102560004800C2F2000000680B2812D3FFE7009871 +:1025700040F24801C2F2000109680139884208D3DB +:10258000FFE740F24800C2F2000000680138009006 +:10259000FFE7009802B080BD80B586B00590059831 +:1025A00030B9FFE740F64050C0F203000590FFE766 +:1025B00040F20000C2F20000D0F800E04FEADE6115 +:1025C000059A002300935FEA530C4FEA320010EBA8 +:1025D0004E1041EB0C01FDF7DCFE02460098019223 +:1025E0000A46019903920291029A0399D2F1630279 +:1025F000884105D3FFE700200390642002900EE09D +:1026000002990398B1F5803170F1000006D3FFE71D +:10261000002003904FF6FF700290FFE7FFE702985B +:1026200006B080BD80B582B08DF807000020009014 +:10263000FFF78EFE0098FFF7A3FE009846F6000213 +:10264000C4F20102116821F40021116000F032F996 +:102650009DF8070040F20411C2F20001087040F238 +:102660001011C2F200010420087002B080BD000009 +:102670002DE9F04399B00020189017901690FEF7BE +:1026800095FF4FF4E1300F90FFF710FBFFF71EF9B5 +:1026900043F24340C0F60000FDF7F4FE0F9943F209 +:1026A000A130C0F60000FDF7EDFE40F20000C2F2DE +:1026B0000000016843F2C340C0F60000FDF7E2FEEF +:1026C000FFF7F8F8024643F2D230C0F6000040F6B9 +:1026D0004051C0F20301FDF7D5FEFFF71FF9024696 +:1026E00043F2EA40C0F6000043F2DC41C0F60001CC +:1026F000002A18BF014643F2C330C0F60000FDF7C0 +:10270000C1FEFFF7BDF8FFF711F9014643F228308B +:10271000C0F60000FDF7B6FE40F2040CC2F2000C59 +:10272000DCF80810DCF80C20DCF81430DCF81800B9 +:10273000DCF81CE0EC46CCF804E0CCF8000043F2F6 +:10274000F730C0F60000FDF79DFE43F25D30C0F6A5 +:102750000000FDF797FEFFE7FEF740FF1590159884 +:102760001799401A28B1FFE715981790FFF742F91B +:10277000FFE715981699401AB0F5FA7F55D3FFE791 +:102780001598169010A8FFF7FDF8FFF779F8FFF7F6 +:10279000CDF80990FFF794F8FFF702FA0A90FFF7D7 +:1027A00069F8FFF72BF80B90FFF7B8F8024643F2F1 +:1027B000EA41C0F6000143F2E640C0F60000002AFC +:1027C00018BF08460D9012980C90139C149DFFF7AB +:1027D0004BF80646FFF76EF809990A9A0B9BDDF84D +:1027E00030E007460D9840F2040CC2F2000CDCF811 +:1027F0001880DCF81C90EC46CDF838C0CCF81C9062 +:10280000CCF81880CCF81470CCF81060CCF80C50D0 +:10281000CCF80840CCF804E0CCF8000043F2684063 +:10282000C0F60000FDF72EFEFFE795E780B584B007 +:1028300003900398002102914FF47A720192FFF7FE +:1028400065FC019A029B039040F24800C2F200002E +:1028500000680399A0FB0101FDF79BFD04B080BD5A +:1028600081B0009000984FF47A7148434BF69B5129 +:10287000CBF2CA51A0FB0110400A01B07047000022 +:1028800080B582B001900091019844F24021C0F2DD +:102890000F01A0FB0101009A0023FDF77AFD02B0B1 +:1028A00080BD000040F62801C4F600014FF440400E +:1028B0000860704781B08DF803009DF80300C007E1 +:1028C00038B1FFE740F61801C4F60001082008609F +:1028D00006E040F62801C4F6000108200860FFE782 +:1028E00001B0704784B00390029144F24020C0F2DE +:1028F0000F000190FFE703980168029A002011423F +:10290000009006D0FFE70198002818BF0120009032 +:10291000FFE70098C00720B1FFE701980138019058 +:10292000E9E70198002818BF012004B070470000B3 +:1029300084B00390029144F24020C0F20F00019055 +:10294000FFE703980068029A00EA02010020914222 +:10295000009006D0FFE70198002818BF01200090E2 +:10296000FFE70098C00720B1FFE701980138019008 +:10297000E7E70198002818BF012004B07047000065 +:1029800085B004900391029244F24020C0F20F00FF +:102990000190FFE70498006803990140029A002023 +:1029A0009142009006D0FFE70198002818BF01204F +:1029B0000090FFE70098C00720B1FFE701980138B9 +:1029C0000190E7E70198002818BF012005B0704783 +:1029D0005FEA400C08BF91F0000F4FEA8C234FEAEA +:1029E000C12243EA51514FEA1C5018BF00F5F04094 +:1029F0004FEA300018BF41F000415FEA6C5C00F024 +:102A00002980BCF1FF3F08BF40F080407047130CA5 +:102A100006BF12044FF0100C4FF0000C130E04BF51 +:102A200012020CF1080C130F04BF12010CF1040C7C +:102A3000930F04BF92000CF1020CD30F04BF52009D +:102A40000CF1010C11464FF00002A0F11F00A0EBA9 +:102A50000C00704711F0004F08BF704731F0004183 +:102A60003FF4D5AF0B0C06BF09044FF0100C4FF02C +:102A7000000C0B0E04BF09020CF1080C0B0F04BF75 +:102A800009010CF1040C8B0F04BF89000CF1020C3E +:102A9000CB0F04BF49000CF1010CCCF1200322FA4A +:102AA00003F341EA030102FA0CF2A0EB0C0000F17F +:102AB0000100704723F07F4720F07F4C80EA03003D +:102AC00000F00040ACEB070303F57C5303F1FF0378 +:102AD0002DE9804909B44FEA144324EA03484FEA38 +:102AE000154B25EA0B4E0FF2042606EB13273E7812 +:102AF00003FB0667C7F5000707FB06F64FEAD64655 +:102B000006F102064FEA543707FB066CCCF1005C75 +:102B10004FEA1C472CEA074C0CFB06F507FB06F4B2 +:102B200004EB15464FEA961649085FEA320234BFB5 +:102B300000204FF000404FEAD13706FB07FC4FEA78 +:102B40001C4C0CFB0BF7D21B03FB0CF761EB0701D2 +:102B50000CFB0EF7B0EB074072EB17420CFB08F7CB +:102B600034BFA2EB0742B2EB074261EB17414FEAD9 +:102B70000C444FEA910706FB07FC4FEA1C4C0CFB88 +:102B80000BF7B0EBC74072EB573203FB0CF734BFC7 +:102B9000A2EBC742B2EBC74261EB57310CFB0EF719 +:102BA000B0EBC70072EB57720CFB08F734BFA2EB17 +:102BB000C702B2EBC70261EB57714FEA816141EA8C +:102BC00092114FEA826242EA90124FEA806004EB6F +:102BD000CC04039F4FEAD13706FB07FC4FEA1C4C9D +:102BE0000CFB0BF7D21B03FB0CF761EB07010CFB93 +:102BF0000EF7B0EB074072EB17420CFB08F734BF3F +:102C0000A2EB0742B2EB074261EB17414FEA8C554A +:102C100004EB9C244FEA910706FB07FC4FEA1C4C8F +:102C20000CFB0BF7B0EBC74072EB573203FB0CF712 +:102C300034BFA2EBC742B2EBC74261EB57310CFB8A +:102C40000EF7B0EBC70072EB57720CFB08F734BFFE +:102C5000A2EBC702B2EBC70261EB57714FEA816189 +:102C600041EA92114FEA826242EA90124FEA806092 +:102C700015EB4C2544F100044FEAD13706FB07FC65 +:102C80004FEA1C4C0CFB0BF7D21B03FB0CF761EB60 +:102C900007010CFB0EF7B0EB074072EB17420CFB81 +:102CA00008F734BFA2EB0742B2EB074261EB1741D2 +:102CB0004FEA813141EA92414FEA823242EA904240 +:102CC0004FEA80304FEA0C7615EB1C1544F10004F6 +:102CD00048EA03434EEA0B484FF0000EB2EB080CF3 +:102CE00071EB030724BF624639464EEB0E0E4FF0E0 +:102CF000000B0018524149414BEB0B0BB2EB080C97 +:102D000071EB03077BF1000B24BF624639464EEBA3 +:102D10000E0E4FF0000B0018524149414BEB0B0BCC +:102D2000B2EB080C71EB03077BF1000B24BF62468A +:102D300039464EEB0E0E51EA020718BF46F0010667 +:102D400016EB0E7655F1000254F1000103D5BDE8F3 +:102D50008901BDE80088BDE88901BDE80048B619D1 +:102D6000524141EB0101A3F10103704780807F7E56 +:102D70007D7C7B7A797877767675747372717170F1 +:102D80006F6E6E6D6C6C6B6A6A69686867666665A3 +:102D90006464636362616160605F5F5E5E5D5D5C31 +:102DA0005C5B5B5A5A5959585857575656555555A2 +:102DB0005454535352525251515050504F4F4F4E02 +:102DC0004E4D4D4D4C4C4C4B4B4B4A4A4A49494950 +:102DD0004848484747474746464645454544444492 +:102DE0004443434343424242424141419C46002BBB +:102DF00030D477002BD04FEA37071CB503B44FF01F +:102E000010004FF01001BAF1000F06D0BCF1000F16 +:102E1000DCBF40F0080040F008014FF000000FBC9C +:102E2000BDE810400BF1010BBBF1010F08BF5FEAD9 +:102E3000170722BF12F1010211F101014FF0004109 +:102E400043F1000300F0004043EA00007047F9D36B +:102E50005708D0E746EA06464FEA164613F1400FF8 +:102E60001FDD13F1200FDFBF16430A460021203378 +:102E70005B42BED0C3F1200746EA06464FEA16463B +:102E800002FA07F746EA070622FA03F2C3F120071F +:102E900001FA07F742EA070221FA03F14FF00003B3 +:102EA000A7E746EA020646EA06464FEA164646EA1B +:102EB0000106BCBF46EA0646360C4FF000034FF051 +:102EC00000024FF0000194E72DE9804C70B49A465F +:102ED000934691E8380007C831EA400C48BF34EA0D +:102EE000430C03D5FFF7E6FDFFF780FFF0BCBDE81C +:102EF000008C2DE9804C70B49A46934691E83800D6 +:102F000007C810F0804F08BF13F0804F03D100F0C6 +:102F100005F8FFF76BFFF0BCBDE8008C20F07F47A1 +:102F200023F07F4C80EA030000F0004007EB0C0325 +:102F3000A3F57C53A3F1FE0392F0000F00F0B380E1 +:102F400095F0000F00F077802DE901494FEA11401C +:102F500021EA00484FEA144624EA064700FB06FC33 +:102F600008FB06F607FB08F818EB06484CEB164C76 +:102F700000FB07F718EB07484CEB17404FEA124BE2 +:102F800022EA0B4E4FEA154625EA06470BFB06FCE4 +:102F90000EFB06F607FB0EFE1EEB064E4CEB164C28 +:102FA0000BFB07F71EEB074E4CEB174B18EB0B0810 +:102FB00040F1000018EB0E0B58EB000840F1000048 +:102FC0008F1A4FF000014FF000063CBFC943661B4B +:102FD00014BFB5EB040C00213CBFC943F61B4FEAFC +:102FE000174427EA04454FEA1C472CEA074C04FB28 +:102FF000076205FB07F70CFB05F616EB074642EBED +:10300000174204FB0CFC16EB0C4642EB1C421BEB7C +:10301000060658EB020241414EEA8E0E46EA9E0633 +:1030200001D5BDE80189B619524141EB0101A3F177 +:103030000103BDE801894FEA144524EA05464FEA39 +:10304000114721EA074C05FB07F406FB07F70CFBC9 +:1030500006F111EB074144EB174405FB0CFC11EBA7 +:103060000C4144EB1C444FEA124722EA074C05FB93 +:1030700007F206FB07F70CFB06F616EB074642EBDA +:10308000174205FB0CFC16EB0C4642EB1C456A187C +:1030900054F1000148BF7047B619524141EB01019C +:1030A000A3F10103704795F0000F37D04FEA1142AA +:1030B00021EA02464FEA144724EA074C02FB07F1D3 +:1030C00006FB07F70CFB06F414EB074441EB174132 +:1030D00002FB0CFC14EB0C4441EB1C414FEA15477E +:1030E00025EA074C02FB07F506FB07F70CFB06F683 +:1030F00016EB074645EB174502FB0CFC16EB0C469E +:1031000045EB1C42121951F1000148BF7047B61936 +:10311000524141EB0101A3F1010370474FEA14450D +:1031200024EA05464FEA114721EA074C05FB07F15F +:1031300006FB07F70CFB06F212EB074241EB1741C7 +:1031400005FB0CFC12EB0C4251EB1C414FF000064E +:1031500048BF7047921841EB0101A3F1010370478A +:1031600003B401984100009850EAC12018BF042020 +:103170004A0D18BF40F0010040F2FF72B2EB515F00 +:1031800008BF40F00200012808BF052002B07047C8 +:1031900030380A2801D20120704700207047000013 +:1031A00010B500290AD00878002807D005487844CF +:1031B000FEF7A6F9002801D0002010BD024878448F +:1031C00010BD0000EA030000E203000010B5002972 +:1031D0000AD00878002807D005487844FEF790F90F +:1031E000002801D0002010BD0248784410BD000026 +:1031F000DA030000D2030000F1EE100A4FF6FF716F +:10320000C0F2C03120EA010040F04070E1EE100A47 +:103210007047FDF763BDFDF797BE0000000000009A +:10322000000000003031323334353637383941420E +:103230004344454640305800303132333435363718 +:1032400038396162636465664030780004000008C4 +:1032500000000000000000020001000010303132C8 +:1032600033343536373839616263646566787000A7 +:1032700030313233343536373839414243444546AC +:103280005850000002400000000000A000000000B4 +:1032900005400000000000C8000000000C400000D5 +:1032A0000000409C00000000194000000020BCBE4F +:1032B0000000000034400000BFC91B8E0000000465 +:1032C000B5400000504BCFD06607E2CF01000000B0 +:1032D0006C4100003E8251AADFEEA73401000000DD +:1032E000D9420000DCB5A0E23A301F97FFFFFFFF94 +:1032F000B4450000FD25A0C8E9A3C14FFFFFFFFFB3 +:10330000FF3F00000000008000000000FF3F0000C1 +:10331000000000800000000000000000000000002D +:10332000010203040607080952756E74696D652071 +:103330006D6F64653A2025733B206564697420676E +:103340005F646364635F636F6E66696720696E20A4 +:103350004B65696C2057617463682E0A0052756E64 +:1033600074696D6520736572766963652061637445 +:103370006976652E206D6F64653D30206D6F6E69D6 +:10338000746F722C20312070776D2D746573742CDE +:10339000203220636C6F7365642D6C6F6F702E0A22 +:1033A00000555341525433207265746172676574DD +:1033B000207072696E74663A20256C7520626175A2 +:1033C000640A00485254494D20444C4C3A2025731D +:1033D0000A0050574D3A20256C7520487A2C2070F1 +:1033E0006572696F643D256C7520485254494D20C3 +:1033F0007469636B730A0052756E74696D65205051 +:10340000574D3A20667265713D256C75487A206487 +:103410007574793D256C752F3130303020646561CD +:103420006474696D653D256C7520726973653D2511 +:103430006C752066616C6C3D256C75207469636BDE +:10344000730A000A422D47343734452D44504F57F4 +:103450003120444344432073746172746572207058 +:10346000726F6A6563740A006D6F64653D25732031 +:1034700073746174653D2573206661756C743D25B8 +:103480007320687274696D3D25732076696E3D25E1 +:103490006C756D562069696E3D256C756D412076A1 +:1034A0006F75743D256C756D5620647574793D2576 +:1034B0006C752F256C752064743D256C752F256CFB +:1034C000750A0053797374656D436F7265436C6F51 +:1034D000636B3A20256C7520487A0A006E6F742061 +:1034E0007265616479006E6F742D72656164790034 +:1034F00073746F707065640076696E20756E6465B4 +:1035000072766F6C7461676500766F7574206F7684 +:103510006572766F6C74616765006E6F6E650072C0 +:10352000756E6E696E6700756E6B6E6F776E006399 +:103530006C6F7365642D6C6F6F70006D6F6E697466 +:103540006F72006661756C7400696E707574206FBF +:1035500076657263757272656E740070776D2D7426 +:1035600065737400687274696D20646C6C20746992 +:103570006D656F7574000000C836000800000020FB +:10358000500000003C0200081837000850000020DE +:10359000C80600005C0200081C0000004300000098 +:1035A000F8FFFFFF0C0000000E0000000F000000FD +:1035B0002E0000001001000043000000F8FFFFFF94 +:1035C0000040404040404040404041414141414036 +:1035D00040404040404040404040404040404040EB +:1035E000400502020202020202020202020202027A +:1035F000022020202020202020202002020202027F +:1036000002029090909090901010101010101010D6 +:1036100010101010101010101010101002020202E2 +:103620000202888888888888080808080808080826 +:103630000808080808080808080808080202020222 +:10364000400000000000000000000000000000003A +:10365000000000000000000000000000000000006A +:10366000000000000000000000000000000000005A +:10367000000000000000000000000000000000004A +:10368000000000000000000000000000000000003A +:10369000000000000000000000000000000000002A +:1036A000000000000000000000000000000000001A +:1036B000000000000000000000000000000000000A +:1036C00000000000000000000024F40001000000E1 +:1036D00000000000400D03006400000084030000AF +:1036E000010000002200000022000000E40C0000A5 +:1036F00094110000D80E00002C010000C20100004F +:103700005A000000030000003C000000900100008F +:08371000406A00000000000007 :04000005080001D915 :00000001FF diff --git a/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.htm b/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.htm index 9f9d625..de3605d 100644 --- a/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.htm +++ b/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC.htm @@ -3,7 +3,7 @@ Static Call Graph - [Objects\B-G474E-DPOW1_DCDC.axf]

Static Call Graph for image Objects\B-G474E-DPOW1_DCDC.axf


-

#<CALLGRAPH># ARM Linker, 6220000: Last Updated: Sat May 23 17:51:30 2026 +

#<CALLGRAPH># ARM Linker, 6220000: Last Updated: Sat May 23 18:42:21 2026

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

Call chain for Maximum Stack Depth:

@@ -167,9 +167,9 @@ Global Symbols

[Calls]
  • >>   __rt_entry
-

__scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) +

__scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) -

__scatterload_loop (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) +

__scatterload_loop (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

__scatterload_copy (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)

[Calls]

  • >>   __scatterload_copy @@ -177,9 +177,9 @@ Global Symbols
    [Called By]
    • >>   __scatterload_copy
    -

    __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, __scatter.o(!!handler_null), UNUSED) +

    __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, __scatter.o(!!handler_null), UNUSED) -

    __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED) +

    __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)

    _printf_n (Thumb, 0 bytes, Stack size unknown bytes, _printf_n.o(.ARM.Collect$$_printf_percent$$00000001))

    [Calls]

    • >>   _printf_charcount @@ -224,7 +224,7 @@ Global Symbols
      [Calls]
      • >>   _printf_fp_hex
      -

      _printf_ll (Thumb, 0 bytes, Stack size unknown bytes, _printf_ll.o(.ARM.Collect$$_printf_percent$$00000007)) +

      _printf_ll (Thumb, 0 bytes, Stack size unknown bytes, _printf_ll.o(.ARM.Collect$$_printf_percent$$00000007))

      _printf_i (Thumb, 0 bytes, Stack size unknown bytes, _printf_i.o(.ARM.Collect$$_printf_percent$$00000008))

      [Stack]

      • Max Depth = 72 + Unknown Stack Size @@ -296,7 +296,7 @@ Global Symbols
        [Calls]
        • >>   _printf_ll_hex
        -

        _printf_l (Thumb, 0 bytes, Stack size unknown bytes, _printf_l.o(.ARM.Collect$$_printf_percent$$00000012)) +

        _printf_l (Thumb, 0 bytes, Stack size unknown bytes, _printf_l.o(.ARM.Collect$$_printf_percent$$00000012))

        _printf_c (Thumb, 0 bytes, Stack size unknown bytes, _printf_c.o(.ARM.Collect$$_printf_percent$$00000013))

        [Stack]

        • Max Depth = 40 + Unknown Stack Size @@ -326,7 +326,7 @@ Global Symbols
          [Calls]
          • >>   _printf_wstring
          -

          _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017)) +

          _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017))

          __rt_lib_init (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))

          [Called By]

          • >>   __rt_entry_li @@ -336,21 +336,21 @@ Global Symbols

            [Calls]
            • >>   _fp_init
            -

            __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C)) +

            __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))

            __rt_lib_init_lc_common (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011))

            [Calls]

            • >>   __rt_locale
            -

            __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006)) +

            __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006)) -

            __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010)) +

            __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010)) -

            __rt_lib_init_relocate_pie_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) +

            __rt_lib_init_relocate_pie_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) -

            __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) +

            __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) -

            __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) +

            __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))

            __rt_lib_init_lc_ctype_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000014))

            [Stack]

            • Max Depth = 16 + Unknown Stack Size @@ -359,9 +359,9 @@ Global Symbols
              [Calls]
              • >>   _get_lc_ctype
              -

              __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) +

              __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) -

              __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) +

              __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))

              __rt_lib_init_lc_numeric_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000018))

              [Stack]

              • Max Depth = 16 + Unknown Stack Size @@ -370,56 +370,56 @@ Global Symbols
                [Calls]
                • >>   _get_lc_numeric
                -

                __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) +

                __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) -

                __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) +

                __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) -

                __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) +

                __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) -

                __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) +

                __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) -

                __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034)) +

                __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034)) -

                __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) +

                __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) -

                __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) +

                __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) -

                __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) +

                __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) -

                __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) +

                __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) -

                __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) +

                __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) -

                __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035)) +

                __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035)) -

                __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) +

                __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) -

                __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027)) +

                __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027))

                __rt_lib_shutdown (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))

                [Called By]

                • >>   __rt_exit_ls
                -

                __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) +

                __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) -

                __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007)) +

                __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007)) -

                __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F)) +

                __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F)) -

                __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010)) +

                __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010)) -

                __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A)) +

                __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A)) -

                __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) +

                __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) -

                __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)) +

                __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))

                __rt_entry (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))

                [Called By]

                • >>   __main
                • >>   __scatterload_rt2
                -

                __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002)) +

                __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))

                __rt_entry_sh (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))

                [Stack]

                • Max Depth = 8 + Unknown Stack Size @@ -432,17 +432,17 @@ Global Symbols

                  [Calls]
                  • >>   __rt_lib_init
                  -

                  __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009)) +

                  __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))

                  __rt_entry_main (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D)) -

                  [Stack]

                  • Max Depth = 248 + Unknown Stack Size -
                  • Call Chain = __rt_entry_main ⇒ main ⇒ printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf +

                    [Stack]
                    • Max Depth = 312 + Unknown Stack Size +
                    • Call Chain = __rt_entry_main ⇒ main ⇒ DCDC_Service1ms ⇒ DCDC_ControlStep ⇒ latch_fault ⇒ hrtim1_set_duty ⇒ hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod

                    [Calls]
                    • >>   exit
                    • >>   main
                    -

                    __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C)) +

                    __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))

                    __rt_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))

                    [Called By]

                    • >>   exit @@ -452,7 +452,7 @@ Global Symbols

                      [Calls]
                      • >>   __rt_lib_shutdown
                      -

                      __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002)) +

                      __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))

                      __rt_exit_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))

                      [Stack]

                      • Max Depth = 4 + Unknown Stack Size @@ -831,17 +831,18 @@ Global Symbols

                        [Called By]
                        • >>   __user_setup_stackheap
                        -

                        __use_no_semihosting (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi_2.o(.text), UNUSED) +

                        __use_no_semihosting (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi_2.o(.text), UNUSED) -

                        __aeabi_uldivmod (Thumb, 0 bytes, Stack size 48 bytes, lludivv7m.o(.text)) +

                        __aeabi_uldivmod (Thumb, 0 bytes, Stack size 48 bytes, lludivv7m.o(.text))

                        [Stack]

                        • Max Depth = 48
                        • Call Chain = __aeabi_uldivmod
                        -
                        [Called By]
                        • >>   sense_mv_to_voltage_mv -
                        • >>   hrtim_period_from_clock -
                        • >>   DCDC_ControlStep +
                          [Called By]
                          • >>   DCDC_ControlStep +
                          • >>   sense_mv_to_voltage_mv +
                          • >>   permille_to_ticks +
                          • >>   hrtim_period_from_frequency
                          -

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

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

                          printf (Thumb, 20 bytes, Stack size 24 bytes, printf.o(.text))

                          [Stack]

                          • Max Depth = 144 + Unknown Stack Size @@ -852,15 +853,15 @@ Global Symbols
                            [Called By]
                            • >>   main
                            -

                            __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) +

                            __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) -

                            __rt_heap_escrow$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) +

                            __rt_heap_escrow$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) -

                            __rt_heap_expand$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) +

                            __rt_heap_expand$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) -

                            __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) +

                            __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) -

                            __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) +

                            __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

                            _printf_pre_padding (Thumb, 44 bytes, Stack size 16 bytes, _printf_pad.o(.text))

                            [Stack]

                            • Max Depth = 16
                            • Call Chain = _printf_pre_padding @@ -1187,15 +1188,15 @@ Global Symbols
                              [Called By]
                              • >>   __rt_entry_main
                              -

                              __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) +

                              __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

                              __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))

                              [Called By]

                              • >>   __user_setup_stackheap
                              -

                              __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) +

                              __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) -

                              strcmp (Thumb, 124 bytes, Stack size 8 bytes, strcmpv7em.o(.text)) +

                              strcmp (Thumb, 124 bytes, Stack size 8 bytes, strcmpv7em.o(.text))

                              [Stack]

                              • Max Depth = 8
                              • Call Chain = strcmp

                              [Called By]
                              • >>   _get_lc_ctype @@ -1207,7 +1208,7 @@ Global Symbols

                              [Calls]
                              • >>   Board_Millis
                              -
                              [Called By]
                              • >>   adc1_init +
                                [Called By]
                                • >>   adc1_init

                                Board_FatalError (Thumb, 8 bytes, Stack size 0 bytes, board.o(.text.Board_FatalError)) @@ -1229,84 +1230,155 @@ Global Symbols

                              • >>   main
                              -

                              DCDC_ControlStep (Thumb, 366 bytes, Stack size 48 bytes, dcdc.o(.text.DCDC_ControlStep)) -

                              [Stack]

                              • Max Depth = 144
                              • Call Chain = DCDC_ControlStep ⇒ DCDC_ReadMeasurements ⇒ sense_mv_to_voltage_mv ⇒ __aeabi_uldivmod +

                                DCDC_ApplyRuntimeConfig (Thumb, 62 bytes, Stack size 8 bytes, dcdc.o(.text.DCDC_ApplyRuntimeConfig)) +

                                [Stack]

                                • Max Depth = 128
                                • Call Chain = DCDC_ApplyRuntimeConfig ⇒ hrtim1_apply_pwm_config ⇒ hrtim_period_from_frequency ⇒ __aeabi_uldivmod
                                -
                                [Calls]
                                • >>   __aeabi_uldivmod -
                                • >>   hrtim1_set_duty -
                                • >>   latch_fault -
                                • >>   hrtim_max_duty_ticks -
                                • >>   DCDC_ReadMeasurements +
                                  [Calls]
                                  • >>   permille_to_ticks +
                                  • >>   hrtim1_set_duty +
                                  • >>   hrtim1_apply_pwm_config
                                  -
                                  [Called By]
                                  • >>   main +
                                    [Called By]
                                    • >>   DCDC_Service1ms
                                    -

                                    DCDC_FaultText (Thumb, 108 bytes, Stack size 12 bytes, dcdc.o(.text.DCDC_FaultText)) +

                                    DCDC_ControlStep (Thumb, 406 bytes, Stack size 48 bytes, dcdc.o(.text.DCDC_ControlStep)) +

                                    [Stack]

                                    • Max Depth = 168
                                    • Call Chain = DCDC_ControlStep ⇒ latch_fault ⇒ hrtim1_set_duty ⇒ hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod +
                                    +
                                    [Calls]
                                    • >>   __aeabi_uldivmod +
                                    • >>   hrtim1_set_duty +
                                    • >>   latch_fault +
                                    • >>   hrtim_max_duty_ticks +
                                    • >>   DCDC_ReadMeasurements +
                                    +
                                    [Called By]
                                    • >>   DCDC_Service1ms +
                                    + +

                                    DCDC_FaultText (Thumb, 108 bytes, Stack size 12 bytes, dcdc.o(.text.DCDC_FaultText))

                                    [Stack]

                                    • Max Depth = 12
                                    • Call Chain = DCDC_FaultText

                                    [Called By]
                                    • >>   main
                                    -

                                    DCDC_GetDutyTicks (Thumb, 12 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_GetDutyTicks)) +

                                    DCDC_GetDutyTicks (Thumb, 12 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_GetDutyTicks))

                                    [Called By]

                                    • >>   main
                                    -

                                    DCDC_GetFault (Thumb, 12 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_GetFault)) +

                                    DCDC_GetFault (Thumb, 12 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_GetFault))

                                    [Called By]

                                    • >>   main
                                    -

                                    DCDC_GetPeriodTicks (Thumb, 12 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_GetPeriodTicks)) +

                                    DCDC_GetMode (Thumb, 52 bytes, Stack size 4 bytes, dcdc.o(.text.DCDC_GetMode)) +

                                    [Stack]

                                    • Max Depth = 4
                                    • Call Chain = DCDC_GetMode +
                                    +
                                    [Called By]
                                    • >>   DCDC_Service1ms +
                                    • >>   main +
                                    + +

                                    DCDC_GetPeriodTicks (Thumb, 12 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_GetPeriodTicks))

                                    [Called By]

                                    • >>   main
                                    -

                                    DCDC_GetState (Thumb, 12 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_GetState)) +

                                    DCDC_GetState (Thumb, 12 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_GetState))

                                    [Called By]

                                    • >>   main
                                    -

                                    DCDC_Init (Thumb, 78 bytes, Stack size 8 bytes, dcdc.o(.text.DCDC_Init)) -

                                    [Stack]

                                    • Max Depth = 104
                                    • Call Chain = DCDC_Init ⇒ hrtim1_timer_c_init ⇒ hrtim_period_from_clock ⇒ __aeabi_uldivmod +

                                      DCDC_Init (Thumb, 78 bytes, Stack size 8 bytes, dcdc.o(.text.DCDC_Init)) +

                                      [Stack]

                                      • Max Depth = 152
                                      • Call Chain = DCDC_Init ⇒ hrtim1_timer_c_init ⇒ hrtim1_apply_pwm_config ⇒ hrtim_period_from_frequency ⇒ __aeabi_uldivmod
                                      -
                                      [Calls]
                                      • >>   hrtim1_outputs_enable -
                                      • >>   hrtim1_timer_c_init -
                                      • >>   adc1_init -
                                      • >>   set_loads_off -
                                      • >>   set_usbpd_input_switch -
                                      • >>   gpio_init_for_dcdc +
                                        [Calls]
                                        • >>   hrtim1_outputs_enable +
                                        • >>   hrtim1_timer_c_init +
                                        • >>   adc1_init +
                                        • >>   set_loads_off +
                                        • >>   set_usbpd_input_switch +
                                        • >>   gpio_init_for_dcdc

                                        [Called By]
                                        • >>   main
                                        -

                                        DCDC_IsHrtimReady (Thumb, 16 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_IsHrtimReady)) +

                                        DCDC_IsHrtimReady (Thumb, 16 bytes, Stack size 0 bytes, dcdc.o(.text.DCDC_IsHrtimReady))

                                        [Called By]

                                        • >>   main
                                        -

                                        DCDC_ReadMeasurements (Thumb, 112 bytes, Stack size 32 bytes, dcdc.o(.text.DCDC_ReadMeasurements)) +

                                        DCDC_ModeText (Thumb, 88 bytes, Stack size 12 bytes, dcdc.o(.text.DCDC_ModeText)) +

                                        [Stack]

                                        • Max Depth = 12
                                        • Call Chain = DCDC_ModeText +
                                        +
                                        [Called By]
                                        • >>   main +
                                        + +

                                        DCDC_ReadMeasurements (Thumb, 112 bytes, Stack size 32 bytes, dcdc.o(.text.DCDC_ReadMeasurements))

                                        [Stack]

                                        • Max Depth = 96
                                        • Call Chain = DCDC_ReadMeasurements ⇒ sense_mv_to_voltage_mv ⇒ __aeabi_uldivmod
                                        -
                                        [Calls]
                                        • >>   sense_mv_to_current_ma -
                                        • >>   sense_mv_to_voltage_mv -
                                        • >>   adc_raw_to_mv -
                                        • >>   adc1_read_channel +
                                          [Calls]
                                          • >>   sense_mv_to_current_ma +
                                          • >>   sense_mv_to_voltage_mv +
                                          • >>   adc_raw_to_mv +
                                          • >>   adc1_read_channel
                                          -
                                          [Called By]
                                          • >>   DCDC_ControlStep +
                                            [Called By]
                                            • >>   DCDC_ControlStep
                                            • >>   main
                                            -

                                            DCDC_StateText (Thumb, 94 bytes, Stack size 12 bytes, dcdc.o(.text.DCDC_StateText)) +

                                            DCDC_Service1ms (Thumb, 160 bytes, Stack size 16 bytes, dcdc.o(.text.DCDC_Service1ms)) +

                                            [Stack]

                                            • Max Depth = 184
                                            • Call Chain = DCDC_Service1ms ⇒ DCDC_ControlStep ⇒ latch_fault ⇒ hrtim1_set_duty ⇒ hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod +
                                            +
                                            [Calls]
                                            • >>   DCDC_ControlStep +
                                            • >>   DCDC_ApplyRuntimeConfig +
                                            • >>   DCDC_Stop +
                                            • >>   DCDC_StartPwmTest +
                                            • >>   DCDC_Start +
                                            • >>   DCDC_GetMode +
                                            +
                                            [Called By]
                                            • >>   main +
                                            + +

                                            DCDC_Start (Thumb, 124 bytes, Stack size 8 bytes, dcdc.o(.text.DCDC_Start)) +

                                            [Stack]

                                            • Max Depth = 128
                                            • Call Chain = DCDC_Start ⇒ latch_fault ⇒ hrtim1_set_duty ⇒ hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod +
                                            +
                                            [Calls]
                                            • >>   hrtim1_set_duty +
                                            • >>   latch_fault +
                                            • >>   hrtim1_apply_pwm_config +
                                            • >>   hrtim1_outputs_enable +
                                            • >>   set_usbpd_input_switch +
                                            +
                                            [Called By]
                                            • >>   DCDC_Service1ms +
                                            + +

                                            DCDC_StartPwmTest (Thumb, 142 bytes, Stack size 16 bytes, dcdc.o(.text.DCDC_StartPwmTest)) +

                                            [Stack]

                                            • Max Depth = 136
                                            • Call Chain = DCDC_StartPwmTest ⇒ latch_fault ⇒ hrtim1_set_duty ⇒ hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod +
                                            +
                                            [Calls]
                                            • >>   permille_to_ticks +
                                            • >>   hrtim1_set_duty +
                                            • >>   latch_fault +
                                            • >>   hrtim1_apply_pwm_config +
                                            • >>   hrtim1_outputs_enable +
                                            • >>   set_usbpd_input_switch +
                                            +
                                            [Called By]
                                            • >>   DCDC_Service1ms +
                                            + +

                                            DCDC_StateText (Thumb, 108 bytes, Stack size 12 bytes, dcdc.o(.text.DCDC_StateText))

                                            [Stack]

                                            • Max Depth = 12
                                            • Call Chain = DCDC_StateText

                                            [Called By]
                                            • >>   main
                                            -

                                            Retarget_Init (Thumb, 98 bytes, Stack size 16 bytes, retarget.o(.text.Retarget_Init)) +

                                            DCDC_Stop (Thumb, 56 bytes, Stack size 16 bytes, dcdc.o(.text.DCDC_Stop)) +

                                            [Stack]

                                            • Max Depth = 120
                                            • Call Chain = DCDC_Stop ⇒ hrtim1_set_duty ⇒ hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod +
                                            +
                                            [Calls]
                                            • >>   hrtim1_set_duty +
                                            • >>   hrtim1_outputs_enable +
                                            • >>   set_usbpd_input_switch +
                                            +
                                            [Called By]
                                            • >>   DCDC_Service1ms +
                                            + +

                                            Retarget_Init (Thumb, 98 bytes, Stack size 16 bytes, retarget.o(.text.Retarget_Init))

                                            [Stack]

                                            • Max Depth = 16
                                            • Call Chain = Retarget_Init
                                            -
                                            [Calls]
                                            • >>   gpio_pc10_pc11_to_usart3 +
                                              [Calls]
                                              • >>   gpio_pc10_pc11_to_usart3

                                              [Called By]
                                              • >>   main
                                              -

                                              Retarget_PutChar (Thumb, 48 bytes, Stack size 4 bytes, retarget.o(.text.Retarget_PutChar)) +

                                              Retarget_PutChar (Thumb, 48 bytes, Stack size 4 bytes, retarget.o(.text.Retarget_PutChar))

                                              [Stack]

                                              • Max Depth = 4
                                              • Call Chain = Retarget_PutChar

                                              [Called By]
                                              • >>   fputc @@ -1334,55 +1406,57 @@ Global Symbols

                                                fputc (Thumb, 38 bytes, Stack size 16 bytes, retarget.o(.text.fputc))

                                                [Stack]

                                                • Max Depth = 20
                                                • Call Chain = fputc ⇒ Retarget_PutChar
                                                -
                                                [Calls]
                                                • >>   Retarget_PutChar +
                                                  [Calls]
                                                  • >>   Retarget_PutChar

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

                                                  main (Thumb, 362 bytes, Stack size 104 bytes, main.o(.text.main)) -

                                                  [Stack]

                                                  • Max Depth = 248 + Unknown Stack Size -
                                                  • Call Chain = main ⇒ printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf +

                                                    main (Thumb, 444 bytes, Stack size 128 bytes, main.o(.text.main)) +

                                                    [Stack]

                                                    • Max Depth = 312 + Unknown Stack Size +
                                                    • Call Chain = main ⇒ DCDC_Service1ms ⇒ DCDC_ControlStep ⇒ latch_fault ⇒ hrtim1_set_duty ⇒ hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod

                                                    [Calls]
                                                    • >>   printf -
                                                    • >>   DCDC_GetDutyTicks -
                                                    • >>   DCDC_FaultText -
                                                    • >>   DCDC_GetFault -
                                                    • >>   DCDC_StateText -
                                                    • >>   DCDC_GetState -
                                                    • >>   DCDC_ReadMeasurements -
                                                    • >>   DCDC_ControlStep +
                                                    • >>   DCDC_GetDutyTicks +
                                                    • >>   DCDC_FaultText +
                                                    • >>   DCDC_GetFault +
                                                    • >>   DCDC_StateText +
                                                    • >>   DCDC_GetState +
                                                    • >>   DCDC_ReadMeasurements +
                                                    • >>   DCDC_Service1ms
                                                    • >>   Board_Millis -
                                                    • >>   DCDC_IsHrtimReady -
                                                    • >>   DCDC_GetPeriodTicks -
                                                    • >>   DCDC_Init -
                                                    • >>   Retarget_Init +
                                                    • >>   DCDC_ModeText +
                                                    • >>   DCDC_GetMode +
                                                    • >>   DCDC_IsHrtimReady +
                                                    • >>   DCDC_GetPeriodTicks +
                                                    • >>   DCDC_Init +
                                                    • >>   Retarget_Init
                                                    • >>   Board_Init

                                                    [Called By]
                                                    • >>   __rt_entry_main

                                                    _btod_d2e (Thumb, 62 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e)) -

                                                    [Calls]

                                                    • >>   _d2e_norm_op1 +

                                                      [Calls]
                                                      • >>   _d2e_norm_op1

                                                      [Called By]
                                                      • >>   _fp_digits
                                                      -

                                                      _d2e_denorm_low (Thumb, 70 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_denorm_low)) -

                                                      [Called By]

                                                      • >>   _d2e_norm_op1 +

                                                        _d2e_denorm_low (Thumb, 70 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_denorm_low)) +

                                                        [Called By]

                                                        • >>   _d2e_norm_op1
                                                        -

                                                        _d2e_norm_op1 (Thumb, 96 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_norm_op1)) -

                                                        [Calls]

                                                        • >>   _d2e_denorm_low +

                                                          _d2e_norm_op1 (Thumb, 96 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_norm_op1)) +

                                                          [Calls]

                                                          • >>   _d2e_denorm_low

                                                          [Called By]
                                                          • >>   _btod_d2e
                                                          -

                                                          __btod_div_common (Thumb, 696 bytes, Stack size 24 bytes, btod.o(CL$$btod_div_common)) +

                                                          __btod_div_common (Thumb, 696 bytes, Stack size 24 bytes, btod.o(CL$$btod_div_common))

                                                          [Stack]

                                                          • Max Depth = 24
                                                          • Call Chain = __btod_div_common

                                                          [Called By]
                                                          • >>   _btod_ediv
                                                          -

                                                          _e2e (Thumb, 220 bytes, Stack size 24 bytes, btod.o(CL$$btod_e2e)) +

                                                          _e2e (Thumb, 220 bytes, Stack size 24 bytes, btod.o(CL$$btod_e2e))

                                                          [Stack]

                                                          • Max Depth = 24
                                                          • Call Chain = _e2e

                                                          [Called By]
                                                          • >>   _btod_emul @@ -1392,8 +1466,8 @@ Global Symbols

                                                            _btod_ediv (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_ediv))

                                                            [Stack]

                                                            • Max Depth = 52
                                                            • Call Chain = _btod_ediv ⇒ _e2e
                                                            -
                                                            [Calls]
                                                            • >>   _e2e -
                                                            • >>   __btod_div_common +
                                                              [Calls]
                                                              • >>   _e2e +
                                                              • >>   __btod_div_common

                                                              [Called By]
                                                              • >>   _btod_etento
                                                              • >>   _fp_digits @@ -1402,14 +1476,14 @@ Global Symbols

                                                                _btod_emul (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_emul))

                                                                [Stack]

                                                                • Max Depth = 52
                                                                • Call Chain = _btod_emul ⇒ _e2e
                                                                -
                                                                [Calls]
                                                                • >>   __btod_mult_common -
                                                                • >>   _e2e +
                                                                  [Calls]
                                                                  • >>   __btod_mult_common +
                                                                  • >>   _e2e

                                                                  [Called By]
                                                                  • >>   _btod_etento
                                                                  • >>   _fp_digits
                                                                  -

                                                                  __btod_mult_common (Thumb, 580 bytes, Stack size 16 bytes, btod.o(CL$$btod_mult_common)) +

                                                                  __btod_mult_common (Thumb, 580 bytes, Stack size 16 bytes, btod.o(CL$$btod_mult_common))

                                                                  [Stack]

                                                                  • Max Depth = 16
                                                                  • Call Chain = __btod_mult_common

                                                                  [Called By]
                                                                  • >>   _btod_emul @@ -1429,7 +1503,7 @@ Global Symbols

                                                                    _get_lc_numeric (Thumb, 44 bytes, Stack size 8 bytes, lc_numeric_c.o(locale$$code))

                                                                    [Stack]

                                                                    • Max Depth = 16
                                                                    • Call Chain = _get_lc_numeric ⇒ strcmp
                                                                    -
                                                                    [Calls]
                                                                    • >>   strcmp +
                                                                      [Calls]
                                                                      • >>   strcmp

                                                                      [Called By]
                                                                      • >>   __rt_lib_init_lc_numeric_2
                                                                      @@ -1437,7 +1511,7 @@ Global Symbols

                                                                      _get_lc_ctype (Thumb, 44 bytes, Stack size 8 bytes, lc_ctype_c.o(locale$$code))

                                                                      [Stack]

                                                                      • Max Depth = 16
                                                                      • Call Chain = _get_lc_ctype ⇒ strcmp
                                                                      -
                                                                      [Calls]
                                                                      • >>   strcmp +
                                                                        [Calls]
                                                                        • >>   strcmp

                                                                        [Called By]
                                                                        • >>   __rt_lib_init_lc_ctype_2
                                                                        @@ -1447,9 +1521,9 @@ Global Symbols

                                                                        [Called By]
                                                                        • >>   __rt_lib_init_fp_1
                                                                        -

                                                                        __fplib_config_fpu_vfp (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED) +

                                                                        __fplib_config_fpu_vfp (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED) -

                                                                        __fplib_config_pureend_doubles (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED) +

                                                                        __fplib_config_pureend_doubles (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED)

                                                                        _printf_fp_dec (Thumb, 4 bytes, Stack size 0 bytes, printf1.o(x$fpl$printf1))

                                                                        [Stack]

                                                                        • Max Depth = 324
                                                                        • Call Chain = _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e @@ -1479,7 +1553,7 @@ Local Symbols
                                                                        • >>   wait_mask_value
                                                                        • >>   wait_mask_set
                                                                        • >>   Flash_SetLatency -
                                                                        • >>   wait_mask_clear +
                                                                        • >>   wait_mask_clear
                                                                        • >>   Clock_UseHsi16

                                                                        [Called By]
                                                                        • >>   Board_Init @@ -1488,7 +1562,7 @@ Local Symbols

                                                                          SysTick_Config (Thumb, 82 bytes, Stack size 16 bytes, board.o(.text.SysTick_Config))

                                                                          [Stack]

                                                                          • Max Depth = 24
                                                                          • Call Chain = SysTick_Config ⇒ __NVIC_SetPriority
                                                                          -
                                                                          [Calls]
                                                                          • >>   __NVIC_SetPriority +
                                                                            [Calls]
                                                                            • >>   __NVIC_SetPriority

                                                                            [Called By]
                                                                            • >>   Board_Init
                                                                            @@ -1504,7 +1578,7 @@ Local Symbols
                                                                            [Called By]
                                                                            • >>   SystemClock_Config
                                                                            -

                                                                            wait_mask_clear (Thumb, 74 bytes, Stack size 16 bytes, board.o(.text.wait_mask_clear)) +

                                                                            wait_mask_clear (Thumb, 74 bytes, Stack size 16 bytes, board.o(.text.wait_mask_clear))

                                                                            [Stack]

                                                                            • Max Depth = 16
                                                                            • Call Chain = wait_mask_clear

                                                                            [Called By]
                                                                            • >>   SystemClock_Config @@ -1531,121 +1605,169 @@ Local Symbols
                                                                            • >>   SystemClock_Config
                                                                            -

                                                                            __NVIC_SetPriority (Thumb, 66 bytes, Stack size 8 bytes, board.o(.text.__NVIC_SetPriority)) +

                                                                            __NVIC_SetPriority (Thumb, 66 bytes, Stack size 8 bytes, board.o(.text.__NVIC_SetPriority))

                                                                            [Stack]

                                                                            • Max Depth = 8
                                                                            • Call Chain = __NVIC_SetPriority

                                                                            [Called By]
                                                                            • >>   SysTick_Config
                                                                            -

                                                                            gpio_init_for_dcdc (Thumb, 228 bytes, Stack size 0 bytes, dcdc.o(.text.gpio_init_for_dcdc)) -

                                                                            [Called By]

                                                                            • >>   DCDC_Init +

                                                                              gpio_init_for_dcdc (Thumb, 228 bytes, Stack size 0 bytes, dcdc.o(.text.gpio_init_for_dcdc)) +

                                                                              [Called By]

                                                                              • >>   DCDC_Init
                                                                              -

                                                                              set_usbpd_input_switch (Thumb, 48 bytes, Stack size 4 bytes, dcdc.o(.text.set_usbpd_input_switch)) +

                                                                              set_usbpd_input_switch (Thumb, 48 bytes, Stack size 4 bytes, dcdc.o(.text.set_usbpd_input_switch))

                                                                              [Stack]

                                                                              • Max Depth = 4
                                                                              • Call Chain = set_usbpd_input_switch
                                                                              -
                                                                              [Called By]
                                                                              • >>   latch_fault -
                                                                              • >>   DCDC_Init +
                                                                                [Called By]
                                                                                • >>   DCDC_Stop +
                                                                                • >>   DCDC_StartPwmTest +
                                                                                • >>   DCDC_Start +
                                                                                • >>   latch_fault +
                                                                                • >>   DCDC_Init
                                                                                -

                                                                                set_loads_off (Thumb, 16 bytes, Stack size 0 bytes, dcdc.o(.text.set_loads_off)) -

                                                                                [Called By]

                                                                                • >>   DCDC_Init +

                                                                                  set_loads_off (Thumb, 16 bytes, Stack size 0 bytes, dcdc.o(.text.set_loads_off)) +

                                                                                  [Called By]

                                                                                  • >>   DCDC_Init
                                                                                  -

                                                                                  adc1_init (Thumb, 166 bytes, Stack size 16 bytes, dcdc.o(.text.adc1_init)) +

                                                                                  adc1_init (Thumb, 166 bytes, Stack size 16 bytes, dcdc.o(.text.adc1_init))

                                                                                  [Stack]

                                                                                  • Max Depth = 32
                                                                                  • Call Chain = adc1_init ⇒ Board_DelayMs

                                                                                  [Calls]
                                                                                  • >>   Board_DelayMs
                                                                                  -
                                                                                  [Called By]
                                                                                  • >>   DCDC_Init +
                                                                                    [Called By]
                                                                                    • >>   DCDC_Init
                                                                                    -

                                                                                    hrtim1_timer_c_init (Thumb, 266 bytes, Stack size 24 bytes, dcdc.o(.text.hrtim1_timer_c_init)) -

                                                                                    [Stack]

                                                                                    • Max Depth = 96
                                                                                    • Call Chain = hrtim1_timer_c_init ⇒ hrtim_period_from_clock ⇒ __aeabi_uldivmod +

                                                                                      hrtim1_timer_c_init (Thumb, 290 bytes, Stack size 24 bytes, dcdc.o(.text.hrtim1_timer_c_init)) +

                                                                                      [Stack]

                                                                                      • Max Depth = 144
                                                                                      • Call Chain = hrtim1_timer_c_init ⇒ hrtim1_apply_pwm_config ⇒ hrtim_period_from_frequency ⇒ __aeabi_uldivmod
                                                                                      -
                                                                                      [Calls]
                                                                                      • >>   hrtim_max_duty_ticks -
                                                                                      • >>   hrtim1_wait_dll_ready -
                                                                                      • >>   hrtim_period_from_clock +
                                                                                        [Calls]
                                                                                        • >>   hrtim1_apply_pwm_config +
                                                                                        • >>   hrtim_max_duty_ticks +
                                                                                        • >>   hrtim1_wait_dll_ready +
                                                                                        • >>   hrtim_period_from_frequency
                                                                                        -
                                                                                        [Called By]
                                                                                        • >>   DCDC_Init +
                                                                                          [Called By]
                                                                                          • >>   DCDC_Init
                                                                                          -

                                                                                          hrtim1_outputs_enable (Thumb, 48 bytes, Stack size 4 bytes, dcdc.o(.text.hrtim1_outputs_enable)) +

                                                                                          hrtim1_outputs_enable (Thumb, 48 bytes, Stack size 4 bytes, dcdc.o(.text.hrtim1_outputs_enable))

                                                                                          [Stack]

                                                                                          • Max Depth = 4
                                                                                          • Call Chain = hrtim1_outputs_enable
                                                                                          -
                                                                                          [Called By]
                                                                                          • >>   latch_fault -
                                                                                          • >>   DCDC_Init +
                                                                                            [Called By]
                                                                                            • >>   DCDC_Stop +
                                                                                            • >>   DCDC_StartPwmTest +
                                                                                            • >>   DCDC_Start +
                                                                                            • >>   latch_fault +
                                                                                            • >>   DCDC_Init
                                                                                            -

                                                                                            hrtim_period_from_clock (Thumb, 122 bytes, Stack size 24 bytes, dcdc.o(.text.hrtim_period_from_clock)) -

                                                                                            [Stack]

                                                                                            • Max Depth = 72
                                                                                            • Call Chain = hrtim_period_from_clock ⇒ __aeabi_uldivmod +

                                                                                              hrtim_period_from_frequency (Thumb, 140 bytes, Stack size 32 bytes, dcdc.o(.text.hrtim_period_from_frequency)) +

                                                                                              [Stack]

                                                                                              • Max Depth = 80
                                                                                              • Call Chain = hrtim_period_from_frequency ⇒ __aeabi_uldivmod
                                                                                              -
                                                                                              [Calls]
                                                                                              • >>   __aeabi_uldivmod +
                                                                                                [Calls]
                                                                                                • >>   __aeabi_uldivmod
                                                                                                -
                                                                                                [Called By]
                                                                                                • >>   hrtim1_timer_c_init +
                                                                                                  [Called By]
                                                                                                  • >>   hrtim1_apply_pwm_config +
                                                                                                  • >>   hrtim1_timer_c_init
                                                                                                  -

                                                                                                  hrtim1_wait_dll_ready (Thumb, 76 bytes, Stack size 8 bytes, dcdc.o(.text.hrtim1_wait_dll_ready)) +

                                                                                                  hrtim1_wait_dll_ready (Thumb, 76 bytes, Stack size 8 bytes, dcdc.o(.text.hrtim1_wait_dll_ready))

                                                                                                  [Stack]

                                                                                                  • Max Depth = 8
                                                                                                  • Call Chain = hrtim1_wait_dll_ready
                                                                                                  -
                                                                                                  [Called By]
                                                                                                  • >>   hrtim1_timer_c_init +
                                                                                                    [Called By]
                                                                                                    • >>   hrtim1_timer_c_init
                                                                                                    -

                                                                                                    hrtim_max_duty_ticks (Thumb, 66 bytes, Stack size 4 bytes, dcdc.o(.text.hrtim_max_duty_ticks)) -

                                                                                                    [Stack]

                                                                                                    • Max Depth = 4
                                                                                                    • Call Chain = hrtim_max_duty_ticks +

                                                                                                      hrtim_max_duty_ticks (Thumb, 92 bytes, Stack size 16 bytes, dcdc.o(.text.hrtim_max_duty_ticks)) +

                                                                                                      [Stack]

                                                                                                      • Max Depth = 88
                                                                                                      • Call Chain = hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod
                                                                                                      -
                                                                                                      [Called By]
                                                                                                      • >>   hrtim1_set_duty -
                                                                                                      • >>   hrtim1_timer_c_init -
                                                                                                      • >>   DCDC_ControlStep +
                                                                                                        [Calls]
                                                                                                        • >>   permille_to_ticks +
                                                                                                        • >>   clamp_u32 +
                                                                                                        +
                                                                                                        [Called By]
                                                                                                        • >>   DCDC_ControlStep +
                                                                                                        • >>   hrtim1_set_duty +
                                                                                                        • >>   hrtim1_timer_c_init
                                                                                                        -

                                                                                                        latch_fault (Thumb, 74 bytes, Stack size 16 bytes, dcdc.o(.text.latch_fault)) -

                                                                                                        [Stack]

                                                                                                        • Max Depth = 36
                                                                                                        • Call Chain = latch_fault ⇒ hrtim1_set_duty ⇒ hrtim_max_duty_ticks +

                                                                                                          hrtim1_apply_pwm_config (Thumb, 142 bytes, Stack size 40 bytes, dcdc.o(.text.hrtim1_apply_pwm_config)) +

                                                                                                          [Stack]

                                                                                                          • Max Depth = 120
                                                                                                          • Call Chain = hrtim1_apply_pwm_config ⇒ hrtim_period_from_frequency ⇒ __aeabi_uldivmod
                                                                                                          -
                                                                                                          [Calls]
                                                                                                          • >>   hrtim1_set_duty -
                                                                                                          • >>   hrtim1_outputs_enable -
                                                                                                          • >>   set_usbpd_input_switch +
                                                                                                            [Calls]
                                                                                                            • >>   clamp_u32 +
                                                                                                            • >>   hrtim_period_from_frequency
                                                                                                            -
                                                                                                            [Called By]
                                                                                                            • >>   DCDC_ControlStep +
                                                                                                              [Called By]
                                                                                                              • >>   DCDC_ApplyRuntimeConfig +
                                                                                                              • >>   DCDC_StartPwmTest +
                                                                                                              • >>   DCDC_Start +
                                                                                                              • >>   hrtim1_timer_c_init
                                                                                                              -

                                                                                                              hrtim1_set_duty (Thumb, 76 bytes, Stack size 16 bytes, dcdc.o(.text.hrtim1_set_duty)) -

                                                                                                              [Stack]

                                                                                                              • Max Depth = 20
                                                                                                              • Call Chain = hrtim1_set_duty ⇒ hrtim_max_duty_ticks +

                                                                                                                latch_fault (Thumb, 74 bytes, Stack size 16 bytes, dcdc.o(.text.latch_fault)) +

                                                                                                                [Stack]

                                                                                                                • Max Depth = 120
                                                                                                                • Call Chain = latch_fault ⇒ hrtim1_set_duty ⇒ hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod
                                                                                                                -
                                                                                                                [Calls]
                                                                                                                • >>   hrtim_max_duty_ticks +
                                                                                                                  [Calls]
                                                                                                                  • >>   hrtim1_set_duty +
                                                                                                                  • >>   hrtim1_outputs_enable +
                                                                                                                  • >>   set_usbpd_input_switch
                                                                                                                  -
                                                                                                                  [Called By]
                                                                                                                  • >>   latch_fault -
                                                                                                                  • >>   DCDC_ControlStep +
                                                                                                                    [Called By]
                                                                                                                    • >>   DCDC_ControlStep +
                                                                                                                    • >>   DCDC_StartPwmTest +
                                                                                                                    • >>   DCDC_Start
                                                                                                                    -

                                                                                                                    adc1_read_channel (Thumb, 74 bytes, Stack size 4 bytes, dcdc.o(.text.adc1_read_channel)) +

                                                                                                                    hrtim1_set_duty (Thumb, 76 bytes, Stack size 16 bytes, dcdc.o(.text.hrtim1_set_duty)) +

                                                                                                                    [Stack]

                                                                                                                    • Max Depth = 104
                                                                                                                    • Call Chain = hrtim1_set_duty ⇒ hrtim_max_duty_ticks ⇒ permille_to_ticks ⇒ __aeabi_uldivmod +
                                                                                                                    +
                                                                                                                    [Calls]
                                                                                                                    • >>   hrtim_max_duty_ticks +
                                                                                                                    +
                                                                                                                    [Called By]
                                                                                                                    • >>   DCDC_ControlStep +
                                                                                                                    • >>   DCDC_ApplyRuntimeConfig +
                                                                                                                    • >>   DCDC_Stop +
                                                                                                                    • >>   DCDC_StartPwmTest +
                                                                                                                    • >>   DCDC_Start +
                                                                                                                    • >>   latch_fault +
                                                                                                                    + +

                                                                                                                    clamp_u32 (Thumb, 52 bytes, Stack size 16 bytes, dcdc.o(.text.clamp_u32)) +

                                                                                                                    [Stack]

                                                                                                                    • Max Depth = 16
                                                                                                                    • Call Chain = clamp_u32 +
                                                                                                                    +
                                                                                                                    [Called By]
                                                                                                                    • >>   permille_to_ticks +
                                                                                                                    • >>   hrtim1_apply_pwm_config +
                                                                                                                    • >>   hrtim_max_duty_ticks +
                                                                                                                    + +

                                                                                                                    permille_to_ticks (Thumb, 52 bytes, Stack size 24 bytes, dcdc.o(.text.permille_to_ticks)) +

                                                                                                                    [Stack]

                                                                                                                    • Max Depth = 72
                                                                                                                    • Call Chain = permille_to_ticks ⇒ __aeabi_uldivmod +
                                                                                                                    +
                                                                                                                    [Calls]
                                                                                                                    • >>   __aeabi_uldivmod +
                                                                                                                    • >>   clamp_u32 +
                                                                                                                    +
                                                                                                                    [Called By]
                                                                                                                    • >>   DCDC_ApplyRuntimeConfig +
                                                                                                                    • >>   DCDC_StartPwmTest +
                                                                                                                    • >>   hrtim_max_duty_ticks +
                                                                                                                    + +

                                                                                                                    adc1_read_channel (Thumb, 74 bytes, Stack size 4 bytes, dcdc.o(.text.adc1_read_channel))

                                                                                                                    [Stack]

                                                                                                                    • Max Depth = 4
                                                                                                                    • Call Chain = adc1_read_channel
                                                                                                                    -
                                                                                                                    [Called By]
                                                                                                                    • >>   DCDC_ReadMeasurements +
                                                                                                                      [Called By]
                                                                                                                      • >>   DCDC_ReadMeasurements
                                                                                                                      -

                                                                                                                      adc_raw_to_mv (Thumb, 32 bytes, Stack size 4 bytes, dcdc.o(.text.adc_raw_to_mv)) +

                                                                                                                      adc_raw_to_mv (Thumb, 32 bytes, Stack size 4 bytes, dcdc.o(.text.adc_raw_to_mv))

                                                                                                                      [Stack]

                                                                                                                      • Max Depth = 4
                                                                                                                      • Call Chain = adc_raw_to_mv
                                                                                                                      -
                                                                                                                      [Called By]
                                                                                                                      • >>   DCDC_ReadMeasurements +
                                                                                                                        [Called By]
                                                                                                                        • >>   DCDC_ReadMeasurements
                                                                                                                        -

                                                                                                                        sense_mv_to_voltage_mv (Thumb, 34 bytes, Stack size 16 bytes, dcdc.o(.text.sense_mv_to_voltage_mv)) +

                                                                                                                        sense_mv_to_voltage_mv (Thumb, 34 bytes, Stack size 16 bytes, dcdc.o(.text.sense_mv_to_voltage_mv))

                                                                                                                        [Stack]

                                                                                                                        • Max Depth = 64
                                                                                                                        • Call Chain = sense_mv_to_voltage_mv ⇒ __aeabi_uldivmod
                                                                                                                        -
                                                                                                                        [Calls]
                                                                                                                        • >>   __aeabi_uldivmod +
                                                                                                                          [Calls]
                                                                                                                          • >>   __aeabi_uldivmod
                                                                                                                          -
                                                                                                                          [Called By]
                                                                                                                          • >>   DCDC_ReadMeasurements +
                                                                                                                            [Called By]
                                                                                                                            • >>   DCDC_ReadMeasurements
                                                                                                                            -

                                                                                                                            sense_mv_to_current_ma (Thumb, 30 bytes, Stack size 4 bytes, dcdc.o(.text.sense_mv_to_current_ma)) +

                                                                                                                            sense_mv_to_current_ma (Thumb, 30 bytes, Stack size 4 bytes, dcdc.o(.text.sense_mv_to_current_ma))

                                                                                                                            [Stack]

                                                                                                                            • Max Depth = 4
                                                                                                                            • Call Chain = sense_mv_to_current_ma
                                                                                                                            -
                                                                                                                            [Called By]
                                                                                                                            • >>   DCDC_ReadMeasurements +
                                                                                                                              [Called By]
                                                                                                                              • >>   DCDC_ReadMeasurements
                                                                                                                              -

                                                                                                                              gpio_pc10_pc11_to_usart3 (Thumb, 116 bytes, Stack size 0 bytes, retarget.o(.text.gpio_pc10_pc11_to_usart3)) -

                                                                                                                              [Called By]

                                                                                                                              • >>   Retarget_Init +

                                                                                                                                gpio_pc10_pc11_to_usart3 (Thumb, 116 bytes, Stack size 0 bytes, retarget.o(.text.gpio_pc10_pc11_to_usart3)) +

                                                                                                                                [Called By]

                                                                                                                                • >>   Retarget_Init

                                                                                                                                _fp_digits (Thumb, 432 bytes, Stack size 96 bytes, _printf_fp_dec.o(.text)) diff --git a/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC_B-G474E-DPOW1_DCDC.dep b/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC_B-G474E-DPOW1_DCDC.dep index 5f2147e..17d72ae 100644 --- a/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC_B-G474E-DPOW1_DCDC.dep +++ b/B-G474E-DPOW1_Keil/Objects/B-G474E-DPOW1_DCDC_B-G474E-DPOW1_DCDC.dep @@ -1,30 +1,30 @@ Dependencies for Project 'B-G474E-DPOW1_DCDC', Target 'B-G474E-DPOW1_DCDC': (DO NOT MODIFY !) CompilerVersion: 6220000::V6.22::ARMCLANG F (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\arm\startup_stm32g474xx.s)(0x65DDA5FC)(--target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -masm=auto -Wa,armasm,--diag_suppress=A1950W -c -gdwarf-4 -IC:/Keil_v5_41/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -Wa,armasm,--pd,"__UVISION_VERSION SETA 541" -Wa,armasm,--pd,"STM32G474xx SETA 1" -o objects/startup_stm32g474xx.o) -F (Core\Src\main.c)(0x6A11BEDB)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I Core/Inc -I C:/Keil_v5/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -I C:/Keil_v5/ARM/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Keil_v5_41/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -D__UVISION_VERSION="541" -DSTM32G474xx -DSTM32G474xx -o objects/main.o -MMD) -I (Core\Inc\app_config.h)(0x6A11BECA) +F (Core\Src\main.c)(0x6A11CA4D)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I Core/Inc -I C:/Keil_v5/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -I C:/Keil_v5/ARM/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Keil_v5_41/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -D__UVISION_VERSION="541" -DSTM32G474xx -DSTM32G474xx -o objects/main.o -MMD) +I (Core\Inc\app_config.h)(0x6A11CA6B) I (Core\Inc\board.h)(0x6A1198E7) -I (Core\Inc\dcdc.h)(0x6A11BECE) +I (Core\Inc\dcdc.h)(0x6A11C9CD) I (Core\Inc\retarget.h)(0x6A1198E7) I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g474xx.h)(0x65DDA5FC) I (C:\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm4.h)(0x664C1ED8) I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h)(0x65DDA5FC) F (Core\Src\board.c)(0x6A11B765)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I Core/Inc -I C:/Keil_v5/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -I C:/Keil_v5/ARM/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Keil_v5_41/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -D__UVISION_VERSION="541" -DSTM32G474xx -DSTM32G474xx -o objects/board.o -MMD) I (Core\Inc\board.h)(0x6A1198E7) -I (Core\Inc\app_config.h)(0x6A11BECA) +I (Core\Inc\app_config.h)(0x6A11CA6B) I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g474xx.h)(0x65DDA5FC) I (C:\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm4.h)(0x664C1ED8) I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h)(0x65DDA5FC) -F (Core\Src\dcdc.c)(0x6A11BED2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I Core/Inc -I C:/Keil_v5/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -I C:/Keil_v5/ARM/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Keil_v5_41/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -D__UVISION_VERSION="541" -DSTM32G474xx -DSTM32G474xx -o objects/dcdc.o -MMD) -I (Core\Inc\dcdc.h)(0x6A11BECE) -I (Core\Inc\app_config.h)(0x6A11BECA) +F (Core\Src\dcdc.c)(0x6A11CA88)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I Core/Inc -I C:/Keil_v5/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -I C:/Keil_v5/ARM/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Keil_v5_41/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -D__UVISION_VERSION="541" -DSTM32G474xx -DSTM32G474xx -o objects/dcdc.o -MMD) +I (Core\Inc\dcdc.h)(0x6A11C9CD) +I (Core\Inc\app_config.h)(0x6A11CA6B) I (Core\Inc\board.h)(0x6A1198E7) I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g474xx.h)(0x65DDA5FC) I (C:\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm4.h)(0x664C1ED8) I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h)(0x65DDA5FC) F (Core\Src\retarget.c)(0x6A11B63D)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I Core/Inc -I C:/Keil_v5/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -I C:/Keil_v5/ARM/Packs/ARM/CMSIS/6.1.0/CMSIS/Core/Include -IC:/Keil_v5_41/ARM/Packs/Keil/STM32G4xx_DFP/1.6.0/Drivers/CMSIS/Device/ST/STM32G4xx/Include -D__UVISION_VERSION="541" -DSTM32G474xx -DSTM32G474xx -o objects/retarget.o -MMD) I (Core\Inc\retarget.h)(0x6A1198E7) -I (Core\Inc\app_config.h)(0x6A11BECA) +I (Core\Inc\app_config.h)(0x6A11CA6B) I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g474xx.h)(0x65DDA5FC) I (C:\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm4.h)(0x664C1ED8) I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h)(0x65DDA5FC) @@ -32,4 +32,4 @@ F (Core\Src\system_stm32g4xx.c)(0x6A1198E7)(-xc -std=c99 --target=arm-arm-none-e I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g474xx.h)(0x65DDA5FC) I (C:\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include\core_cm4.h)(0x664C1ED8) I (C:\Keil_v5\ARM\Packs\Keil\STM32G4xx_DFP\1.6.0\Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h)(0x65DDA5FC) -I (Core\Inc\app_config.h)(0x6A11BECA) +I (Core\Inc\app_config.h)(0x6A11CA6B) diff --git a/B-G474E-DPOW1_Keil/Objects/dcdc.o b/B-G474E-DPOW1_Keil/Objects/dcdc.o index 80573fd32357f47e3d076ea35adb1bdebc65833d..6d6f88265adaf09ac6448a37e7fd061f314339f3 100644 GIT binary patch literal 33892 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 HEa3kEBWMAK literal 26396 zcmbt+3wTu3wf{b6=1f8o4oM~;$ZJ31Vu%YkOzt8WfBl9tr2OZ zEw<5G|G@{M*LtnjDz@6%f-Sb%TI+4q>-AM@X|>W@trro~+S>B}{q|XV=FAxGcfarM zk2$}+9((Pz_ged$J#%)rro6hsvMgnarRJ$PrPQH%EpZAp%u_oc9eVWSU;cSgMR@gp ztcs%JN*%_>>Qmber$in;c~rEHLSjK;S&`H}Q&*@DJ?{0)K8uf6t0#}!%IYXSmSR~= zs-x!EaB*r!(Xo$JYE#CnCr6c)+7ZzdY!n;1uPL>OS`lE;@u1J=T& zFmj>i82ZFD=mmC8Tna2gU!MJ%(ewKckDlz$EYi|5o;t1qlS`=)6piZRseuvANfpk} z8PCMDGK9zWeJeRyj`i9DH~clA?!f18%2Lcz(dcAPFOu36I#M(`FGig_Y8{BTGm@GU zMG5wX9^HAsH-9J8I?f+PpAUaAYegrD^5Fk0Qr3-}MTObntPKGz9ZPF3X$89{kETYT zsZ__|37L%Ik4BGX=(aT{sGp3PNINIqm%9xOA*OwOb>RgCV@5_p2%D@LEyRJ!O5 zqc?xs3dRw3Fya%)w~Z0MaLtVhmS{8WqZZwA@NXU z(!)d#EbYO`qj$iMV8Wav=S0Qm&9ONM9r2GUF(-x|jg4YkDxx*_NSwwh#Eb-We5aDH zS0QJj=ET!|9A(_UB0WQ1E*MQ4YxLw%FLKOV=GhH@O;IYMhS^$;cvo1lG0%2Z$E*`- zR+f(09ndp&;;TLYi^;jL^MEyMji`Bn7mzE6%lIRpw0)~WjqEN7zIyVgj>s_Zs5MeC zdV7|RYLhh*>!Hb5HGa~PZl!%>t55pqYajE z|J|}uZdGS!FDtB(z>VYf7M&g(4vwgIid5zCnd_c9{!Uiy->vs6v(!7!_ZwfVj;u1h zzDK{Gzq=&$*SLR3WQ#^0!>X9%>#64W%Hm&*p1g8*N!sgiy_(~dMd0>vrNY0F;NFX8 zuPa55b?7mB-QVrw>$0qOUbr%~%vc`Rky>UCb4<5flZG*+j_m*NmcGO9s4RPA|2x-W z6=UQh2i`wa-PiBbHG7e#7Pm!m#;G%aBb3_bdV1J1BFgU;U6A#diKy_G{= z4m*2y4>==hH`@k>oslA43!pZnYc}StX!Og-@&N90)Iy7TId7hwhW*dn>>_I@xkFWKg|{%Who@nPmvmS)X*0(Uj!Po_#U znkMh9VRfT5Qg*y(*5Tt5sADO~F|$Jae&X(SWo7B=(c9Mj;`lS`Xt5|}(bJ2Kcbo4y z6k8Qz@f4l`WAHovXWn)C&ceF}R{f2EdDC7|dw=^!>zJMD<`^IB;nQNdZ4YPp>gm3^ zL*v)u8#TX}qc(_uXOGT$l5 zEPh{EMWaP^$XQ#Rp}xkfwQ=9GZc3}L_6BaUZ?ta>?0w<=7JGNG!<>u+hFh_|Ts*}B zBM*N#l;8KhQX!GlU{#wHmiTp;PK~5;#7x9$borilUc3Ud)^ME=_4Tq40ybDkM zk;S_^@)}PMJWs3}FcciteD*|kTzOu5cPq|?y;AWmS)y=ZjpQe;us8)rSr++%#o~#rW|EjQ3!CBxf zNmt65qXO=E>FKD3SWQnq57m@HRO5|OCqX;l(uPvwg0PUD?h$G8pg3)UQt1<*qEtpq z(@|=C*h+VxhpIc?7<87x#snV;X(kkD5Y?>3+D^7`pc{_qrn6~IRApJ&p`yv2KXa#? zKSimD$xNjtMKKjIJ!dYoPIHv)HFN0eYZMg&}?dgPP*s7w3tphn@o@O zq{$fxJ)y~}Fuk6cY{_Fs&eT(&ZpO3*aR|}Cs?5`5mM}n0oJdaKq@e<7E)gO=a4ZFcv{apfk`B^>)|%jrC)EYoOySp}GpUm4sW`u&*h+aGa31;T(sUJwTzmqjjk}!uKvvpO=%}>6;bNtwgJ-AB zpn`JfU8tD{yL?b>PAQXy>w*Pu#y1n?9-mMbQn z1Hq47915zSi<_5vlMEXzM-34O2Hn3KA{b0{6;!mE6U=Z! zh6n{S-3&vd1asUhL!<^LyORttE;!Ad4uT^IrUfJJTq8*j&T*rL$Oz7J7aL-HaDlr5 z#2@hqy1_h^#nu6Bf=Qc$SYT*6fkP@I1ND5;1sqp)(A{hd9t{V(71>^dfAx_7*_8MX;#BFB+l*G5V?@N)e;48=?#`y3G*f zh|yh!s6dSV)etKYqi-3a5;6LYAyy$q-#0`RV)P?JtVWD}W{7IU=vRhVgBZPJh_#5( z8-}PsjNUdxEn@VZA=V*AqlTzMjQ(kedc?><6m<9-f`jgOL#z*ObHj$XAh^SwVu%Za zLvF+n8-lysxrVqXxZBM&#KplqD)s9jrMkhfi=B%BDXHmqfs^qqTpq$hJNRQebANEe zcDI^Vx7y0xZiw6LpnHuWZpWr|mm%)3GvYUqeRih4JLucNopz49$EfYMC%ZQq;x2od zdy66Nwj=IsAat95vFEtoFp_)hdG3RT_=df}{hlH2we#G=rp>?Fh3+#(a-Y4_ebEr# zv{$%q7~+1r$USP>{F`0ozHcNC*p==_hWM6U?OK=+9ft?)T6Y`>?b}0k1GZ%%Ibd&a zry1g5d!zd)LwwtAau=F5-?3ZWB}Vdy-QgA+;!(THU2TZ(+I{YN)8>2jpxbC9kJ;PY z%MI~;dxyKl5I?Yo+-ppmgZ3`>i$-$D-tB(XNFKNMxO`_U$VDFt!;P&*E|n?BFarb3t&T?H)8bry)I_FvMh}$J2(Gg7kRK5T_$OUNXc~ zq{nN9n1=Lt!w}Pv9&Z|A2GZk?AR5M@c8y@Guw6BBYoj^!~fk-_zF}1 z{jPAIslT~9yv5Yt+7o8h>$ZOw4qt8fZ|@IZYwAbu3CFVhkN1URdHr7xgm)XAKOG2v z)zsg4B>ewSzm;Qo_p$KZhX3cozNcQ$SGQH_!%+SS6z%h!M*t~y4zf$F#mBnzSum{G z6Ulf>GhQO&P42E$o@V?P8IM?}**6C6z;Z#An_Go%YWP~DH57hRv<_R^$i155lJgII zfxt!-%GRZm$ylIUo^IcmdJhdnt;P8MpnP2|pjLOht8T9=?QW|!TtbaSx=EF0tRdqm zHc7dkMxU~{J@$-NYmJMjv7H*h1Ju|K9SF41rCOtt8mp(Gu6ne$17tKzvv15f$QBnY zho7J_|4HgXZvR1Lq+m%|8-z;DA$1Wcr7iVo)4OPC-*i}-LixU%#L{$9`{@WR%_nu2 zP^n8u-L0L}GgzW6-AYS)weOfgRZgYbyrF0vQFHPo8n(~4+YPf+U{ znhh=cLTY_OH&WWxY_0VxYTa+Nf|pP$Myl30={1_68@{L+6= z>tTKw@-fpnyWeH_G}FtiDP$gG#`!eQCi5_7$j3aF%%{kl$&N159jzntnX@tLh(SsZ zeSU`BdOBTNr-?c*86BNPFX<%Gb8)rS>7~wYJuK$$APs%V`Vy9gH+V1AuBTSB$@1XU z)N0XcZvC!d1<}#mvHKW#K|);re7Ta;`HL<`WA?#=@n-!WF{O z=Ye8&vKak{rj%k1vFHc^8F&_h#t%aqWZYP~JW!l}mTC|5wY0ap4?jrt3@(op_jgA~ zc6PP(N7{S)Bjw$j+FD!NS|jH~3ko6)y}ez_BhCHYEnUq$n#G}tp*t98^nTaVcC@r{ZOz(pPsO9xuPrODyP&4Jp?GBi zzvhBdvP;+3)s?T6jyx-sbq%Z5h*|wh;y`0xTYqP7tISAjq@0>9@wsW;GPqq-2G%qW z47T;xwQU|yYf9_XnpO3@uvWIJ9M{sd4Y<~_T322RdQEM9ovJIZhoj|Xd74o`y*0Iq zJSdEd^Obh7(d(qKVS8U&SzEgrXu!{u{o8b>7{NC5Mqt+(h1L$B|7~>&{o@J;aHR(V zr5+Y|u*ic#LT!WAscoRFj3(;K8@AE&dJUxDHYq@PdBwK6d=CmV6DBHkXEX$VV6cE# zv!1pps(JNXFYuZzlA(G-iw_m+rn|RC5499sl-3m}j*~OY`K>8mi%S_qrFDx`aak$GgDVDr>mq%{yDrL-Q`(hAH#ErvoYe)-wT&hY-S0MtX7XJ)Zp%-YIv&z)Yq1mBb2r4 zYjItLPYnZGUstE9OIO29%xVdUm9?vCVirni7-|S|V^S;`kOEbY%*@x<0@Z+819%Nc z%KCL=ucO8~k1SNMQw2)ZR6vGH0WXVqDO6Qu;Neoh%OYM7hzrXK&_7@iplnq|eR;Ji zEv~L8E^Ua-Lw=rGSz5EER=fC#%o^zE?e}hZ`R5?3^qqKBPv@Z8+}GKQM@Q#iBc5Z8 zd@QMfw!y|N1DpC2K2yOwWVH?&fW}z1+yPgM8dI;<47#)7C|o8~dBDY8>os?B0su^bEA2LQ-BW zC9~yq5-fY3tZW;s*AFy3eV{7zL&lrTfl9t~qHi(+$jdOC2K_8HEo$}S$j8$L8``!> zOteK!de3Wle6{!Yb~mfJZoWn1*j1+>U!rLS z1(*%;F-*+{sohPO=b(nNe*lMre~Uib3*rCnhTN zDkdIiY3^!k?Ca~s`$29^JXMa0onZU)f8T-?S7JBU+}6CQQ(5PsT3QgzTc(^AtdF*B z3%d(dXne|=R5i{{3%PuyX6M)w)oIpbYl?NcHPxDC%?Qo5=3u+cJ#TT{8fD>Yh05dx zmAlK6D0tVPtQ~H~c+mPAACQH+;}SRZD;9oyH#<-Axmz|nQ_^|(l(@kJ9m@5$Un-z* zCoQ&0umw+$ad#b)q0v~j{eE%xZT#~0!QFMtPEsG-8J|kVUHhqI+{wped5M1a`P)Sj z{pOCJbK)P1=U*ZZ&9t6>9Q;-g>k|h2Huy~;d9E27e|(Z@w*Q~xl==JMw~G=tBZ1c? zJinj())Dg)0>6!FPo{o@YzwMaLE#kU-|_w!z}&;fGT$!vwSwOk8n-TPEX?1CB;}{H zx_Ir%jhi}qHb$cxJ9}EXwzRf+Ur1K<@S8}kG|7c-Zf!HZL1<2HeZ!hX1uF};ZEGy6 zsLjofo)gW>E$i>Z3;2QD(lzy~>T}E5wsyAQdrd=JHy1W_2TH!_z`udPR&2SW9els0 zxgGpcIxyJ1s9-a`=WN>sQ4m8>4ixZ>bGGF;X}OzMS346|JK<2fGcI&zC>pq+Jrr0F zb)41C_`HLTm44912~f*4degF;?6m8g%{e}D>DAHM8_Q_ppB zQfE2YKx=bC<3|FPGcIj&s4DQxj&^5aDDYTdpX20)0zcakb#g+1Lm;j6YP>#-cX$|W zGSlElZi1vUz=xlWI^n>V?RLkBVsKzC z@R*sQz_7i~$vWsvxZZKE)5?F;$|H7FTp7L;B>3`xZ8=lnOZI;DJM)k;DHm>6InzU_ z7dtZ#I%x&yrYi8%XRDkuLV?H8#jHD>ad4><^IHYg)s7R|=VW7cL%B{iSi~@#p9pji zg0LrIG@MYLlLc)j6iCN7e9ESgAG4u3GxVx6eLp9_+8j!+N^t$paNV2w8$a9b%nk+K zhj*O%uVCD8_Ct`#Q@@B!azpz<)lOPIMz$|df!tUTUF}R>>^L7d(+{$*@v9x{U?@GB z5T2(HH7D)P>zwH?V|JYh)z0`(RS1qDo&3@LNZg7BJ`cB$0{^fv1G$cy>rBP8xI3Lm zp3;lXbeyR1qSokg##Li{ z9ZovO*B;n+4F>p@!U%;iLdKtBjA-DdYj%bL$H+LJVL3PSl2hOA)Kody?ap$QRw(e%=b}zVDDXuK?Q)&d5axn?&Xmv{ zPDY-y><%Ywp_9(6iaIke5j0tXJZIuu=Zwq4a((Y}JCXN+o6+8zw;A+cCrs=DUuRe- za1@=)3rsNKnpI_F^$ zxk@^mIpE1E!3;T{7zYw6oVHqLPv%Z%0;Y)zd{-#&x?bS-m<7H|-wnu|9twOD_lO8x zN?JAFfG?-Pm#LwhPVP>K+Y?;9AL7}#8J-QFK3(N3!)zxRcnBKf;m#z)KZ5BH15QSo zxuJd=6OWsMUOhhc_r_))((IjfD(;Xz?I*_8{;7{``g;bv@fZ@K8+hb%FY#9JORMT2 zienv0p3Rqh%J)HeZYc1Y)lTKHw0G<2SnU*WI`%o2BF*t0ZCt1mVW@J(wFf@fQH5&Y zt609yW~MuDo_KNo-yZ*K`)ZP~aAl$sYX<@paR1OU*+%BY3j|f3SBt#Z^xE zK4(qTQD9=4!HhbYTyL#T#v(7iv_ZPUOju0{j*mF9G!e^tmVC zzS72flHcQf5a~Qkr>XHG=l;T0+@VPLGgl0RHI1RxvKO&+!saY3jccSZQ$~Y61AmcLedmU3R<#;Qylu za{n%h?Q_&^3Gy6ui_8!AU$$yezs0tMg_{veU7^}FdcOwSs#WcUoI@Rv1f`ojU8yBJ$P-iQ?NQsxT<5koG@b=9Fd9GS3^XrXoiFyHg z98UxvTP;@;L6DxU>2p;k+LPwq+*ZZ7#!CS6{qqF-$@9NN@qJXhEQwc93!uNRC&-s4 z$*gKr^a_t^>UqbhgNsg66qOL!%li0oA1DLLM(o@hWNotp5lH5-Y8-8Y=Ui4D1t&?dT5X|TaC zra?x#Y4C}%G{m02jif<%IxrWnQ<-~tz$p2692Js}_of_w9BT)Am@AG}-mdxXEAd^(3RUmt(~;{89n zq#vAa`oa9B|6Ggoe-1DWkB9l>N4)Xm0l8MvW+~iRfEXY9<@h!LIX;&8(`B9@r(NpL zBVzuv-{?>K4WvD`KMxpdKigZ=^!rS<15%y~qJ(;6qRfYrn0oDpOGH1~Z}g-6hF!)X zW_PYP-n1_0g3o^0j&kaAyzGal#|ONCdYIpfsR!(#9Lwq!@*_CsLO$?-(2odxSm-B( zensflh30;V?Oh<-R{=TB4T7!2Sx`oqf0m4Mq0A?c_uMp~p4X^S1*Cy11lJO=8DLz} zFzKyA1JwMpJ$oD%LZHWmuJt%|{(`?iXvT}7)4{$-?1KTzU$a<_Q#$pbC`9h=_^L7>dP$jf7UlNUd` z)yoUwB*^V{FD|5KlWu`cVzW11@>h}u!WGT$72F~CMZsGH9};|8@IM9L6a0V(dnbt) zRI26C69gv-&L&=>)LfyXg8aJydn0~g7n*+^Kzm#d#LEP^E=XS?*f01wA|BM&3w?{= z?Sgj;-Y58=;G=?15F3?xM(F1SUlDwZ*rXKyE`a^>21*<+c)H+1!R3N01sepL1$p$I z?LQ;9Tkz|GcMI~gJoOF<{#@`SLH_*%<$Nv^X9_M5Tqal{STEQl*e!Uq;Prwx3-Ta0 z?LH`YQ1EHN{}lYa;C~B#EI2OcwVxz-hG3rHxq?-K7YeotUMcuF!7mGbQ}DZjKM{OR z@Hc{g68wu`5YGmVCrfaK;Msyp1Tl>nJ740FjsJe;3~lj1X~1o&XazAR*>g1N#7!Pui$qC4-5Xg;A?_M1y2ZC z*z3>^4^9%N3eFQ;EXebZl-CGu6yy;`^0x|JCpav4hv5B!-xGXN@Oi;E1m6+-tDu98 z0PSZB&J^VLQ}UMyRtVM$HVJkMUM>)URlLTiAMg^A(RtVM! zUM6_C;8ww%g8wG?ZNcvoaZmk;(9aOZEA^t#za~yl>JLI66Z{7;3ul%yfbeqyF^of( zLPv-b@yr%_nP3GG`|w(!FA?k@V*lJP^mgKGrLGhDD}uKX=P30Jp$`Z?PMoXM&xHOZ z@hqiY5&HLn#{~Z=$QRJ`e=_lG>>Gq$Ah=wxQt$%7O+@SqyM+FX;BMj~rEU`XF2M(h zi3{Nrb;M1xsodC2b*#3CZ{uuQO$2xHZPwM66{w!RuS5RrG-(rIiWBClEnJBZ91!9F7L zWl(S%5qYvhaEOTf*d@4|h}BOxSxnTxJU3lBJ$t?!2?9(!6Sl? z5s?Rn1P>F}D)pq`(?rDmS;6Osi1&+vlZkCI|G2N@30+7;P8SJXMnv2igx)|zyjq3U z^Mtq!3B8Mmxao1h{(jPkm-ZjD_8;-m{(;v1A#QI;`#%!r;KF?@*4)*!Urk0Wj!LU$1nw;e(c5fL~3-9GK#Ohnus5c&WSaXT#ZlSIT#|9vm?UnGsV z9TBZ-jAdG2GWSz+cb&# zRN6;;^f(chJ){wje<30clc|sS{|_SOJ%#&R%y$WKwo;c9F~3g`F|ThDF`pj zh#22(M2t&C``fyrIHnP8+t%5-EsBFnI99>qXTDQ(T4!v@rh$QI;(_r0!C=xsv#~Tk zc>pfn`6*;c&LaTX0^Q|EERNi<)OG!9=XP zI%yg=G`6_4d9WGl&37JCVu{mGiGQ&X71e}4TF~Z`{4mjpA25wOaSGWfEcg$ke$qyQ zlopx?2m3oWZ5eDE@Y2;=UH$ko7jQ~?aVE5}tgWkg`x?kS*}!1GidIK8jB(r2-qzzk zgZX6o8{Sx+`ws;tx%~-|=SOExd+(SlUuRpwLE*7x+zag|kK@KWKb1!PcKks}H_zsk z>I1ydp5DQ>=*qS07vhX74)l)I+bNDnkrbTCHlJ5NI)km9 z`}3n(xG0Z`1^SA=3_zWm)&FIA7yA!vabjiHYV1K$W2C~iNf-XU%R1C`;Xc@3usza+ z|6xh89=0{HV)Rm>HxAq)kvzFnsV3AvgAe_o9^H5k`!v|=+le~ME_}$R4vVq(C+PX@ z&A}dwdbEeFTFjpQb7atF9Q^+A7CxpJdq0MPzu!I(w1;h(E=KQ%(DV1Zz}GMJsYiSr zPWb0#8wh`xjJ+2;z1Vp9dpFzT=M-Ix-Y=o&@3+v`Z#pzhzbW20V&mohJyUEEj6MEw zKSZ&94@b%MU8vppe@A&=O zg#@L4)L}99`jhPK@%hJhKgQmTNpaf)dt>Fx^`2fVZil2_et%^#{qlQ=f1Ypl^*crM z=9g>Gy_kQyV4xbbDaPKX!0_8!0ecbfXzvVss7HHPZVCSJ{RsKgVKMgD zr{CU2pMUJj*n15XzkjcQ=De6aZAl zk0sgLO7st3(_{ADLj%8m{68<~A9Yxa zJ-%o1+bjFDr$>7WMUU;Oupa#W4Z~g^_@)?pd|&6cR}FiWP@=tDe5glz5zk(1{`i0) zpE@kY9{-mrzrCA%{^93{n7ywh`IicNCEAjAG4}ZXK>6+64tu=6&_DdF5wpkNL;Uks zE&fr5#n@|4viGddKm0rrvsalE-v-zlYyF<*>BZ)S=fF5G_=!aq)9>=6Jb2O9FY}su zY{%cx{BgSv_9Eb!V(k4G4F7namVS|5x){A5g7VMb>%M+bjrGg-=l*`5gT2|FsRVoJ zQ1aV*%V!TiAI0pwg}UFr6XG9rSd4#1Q1{z=*JlquL&faz43yu$k3sVci7Cb&^U~k% zG)yYzwOAC5-p5JLnG?Q#nTOP4yS32s_d5s746#Kp_V|06e;gmfUMA$9!KY00Xm5dM zFP1NPV3JQA7GsaU)A{XXtnl<`uR`?L?lL>kzolS~<=@57^V`dTJ>y@c&mMob^v_=z z?6Du}uo(ZACfS?g^N;IDQ=H$w z2A_XCyJP&@nB?EKQ~0+b$-j+0{~CPu3O#$V{M#k|QHO>7vT(oR_pi(6AJ6ho4^8#& z)&BY0118TJnPTkS2_?V1LD=J*FrT>}Gxmm{hkr5u_@0~nP>03X<9h(Vy(fMCT`YQR zx7o87+vl7Bvx|nL7<(;A_MU~kCg{+=jrbV<$~=29|C-OGq)2AtQgcT`9_66wq<6FHF`&|fW?@D}(y?e!8p0xiP?CoSjDYVDWySNaI z-i|YsDi`H#|bcmIEf%0uN^xirb+Dho!DR;2S{SNtar!u!0wJa zJ8P1N3RD_Ok%~+ORl=)Pg%Coh3RUTk0%|JJLRFU^1wkn;N*_{yQk7B)+m_b-&fPoq zdc}|a=+(}A=R4=zbDw+W-aC7T`V>XcNEU^*lj0L#XRRQ5n}F@K7S^WsKI}ewj*R-b z^>gdy7C-&Z;&mVYF1AWY%sM|JI**6tRcA|?FDuiJ9}eZHpilg{hUf21j&WBG`b z^LXgW`X4Jx{=OgMN-ZKr;2&8i1Zx%w5o4iH7h5RQ(?Vg>g%A4X3l$gU3m9QZZ%gIH ziyU$7+}bni&vrI!e|GUAq~aJMt%L5|-~V~%k=IziZm#C3(tcDe%|&QQ3JXb$Q;foI zi$@detDdVp6Pa7{Xx(ERC(y_5sSA7Qlay0dKVFYs@^!>81`}{nl z`9l3&^M$&Z`9jSt^M%OBd?DERd81pr_|QdOMqc00fu{bptJ`{;dPc6hvBl`=?&&si zUc&V(*O+mgTdkxQq9cd9M#pv? z_3VsgWSo@69@iLF%Jz(@cq*An#*bI zMk?=}WU;v=7K<4vG{CV%pIkdv6ebhtw9v@@`5nkv?yQ}(j6~A2XDw57Xm1RVwLQn( zVYC=Cw`ZC>E9dPnT8(7d$yuqUwByX6Kiv7fjX9oNPY9EVeA;8pw2L0FFl%SI)yxfs zEu}7F*2%+3D3^K;YNUj=8DfZMs;M|r#Wht{D~-`Lx)!ZjzcIR6sSOaRZ8W&1BYaI* zttZkHWpE8q#pTdl9VXJZkQUt+4nqvE7!L1)SZN|oZJ@JWi*m(n8wS_x-#`>>BUP$6 zNL5&PVI!?Ww4y6fc#RScb1kAsH6j+<-VI9aDq7~l-G^5r>8AlfC2$`@rFsmYY}K_!;Ii9hQgdwBrfdBx3>#$N?Yedg4C-0Dl&f@& zgDzKJMe6sZ;lUM#0I9!_hKE-eLZtqY4Lfx0i4}%+Qvb~cQ`g>FVHhHH9mc8bLEnMP zjrWk+%!VVnX0I?DmyI9QwU=PfA4j~(ib}kRXH2>I8AwX~bC84D0}J#V(*`zy{+ixq zx{+zsyAXec2m06PJ=X6N`WhIYF6z(IpILwXt5Bin&+@Ax^fD;dR6F&b0xBy)Z$YyQ zk2Vml(>f!6fp#laSUW(GRZt7LTaB#u<(`U&0h!y=dV`T|zT6jyn7-U!L!lM~2|%Il z*FWW!RO)szGfvjZdL2fWn=zQ$X=JHM$2EF06ILo^rHox>YpXHlIOz@};bxNQM0UzJ z-fmfYTJd+k88KX|`LLTD&m`=unWXNH@gw+C=f+Qs_c+OX2GMilmJBw&A~nW2yHIjE z;Zi)_H9FdLG=6ySSZ{pn=tyroPWf!kp30&JX(u~H9G;LPDV@l9oS{6|Nyjs}Wj8kF z@!HuMmtG>NvQO5zoic=E5O))|FW1OTJ8rQ~%P!PGiV${A5Jdrs%&gF75+u~1oY3RL zRw9>oEipX$zf5G;02U=-B_?ca9*EtoW^51XNp#UV(UfVUKy~GCkgC*BAWBFhYMr{4 z)+_bO2BksSsBBU$4Qy7nC|i|PsN6L=ObTygY`_}8B1#34gmOm|*@I{c9>4I$>4|Q- zU-`OvulBWyd-T(RuT~z2-UT&v;8j60kZ_XuSG1ae^>`G2<$1|@CF8U0@wS$6G|f-< zP}jBn;}dpv+%(7SY%-lsS;fsVm`##cPV5%M$$2R(nmJ9_p8WNJBvOSXvcQmj30QTYS+6>zM_Wp4mjq6u1-2d1HxI*bP`?6V zU0~8ju*Tre(aIIgQ+oT~-qfqL{6W1+i>R%Nu4~6lRmD{C09KaQOLP_V*Tqt+hH=Nm zpna`ITckfHV}&YdFYGLDmi$U^&d2zQ2>a#Ww?Ov&SAlcF#rI0s1K^xzLz35npN7nP zhU5Pm?Qyzom;7UJ&ay+2{|TIvYmekRQJ+(%AMXe_=h)-Y4p=H0;+GbUs!AzFA1UL! zbC-)owe&^A#!n=>T2-S*md#?Hf1`{)S;imW%Cd0uWEtl??iaR~m_>Zf)_!68v`>J{ z?=G`{R%ZWM89!IX&y>|aT4ukqj2|rHZ^|ne`+*$)n~awbeT(r@qDO(vI1_yb7y~}R zdiXuX`pby;gB}CE${gE`zq~Qv8$kB^4eOC0-(fxQ_fr2Zqe1i;YQ+38ZYA2yi1F?N@^}vbdAxnhu{Z~r19_i^wjm)hV*X~? zj((qFJCB1o{LN2n=j>p{X3s?KXE?;Q(g*IQ<=?ksC(9*Ibp+8P4 z;U&1m7IRr2qb;5p!%q9(%G=n};>0A~7myE9*uQ>(SrpFEEOTz)(pH3}cZHO0f>XI4 zpAr4y`;9@zU+_+8co50v0(3|(qCf11)JFTE!*Av*((gkM*86?-<6Q%NX*>^kko`Cw zK0V@!%e)U`gRA%^0jK~XFI7y1jqOOgLe|KDMDz+8^xI3Cnl{;Po>kC&1C wxGPVW#d`@#{to)Z7oRMP_d4QneU8W9F+biP;8!yJRDsEzlY3*W^yBvb3yr7k9RL6T literal 4988 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